Point cloud coding and decoding method, device, equipment and storage medium

CN119497991AActive Publication Date: 2025-02-21SHANGHAI JIAOTONG UNIV +1
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202280098080.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-07-11
Publication Date
2025-02-21
Estimated Expiration
2042-07-11

AI Technical Summary

Technical Problem

In existing point cloud encoding and decoding technologies, inter-frame prediction requires calculating classification information and motion vector information for each coding unit, which increases the encoding and decoding processing time and reduces encoding and decoding efficiency.

Method used

By setting the first and second parameters, classification information and motion vector information are calculated periodically, reducing the number of calculations and improving encoding and decoding efficiency through inter-frame prediction.

Benefits of technology

It reduces point cloud encoding and decoding processing time and improves encoding and decoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119497991A_ABST
    Figure CN119497991A_ABST
Patent Text Reader

Abstract

The invention provides a point cloud decoding and coding method and device, and the method comprises the steps: decoding a point cloud code stream, determining at least one of classification information and motion information of a current decoding unit, the classification information being determined based on a first parameter, the motion vector information being determined based on a second parameter, and the motion vector information being determined based on the second parameter; the first parameter is used for indicating a calculation period of classification information, and the second parameter is used for indicating a calculation period of motion vector information; and decoding the current decoding unit according to at least one of the classification information and the motion information of the current decoding unit. In other words, the classification information and the motion vector information are periodically calculated, and compared with calculation of the classification information and the motion vector information for one time for each decoding unit, the calculation times of the classification information and the motion vector information are greatly reduced, the processing time of coding and decoding is shortened, and the coding and decoding efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Point cloud encoding and decoding method, device, equipment and storage medium Technical Field

[0001] The present application relates to the field of point cloud technology, and in particular to a point cloud encoding and decoding method, apparatus, device and storage medium. Background Art

[0002] Capturing the surface of an object using a capture device creates point cloud data, which can contain hundreds of thousands or even more points. During video production, this 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 poses a challenge to transmission, so the point cloud encoding device must compress the point cloud data before transmission.

[0003] Currently, in point cloud encoding and decoding using inter-frame prediction, classification information and motion vector information need to be calculated once for each coding unit. This will increase the processing time of encoding and decoding and reduce encoding and decoding efficiency.

[0004] Summary of the Invention

[0005] The embodiments of the present application provide a point cloud encoding and decoding method, apparatus, device, and storage medium to reduce encoding and decoding processing time and improve encoding and decoding efficiency.

[0006] In a first aspect, an embodiment of the present application provides a point cloud decoding method, comprising:

[0007] Decoding the point cloud code stream, and determining at least one of classification information and motion vector information of a current decoding unit, wherein the classification information is determined based on a first parameter, and the motion vector information is determined based on a second parameter, wherein the first parameter is used to indicate a calculation period of the classification information, and the second parameter is used to indicate a calculation period of the motion vector information;

[0008] The current decoding unit is decoded according to at least one of the classification information and the motion vector information of the current decoding unit.

[0009] In a second aspect, the present application provides a point cloud encoding method, comprising:

[0010] determining at least one of a first parameter and a second parameter, wherein the first parameter is used to indicate a calculation period of classification information, and the second parameter is used to indicate a calculation period of motion vector information;

[0011] determining at least one of classification information and motion vector information of a current coding unit according to at least one of the first parameter and the second parameter;

[0012] The current coding unit is encoded according to at least one of the classification information and the motion vector information of the current coding unit.

[0013] In a third aspect, the present application provides a point cloud decoding device for executing the method of the first aspect or its respective implementations. Specifically, the device includes a functional unit for executing the method of the first aspect or its respective implementations.

[0014] In a fourth aspect, the present application provides a point cloud encoding device for executing the method of the second aspect or its respective implementations. Specifically, the device includes a functional unit for executing the method of the second aspect or its respective implementations.

[0015] In a fifth aspect, a point cloud decoder is provided, comprising a processor and a memory. The memory is configured to store a computer program, and the processor is configured to call and execute the computer program stored in the memory to perform the method of the first aspect or its respective implementations.

[0016] In a sixth aspect, a point cloud encoder is provided, comprising a processor and a memory. The memory is configured to store a computer program, and the processor is configured to call and execute the computer program stored in the memory to perform the method of the second aspect or its respective implementations.

[0017] 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 configured to execute the method of the first aspect or its respective implementations, and the point cloud encoder is configured to execute the method of the second aspect or its respective implementations.

[0018] In an eighth aspect, a chip is provided for implementing the method described in any one of the first and second aspects above, or their respective implementations. Specifically, the chip includes a processor configured to load and execute a computer program from a memory, causing a device equipped with the chip to perform the method described in any one of the first and second aspects above, or their respective implementations.

[0019] In a ninth aspect, a computer-readable storage medium is provided for storing a computer program, which enables a computer to execute the method of any one of the first to second aspects or their respective implementations.

[0020] In a tenth aspect, a computer program product is provided, comprising computer program instructions, which enable a computer to execute the method of any one of the first to second aspects or their respective implementations.

[0021] 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 their respective implementations.

[0022] In a twelfth aspect, a code stream is provided. The code stream is generated based on the method of the second aspect. Optionally, the code stream includes at least one of a first parameter and a second parameter.

[0023] Based on the above technical solution, at least one of the classification information and motion vector information of the current decoding unit is determined by decoding the point cloud code stream, wherein the classification information is determined based on a first parameter, and the motion vector information is determined based on a second parameter, the first parameter is used to indicate the calculation period of the classification information, and the second parameter is used to indicate the calculation period of the motion vector information. Then, according to at least one of the classification information and motion vector information of the current decoding unit, the current decoding unit is decoded. That is, in an embodiment of the present application, the classification information and motion vector information are periodically calculated. Compared with calculating the classification information and motion vector information once for each decoding unit, the embodiment of the present application greatly reduces the number of calculations of the classification information and motion vector information, reduces the processing time of encoding and decoding, and improves the encoding and decoding efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] FIG1 is a schematic block diagram of a point cloud encoding and decoding system according to an embodiment of the present application;

[0025] FIG2 is a schematic block diagram of a point cloud encoder provided in an embodiment of the present application;

[0026] FIG3 is a schematic block diagram of a point cloud decoder provided in an embodiment of the present application;

[0027] FIG4 is a schematic diagram of a point cloud decoding method according to an embodiment of the present application;

[0028] FIG5 is a point cloud histogram according to an embodiment of the present application;

[0029] FIG6 is a schematic diagram of a point cloud encoding method according to an embodiment of the present application;

[0030] FIG7 is a schematic block diagram of a point cloud decoding device provided in an embodiment of the present application;

[0031] FIG8 is a schematic block diagram of a point cloud encoding device provided in an embodiment of the present application;

[0032] FIG9 is a schematic block diagram of an electronic device provided in an embodiment of the present application;

[0033] FIG10 is a schematic block diagram of a point cloud encoding and decoding system provided in an embodiment of the present application. DETAILED DESCRIPTION

[0034] The present application can be applied to the field of point cloud upsampling technology, for example, it can be applied to the field of point cloud compression technology.

[0035] To facilitate understanding of the embodiments of the present application, the following briefly introduces the relevant concepts involved in the embodiments of the present application:

[0036] 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.

[0037] Point cloud data is a specific record format of a point cloud. Points in a point cloud can include both their location information and their attribute information. For example, the location information of a point can be its three-dimensional coordinate information. The location information of a point can also be referred to as its geometric information. For example, the attribute information of a point can include color information, reflectivity information, normal vector information, and so on. For example, the color information can be information in any color space. For example, the color information can be (RGB). For another example, the color information can be luminance and chrominance (YCbCr, YUV) information. For example, Y represents brightness (Luma), Cb (U) represents blue color difference, Cr (V) represents red, and U and V represent chroma (Chroma) to describe color difference information. For example, in a point cloud obtained using laser measurement principles, the points in the point cloud can include their three-dimensional coordinate information and the laser reflection intensity (reflectance) of the points. For another example, in a point cloud obtained using photogrammetry principles, the points in the point cloud can include their three-dimensional coordinate information and their color information. For another example, a point cloud is obtained by combining the principles of laser measurement and photogrammetry. A point in the point cloud may include three-dimensional coordinate information of the point, laser reflection intensity (reflectance) of the point, and color information of the point.

[0038] The ways to obtain point cloud data may include but are not limited to at least one of the following: (1) generation by computer equipment. 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 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. 3D photography equipment (i.e., a group of cameras or camera equipment with multiple lenses and sensors) is used to collect real-world visual scenes to obtain point cloud data of real-world visual scenes. 3D photography can 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 through medical equipment. In the medical field, point cloud data of biological tissues and organs can be obtained through medical equipment such as magnetic resonance imaging (MRI), computed tomography (CT), and electromagnetic positioning information.

[0039] Point clouds can be divided into dense point clouds and sparse point clouds according to the acquisition method.

[0040] Point clouds are divided into the following types according to the time series of the data:

[0041] The first type of static point cloud: the object is stationary and the device used to obtain the point cloud is also stationary;

[0042] The second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is stationary;

[0043] The third type of dynamic point cloud acquisition: the device that acquires the point cloud is moving.

[0044] Point clouds are divided into two categories according to their uses:

[0045] Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;

[0046] Category 2: Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.

[0047] With the development of 3D reconstruction and imaging technologies, point clouds are widely used in virtual reality, immersive telepresence, 3D printing, and other fields. However, due to the large number of points in a 3D point cloud, their spatial distribution is disordered. Furthermore, each point often contains rich attribute information, resulting in a large amount of data. This poses significant challenges to both storage and transmission. Therefore, point cloud compression coding technology is a key technology for point cloud processing and application.

[0048] The following introduces the relevant knowledge of point cloud encoding and decoding.

[0049] Figure 1 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 Figure 1 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 Figure 1. As shown in Figure 1, 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.

[0050] 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.

[0051] 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.

[0052] 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 a communication standard and transmit the modulated point cloud data to the decoding device 120. The communication media includes wireless communication media, such as radio frequency spectrum. Optionally, the communication media can also include wired communication media, such as one or more physical transmission lines.

[0053] In another example, channel 130 includes a storage medium that can store the point cloud data encoded by encoding device 110. The storage medium includes various locally accessible data storage media, such as optical disks, DVDs, and flash memory. In this example, decoding device 120 can retrieve the encoded point cloud data from the storage medium.

[0054] 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. Alternatively, 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.

[0055] 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.

[0056] 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 .

[0057] 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.

[0058] 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 on a storage medium or storage server for subsequent reading by the decoding device 120.

[0059] In some embodiments, the decoding device 120 includes an input interface 121 and a point cloud decoder 122 .

[0060] 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 .

[0061] The input interface 121 includes a receiver and / or a modem and can receive the encoded point cloud data via the channel 130 .

[0062] 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.

[0063] 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 external to the decoding device 120. The display device 123 may include various 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.

[0064] In addition, Figure 1 is only an example, and the technical solution of the embodiment of the present application is not limited to Figure 1. For example, the technology of the present application can also be applied to unilateral point cloud encoding or unilateral point cloud decoding.

[0065] Current point cloud encoders can use two point cloud compression coding technology routes proposed by the Moving Picture Experts Group (MPEG) of the International Organization for Standardization: Video-based Point Cloud Compression (VPCC) and Geometry-based Point Cloud Compression (GPCC). VPCC projects a 3D point cloud onto a 2D image and uses existing 2D coding tools to encode the projected 2D image. GPCC uses a hierarchical structure to divide the point cloud into multiple units, encoding the entire point cloud by recording the division process.

[0066] The following uses the GPCC encoding and decoding framework as an example to illustrate the point cloud encoder and point cloud decoder applicable to the embodiments of the present application.

[0067] Figure 2 is a schematic block diagram of the point cloud encoder provided in an embodiment of the present application.

[0068] As can be seen from the above, points in a point cloud can include both their location information and their attribute information. Therefore, the encoding of points in a point cloud mainly includes location encoding and attribute encoding. In some examples, the location information of points in a point cloud is also called geometric information, and the corresponding location encoding of points in the point cloud can also be called geometric encoding.

[0069] In the GPCC coding framework, the geometric information of the point cloud and the corresponding attribute information are encoded separately.

[0070] The process of position encoding includes: first, establishing a minimum cube that encloses all points in the point cloud, which is called a minimum bounding box. The minimum bounding box is divided into octrees, that is, the bounding box is divided into 8 sub-cubes, and the non-empty sub-cubes (containing points in the point cloud) are divided into 8 equal parts until the leaf nodes obtained by the division are 1×1×1 unit cubes. The division is stopped. In this process, an 8-bit binary number is used to encode the occupancy of the 8 sub-cubes generated by each division to generate a binary geometric bit stream, that is, a geometric code stream. Specifically, the points in the point cloud are preprocessed, such as coordinate transformation, quantization, and removal of duplicate points; then, the preprocessed point cloud is geometrically encoded, such as constructing an octree, and geometric encoding is performed based on the constructed octree to form a geometric code stream. At the same time, based on the position information output by the constructed octree, 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.

[0071] 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.

[0072] As shown in Figure 2, position encoding can be achieved through the following units:

[0073] 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 and surface fitting unit (Analyze surface approximation) 206.

[0074] The coordinate conversion unit 201 can be used to convert the world coordinates of a point in the point cloud into relative coordinates. For example, the geometric coordinates of the point are subtracted from the minimum value of the x, y, and z coordinate axes, which is equivalent to a DC removal operation, to convert the coordinates of the point in the point cloud from world coordinates to relative coordinates.

[0075] Voxelize unit 202, also known as the quantize and remove points unit, reduces the number of coordinates through quantization. After quantization, previously different points may be assigned the same coordinates. Based on this, duplicate points can be removed through deduplication. For example, multiple clouds with the same quantized position but different attribute information can be merged into a single cloud through attribute conversion. In some embodiments of the present application, voxel unit 202 is an optional unit module.

[0076] The octree partitioning unit 203 may encode the quantized point position information using an octree encoding scheme. For example, the point cloud may be partitioned using an octree, so that point positions correspond one-to-one with octree positions. Geometric encoding is performed by counting the point positions in the octree and setting their flags to 1.

[0077] In some embodiments, in the geometric information encoding process based on a triangle soup (trisoup), the point cloud is also octree-partitioned by the octree partitioning unit 203. However, unlike 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. Instead, the division is stopped 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. The intersections are surface-fitted by the surface fitting unit 206, and the fitted intersections are geometrically encoded.

[0078] The geometric reconstruction unit 204 may perform position reconstruction based on the position information output by the octree partitioning unit 203 or the intersection points fitted by the surface fitting unit 206 to obtain a reconstructed value of the position information of each point in the point cloud data.

[0079] The arithmetic coding unit 205 may perform entropy coding on the position information output by the octree analysis unit 203 or on the intersections fitted by the surface fitting unit 206. For example, the position information output by the octree analysis unit 203 may be arithmetically coded using an arithmetic coding method to generate a geometry bitstream. The geometry bitstream may also be referred to as a geometry bitstream.

[0080] Attribute encoding can be achieved through the following units:

[0081] A color conversion unit 210 , a transfer attributes unit 211 , a region adaptive hierarchical transform (RAHT) unit 212 , a generate LOD unit 213 , a lifting transform unit 214 , a quantize coefficients unit 215 , and an arithmetic coding unit 216 .

[0082] It should be noted that the point cloud encoder 200 may include more, fewer, or different functional components than those shown in FIG. 2 .

[0083] The color conversion unit 210 may be configured to convert the RGB color space of a point in the point cloud into a YCbCr format or other formats.

[0084] 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.

[0085] After the original value of the point attribute information is converted by the recoloring unit 211, any transformation unit can be selected to transform the points in the point cloud. The transformation units may include: RAHT transformation 212 and lifting transformation unit 214. The lifting transformation relies on generating the level of detail (LOD).

[0086] Either the RAHT transform or the lifting transform 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 to 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.

[0087] In one embodiment of the present application, the process of generating LOD by the LOD generation unit includes: obtaining the Euclidean distance between points based on the position information of the points in the point cloud; and dividing the points into different detail expression layers based on the Euclidean distance. In one embodiment, the Euclidean distances can be sorted and then 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. The Euclidean distances between the remaining points and the point are then 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 requirement are classified as the third detail expression layer. And so on, 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 this application is not limited to this.

[0088] It should be noted that the point cloud can be directly divided into one or more detail expression layers, or the point cloud can be first divided into multiple point cloud slices, and then each point cloud slice can be divided into one or more LOD layers.

[0089] For example, a point cloud can be divided into multiple point cloud tiles, each containing between 550,000 and 1.1 million points. Each point cloud tile can be considered a separate point cloud. Each point cloud tile can be further divided into multiple detail expression layers, each containing multiple points. In one embodiment, the detail expression layers can be divided based on the Euclidean distance between points.

[0090] 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.

[0091] The arithmetic coding unit 216 may perform entropy coding on the residual value of the attribute information of the point using zero run length coding to obtain an attribute code stream. The attribute code stream may be bit stream information.

[0092] FIG3 is a schematic block diagram of a point cloud decoder provided in an embodiment of the present application.

[0093] As shown in Figure 3, 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.

[0094] The position decoding process includes: performing arithmetic decoding on the geometric code stream; constructing an octree and then merging it to reconstruct the point position information to obtain the reconstructed position information of the point; and performing coordinate transformation on the reconstructed position information of the point to obtain the point position information. The point position information can also be called the point's geometric information.

[0095] 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 perform point cloud prediction 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 inverse color space conversion on the reconstructed value of the attribute information of the point to obtain the decoded point cloud.

[0096] As shown in Figure 3, position decoding can be achieved through the following units:

[0097] Arithmetic decoding unit 301 , octree synthesis unit 302 , surface approximation unit 303 , geometry reconstruction unit 304 , and inverse transform coordinates unit 305 .

[0098] Attribute encoding can be achieved through the following units:

[0099] an arithmetic decoding unit 310 , an inverse quantization unit 311 , a RAHT inverse transform unit 312 , a LOD generation unit 313 , an inverse lifting unit 314 , and an inverse color conversion unit 315 .

[0100] 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 Figure 3.

[0101] For example, the decoder 300 can divide the point cloud into multiple LODs based on the Euclidean distance between points in the point cloud. The decoder 300 then decodes the attribute information of the points in the LODs in sequence. For example, the number of zeros (zero_cnt) in the zero-run encoding technique is calculated to decode the residual based on zero_cnt. The decoding framework 200 then dequantizes the decoded residual value and adds the dequantized residual value to the predicted value of the current point to obtain the reconstructed value of the point cloud until all point clouds are decoded. The current point will be used as the nearest neighbor of the subsequent LOD point, and the reconstructed value of the current point will be used to predict the attribute information of the subsequent point.

[0102] 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 this framework and process.

[0103] Since adjacent frames in a continuously acquired point cloud sequence have a high correlation, in some embodiments, inter-frame prediction can be introduced to improve the efficiency of point cloud coding. Inter-frame prediction mainly includes steps such as motion estimation and motion compensation. In the motion estimation step, the spatial motion offset vector of two adjacent frames is calculated and written into the bitstream. In the motion compensation step, the calculated motion vector is further used to calculate the spatial offset of the point cloud, and the offset point cloud frame is used as a reference to further improve the coding efficiency of the current frame. Taking into account the large spatial span of the radar point cloud and the large difference in motion vectors of different parts, in some embodiments, the radar point cloud is divided into two parts: road and non-road, and only the non-road part is used to estimate the global motion vector.

[0104] As can be seen from the above, in the current point cloud encoding and decoding using inter-frame prediction, classification information and motion vector information need to be calculated once for each coding unit, which will increase the processing time of encoding and decoding and reduce the encoding and decoding efficiency of the point cloud.

[0105] In order to solve the above technical problems, the embodiment of the present application is based on the similarity of the contents of continuous point cloud frames. Instead of calculating the classification information and motion vector information once for each coding unit, the classification information and motion vector information are calculated once at intervals of multiple coding units, thereby reducing the number of calculations of the classification information and motion vector information, reducing the processing time of encoding and decoding, and improving the encoding and decoding efficiency.

[0106] The following describes the point cloud encoding and decoding method involved in the embodiments of the present application in conjunction with specific embodiments.

[0107] First, taking the decoding end as an example, the point cloud decoding method provided in the embodiment of the present application is introduced.

[0108] Figure 4 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 an embodiment of the present application can be implemented by the point cloud decoding device shown in Figure 1 or Figure 3 above.

[0109] As shown in FIG4 , the point cloud decoding method of an embodiment of the present application includes:

[0110] S101. Decode the point cloud code stream to determine at least one of the classification information and motion vector information of the current decoding unit.

[0111] The classification information is determined based on a first parameter, and the motion vector information is determined based on a second parameter. The first parameter is used to indicate a calculation period for the classification information, and the second parameter is used to indicate a calculation period for the motion vector information.

[0112] From the above description, we can see that adjacent frames in a continuously collected point cloud sequence have a high correlation, so inter-frame prediction can be introduced to improve the efficiency of point cloud encoding and decoding.

[0113] Inter-frame prediction primarily involves steps such as motion estimation and motion compensation. In some embodiments, during the motion estimation step, the spatial motion offset vectors between two adjacent frames are calculated and written into the bitstream. During the motion compensation step, the calculated motion vectors are further used to calculate the spatial offset of the point cloud, using the offset point cloud frame as a reference to further improve the coding efficiency of the current frame.

[0114] The embodiment of the present application does not limit the specific content of the motion vector information of the current decoding unit, and it can be motion information involved in steps such as motion estimation and motion compensation.

[0115] For example, the motion vector information may be a spatial motion offset vector between two adjacent frames in motion estimation, that is, a motion vector.

[0116] For another example, the motion vector information may also be a motion estimation ME (Motion Estimation) between two adjacent frames in motion compensation.

[0117] In actual scenarios, the motions of different objects may be different. For example, taking the point cloud data captured by a lidar sensor on a moving vehicle as an example, in this point cloud data, the road and objects usually have different motions. Since the distance between the road and the radar sensor is relatively constant, and the road changes slightly from one vehicle position to the next, the point representing the road moves very little relative to the radar sensor position. In contrast, objects such as buildings, road signs, vegetation, or other vehicles have larger motions. Since the road and object points have different motions, dividing the point cloud data into roads and objects will improve the accuracy of global motion estimation and compensation, thereby improving compression efficiency. That is, for point cloud data using inter-frame prediction, in order to improve the accuracy of inter-frame prediction and improve compression efficiency, for a decoding unit, the point cloud in the decoding unit needs to be classified, for example, the point cloud in the decoding unit is divided into road point cloud and non-road point cloud.

[0118] In some embodiments, the classification of the point cloud in the decoding unit is indicated by classification information, where the classification information can be understood as information required to classify the point cloud into several categories.

[0119] In the embodiment of the present application, the classification information of the current decoding unit can be understood as the classification information of the point cloud in the current decoding unit, that is, the information required to divide the point cloud in the current decoding unit into several categories.

[0120] During the point cloud decoding process, the point cloud data can be divided into at least one decoding unit. The decoding process of each decoding unit is independent and basically consistent. For ease of description, the present embodiment of the application uses the decoding unit currently being decoded, i.e., the current decoding unit, as an example for explanation.

[0121] The embodiment of the present application does not limit the specific size of the current decoding unit, which can be determined according to actual needs.

[0122] In some embodiments, the current decoding unit is the current point cloud frame, that is, a point cloud frame can be decoded as a decoding unit.

[0123] In some embodiments, the current decoding unit is a partial area of ​​the current point cloud frame. For example, the current point cloud frame is divided into multiple areas, and one area is used as a decoding unit for separate decoding.

[0124] The embodiment of the present application does not limit the specific method of dividing the current point cloud frame into multiple areas.

[0125] In one example, the current point cloud frame is divided into multiple point cloud slices. The sizes of the multiple point cloud slices may be the same or different. One point cloud slice is used as a decoding unit and is decoded separately.

[0126] In another example, the current point cloud frame is divided into multiple point cloud blocks. The sizes of the multiple point cloud blocks may be the same or different. One point cloud block is used as a decoding unit and is decoded separately.

[0127] In an embodiment of the present application, in order to avoid calculating classification information and motion vector information once for each decoding unit, at least one of a first parameter and a second parameter is set. The first parameter is used to indicate the calculation period of the classification information, and the second parameter is used to indicate the calculation period of the motion vector information. In this way, the encoding end can periodically calculate the classification information based on the classification information calculation period indicated by the first parameter, and / or periodically calculate the motion vector information based on the motion vector information calculation period indicated by the second parameter, thereby reducing the number of calculations of the classification information and / or motion vector information, and improving encoding and decoding efficiency.

[0128] In some embodiments, the calculation cycle of the above classification information can be understood as calculating the classification information once every at least one decoding unit, or calculating the classification information once every at least one point cloud frame.

[0129] In some embodiments, the calculation cycle of the above-mentioned motion vector information can be understood as calculating the motion vector information once every at least one decoding unit, or calculating the motion vector information once every at least one point cloud frame.

[0130] In the embodiment of the present application, the specific implementation methods of the decoding end decoding the point cloud stream in the above S101 and determining at least one of the classification information and motion vector information of the current decoding unit include but are not limited to the following:

[0131] Method 1: The decoding end decodes at least one of the classification information and motion vector information of the current decoding unit from the point cloud code stream.

[0132] In this first approach, the encoder can determine the classification information and / or the motion vector information for each decoding unit based on the first parameter and / or the second parameter. The encoder then writes at least one of the classification information and the motion vector information for each decoding unit into the point cloud bitstream. This allows the decoder to obtain the classification information and / or the motion vector information for each decoding unit by directly decoding the bitstream.

[0133] In one possible implementation of Method 1, the encoder can skip writing the first and / or second parameters into the point cloud codestream. Instead of writing the first and / or second parameters into the point cloud codestream, the encoder directly writes the classification information of each decoding unit and / or the motion vector information of each decoding unit into the point cloud codestream. This allows the decoder to use existing decoding methods to directly decode the classification information of each decoding unit and / or the motion vector information of each decoding unit from the codestream, thereby improving coding efficiency without increasing decoding complexity.

[0134] In some embodiments, the decoding end may further determine at least one of the classification information and the motion vector information of the current decoding unit according to the following second method.

[0135] In the second method, the decoding end determines at least one of the classification information and the motion vector information through the following steps S101-A and S101-B:

[0136] S101-A, decoding at least one of a first parameter and a second parameter from a point cloud code stream;

[0137] S101-B. Determine classification information of the current decoding unit according to the first parameter, and / or determine motion vector information of the current decoding unit according to the second parameter.

[0138] It should be noted that the above-mentioned first parameter and second parameter can be used separately. In one example, the encoding end writes the first parameter into the point cloud code stream, but does not write the second parameter into the point cloud code stream. In this way, the decoding end can determine the classification information of the current decoding unit based on the first parameter, and obtain the motion vector information of the current decoding unit by decoding the point cloud code stream. In another example, the encoding end writes the second parameter into the point cloud code stream, but does not write the first parameter into the point cloud code stream. In this way, the decoding end can determine the motion vector information of the current decoding unit based on the second parameter, and obtain the classification information of the current decoding unit by decoding the point cloud code stream. In yet another example, the encoding end writes both the first parameter and the second parameter into the point cloud code stream. In this way, the decoding end can determine the classification information of the current decoding unit based on the first parameter, and determine the motion vector information of the current decoding unit based on the second parameter.

[0139] In the second method, if the encoding end writes the first parameter into the point cloud code stream, it skips writing the classification information of each decoding unit into the point cloud code stream. Correspondingly, the decoding end determines the classification information of the decoding unit based on the first parameter, rather than obtaining the classification information of the point cloud in the decoding unit by decoding one by one. And / or, if the encoding end writes the second parameter into the point cloud code stream, it skips writing the classification information of each decoding unit into the point cloud code stream. Correspondingly, the decoding end determines the motion vector information of the decoding unit based on the second parameter, rather than obtaining the motion vector information of the decoding unit by decoding one by one. It can be seen from this that the encoding end writes the first parameter and / or the second parameter into the code stream and skips writing the classification information and / or motion vector information of each decoding unit into the point cloud code stream, which can reduce the decoding processing time and reduce the code stream burden of encoding the classification information and / or motion vector information of each decoding unit.

[0140] Optionally, at least one of the first parameter and the second parameter may be stored in the form of an unsigned integer, denoted as u(v), indicating that v bits are used to describe a parameter.

[0141] Optionally, at least one of the above-mentioned first parameter and second parameter can also be stored in the form of unsigned exponential Golomb coding, denoted as ue(v), indicating that the above-mentioned parameter value is first converted into a v-bit 01-bit sequence through exponential Golomb coding and then written into the code stream.

[0142] In some embodiments, the encoding end writes at least one of the first parameter and the second parameter into a sequence header parameter set. In this case, the decoding end obtains at least one of the first parameter and the second parameter by decoding the sequence header parameter set.

[0143] In one example, the first parameter is used to indicate that classification information is calculated once every multiple point cloud frames; and / or, the second parameter is used to indicate that motion vector information is calculated once every multiple point cloud frames.

[0144] Exemplarily, the storage method of the first parameter and the second parameter in the sequence header parameter set is shown in Table 1:

[0145] Table 1

[0146]

[0147] In Table 1, classification_period represents the first parameter, motion_period represents the second parameter, classification_info represents classification information, and motion_info represents motion vector information.

[0148] In some embodiments, the encoding end writes at least one of the first parameter and the second parameter into the point cloud header information. At this time, the decoding end obtains at least one of the first parameter and the second parameter by decoding the point cloud header information.

[0149] In one example, the first parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the classification information of the i-th point cloud piece is calculated once after multiple point cloud frames, where i is a positive integer; and / or, the second parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the motion vector information of the i-th point cloud piece is calculated once after multiple point cloud frames.

[0150] In this example, the first parameter and the second parameter are stored in the point cloud header information as shown in Table 2:

[0151] Table 2

[0152]

[0153] In Table 2, classification_frame_period represents the first parameter, motion_frame_period represents the second parameter, classification_info represents classification information, and motion_info represents motion vector information.

[0154] In one example, the first parameter is used to indicate that classification information is calculated once for each of multiple point cloud slices in a point cloud frame; and / or, the second parameter is used to calculate motion vector information once for each of multiple point cloud slices in a point cloud frame.

[0155] In this example, the first parameter and the second parameter are stored in the point cloud header information as shown in Table 3:

[0156] Table 3

[0157]

[0158] In Table 3, classification_slice_period represents the first parameter, motion_slice_period represents the second parameter, classification_info represents classification information, and motion_info represents motion vector information.

[0159] In some embodiments, before decoding the first parameter and the second parameter, the decoding end first needs to decode the point cloud code stream to obtain a first identifier inter_prediction_flag, where the first identifier inter_prediction_flag is used to indicate whether to perform inter-frame prediction decoding; if the first flag inter_prediction_flag indicates that inter-frame prediction encoding is to be performed, the point cloud code stream is decoded to obtain at least one of the first parameter and the second parameter.

[0160] The following describes the specific process in which the decoding end determines the classification information of the current decoding unit according to the first parameter in the above S101-B.

[0161] In the above S101-B, the specific implementation methods of the decoding end determining the classification information of the current decoding unit according to the first parameter include but are not limited to the following:

[0162] Mode 1: The above S101-B includes the following steps S101-B-11 and S101-B-12:

[0163] S101-B-11. Determine, based on the first parameter, a classification information calculation period corresponding to the current decoding unit;

[0164] S101-B-12. Determine the classification information of the current decoding unit according to the classification information calculation period.

[0165] In the embodiment of the present application, the classification information calculation cycles corresponding to different decoding units in the point cloud sequence may be the same or different, and the embodiment of the present application does not impose any restrictions on this.

[0166] In some embodiments, if the calculation period of classification information corresponding to different decoding units in a point cloud sequence is the same, a first parameter can be written into the bitstream to indicate the calculation period of classification information for each decoding unit in the point cloud sequence. For example, the first parameter indicates that classification information should be calculated once every K decoding units.

[0167] In some embodiments, if the calculation period of classification information corresponding to different decoding units in a point cloud sequence is not exactly the same, multiple first parameters can be written into the bitstream to indicate the calculation period of classification information for each decoding unit in the point cloud sequence. For example, three first parameters can be written into the bitstream, where the first first parameter indicates that classification information is calculated once every K1 decoding units, the second first parameter indicates that classification information is calculated once every K2 decoding units, and the third first parameter indicates that classification information is calculated once every K3 decoding units.

[0168] As can be seen from the above, no matter what form the first parameter uses to indicate the calculation cycle of the classification information, for the current decoding unit, the classification information calculation cycle corresponding to the current decoding unit can be determined based on the first parameter decoded from the code stream. For example, the current decoding unit is the current point cloud frame, and the first parameter indicates that the classification information is calculated once every 4 point cloud frames. Assuming that the current decoding unit is the 6th point cloud frame in the decoding order, the classification information is calculated once for the 0th point cloud frame in the decoding order, the classification information is calculated once for the 5th point cloud frame, and the classification information is calculated once for the 10th point cloud frame. Among them, the 0th point cloud frame to the 4th point cloud frame can be understood as the first calculation cycle of the classification information, and the 5th point cloud frame to the 9th point cloud frame can be understood as the second calculation cycle of the classification information. The current decoding unit is in the second calculation cycle, and the second calculation cycle is determined as the classification information calculation cycle corresponding to the current decoding unit.

[0169] After the decoding end determines the classification information calculation period corresponding to the current decoding unit according to the above steps, it determines the classification information of the current decoding unit according to the classification information calculation period.

[0170] The embodiment of the present application does not limit the specific manner in which the decoding end determines the classification information of the current decoding unit based on the classification information calculation period corresponding to the current decoding unit.

[0171] In some embodiments, both ends of the codec agree that the classification information of the decoding unit in the classification information calculation period is a default value of 1, and the decoding end then determines the default value 1 as the classification information of the current decoding unit.

[0172] In some embodiments, the codec and decoder agree to use a preset calculation method to calculate the classification information of the decoding unit within the classification information calculation period. For example, if the current decoding unit is a region of the current point cloud frame, the classification information of the current decoding unit can be determined based on the classification information of the decoded point clouds surrounding the current decoding unit in the current point cloud frame.

[0173] In some embodiments, the encoder writes the classification information of the first decoding unit within a classification information calculation cycle into the bitstream, while the classification information of other decoding units within the classification information calculation cycle is not written into the bitstream. In this way, the decoder can determine the classification information of the current decoding unit based on its position in the classification information calculation cycle corresponding to the current decoding unit.

[0174] Example 1: If the current decoding unit is the first decoding unit in the classification information calculation cycle, the point cloud code stream is decoded to obtain the classification information of the current point decoding unit.

[0175] Example 2: If the current decoding unit is not the first decoding unit in the classification information calculation cycle, the classification information of the current decoding unit is determined according to the decoded information or the default value.

[0176] In this embodiment, the encoder writes the first parameter and the classification information of the first decoding unit in each classification information calculation cycle into the point cloud codestream, while not writing the classification information of other decoding units in the classification information calculation cycle into the point cloud codestream. In this way, after determining the classification information calculation cycle corresponding to the current decoding unit, the decoder can determine the classification information of the current decoding unit based on whether the current decoding unit is the first decoding unit in the classification information calculation cycle.

[0177] Continuing with the above example, assuming that the classification information calculation period corresponding to the current decoding unit is from the 5th point cloud frame to the 9th point cloud frame, if the current decoding unit is the 5th point cloud frame in the decoding order, the decoder directly decodes the classification information of the current decoding unit from the bitstream. If the current decoding unit is not the 5th point cloud frame, for example, the 6th point cloud frame, the decoder determines the classification information of the current decoding unit by default, or determines the classification information of the current decoding unit based on the decoded information.

[0178] The present application does not limit the specific implementation method of determining the classification information of the current decoding unit based on the decoded information in the above Example 2.

[0179] In one possible implementation, the classification information of the current decoding unit is determined based on the classification information of the first decoding unit within the classification information calculation cycle corresponding to the current decoding unit. For example, the classification information of the first decoding unit within the classification information calculation cycle is determined as the classification information of the current decoding unit, or the classification information of the first decoding unit within the classification information calculation cycle is processed to obtain the classification information of the current decoding unit.

[0180] In a possible implementation, the classification information of the current decoding unit is determined according to the following step 11:

[0181] Step 11: Determine the classification information of the current decoding unit based on the classification information of M decoding units, where the M decoding units are the M decoded decoding units that precede the current decoding unit in the decoding order, and M is a positive integer.

[0182] The embodiment of the present application does not limit the specific selection method of the above-mentioned M decoding units.

[0183] In some embodiments, the M decoding units are adjacent to each other in decoding order without any gaps in between.

[0184] In some embodiments, the above-mentioned M decoding units can be any M decoding units located before the current decoding unit in the decoding order, that is, these M decoding units can be adjacent or not completely adjacent, and the embodiment of the present application does not limit this.

[0185] Due to the specific correlation of the contents between adjacent point cloud frames, in this implementation, in the decoded information, M decoding units that are located before the current decoding unit in the decoding order are obtained, and the classification information of the current decoding unit is determined based on the classification information of these M decoding units.

[0186] The implementation of determining the classification information of the current decoding unit according to the classification information of the M decoding units in step 11 includes at least the following examples:

[0187] In the first example, if M is 1, the classification information of the decoding unit preceding the current decoding unit in the decoding order is determined as the classification information of the current decoding unit. For example, if the current decoding unit is the sixth point cloud frame in the decoding order, the classification information of the fifth point cloud frame in the decoding order is determined as the classification information of the current decoding unit.

[0188] In the second example, if M is greater than 1, the classification information of the M decoding units is subjected to a preset process, and the process result is determined as the classification information of the current decoding unit.

[0189] For example, the average value of the classification information of the M decoding units is determined as the classification information of the current decoding unit.

[0190] For another example, the weighted average of the classification information of the M decoding units is determined as the classification information of the current decoding unit. Optionally, among the M decoding units, the closer they are to the current decoding unit in the decoding order, the greater their weight, and the farther they are from the current decoding unit, the smaller their weight.

[0191] In addition to determining the classification information of the current decoding unit through the above-mentioned method 1, the decoding end may also determine the classification information of the current decoding unit according to the following method 2.

[0192] Mode 2: If the first parameter indicates that the classification information is calculated once for every K decoding units, then the implementation of S101-B above includes at least the following two examples:

[0193] Example 1: If the current decoding unit is the NKth decoding unit in the decoding order, the point cloud code stream is decoded to obtain the classification information of the current decoding unit, where K and N are both positive integers.

[0194] Example 2: If the current decoding unit is not the NKth decoding unit in the decoding order, the classification information of the current decoding unit is determined according to the decoded information or the default value.

[0195] In this method 2, the classification information calculation cycle corresponding to each decoding unit in the point cloud series is the same, for example, the classification information is calculated once every K decoding units. In this way, the encoding end writes the classification information of the decoding units numbered 0 and the decoding units numbered as integer multiples of K (i.e., the NKth decoding unit) in the decoding order into the code stream, while the classification information of the decoding units numbered not as integer multiples of K (i.e., non-NKth decoding units) is not written into the code stream, thereby reducing the code stream burden. Correspondingly, when the decoding end decodes the current decoding unit, it determines whether the current decoding unit is the NKth decoding unit in the decoding order, that is, it determines whether the sequence number of the current decoding unit in the decoding order is an integer multiple of K. If the decoding end determines that the current decoding unit is the NKth decoding unit in the decoding order, the classification information of the current decoding unit is decoded from the code stream. If the current decoding unit is not the NKth decoding unit in the decoding order, the default value is determined as the classification information of the current decoding unit, or the classification information of the current decoding unit is determined based on the decoded information.

[0196] In this implementation 2, if the first parameter indicates that classification information is calculated once every K decoding units, the decoder decodes the classification information from the bitstream once every K decoding units, which can reduce the number of decoding operations required by the decoder. For example, if a point cloud sequence includes 1000 point cloud frames and one point cloud frame is used as a decoding unit, the number of decoding operations required by the decoder is 1000 / K, rather than 1000. This significantly reduces the number of decoding operations, reduces the decoding burden on the decoder, and improves decoding efficiency.

[0197] In this method 2, if the current decoding unit is not the NKth decoding unit in the decoding order, the specific process of determining the classification information of the current decoding unit based on the decoded information can refer to the description of the above steps 11 and 12, which will not be repeated here.

[0198] In the embodiment of the present application, the classification information of the current decoding unit can be determined according to the above method.

[0199] The classification information can be understood as the information required to classify the point cloud into different categories. The embodiment of the present application does not limit the specific form of the classification information.

[0200] In some embodiments, the classification information includes at least one of a first height threshold and a second height threshold, and the first height threshold and the second height threshold are used for classification of the point cloud in the current decoding unit.

[0201] Optionally, at least one of the first height threshold and the second height threshold is a preset value.

[0202] Optionally, at least one of the first height threshold and the second height threshold is a statistical value. For example, as shown in Figure 5, a histogram is used to count the height values ​​of the points in the point cloud. The horizontal axis of the histogram is the height value of the point cloud, and the vertical axis of the histogram is the number of points at this height value. Figure 5 takes the radar point cloud as an example for statistics, with the height of the radar as the height zero point, so the height values ​​of most points are negative. Next, the height value corresponding to the peak of the histogram is obtained, and the standard deviation of the height value is calculated. The threshold value that is higher than the center a times (for example, 1.5 times) the standard deviation with the height corresponding to the peak as the center is recorded as the first height threshold Top_thr, and the threshold value that is lower than the center b times (for example, 1.5 times) the standard deviation is recorded as the second height threshold Bottom_thr.

[0203] The first and second height thresholds are used to classify the point cloud into different categories. For example, point clouds with heights between the first and second height thresholds are classified as first-category point clouds, while point clouds with heights greater than the first height threshold and less than the second height threshold are classified as second-category point clouds.

[0204] In some embodiments, if the classification information includes at least one of a first height threshold and a second height threshold, correspondingly, the first parameter classification_period may include at least one of a first sub-parameter top_threshold_period and a second sub-parameter bottom_threshold_period;

[0205] The first sub-parameter top_threshold_period is used to indicate a calculation period of the first height threshold, and the second sub-parameter bottom_threshold_period is used to indicate a calculation period of the second height threshold.

[0206] The first sub-parameter and the second sub-parameter can be assigned values ​​independently.

[0207] Optionally, the calculation period of the first height threshold and the calculation period of the second height threshold may be the same or different, and this embodiment of the present application does not impose any limitation on this.

[0208] The above describes the specific process of determining the classification information of the current decoding unit according to the first parameter in S101-B. The following describes the specific implementation process of determining the motion vector information of the current decoding unit according to the second parameter in S101-B.

[0209] In the above S101-B, the specific implementation methods of the decoding end determining the motion vector information of the current decoding unit according to the second parameter include but are not limited to the following:

[0210] Mode 1: The above S101-B includes the following steps S101-B-21 and S101-B-22:

[0211] S101-B-21. Determine a motion vector information calculation period corresponding to the current decoding unit according to the second parameter;

[0212] S101-B-22. Determine the motion vector information of the current decoding unit according to the motion vector information calculation period.

[0213] In the embodiment of the present application, the motion vector information calculation periods corresponding to different decoding units in the point cloud sequence may be the same or different, and the embodiment of the present application does not impose any restrictions on this.

[0214] In some embodiments, if the calculation period of motion vector information corresponding to different decoding units in a point cloud sequence is the same, a second parameter can be written into the bitstream to indicate the calculation period of motion vector information for each decoding unit in the point cloud sequence. For example, the second parameter indicates that motion vector information should be calculated once every R decoding units.

[0215] In some embodiments, if the calculation period of motion vector information corresponding to different decoding units in a point cloud sequence is not exactly the same, multiple second parameters can be written into the bitstream to indicate the calculation period of motion vector information corresponding to each decoding unit in the point cloud sequence. For example, three second parameters can be written into the bitstream, where the first second parameter indicates that motion vector information is calculated once every R1 decoding units, the second second parameter indicates that motion vector information is calculated once every R2 decoding units, and the third second parameter indicates that motion vector information is calculated once every R3 decoding units.

[0216] As can be seen from the above, no matter in what form the second parameter indicates the calculation period of the motion vector information, for the current decoding unit, the motion vector information calculation period corresponding to the current decoding unit can be determined according to the second parameter decoded from the code stream. For example, the current decoding unit is the current point cloud frame, and the second parameter indicates that the motion vector information is calculated once every 4 point cloud frames. Assuming that the current decoding unit is the 6th point cloud frame in the decoding order, the motion vector information is calculated once for the 0th point cloud frame in the decoding order, the motion vector information is calculated once for the 5th point cloud frame, and the motion vector information is calculated once for the 10th point cloud frame. Among them, the 0th point cloud frame to the 4th point cloud frame can be understood as the first calculation period of the motion vector information, and the 5th point cloud frame to the 9th point cloud frame can be understood as the second calculation period of the motion vector information. The current decoding unit is in the second calculation period, and the second calculation period is determined as the motion vector information calculation period corresponding to the current decoding unit.

[0217] After determining the motion vector information calculation period corresponding to the current decoding unit according to the above steps, the decoding end determines the motion vector information of the current decoding unit according to the motion vector information calculation period.

[0218] The embodiment of the present application does not limit the specific manner in which the decoding end determines the motion vector information of the current decoding unit based on the motion vector information calculation period corresponding to the current decoding unit.

[0219] In some embodiments, the codec and decoder agree that the motion vector information of the decoding unit within the motion vector information calculation period is a default value of 1, and the decoding end then determines the default value 1 as the motion vector information of the current decoding unit.

[0220] In some embodiments, the codec and decoder agree to use a preset calculation method to calculate the motion vector information of the decoding unit within the motion vector information calculation period. For example, if the current decoding unit is a region of the current point cloud frame, the motion vector information of the current decoding unit can be determined based on the motion vector information of the decoded region surrounding the current decoding unit in the current point cloud frame.

[0221] In some embodiments, the encoder writes the motion vector information of the first decoding unit within a motion vector information calculation cycle into the bitstream, while the motion vector information of other decoding units within the same motion vector information calculation cycle is not written into the bitstream. In this way, the decoder can determine the motion vector information of the current decoding unit based on the position of the current decoding unit in the motion vector information calculation cycle corresponding to the current decoding unit.

[0222] Example 1: If the current decoding unit is the first decoding unit in the motion vector information calculation cycle, the point cloud code stream is decoded to obtain the motion vector information of the current point decoding unit.

[0223] Example 2: If the current decoding unit is not the first decoding unit in the motion vector information calculation cycle, the motion vector information of the current decoding unit is determined according to decoded information or a default value.

[0224] In this embodiment, the encoder writes the second parameter and the motion vector information of the first decoding unit within each motion vector information calculation cycle into the point cloud codestream, while not writing the motion vector information of other decoding units within the motion vector information calculation cycle into the point cloud codestream. In this way, after determining the motion vector information calculation cycle corresponding to the current decoding unit, the decoder can determine the motion vector information of the current decoding unit based on whether the current decoding unit is the first decoding unit within the motion vector information calculation cycle.

[0225] Continuing with the above example, assuming that the motion vector information calculation period corresponding to the current decoding unit is from the 5th point cloud frame to the 9th point cloud frame, if the current decoding unit is the 5th point cloud frame in the decoding order, the decoder directly decodes the motion vector information of the current decoding unit from the bitstream. If the current decoding unit is not the 5th point cloud frame, for example, the 6th point cloud frame, the decoder determines the default value as the motion vector information of the current decoding unit, or determines the motion vector information of the current decoding unit based on the decoded information.

[0226] The present application does not limit the specific implementation method of determining the motion vector information of the current decoding unit based on the decoded information in the above Example 2.

[0227] In one possible implementation, the motion vector information of the current decoding unit is determined based on the motion vector information of the first decoding unit within the motion vector information calculation period corresponding to the current decoding unit. For example, the motion vector information of the first decoding unit within the motion vector information calculation period is determined as the motion vector information of the current decoding unit, or the motion vector information of the first decoding unit within the motion vector information calculation period is processed to obtain the motion vector information of the current decoding unit.

[0228] In a possible implementation, the motion vector information of the current decoding unit is determined according to the following step 21:

[0229] Step 21 : Determine the motion vector information of the current decoding unit based on the motion vector information of S decoding units, where the S decoding units are the S decoded decoding units that precede the current decoding unit in the decoding order, and S is a positive integer.

[0230] The embodiment of the present application does not limit the specific selection method of the above-mentioned S decoding units.

[0231] In some embodiments, the S decoding units are adjacent to each other in decoding order without any gaps in between.

[0232] In some embodiments, the above-mentioned S decoding units can be any S decoding units located before the current decoding unit in the decoding order, that is, these S decoding units can be adjacent or not completely adjacent, and the embodiment of the present application does not impose any restrictions on this.

[0233] Due to the specific correlation of the content between adjacent point cloud frames, in this implementation, the decoding end obtains the S decoding units that are located before the current decoding unit in the decoding order from the decoded information, and determines the motion vector information of the current decoding unit based on the motion vector information of these S decoding units.

[0234] The implementation of determining the motion vector information of the current decoding unit according to the motion vector information of the S decoding units in step 21 includes at least the following examples:

[0235] In the first example, if S is 1, the motion vector information of the decoding unit preceding the current decoding unit in the decoding order is determined as the motion vector information of the current decoding unit. For example, if the current decoding unit is the sixth point cloud frame in the decoding order, the motion vector information of the fifth point cloud frame in the decoding order is determined as the motion vector information of the current decoding unit.

[0236] In the second example, if S is greater than 1, a preset process is performed on the motion vector information of the S decoding units, and the process result is determined as the motion vector information of the current decoding unit.

[0237] For example, the average value of the motion vector information of S decoding units is determined as the motion vector information of the current decoding unit.

[0238] For another example, the weighted average of the motion vector information of S decoding units is determined as the motion vector information of the current decoding unit. Optionally, among the S decoding units, the closer they are to the current decoding unit in the decoding order, the greater their weight, and the farther they are from the current decoding unit, the smaller their weight.

[0239] In addition to determining the motion vector information of the current decoding unit through the above-mentioned method 1, the decoding end can also determine the motion vector information of the current decoding unit according to the following method 2.

[0240] In mode 2, if the second parameter indicates that the motion vector information is calculated once for every R decoding units, then the implementation of S101-B above includes at least the following two examples:

[0241] Example 1: If the current decoding unit is the NR-th decoding unit in the decoding order, the point cloud code stream is decoded to obtain the motion vector information of the current decoding unit, where R and N are both positive integers.

[0242] Example 2: If the current decoding unit is not the NR-th decoding unit in the decoding order, the motion vector information of the current decoding unit is determined according to the decoded information or the default value.

[0243] In this method 2, the calculation cycle of the motion vector information corresponding to each decoding unit in the point cloud series is the same, for example, the motion vector information is calculated once for every R decoding units. In this way, the encoding end writes the motion vector information of the decoding units numbered 0 and integer multiples of R (i.e., the NRth decoding unit) in the decoding order into the code stream, while the motion vector information of the decoding units whose numbers are not integer multiples of R (i.e., non-NRth decoding units) is not written into the code stream, thereby reducing the code stream burden. Correspondingly, when the decoding end decodes the current decoding unit, it determines whether the current decoding unit is the NRth decoding unit in the decoding order, that is, it determines whether the sequence number of the current decoding unit in the decoding order is an integer multiple of R. If the decoding end determines that the current decoding unit is the NRth decoding unit in the decoding order, the motion vector information of the current decoding unit is decoded from the code stream. If the current decoding unit is not the NRth decoding unit in the decoding order, the default value is determined as the motion vector information of the current decoding unit, or the motion vector information of the current decoding unit is determined based on the decoded information.

[0244] In this implementation method 2, if the second parameter indicates that motion vector information is calculated once every R decoding units, the decoder decodes motion vector information from the bitstream once every R decoding units, which can reduce the number of decoding operations required by the decoder. For example, if a point cloud sequence includes 1000 point cloud frames and one point cloud frame is used as a decoding unit, the number of decoding operations required by the decoder is 1000 / R instead of 1000. This significantly reduces the number of decoding operations, reduces the decoding burden on the decoder, and improves decoding efficiency.

[0245] In this method 2, if the current decoding unit is not the NRth decoding unit in the decoding order, the specific process of determining the motion vector information of the current decoding unit based on the decoded information can refer to the description of steps 21 and 22 above, and will not be repeated here.

[0246] In addition to determining the motion vector information of the current decoding unit according to the methods shown in the above methods 1 and 2, the decoding end can also determine the motion vector information of the current decoding unit according to the following method 3.

[0247] Mode 3: The decoding end determines the motion vector information according to the degree of change of the classification information of the decoding unit. That is, the decoding end determines the motion vector information of the current decoding unit according to the following steps 1 and 2:

[0248] Step 1: Determine the degree of change of the classification information according to the first parameter;

[0249] Step 2: Determine the motion vector information of the current decoding unit according to the degree of change.

[0250] In the embodiment of the present application, if the change in the classification information of different decoding units is not significant, then the change in the motion vector information of the different decoding units is likely to be small. Conversely, if the change in the classification information of different decoding units is large, then the change in the motion vector information of the different decoding units is likely to be large. Therefore, the motion vector information of the current decoding unit can be determined based on the degree of change in the classification information of different decoding units.

[0251] The embodiment of the present application does not limit the specific implementation method of determining the degree of change of the classification information of the point cloud based on the first parameter in the above step 1.

[0252] In some embodiments, classification information of multiple decoding units is determined based on the first parameter, and a degree of change in the classification information is determined based on the classification information of the multiple decoding units. For example, if the classification information of the multiple decoding units differs significantly, it indicates that the degree of change in the classification information is significant; if the classification information of the multiple decoding units differs slightly, it indicates that the degree of change in the classification information is minor.

[0253] In some embodiments, the degree of change of the classification information is determined based on the classification information of the current decoding unit and the classification information of a reference decoding unit of the current decoding unit.

[0254] Exemplarily, the classification information of the current decoding unit is determined based on the first parameter. The specific process can be referred to the description of the above embodiment and will not be repeated here. Next, the degree of change between the classification information of the current decoding unit and the classification information of the reference decoding unit of the current decoding unit is determined. For example, the absolute value of the difference between the classification information of the current decoding unit and the classification information of the reference decoding unit of the current decoding unit is determined as the degree of change in the classification information.

[0255] According to the above method, after the change degree of the classification information is determined, the motion vector information of the current decoding unit is determined according to the change degree of the classification information.

[0256] For example, if the degree of change of the classification information is less than or equal to a first preset value, a default value or the motion vector information of a decoding unit preceding the current decoding unit in the decoding order is determined as the motion vector information of the current decoding unit.

[0257] For another example, if the degree of change is greater than a first preset value, the point cloud code stream is decoded to obtain the motion vector information of the current decoding unit.

[0258] In the embodiment of the present application, the motion vector information of the current decoding unit can be determined according to the above method.

[0259] The motion vector information can be understood as the motion information required by the decoding end for inter-frame prediction. The embodiment of the present application does not limit the specific form of the motion vector information.

[0260] In some embodiments, the motion vector information includes at least one of a rotation matrix describing a three-dimensional rotation of the decoding unit and the reference decoding unit, and an offset vector describing an offset in three directions between a coordinate origin of the decoding unit and the reference decoding unit.

[0261] In one example, when the rotation matrix is This means that the current decoding unit has not been rotated compared to the reference decoding unit.

[0262] In one example, when the offset vector is This indicates that there is no offset between the coordinate origins of the current decoding unit and the reference decoding unit.

[0263] If the current decoding unit is neither rotated nor offset compared to the reference decoding unit, the motion vector between the two decoding units is recorded as a zero motion vector.

[0264] In some embodiments, if the motion vector information includes at least one of a rotation matrix and an offset vector, correspondingly, the second parameter motion_period includes at least one of a third sub-parameter rotation_matrix_period and a fourth sub-parameter translation_vector_period.

[0265] Among them, the third sub-parameter rotation_matrix_period is used to indicate the calculation period of the rotation matrix, and the fourth sub-parameter translation_vector_period is used to indicate the calculation period of the offset vector.

[0266] The third and fourth sub-parameters can be assigned values ​​independently.

[0267] Optionally, the calculation period of the above-mentioned rotation matrix and the calculation period of the offset vector may be the same or different, and the embodiment of the present application does not impose any limitation on this.

[0268] In some embodiments, if the current decoding unit is the first decoding unit in the decoding order, that is, the decoding sequence number is 0, the encoder writes at least one of the classification information and motion vector information of the current decoding unit into the point cloud codestream. In this way, the decoder can decode the point cloud codestream and directly obtain at least one of the classification information and motion vector information of the current decoding unit.

[0269] In the embodiment of the present application, after the decoding end determines at least one of the classification information and the motion vector information of the current decoding unit according to the above steps, it performs the following step S102.

[0270] S102: Decode the current decoding unit according to at least one of the classification information and the motion vector information of the current decoding unit.

[0271] Since different objects move differently, in order to improve decoding accuracy, the category of the point cloud in the current decoding unit is determined based on the classification information of the current decoding unit, and different motion vector information is used for inter-frame prediction of point clouds of different categories. For example, taking the point cloud data scanned by a vehicle-mounted radar as an example, the point cloud can be divided into road points and object points. The motion vector information of road points and object points is different.

[0272] The embodiment of the present application does not limit the specific process of decoding the current decoding unit according to at least one of the classification information and motion vector information of the current decoding unit in the above S102.

[0273] In some embodiments, if the classification information of the current decoding unit is determined according to the above method, but the motion vector information of the current decoding unit is not determined, the point cloud in the current decoding unit can be divided into multiple categories based on the classification information. Different motion vector information is assigned to each category, where the motion vector information assigned to different categories can be preset values ​​corresponding to different categories, or values ​​calculated based on the categories, which is not limited in this embodiment of the present application.

[0274] In some embodiments, if the motion vector information of the current decoding unit is determined according to the above method, but the classification information of the current decoding unit is not determined, then the decoding end can determine the classification information of the current decoding unit based on itself, for example, based on the decoding information of the decoded units around the current decoding unit, to determine the classification information of the current decoding unit. Then, based on the classification information, the point cloud in the current decoding unit is divided into multiple categories. Based on the motion vector information of the current decoding unit, the motion vector information of each category of the point cloud in the current decoding unit is determined. For example, if the current decoding unit includes a first category of point clouds and a second category of point clouds, the above-determined motion vector information can be determined as the motion vector information of the first category of point clouds, and the motion vector information of the second category of point clouds can be determined as a preset value, such as a zero vector.

[0275] In some embodiments, if the classification information of the current decoding unit and the motion vector information of the current decoding unit are determined according to the above steps, then the above S102 includes the following steps:

[0276] S102-A. Divide the point cloud in the current decoding unit into P types of point clouds according to the classification information of the current decoding unit, where P is a positive integer greater than 1.

[0277] In this embodiment, the decoding end divides the point cloud in the current decoding unit into P types of point clouds based on the classification information of the current decoding unit, determines the motion vector information corresponding to the P types of point clouds based on the motion vector information of the current decoding unit, and then decodes the current decoding unit based on the motion vector information corresponding to the P types of point clouds. That is, in this embodiment of the application, different motion vector information is used for decoding different types of point clouds in the current decoding unit, thereby improving decoding accuracy.

[0278] The embodiment of the present application does not limit the specific type of the above S102-A, which is to classify the point cloud in the current decoding unit into P types of point clouds according to the classification information of the current decoding unit.

[0279] In some embodiments, the classification information of the current decoding unit may be a category identifier. For example, each point in the current decoding unit includes a category identifier. Thus, the point cloud in the current decoding unit may be divided into P types of point clouds according to the category identifier.

[0280] In some embodiments, the classification information of the current decoding unit includes a first height threshold and a second height threshold, and the first height threshold is greater than the second height threshold. In this case, the above S102-A includes the following steps:

[0281] S102-A1. Divide the point cloud in the current decoding unit into P types of point clouds according to a first height threshold and a second height threshold.

[0282] For example, the point cloud in the current decoding unit whose height value is greater than the first height threshold is divided into one type of point cloud, the point cloud in the current decoding unit whose height value is between the first height threshold and the second height threshold is divided into one type of point cloud, and the point cloud in the current decoding unit whose height value is less than the second height threshold is divided into one type of point cloud.

[0283] For another example, the point cloud in the current decoding unit whose height value is less than or equal to the first height threshold and greater than or equal to the second height threshold is classified as the first type of point cloud; the point cloud in the current decoding unit whose height value is greater than the first height threshold or less than the second height threshold is classified as the second type of point cloud.

[0284] S102-B. Determine the motion vector information corresponding to the P-type point cloud according to the motion vector information of the current decoding unit.

[0285] According to the above steps, after the point cloud in the current decoding unit is divided into P types of point clouds, the motion vector information corresponding to the P types of point clouds is determined based on the motion vector information of the current decoding unit. For example, the motion vector information of the current decoding unit is determined as the motion vector information of one type of point cloud in the P types of point clouds, and the motion vector information of other types of point clouds in the P types of point clouds can be preset values.

[0286] In one example, the P type point cloud includes the above-mentioned first type point cloud and second type point cloud, then the motion vector information of the current decoding unit can be determined as the motion vector information of the second type point cloud, and the motion vector information of the first type point cloud is a preset value, such as a zero vector.

[0287] Taking the vehicle-mounted point cloud as an example, the first type of point cloud can be understood as road point cloud, and the second type of point cloud can be understood as non-road point cloud. Since the road does not change much, the non-road point cloud is the research focus. Therefore, the motion vector information of the current decoding unit is determined as the motion vector information of the non-road point, and the road point is predicted to be static, that is, zero motion, that is, the motion vector information of the road point is a zero vector.

[0288] S102-C: Decode the current decoding unit according to the motion vector information corresponding to the P-type point cloud.

[0289] According to the above method, after the motion vector information corresponding to the P-type point cloud in the current decoding unit is determined, the current decoding unit is decoded according to the motion vector information corresponding to the P-type point cloud.

[0290] The embodiment of the present application does not limit the specific implementation method of decoding the current decoding unit based on the motion vector information corresponding to the P-type point cloud.

[0291] In some embodiments, the decoding end can determine a reference decoding unit of the current decoding unit; perform motion compensation on the reference decoding unit based on the motion vector information of the P-type point cloud to obtain prediction information of the current decoding unit; and decode at least one of the geometric information and attribute information of the current decoding unit based on the prediction information.

[0292] In one example, the geometric information of the current decoding unit is decoded based on prediction information. This prediction information can be understood as the prediction unit of the current decoding unit. In this way, the spatial occupancy of the current decoding unit can be predicted based on the spatial occupancy of the prediction unit. Furthermore, based on the predicted spatial occupancy of the current decoding unit, the geometric code stream of the current decoding unit is decoded to obtain the geometric information of the current decoding unit.

[0293] In another example, the attribute information of the current decoding unit is decoded based on prediction information. This prediction information can be understood as the prediction unit of the current decoding unit. For each point in the current decoding unit, at least one reference point is obtained from the prediction unit. Based on the attribute information of this at least one reference point, the attribute information of the point is predicted to obtain the attribute prediction value of the point. Next, the attribute code stream is decoded to obtain the attribute residual value of the point. Based on the attribute prediction value and the attribute residual value of the point, the attribute reconstruction value of the point is determined. Referring to the above method, the attribute reconstruction value of each point in the current decoding unit can be determined, thereby obtaining the attribute reconstruction value of the current decoding unit.

[0294] It should be noted that the decoding end may also adopt a method to decode the current decoding unit based on at least one of the classification information and motion vector information of the current decoding unit, and the embodiment of the present application does not limit this.

[0295] In the point cloud decoding method provided by the embodiment of the present application, the decoding end decodes the point cloud code stream and determines at least one of the classification information and motion vector information of the current decoding unit, wherein the classification information is determined based on a first parameter, and the motion vector information is determined based on a second parameter, the first parameter is used to indicate the calculation period of the classification information, and the second parameter is used to indicate the calculation period of the motion vector information. Then, according to at least one of the classification information and motion vector information of the current decoding unit, the current decoding unit is decoded. That is, in the embodiment of the present application, the classification information and motion vector information are periodically calculated. Compared with calculating the classification information and motion vector information once for each decoding unit, the embodiment of the present application greatly reduces the number of calculations of the classification information and motion vector information, reduces the processing time of encoding and decoding, and improves the encoding and decoding efficiency.

[0296] 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.

[0297] Figure 6 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 Figure 1 or Figure 2 above.

[0298] As shown in FIG6 , the point cloud decoding method of the embodiment of the present application includes:

[0299] S201: Determine at least one of a first parameter and a second parameter.

[0300] The first parameter is used to indicate the calculation period of the classification information, and the second parameter is used to indicate the calculation period of the motion vector information.

[0301] From the above description, it can be seen that adjacent frames in a continuously collected point cloud sequence have a high correlation, so inter-frame prediction can be introduced to improve the efficiency of point cloud coding.

[0302] Inter-frame prediction primarily involves steps such as motion estimation and motion compensation. In some embodiments, during the motion estimation step, the spatial motion offset vectors between two adjacent frames are calculated and written into the bitstream. During the motion compensation step, the calculated motion vectors are further used to calculate the spatial offset of the point cloud, using the offset point cloud frame as a reference to further improve the coding efficiency of the current frame.

[0303] The embodiment of the present application does not limit the specific content of the motion vector information of the current coding unit, and it can be motion information involved in steps such as motion estimation and motion compensation.

[0304] For example, the motion vector information may be a spatial motion offset vector between two adjacent frames in motion estimation, that is, a motion vector.

[0305] For another example, the motion vector information may also be a motion estimation ME (Motion Estimation) between two adjacent frames in motion compensation.

[0306] In real-world scenarios, the motions of different objects may be different. For example, taking the point cloud data captured by a lidar sensor on a moving vehicle as an example, in this point cloud data, the road and objects typically have different motions. Since the distance between the road and the radar sensor is relatively constant, and the road changes slightly from one vehicle position to the next, the point representing the road moves very little relative to the radar sensor position. In contrast, objects such as buildings, road signs, vegetation, or other vehicles have larger motions. Since the road and object points have different motions, dividing the point cloud data into roads and objects will improve the accuracy of global motion estimation and compensation, thereby improving compression efficiency. That is, for point cloud data using inter-frame prediction, in order to improve the accuracy of inter-frame prediction and improve compression efficiency, for a coding unit, the point cloud in the coding unit needs to be classified, for example, dividing the point cloud in the coding unit into road point cloud and non-road point cloud.

[0307] In an embodiment of the present application, in order to avoid calculating classification information and motion vector information once for each coding unit, at least one of a first parameter and a second parameter is set. The first parameter is used to indicate the calculation period of the classification information, and the second parameter is used to indicate the calculation period of the motion vector information. In this way, the encoding end can periodically calculate the classification information based on the classification information calculation period indicated by the first parameter, and / or periodically calculate the motion vector information based on the motion vector information calculation period indicated by the second parameter, thereby reducing the number of calculations of the classification information and / or motion vector information, and improving coding efficiency.

[0308] In some embodiments, the calculation cycle of the above classification information can be understood as calculating the classification information once every at least one coding unit, or calculating the classification information once every at least one point cloud frame.

[0309] In some embodiments, the calculation cycle of the above-mentioned motion vector information can be understood as calculating the motion vector information once every at least one coding unit, or calculating the motion vector information once every at least one point cloud frame.

[0310] Optionally, the first parameter may be represented by classification_period.

[0311] Optionally, the second parameter may be motion_period.

[0312] Optionally, the above-mentioned first parameter and second parameter can have different representations, for example, they can be set to classification_period_log2 and motion_period_log2, which respectively indicate that the calculation period of the classification information is 2 logarithms and the calculation period of the motion vector is 2 logarithms, which still falls within the protection scope of this application.

[0313] In some embodiments, at least one of the first parameter and the second parameter is a preset value.

[0314] In some embodiments, at least one of the first parameter and the second parameter is a parameter input by a user.

[0315] S202: Determine at least one of classification information and motion vector information of a current coding unit according to at least one of the first parameter and the second parameter.

[0316] During the point cloud encoding process, the point cloud data can be divided into at least one encoding unit. The encoding process of each encoding unit is independent, and the decoding process of each encoding unit is basically the same. For ease of description, the embodiments of this application use the encoding unit currently being encoded, i.e., the current encoding unit, as an example.

[0317] The embodiment of the present application does not limit the specific size of the current coding unit, which can be determined according to actual needs.

[0318] In some embodiments, the current coding unit is the current point cloud frame, that is, a point cloud frame can be encoded as a coding unit.

[0319] In some embodiments, the current coding unit is a partial area of ​​the current point cloud frame. For example, the current point cloud frame is divided into multiple areas, and one area is used as a coding unit for separate encoding.

[0320] The embodiment of the present application does not limit the specific method of dividing the current point cloud frame into multiple areas.

[0321] In one example, the current point cloud frame is divided into multiple point cloud slices. The sizes of the multiple point cloud slices may be the same or different. One point cloud slice is used as a coding unit and is encoded separately.

[0322] In another example, the current point cloud frame is divided into multiple point cloud blocks. The sizes of the multiple point cloud blocks may be the same or different. One point cloud block is used as a coding unit and is encoded separately.

[0323] In the embodiment of the present application, specific implementations of determining at least one of the classification information and the motion vector information of the current coding unit according to at least one of the first parameter and the second parameter in S202 include but are not limited to the following:

[0324] In the first approach, the encoder determines at least one of the classification information and the motion vector information through the following step S202-A:

[0325] S202-A. Determine classification information of the current coding unit according to the first parameter, and / or determine motion vector information of the current coding unit according to the second parameter.

[0326] It should be noted that the first parameter and the second parameter can be used independently. In one example, the encoder can determine the classification information of the current coding unit based on the first parameter and obtain the motion vector information of the current coding unit based on an existing method. In another example, the encoder can determine the motion vector information of the current coding unit based on the second parameter and obtain the classification information of the current coding unit based on an existing method. In yet another example, the encoder can determine the classification information of the current coding unit based on the first parameter and determine the motion vector information of the current coding unit based on the second parameter.

[0327] In this first approach, the encoder determines the classification information of the coding unit based on the first parameter, rather than determining the classification information of the point cloud in each coding unit one by one. And / or, the encoder determines the motion vector information of the coding unit based on the second parameter, rather than determining the motion vector information of each coding unit one by one.

[0328] The following describes the specific process in which the encoding end determines the classification information of the current coding unit according to the first parameter in the above S202-A.

[0329] In the above S202-A, the encoder determines the classification information of the current coding unit according to the first parameter in the following specific implementations, including but not limited to:

[0330] Mode 1: The above S202-A includes the following steps S202-A-11 and S202-A-12:

[0331] S202-A-11. Determine a classification information calculation period corresponding to the current coding unit according to the first parameter;

[0332] S202-A-12. Determine the classification information of the current coding unit according to the classification information calculation period.

[0333] In the embodiment of the present application, the classification information calculation cycles corresponding to different coding units in the point cloud sequence can be the same or different, and the embodiment of the present application does not impose any restrictions on this.

[0334] In some embodiments, the first parameter indicates a calculation period for classification information of each coding unit in the point cloud sequence. For example, the first parameter indicates that classification information is calculated once every K coding units.

[0335] In some embodiments, the calculation period of classification information corresponding to different coding units in a point cloud sequence is not exactly the same. In this case, multiple first parameters can be used to indicate the calculation period of classification information for each coding unit in the point cloud sequence. For example, three first parameters are determined, where the first first parameter indicates that classification information is calculated once every K1 coding units, the second first parameter indicates that classification information is calculated once every K2 coding units, and the third first parameter indicates that classification information is calculated once every K3 coding units.

[0336] As can be seen from the above, no matter in what form the first parameter indicates the calculation cycle of the classification information, the classification information calculation cycle corresponding to the current coding unit can be determined according to the first parameter. For example, the current coding unit is the current point cloud frame, and the first parameter indicates that the classification information is calculated once every 4 point cloud frames. Assuming that the current coding unit is the 6th point cloud frame in the coding order, the classification information is calculated once for the 0th point cloud frame in the coding order, the classification information is calculated once for the 5th point cloud frame, and the classification information is calculated once for the 10th point cloud frame. Among them, the 0th point cloud frame to the 4th point cloud frame can be understood as the first calculation cycle of the classification information, and the 5th point cloud frame to the 9th point cloud frame can be understood as the second calculation cycle of the classification information. The current coding unit is in the second calculation cycle, and the second calculation cycle is determined as the classification information calculation cycle corresponding to the current coding unit.

[0337] After the encoding end determines the classification information calculation period corresponding to the current encoding unit according to the above steps, it determines the classification information of the current encoding unit according to the classification information calculation period.

[0338] The embodiment of the present application does not limit the specific manner in which the encoding end determines the classification information of the current coding unit based on the classification information calculation period corresponding to the current coding unit.

[0339] In some embodiments, both ends of the codec agree that the classification information of the coding unit within the classification information calculation period is a default value of 1, and the coding end then determines the default value 1 as the classification information of the current coding unit.

[0340] In some embodiments, the codec and decoder agree to use a preset calculation method to calculate the classification information of the coding unit within the classification information calculation period. For example, if the current coding unit is a region of the current point cloud frame, the classification information of the current coding unit can be determined based on the classification information of the encoded point clouds surrounding the current coding unit in the current point cloud frame.

[0341] In some embodiments, the encoding end may determine the classification information of the current coding unit according to the position of the current coding unit in the classification information calculation cycle corresponding to the current coding unit.

[0342] Example 1: If the current coding unit is the first coding unit in the classification information calculation cycle, the category of the point cloud in the current point coding unit is identified to obtain the classification information of the current point coding unit.

[0343] Example 2: If the current coding unit is not the first coding unit in the classification information calculation period, the classification information of the current coding unit is determined according to the encoded information or the default value.

[0344] In this embodiment, after determining the classification information calculation period corresponding to the current coding unit, the encoding end may determine the classification information of the current coding unit according to whether the current coding unit is the first coding unit in the classification information calculation period.

[0345] Continuing with the above example, assuming that the classification information calculation period corresponding to the current coding unit is from the 5th point cloud frame to the 9th point cloud frame, if the current coding unit is the 5th point cloud frame in the encoding order, the category of the point cloud in the current coding unit is identified to obtain the classification information of the current coding unit. If the current coding unit is not the 5th point cloud frame, for example, the 6th point cloud frame, the encoder determines the classification information of the current coding unit by default, or determines the classification information of the current coding unit based on the encoded information.

[0346] The present application does not limit the specific implementation method of determining the classification information of the current coding unit based on the encoded information in the above Example 2.

[0347] In one possible implementation, the classification information of the current coding unit is determined based on the classification information of the first coding unit within the classification information calculation period corresponding to the current coding unit. For example, the classification information of the first coding unit within the classification information calculation period is determined as the classification information of the current coding unit, or the classification information of the first coding unit within the classification information calculation period is processed to obtain the classification information of the current coding unit.

[0348] In a possible implementation, the classification information of the current coding unit is determined according to the following step 11:

[0349] Step 11: Determine the classification information of the current coding unit according to the classification information of the M coding units, where the M coding units are the M encoded coding units that precede the current coding unit in the encoding order, and M is a positive integer.

[0350] The embodiment of the present application does not limit the specific selection method of the above-mentioned M coding units.

[0351] In some embodiments, the M coding units are adjacent to each other in the coding order without any gaps in between.

[0352] In some embodiments, the above-mentioned M coding units can be any M coding units located before the current coding unit in the coding order, that is, these M coding units can be adjacent or not completely adjacent, and the embodiment of the present application does not limit this.

[0353] Due to the specific correlation of the contents between adjacent point cloud frames, in this implementation, the encoding end obtains the M encoding units that are located before the current encoding unit in the encoding order from the encoded information, and determines the classification information of the current encoding unit based on the classification information of these M encoding units.

[0354] The implementation of determining the classification information of the current coding unit according to the classification information of the M coding units in step 12 includes at least the following examples:

[0355] In the first example, if M is 1, the classification information of the coding unit preceding the current coding unit in the coding order is determined as the classification information of the current coding unit. For example, if the current coding unit is the sixth point cloud frame in the coding order, the classification information of the fifth point cloud frame in the coding order is determined as the classification information of the current coding unit.

[0356] In the second example, if M is greater than 1, the classification information of the M coding units is subjected to a preset process, and the process result is determined as the classification information of the current coding unit.

[0357] For example, the average value of the classification information of the M coding units is determined as the classification information of the current coding unit.

[0358] For another example, the weighted average of the classification information of the M coding units is determined as the classification information of the current coding unit. Optionally, among the M coding units, the closer they are to the current coding unit in the coding order, the greater their weight, and the farther they are from the current coding unit, the smaller their weight.

[0359] In some embodiments of the above-mentioned method 1, the encoding end writes the first parameter into the point cloud code stream, and if the current encoding unit is the first encoding unit in the classification information calculation cycle, the classification information of the current encoding unit is written into the point cloud code stream.

[0360] In some embodiments of the above-mentioned method 1, the first parameter is written into the point cloud code stream, and if the current coding unit is not the first coding unit in the classification information calculation cycle, writing the classification information of the current coding unit into the point cloud code stream is skipped.

[0361] That is to say, in this method 1, the encoding end can also write the first parameter into the bitstream, and at the same time, write the classification information of the first coding unit within the classification information calculation cycle into the bitstream, while the classification information of the coding unit located in the middle of the classification information calculation cycle (that is, the first coding unit in the non-calculation cycle) is not written into the bitstream, which can reduce the burden on the bitstream.

[0362] In some embodiments, in the method 1, the encoder writes the classification information of the current coding unit into the point cloud code stream and skips writing the first parameter into the point cloud code stream.

[0363] In addition to determining the classification information of the current coding unit through the above-mentioned method 1, the encoding end can also determine the classification information of the current coding unit according to the following method 2.

[0364] In mode 2, if the first parameter indicates that the classification information is calculated once for every K coding units, then the implementation of S202-A includes at least the following two examples:

[0365] Example 1: If the current coding unit is the NKth coding unit in the coding order, the category of the point cloud in the current point coding unit is identified to obtain classification information of the current point coding unit, where K and N are both positive integers.

[0366] Example 2: If the current coding unit is not the NKth coding unit in the coding order, the classification information of the current coding unit is determined according to the encoded information or the default value.

[0367] In an embodiment of the second method, the first parameter is written into the point cloud code stream, and if the current coding unit is the NKth coding unit in the coding order, the classification information of the current coding unit is written into the code stream.

[0368] In another embodiment of the method 2, the first parameter is written into the point cloud code stream, and if the current coding unit is not the NKth coding unit in the coding order, writing the classification information of the current coding unit into the code stream is skipped.

[0369] In this implementation 2, if the first parameter indicates that classification information is calculated once every K coding units, the encoder writes the classification information into the bitstream for coding units numbered 0 or an integer multiple of K. For other coding units, the classification information is not written into the bitstream. For example, if a point cloud sequence includes 1000 point cloud frames, and one point cloud frame is used as a coding unit, the encoder will encode 1000 times / K instead of 1000 times. This significantly reduces the number of encodings, reduces the encoding burden on the encoder, and improves encoding efficiency.

[0370] In another embodiment of the second method, the classification information of the current coding unit may be written into the point cloud code stream, and writing the first parameter into the point cloud code stream may be skipped.

[0371] In this method 2, if the current coding unit is not the NKth coding unit in the coding order, the specific process of determining the classification information of the current coding unit based on the encoded information can refer to the description of steps 11 and 12 above and will not be repeated here.

[0372] In the embodiment of the present application, the classification information of the current coding unit can be determined according to the above method.

[0373] The classification information can be understood as the information required to classify the point cloud into different categories. The embodiment of the present application does not limit the specific form of the classification information.

[0374] In some embodiments, the classification information includes at least one of a first height threshold and a second height threshold, and the first height threshold and the second height threshold are used for classification of the point cloud in the current coding unit.

[0375] Optionally, at least one of the first height threshold and the second height threshold is a preset value.

[0376] Optionally, at least one of the first height threshold and the second height threshold is a statistical value. For example, as shown in Figure 5, a histogram is used to count the height values ​​of the points in the point cloud. The horizontal axis of the histogram is the height value of the point cloud, and the vertical axis of the histogram is the number of points at this height value. Figure 5 takes the radar point cloud as an example for statistics, with the height of the radar as the height zero point, so the height values ​​of most points are negative. Next, the height value corresponding to the peak of the histogram is obtained, and the standard deviation of the height value is calculated. The threshold value that is higher than the center a times (for example, 1.5 times) the standard deviation with the height corresponding to the peak as the center is recorded as the first height threshold Top_thr, and the threshold value that is lower than the center b times (for example, 1.5 times) the standard deviation is recorded as the second height threshold Bottom_thr.

[0377] The first and second height thresholds are used to classify the point cloud into different categories. For example, point clouds with heights between the first and second height thresholds are classified as first-category point clouds, while point clouds with heights greater than the first height threshold and less than the second height threshold are classified as second-category point clouds.

[0378] In some embodiments, if the classification information includes at least one of a first height threshold and a second height threshold, correspondingly, the first parameter classification_period may include at least one of a first sub-parameter top_threshold_period and a second sub-parameter bottom_threshold_period;

[0379] The first sub-parameter top_threshold_period is used to indicate a calculation period of the first height threshold, and the second sub-parameter bottom_threshold_period is used to indicate a calculation period of the second height threshold.

[0380] The first sub-parameter and the second sub-parameter can be assigned values ​​independently.

[0381] Optionally, the calculation period of the first height threshold and the calculation period of the second height threshold may be the same or different, and this embodiment of the present application does not impose any limitation on this.

[0382] The above describes the specific process of determining the classification information of the current coding unit according to the first parameter in S202-A. The following describes the specific implementation process of determining the motion vector information of the current coding unit according to the second parameter in S202-A.

[0383] In the above S202-A, the encoder determines the motion vector information of the current coding unit according to the second parameter in the following specific implementations:

[0384] Mode 1: The above S202-A includes the following steps S202-A-21 and S202-A-22:

[0385] S202-A-21. Determine a motion vector information calculation period corresponding to the current coding unit according to the second parameter;

[0386] S202-A-22. Determine the motion vector information of the current coding unit according to the motion vector information calculation period.

[0387] In an embodiment of the present application, the motion vector information calculation periods corresponding to different coding units in the point cloud sequence may be the same or different, and this embodiment of the present application does not impose any restrictions on this.

[0388] In some embodiments, the second parameter indicates a calculation period for motion vector information of each coding unit in the point cloud sequence. For example, the second parameter indicates that motion vector information is calculated once every R coding units.

[0389] In some embodiments, multiple second parameters are used to indicate the calculation period of motion vector information corresponding to each coding unit in the point cloud sequence. For example, three second parameters are determined, where the first second parameter indicates that motion vector information is calculated once every R1 coding units, the second second parameter indicates that motion vector information is calculated once every R2 coding units, and the third second parameter indicates that motion vector information is calculated once every R3 coding units.

[0390] As can be seen from the above, no matter in what form the second parameter indicates the calculation period of the motion vector information, the motion vector information calculation period corresponding to the current coding unit can be determined according to the second parameter. For example, the current coding unit is the current point cloud frame, and the second parameter indicates that the motion vector information is calculated once every 4 point cloud frames. Assuming that the current coding unit is the 6th point cloud frame in the coding order, the motion vector information is calculated once for the 0th point cloud frame in the coding order, the motion vector information is calculated once for the 5th point cloud frame, and the motion vector information is calculated once for the 10th point cloud frame. Among them, the 0th point cloud frame to the 4th point cloud frame can be understood as the first calculation period of the motion vector information, and the 5th point cloud frame to the 9th point cloud frame can be understood as the second calculation period of the motion vector information. The current coding unit is in the second calculation period, and the second calculation period is determined as the motion vector information calculation period corresponding to the current coding unit.

[0391] After determining the motion vector information calculation period corresponding to the current coding unit according to the above steps, the encoder determines the motion vector information of the current coding unit according to the motion vector information calculation period.

[0392] The embodiment of the present application does not limit the specific manner in which the encoding end determines the motion vector information of the current coding unit based on the motion vector information calculation period corresponding to the current coding unit.

[0393] In some embodiments, the encoder and decoder agree that the motion vector information of the coding unit within the motion vector information calculation period is a default value of 1, and the encoder determines the default value 1 as the motion vector information of the current coding unit.

[0394] In some embodiments, the codec and decoder agree to use a preset calculation method to calculate the motion vector information of the coding unit within the motion vector information calculation period. For example, if the current coding unit is a region of the current point cloud frame, the motion vector information of the current coding unit can be determined based on the motion vector information of the encoded regions surrounding the current coding unit in the current point cloud frame.

[0395] In some embodiments, the encoding end may determine the motion vector information of the current coding unit according to the position of the current coding unit in the motion vector information calculation period corresponding to the current coding unit.

[0396] In Example 1, if the current coding unit is the first coding unit in a motion vector information calculation period, the motion vector information of the current coding unit is determined according to the reference coding unit of the current coding unit.

[0397] Example 2: If the current coding unit is not the first coding unit in the motion vector information calculation period, the motion vector information of the current coding unit is determined according to the encoded information or a default value.

[0398] In this embodiment, after determining the motion vector information calculation period corresponding to the current coding unit, the encoding end may determine the motion vector information of the current coding unit according to whether the current coding unit is the first coding unit in the motion vector information calculation period.

[0399] Continuing with the above example, assuming that the calculation period of the motion vector information corresponding to the current coding unit is from the 5th point cloud frame to the 9th point cloud frame, if the current coding unit is the 5th point cloud frame in the encoding order, the encoder directly determines the motion vector information of the current point coding unit based on the reference coding unit of the current coding unit. If the current coding unit is not the 5th point cloud frame, for example, the 6th point cloud frame, the encoder determines the default value as the motion vector information of the current coding unit, or determines the motion vector information of the current coding unit based on the encoded information.

[0400] The present application does not limit the specific implementation method of determining the motion vector information of the current coding unit based on the encoded information in the above Example 2.

[0401] In one possible implementation, the motion vector information of the current coding unit is determined based on the motion vector information of the first coding unit within the motion vector information calculation period corresponding to the current coding unit. For example, the motion vector information of the first coding unit within the motion vector information calculation period is determined as the motion vector information of the current coding unit, or the motion vector information of the first coding unit within the motion vector information calculation period is processed to obtain the motion vector information of the current coding unit.

[0402] In a possible implementation, the motion vector information of the current coding unit is determined according to the following step 21:

[0403] Step 21 : Determine the motion vector information of the current coding unit according to the motion vector information of S coding units, where the S coding units are S encoded coding units that precede the current coding unit in the encoding order, and S is a positive integer.

[0404] The embodiment of the present application does not limit the specific selection method of the above-mentioned S coding units.

[0405] In some embodiments, the above S coding units are adjacent to each other in the coding order without any gaps in between.

[0406] In some embodiments, the above-mentioned S coding units can be any S coding units located before the current coding unit in the coding order, that is, these S coding units can be adjacent or not completely adjacent, and the embodiment of the present application does not limit this.

[0407] Due to the specific correlation of the content between adjacent point cloud frames, in this implementation, the encoding end obtains the S coding units that are located before the current coding unit in the encoding order from the encoded information, and determines the motion vector information of the current coding unit based on the motion vector information of these S coding units.

[0408] The implementation of determining the motion vector information of the current coding unit according to the motion vector information of the S coding units in step 22 includes at least the following examples:

[0409] In the first example, if S is 1, the motion vector information of the coding unit preceding the current coding unit in the coding order is determined as the motion vector information of the current coding unit. For example, if the current coding unit is the sixth point cloud frame in the coding order, the motion vector information of the fifth point cloud frame in the coding order is determined as the motion vector information of the current coding unit.

[0410] In the second example, if S is greater than 1, a preset process is performed on the motion vector information of the S coding units, and the process result is determined as the motion vector information of the current coding unit.

[0411] For example, the average value of the motion vector information of S coding units is determined as the motion vector information of the current coding unit.

[0412] For another example, a weighted average of the motion vector information of S coding units is determined as the motion vector information of the current coding unit. Optionally, among the S coding units, the closer to the current coding unit in the coding order, the greater the weight, and the farther from the current coding unit, the smaller the weight.

[0413] In one embodiment of method 1, the second parameter is written into the point cloud code stream, and if the current coding unit is the first coding unit in the motion vector information calculation cycle, the motion vector information of the current coding unit is written into the point cloud code stream.

[0414] In one embodiment of method 1, the second parameter is written into the point cloud code stream, and if the current coding unit is not the first coding unit in the motion vector information calculation cycle, writing the motion vector information of the current coding unit into the point cloud code stream is skipped.

[0415] That is to say, in this method 1, the encoding end can also write the second parameter into the bitstream, and at the same time, write the motion vector information of the first coding unit within the motion vector information calculation period into the bitstream, while the motion vector information of the coding unit located in the middle of the motion vector information calculation period (that is, the first coding unit not in the calculation period) is not written into the bitstream, which can reduce the burden on the bitstream.

[0416] In one embodiment of the method 1, the motion vector information of the current coding unit is written into the point cloud code stream, and writing the second parameter into the point cloud code stream is skipped.

[0417] In addition to determining the motion vector information of the current coding unit through the above-mentioned method 1, the encoder can also determine the motion vector information of the current coding unit according to the following method 2.

[0418] In mode 2, if the second parameter indicates that the motion vector information is calculated once for every R coding units, the implementation of the above S202-A includes at least the following two examples:

[0419] Example 1: If the current coding unit is the NR-th coding unit in the coding order, the motion vector information of the current point coding unit is determined according to the reference coding unit of the current coding unit, and R and N are both positive integers.

[0420] Example 2: If the current coding unit is not the NR-th coding unit in the coding order, the motion vector information of the current coding unit is determined according to the encoded information or the default value.

[0421] In this method 2, the calculation cycle of the motion vector information corresponding to each coding unit in the point cloud series is the same, for example, the motion vector information is calculated once for every R coding units. In this way, when the encoder encodes the current coding unit, it determines whether the current coding unit is the NR-th coding unit in the coding order, that is, it determines whether the sequence number of the current coding unit in the coding order is an integer multiple of R. If the encoder determines that the current coding unit is the NR-th coding unit in the coding order, the motion vector information of the current point coding unit is determined based on the reference coding unit of the current coding unit. If the current coding unit is not the NR-th coding unit in the coding order, the default value is determined as the motion vector information of the current coding unit, or the motion vector information of the current coding unit is determined based on the encoded information.

[0422] In an embodiment of the second method, the second parameter is written into the point cloud code stream, and if the current coding unit is the NKth coding unit in the coding order, the motion vector information of the current coding unit is written into the code stream.

[0423] In one embodiment of the method 2, the second parameter is written into the point cloud code stream, and if the current coding unit is not the NKth coding unit in the coding order, writing the motion vector information of the current coding unit into the code stream is skipped.

[0424] In this implementation method 2, if the second parameter indicates that motion vector information is calculated once every R coding units, the encoder encodes the motion vector information once for every R coding units, which can reduce the number of times the motion vector information is encoded. For example, if a point cloud sequence includes 1000 point cloud frames, and one point cloud frame is used as a coding unit, the encoder encodes the information 1000 times / R instead of 1000 times. This significantly reduces the number of encodings, reduces the encoding burden on the encoder, and improves encoding efficiency.

[0425] In one embodiment of the second method, the motion vector information of the current coding unit is written into the point cloud code stream, and writing the second parameter into the point cloud code stream is skipped.

[0426] In this method 2, if the current coding unit is not the NRth coding unit in the coding order, the specific process of determining the motion vector information of the current coding unit based on the encoded information can refer to the description of steps 21 and 22 above, and will not be repeated here.

[0427] In addition to determining the motion vector information of the current coding unit according to the methods shown in the above methods 1 and 2, the encoder can also determine the motion vector information of the current coding unit according to the following method 3.

[0428] In mode 3, the encoder determines the motion vector information based on the degree of change of the classification information of the coding unit. That is, the encoder determines the motion vector information of the current coding unit according to the following steps 1 and 2:

[0429] Step 1: Determine the degree of change of the classification information according to the first parameter;

[0430] Step 2: Determine the motion vector information of the current coding unit according to the degree of change.

[0431] In the embodiment of the present application, if the change in classification information of different coding units is not significant, then the change in motion vector information of the different coding units is likely to be small. Conversely, if the change in classification information of different coding units is significant, then the change in motion vector information of the different coding units is likely to be large. Therefore, the motion vector information of the current coding unit can be determined based on the degree of change in the classification information of different coding units.

[0432] The embodiment of the present application does not limit the specific implementation method of determining the degree of change of the classification information of the point cloud based on the first parameter in the above step 1.

[0433] In some embodiments, classification information of multiple coding units is determined based on the first parameter, and a degree of change in the classification information is determined based on the classification information of the multiple coding units. For example, if the classification information of the multiple coding units differs significantly, it indicates that the degree of change in the classification information is significant; if the classification information of the multiple coding units differs slightly, it indicates that the degree of change in the classification information is minor.

[0434] In some embodiments, the degree of change of the classification information is determined based on the classification information of the current coding unit and the classification information of a reference coding unit of the current coding unit.

[0435] Exemplarily, based on the first parameter, the classification information of the current coding unit is determined. The specific process can be referred to the description of the above embodiment and will not be repeated here. Next, the degree of change between the classification information of the current coding unit and the classification information of the reference coding unit of the current coding unit is determined. For example, the absolute value of the difference between the classification information of the current coding unit and the classification information of the reference coding unit of the current coding unit is determined as the degree of change in the classification information.

[0436] According to the above method, after the change degree of the classification information is determined, the motion vector information of the current coding unit is determined according to the change degree of the classification information.

[0437] For example, if the degree of change of the classification information is less than or equal to a first preset value, a default value or the motion vector information of a previous coding unit of the current coding unit in the coding order is determined as the motion vector information of the current coding unit.

[0438] For another example, if the degree of change is greater than a first preset value, the motion vector information of the current coding unit is determined according to the reference coding unit of the current coding unit.

[0439] In the embodiment of the present application, according to the above method, the motion vector information of the current coding unit can be determined.

[0440] The motion vector information can be understood as the motion information required by the encoder for inter-frame prediction. The embodiment of the present application does not limit the specific form of the motion vector information.

[0441] In some embodiments, the motion vector information includes at least one of a rotation matrix describing a three-dimensional rotation of the coding unit relative to the reference coding unit and an offset vector describing an offset in three directions between the coordinate origins of the coding unit and the reference coding unit.

[0442] In some embodiments, if the motion vector information includes at least one of a rotation matrix and an offset vector, correspondingly, the second parameter motion_period includes at least one of a third sub-parameter rotation_matrix_period and a fourth sub-parameter translation_vector_period.

[0443] Among them, the third sub-parameter rotation_matrix_period is used to indicate the calculation period of the rotation matrix, and the fourth sub-parameter translation_vector_period is used to indicate the calculation period of the offset vector.

[0444] The third and fourth sub-parameters can be assigned values ​​independently.

[0445] Optionally, the calculation period of the above-mentioned rotation matrix and the calculation period of the offset vector may be the same or different, and the embodiment of the present application does not impose any limitation on this.

[0446] In some embodiments, if the current coding unit is the first coding unit in the coding order, that is, the coding sequence number is 0, the encoder writes at least one of the classification information and motion vector information of the current coding unit into the point cloud code stream.

[0447] In the embodiment of the present application, after the encoder determines at least one of the classification information and the motion vector information of the current coding unit according to the above steps, it performs the following step S203.

[0448] S203 . Encode the current coding unit according to at least one of the classification information and the motion vector information of the current coding unit.

[0449] Since different objects move differently, in order to improve coding accuracy, the category of the point cloud in the current coding unit is determined based on the classification information of the current coding unit, and different motion vector information is used for inter-frame prediction of point clouds of different categories. For example, taking the point cloud data scanned by a vehicle-mounted radar as an example, the point cloud can be divided into road points and object points. The motion vector information of road points and object points is different.

[0450] The embodiment of the present application does not limit the specific process of encoding the current coding unit according to at least one of the classification information and the motion vector information of the current coding unit in the above S203.

[0451] In some embodiments, if the classification information of the current coding unit is determined according to the above method, but the motion vector information of the current coding unit is not determined, the point cloud in the current coding unit can be divided into multiple categories based on the classification information. Different motion vector information is assigned to each category, where the motion vector information assigned to different categories can be preset values ​​corresponding to different categories, or values ​​calculated based on the categories, which is not limited in this embodiment of the present application.

[0452] In some embodiments, if the motion vector information of the current coding unit is determined according to the above method, but the classification information of the current coding unit is not determined, then the encoding end can determine the classification information of the current coding unit based on its own determination, for example, based on the encoding information of the encoded units around the current coding unit, to determine the classification information of the current coding unit. Then, based on the classification information, the point cloud in the current coding unit is divided into multiple categories. Based on the motion vector information of the current coding unit, the motion vector information of each category of the point cloud in the current coding unit is determined. For example, if the current coding unit includes a first category of point clouds and a second category of point clouds, the above-determined motion vector information can be determined as the motion vector information of the first category of point clouds, and the motion vector information of the second category of point clouds can be determined as a preset value, such as a zero vector.

[0453] In some embodiments, if the classification information of the current coding unit and the motion vector information of the current coding unit are determined according to the above steps, then the above S203 includes the following steps:

[0454] S203-A. Divide the point cloud in the current coding unit into P types of point clouds according to the classification information of the current coding unit, where P is a positive integer greater than 1.

[0455] In this embodiment, the encoder classifies the point cloud in the current coding unit into P types of point clouds based on the classification information of the current coding unit, determines the motion vector information corresponding to the P types of point clouds based on the motion vector information of the current coding unit, and then encodes the current coding unit based on the motion vector information corresponding to the P types of point clouds. That is, in this embodiment of the application, different motion vector information is used for encoding different types of point clouds in the current coding unit, thereby improving encoding accuracy.

[0456] The embodiment of the present application does not limit the specific type of the above S203-A, which is to classify the point cloud in the current coding unit into P types of point clouds according to the classification information of the current coding unit.

[0457] In some embodiments, the classification information of the current coding unit may be a category identifier. For example, each point in the current coding unit includes a category identifier. In this way, the point cloud in the current coding unit may be divided into P types of point clouds according to the category identifier.

[0458] In some embodiments, the classification information of the current coding unit includes a first height threshold and a second height threshold, and the first height threshold is greater than the second height threshold. In this case, the above S203-A includes the following steps:

[0459] S203-A1. Divide the point cloud in the current coding unit into P types of point clouds according to the first height threshold and the second height threshold.

[0460] For example, the point cloud in the current coding unit whose height value is greater than the first height threshold is divided into one type of point cloud, the point cloud in the current coding unit whose height value is between the first height threshold and the second height threshold is divided into one type of point cloud, and the point cloud in the current coding unit whose height value is less than the second height threshold is divided into one type of point cloud.

[0461] For another example, the point cloud in the current coding unit whose height value is less than or equal to the first height threshold and greater than or equal to the second height threshold is classified as the first type of point cloud; the point cloud in the current coding unit whose height value is greater than the first height threshold or less than the second height threshold is classified as the second type of point cloud.

[0462] S203-B. Determine the motion vector information corresponding to the P-type point cloud according to the motion vector information of the current coding unit.

[0463] According to the above steps, after the point cloud in the current coding unit is divided into P types of point clouds, the motion vector information corresponding to the P types of point clouds is determined based on the motion vector information of the current coding unit. For example, the motion vector information of the current coding unit is determined as the motion vector information of one type of point cloud in the P types of point clouds, and the motion vector information of other types of point clouds in the P types of point clouds can be preset values.

[0464] In one example, the P type point cloud includes the above-mentioned first type point cloud and second type point cloud, then the motion vector information of the current coding unit can be determined as the motion vector information of the second type point cloud, and the motion vector information of the first type point cloud is a preset value, such as a zero vector.

[0465] Taking the vehicle-mounted point cloud as an example, the first type of point cloud can be understood as road point cloud, and the second type of point cloud can be understood as non-road point cloud. Since the road does not change much, the non-road point cloud is the research focus. Therefore, the motion vector information of the current coding unit is determined as the motion vector information of the non-road point, and the road point is predicted to be static, that is, zero motion, that is, the motion vector information of the road point is a zero vector.

[0466] S203-C: Encode the current coding unit according to the motion vector information corresponding to the P-type point cloud.

[0467] According to the above method, after the motion vector information corresponding to the P-type point cloud in the current coding unit is determined, the current coding unit is encoded according to the motion vector information corresponding to the P-type point cloud.

[0468] The embodiment of the present application does not limit the specific implementation method of encoding the current coding unit according to the motion vector information corresponding to the P-type point cloud.

[0469] In some embodiments, the encoding end can determine a reference coding unit of the current coding unit; perform motion compensation on the reference coding unit based on the motion vector information of the P-type point cloud to obtain prediction information of the current coding unit; and encode at least one of the geometric information and attribute information of the current coding unit based on the prediction information.

[0470] In one example, the geometric information of the current coding unit is encoded based on prediction information. The prediction information can be understood as a prediction unit of the current coding unit. In this way, the spatial occupancy of the current coding unit can be predicted based on the spatial occupancy of the prediction unit. Furthermore, the geometric information of the current coding unit is encoded based on the predicted spatial occupancy of the current coding unit to obtain a geometric bitstream for the current coding unit.

[0471] In another example, the attribute information of the current coding unit is encoded based on prediction information. This prediction information can be understood as the prediction unit of the current coding unit. For each point in the current coding unit, at least one reference point is obtained from the prediction unit. Based on the attribute information of this at least one reference point, the attribute information of the point is predicted to obtain a predicted attribute value for the point. Next, based on the predicted attribute value and the attribute value of the point, an attribute residual value for the point is determined, and then the attribute residual value for the point is encoded to form an attribute codestream.

[0472] It should be noted that the encoding end may also adopt a method to encode the current coding unit according to at least one of the classification information and motion vector information of the current coding unit, and the embodiment of the present application does not limit this.

[0473] As can be seen from the above, the encoding end may write at least one of the first parameter and the second parameter into the bitstream.

[0474] Optionally, at least one of the first parameter and the second parameter may be stored in the form of an unsigned integer, denoted as u(v), indicating that v bits are used to describe a parameter.

[0475] Optionally, at least one of the above-mentioned first parameter and second parameter can also be stored in the form of unsigned exponential Golomb coding, denoted as ue(v), indicating that the above-mentioned parameter value is first converted into a v-bit 01-bit sequence through exponential Golomb coding and then written into the code stream.

[0476] In some embodiments, the encoding end writes at least one of the first parameter and the second parameter into a sequence header parameter set.

[0477] In one example, the first parameter is used to indicate that classification information is calculated once every multiple point cloud frames; and / or, the second parameter is used to indicate that motion vector information is calculated once every multiple point cloud frames.

[0478] Exemplarily, the storage manner of the first parameter and the second parameter in the sequence header parameter set is shown in Table 1.

[0479] In some embodiments, the encoding end writes at least one of the first parameter and the second parameter into the point cloud header information.

[0480] In one example, the first parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the classification information of the i-th point cloud piece is calculated once after multiple point cloud frames, where i is a positive integer; and / or, the second parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the motion vector information of the i-th point cloud piece is calculated once after multiple point cloud frames.

[0481] In this example, the storage method of the first parameter and the second parameter in the point cloud header information is shown in Table 2.

[0482] In one example, the first parameter is used to indicate that classification information is calculated once for each of multiple point cloud slices in a point cloud frame; and / or, the second parameter is used to calculate motion vector information once for each of multiple point cloud slices in a point cloud frame.

[0483] In this example, the storage method of the first parameter and the second parameter in the point cloud header information is shown in Table 3.

[0484] In some embodiments, before determining the first parameter and the second parameter, the encoding end first needs to determine the first flag inter_prediction_flag, which is used to indicate whether to perform inter-frame prediction encoding; if the first flag inter_prediction_flag indicates to perform inter-frame prediction encoding, at least one of the first parameter and the second parameter is determined.

[0485] In the point cloud encoding method provided in the embodiment of the present application, the encoding end determines at least one of a first parameter and a second parameter, wherein the first parameter is used to indicate the calculation period of the classification information, and the second parameter is used to indicate the calculation period of the motion vector information; based on at least one of the first parameter and the second parameter, at least one of the classification information and the motion vector information of the current encoding unit is determined; and based on at least one of the classification information and the motion vector information of the current encoding unit, the current encoding unit is encoded. That is, by periodically calculating the classification information and the motion vector information, the embodiment of the present application greatly reduces the number of calculations of the classification information and the motion vector information, thereby reducing the encoding processing time and improving the encoding efficiency, compared to calculating the classification information and the motion vector information once for each encoding unit.

[0486] It should be understood that Figures 4 to 6 are merely examples of the present application and should not be construed as limiting the present application.

[0487] 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, a variety of simple modifications can be made to the technical solution of the present application, and these simple modifications all fall within the scope of protection of the present application. For example, the various specific technical features described in the above specific embodiments can be combined in any suitable manner unless there is any 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, and 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.

[0488] It should also be understood that in the various method embodiments of the present application, the size of the sequence numbers of the above-mentioned processes 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 types of relationships can 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 related objects before and after are in an "or" relationship.

[0489] The method embodiment of the present application is described in detail above in conjunction with Figures 4 to 6 , and the device embodiment of the present application is described in detail below in conjunction with Figures 7 to 10 .

[0490] FIG7 is a schematic block diagram of a point cloud decoding device provided in an embodiment of the present application.

[0491] As shown in FIG7 , the point cloud decoding device 10 may include:

[0492] a determining unit 11, configured to decode a point cloud code stream and determine at least one of classification information and motion vector information of a current decoding unit, wherein the classification information is determined based on a first parameter, and the motion vector information is determined based on a second parameter, wherein the first parameter is used to indicate a calculation period for the classification information, and the second parameter is used to indicate a calculation period for the motion vector information;

[0493] The decoding unit 12 is configured to decode the current decoding unit according to at least one of the classification information and the motion vector information of the current decoding unit.

[0494] In some embodiments, the determination unit 11 is specifically configured to decode at least one of the classification information and the motion vector information of the current decoding unit from the point cloud code stream.

[0495] In some embodiments, the determination unit 11 is specifically used to decode at least one of the first parameter and the second parameter from the point cloud code stream; determine the classification information of the current decoding unit based on the first parameter, and / or determine the motion vector information of the current decoding unit based on the second parameter.

[0496] In some embodiments, the determination unit 11 is specifically configured to determine, based on the first parameter, a classification information calculation period corresponding to the current decoding unit; and determine the classification information of the current decoding unit based on the classification information calculation period.

[0497] In some embodiments, the determination unit 11 is specifically configured to decode the point cloud code stream to obtain the classification information of the current point decoding unit if the current decoding unit is the first decoding unit in the classification information calculation cycle.

[0498] In some embodiments, the determining unit 11 is specifically configured to determine the classification information of the current decoding unit according to decoded information or a default value if the current decoding unit is not the first decoding unit in the classification information calculation cycle.

[0499] In some embodiments, the first parameter indicates that classification information is calculated once for every K decoding units, and the determination unit 11 is specifically used to decode the point cloud code stream if the current decoding unit is the NKth decoding unit in the decoding order to obtain the classification information of the current decoding unit, and K and N are both positive integers.

[0500] In some embodiments, the determining unit 11 is further configured to determine the classification information of the current decoding unit according to decoded information or a default value if the current decoding unit is not the NKth decoding unit in the decoding order.

[0501] In some embodiments, the determination unit 11 is specifically used to determine the classification information of the current decoding unit based on the classification information of the M decoding units, where the M decoding units are the M decoded decoding units that are located before the current decoding unit in the decoding order, and M is a positive integer.

[0502] In some embodiments, the determining unit 11 is specifically configured to, if M is equal to 1, determine the classification information of a decoding unit located before the current decoding unit in the decoding order as the classification information of the current decoding unit.

[0503] In some embodiments, the determining unit 11 is specifically configured to, if M is greater than 1, perform a preset process on the classification information of the M decoding units, and determine the processing result as the classification information of the current decoding unit.

[0504] In some embodiments, the determining unit 11 is specifically configured to determine an average value of the classification information of the M decoding units as the classification information of the current decoding unit.

[0505] In some embodiments, the classification information includes at least one of a first height threshold and a second height threshold, and the first parameter includes at least one of a first sub-parameter and a second sub-parameter;

[0506] The first sub-parameter is used to indicate a calculation period of the first height threshold, the second sub-parameter is used to indicate a calculation period of the second height threshold, and the first height threshold and the second height threshold are used for classification of the point cloud in the current decoding unit.

[0507] In some embodiments, the determination unit 11 is specifically configured to determine a motion vector information calculation period corresponding to the current decoding unit according to the second parameter; and determine the motion vector information of the current decoding unit according to the motion vector information calculation period.

[0508] In some embodiments, the determination unit 11 is specifically configured to decode the point cloud code stream to obtain the motion vector information of the current point decoding unit if the current decoding unit is the first decoding unit within the motion vector information calculation cycle.

[0509] In some embodiments, the determination unit 11 is specifically configured to determine the motion vector information of the current decoding unit according to decoded information or a default value if the current decoding unit is not the first decoding unit in the motion vector information calculation cycle.

[0510] In some embodiments, the first parameter indicates that the motion vector information is calculated once every R decoding units, and the determination unit 11 is specifically used to decode the point cloud code stream if the current decoding unit is the NR-th decoding unit in the decoding order to obtain the motion vector information of the current decoding unit, and R and N are both positive integers.

[0511] In some embodiments, the determination unit 11 is further configured to determine the motion vector information of the current decoding unit based on decoded information or a default value if the current decoding unit is not the NR-th decoding unit in the decoding order.

[0512] In some embodiments, the determination unit 11 is specifically used to determine the motion vector information of the current decoding unit based on the motion vector information of S decoding units, where the S decoding units are the S decoded decoding units that are located before the current decoding unit in the decoding order, and S is a positive integer.

[0513] In some embodiments, the determination unit 11 is specifically configured to, if S is equal to 1, determine the motion vector information of a decoding unit located before the current decoding unit in the decoding order as the motion vector information of the current decoding unit.

[0514] In some embodiments, the determination unit 11 is specifically configured to perform a preset process on the motion vector information of the S decoding units if S is greater than 1, and determine the process result as the motion vector information of the current decoding unit.

[0515] In some embodiments, the determination unit 11 is specifically configured to determine an average value of the motion vector information of the S decoding units as the motion vector information of the current decoding unit.

[0516] In some embodiments, the determination unit 11 is further configured to determine a change degree of the classification information according to the first parameter; and determine the motion vector information of the current decoding unit according to the change degree.

[0517] In some embodiments, the determination unit 11 is specifically configured to determine the classification information of the current decoding unit based on the first parameter; and determine the degree of change between the classification information of the current decoding unit and the classification information of the reference decoding unit of the current decoding unit.

[0518] In some embodiments, the determination unit 11 is specifically used to determine the default value, or the motion vector information of the previous decoding unit of the current decoding unit in the decoding order, as the motion vector information of the current decoding unit if the degree of change is less than or equal to a first preset value.

[0519] In some embodiments, the determination unit 11 is specifically configured to decode the point cloud code stream to obtain the motion vector information of the current decoding unit if the degree of change is greater than a first preset value.

[0520] In some embodiments, the motion vector information includes at least one of a rotation matrix and an offset vector, and the second parameter includes at least one of a third sub-parameter and a fourth sub-parameter;

[0521] The third sub-parameter is used to indicate a calculation period of the rotation matrix, and the fourth sub-parameter is used to indicate a calculation period of the offset vector.

[0522] In some embodiments, the determination unit 11 is further configured to decode the point cloud code stream if the current decoding unit is the first decoding unit in the decoding order to obtain at least one of the classification information and motion vector information of the current decoding unit.

[0523] In some embodiments, the decoding unit 12 is specifically used to divide the point cloud in the current decoding unit into P types of point clouds according to the classification information of the current decoding unit, where P is a positive integer greater than 1; determine the motion vector information corresponding to the P types of point clouds according to the motion vector information of the current decoding unit; and decode the current decoding unit according to the motion vector information corresponding to the P types of point clouds.

[0524] In some embodiments, the classification information includes a first height threshold and a second height threshold, and the first height threshold is greater than the second height threshold. The decoding unit 12 is specifically used to divide the point cloud in the current decoding unit into P types of point clouds according to the first height threshold and the second height threshold.

[0525] In some embodiments, the P-type point cloud includes a first-type point cloud and a second-type point cloud, and the decoding unit 12 is specifically used to classify the point cloud in the current decoding unit whose height value is less than or equal to the first height threshold and greater than or equal to the second height threshold as the first-type point cloud; and classify the point cloud in the current decoding unit whose height value is greater than the first height threshold or less than the second height threshold as the second-type point cloud.

[0526] In some embodiments, the decoding unit 12 is specifically used to determine a reference decoding unit of the current decoding unit; perform motion compensation on the reference decoding unit according to the motion vector information of the P-type point cloud to obtain prediction information of the current decoding unit; and decode at least one of the geometric information and attribute information of the current decoding unit according to the prediction information.

[0527] In some embodiments, the current decoding unit is a current point cloud frame, or a spatial region of the current point cloud frame.

[0528] In some embodiments, the determining unit 12 is specifically configured to decode a sequential header parameter set to obtain at least one of the first parameter and the second parameter.

[0529] In some embodiments, the first parameter is used to indicate that the classification information is calculated once every multiple point cloud frames; and / or,

[0530] The second parameter is used to indicate that the motion vector information is calculated once every multiple point cloud frames.

[0531] In some embodiments, the current decoding unit is a current point cloud slice, and the determination unit 12 is specifically configured to decode the point cloud slice header information to obtain at least one of the first parameter and the second parameter.

[0532] In some embodiments, the first parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the classification information of the i-th point cloud piece is calculated once every multiple point cloud frames, where i is a positive integer; and / or

[0533] The second parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the motion vector information of the i-th point cloud piece is calculated once every multiple point cloud frames.

[0534] In some embodiments, the first parameter is used to indicate that classification information is calculated once every multiple point cloud slices in a point cloud frame; and / or,

[0535] The second parameter is used to calculate motion vector information once every multiple point cloud slices in a point cloud frame.

[0536] In some embodiments, the determining unit 12 is specifically configured to decode the point cloud code stream to obtain a first identifier, where the first identifier is used to indicate whether to perform inter-frame prediction decoding;

[0537] If the first flag indicates that inter-frame prediction coding is to be performed, the point cloud code stream is decoded to obtain at least one of the first parameter and the second parameter.

[0538] It should be understood that the device embodiment and the method embodiment may correspond to each other, and similar descriptions can refer to the method embodiment. To avoid repetition, they will not be described here. Specifically, the point cloud decoding device 10 shown in FIG7 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. For the sake of brevity, they will not be described here.

[0539] FIG8 is a schematic block diagram of a point cloud encoding device according to an embodiment of the present application.

[0540] As shown in FIG8 , the point cloud encoding device 20 includes:

[0541] A first determining unit 21 is configured to determine at least one of a first parameter and a second parameter, wherein the first parameter is used to indicate a calculation period for classification information and the second parameter is used to indicate a calculation period for motion vector information;

[0542] a second determining unit 22, configured to determine at least one of classification information and motion vector information of a current coding unit according to at least one of the first parameter and the second parameter;

[0543] The encoding unit 23 is configured to encode the current coding unit according to at least one of the classification information and the motion vector information of the current coding unit.

[0544] In some embodiments, the second determining unit 22 is specifically configured to determine the classification information of the current coding unit according to the first parameter, and / or determine the motion vector information of the current coding unit according to the second parameter.

[0545] In some embodiments, the second determining unit 22 is specifically configured to determine a classification information calculation period corresponding to the current coding unit according to the first parameter; and determine the classification information of the current coding unit according to the classification information calculation period.

[0546] In some embodiments, the second determining unit 22 is specifically configured to identify the category of the current point coding unit if the current coding unit is the first coding unit in the classification information calculation cycle, so as to obtain the classification information of the current point coding unit.

[0547] In some embodiments, the second determining unit 22 is specifically configured to determine the classification information of the current coding unit according to the encoded information or a default value if the current coding unit is not the first coding unit in the classification information calculation period.

[0548] In some embodiments, the encoding unit 23 is further used to write the first parameter into the point cloud code stream, and if the current encoding unit is the first encoding unit in the classification information calculation cycle, the classification information of the current encoding unit is written into the point cloud code stream.

[0549] In some embodiments, the encoding unit 23 is further used to write the first parameter into the point cloud code stream, and if the current encoding unit is not the first encoding unit in the classification information calculation cycle, then the classification information of the current encoding unit is skipped from being written into the point cloud code stream.

[0550] In some embodiments, the first parameter indicates that the classification information is calculated once every K coding units, and the second determination unit 22 is specifically used to identify the category of the point cloud in the current point coding unit if the current coding unit is the NKth coding unit in the coding order, so as to obtain the classification information of the current point coding unit, and K and N are both positive integers.

[0551] In some embodiments, the second determining unit 22 is further configured to determine the classification information of the current coding unit according to the encoded information or a default value if the current coding unit is not the NKth coding unit in the coding order.

[0552] In some embodiments, the encoding unit 23 is further configured to write the first parameter into the point cloud code stream, and if the current encoding unit is the NKth encoding unit in the encoding order, write the classification information of the current encoding unit into the code stream.

[0553] In some embodiments, the encoding unit 23 is further used to write the first parameter into the point cloud code stream, and if the current encoding unit is not the NKth encoding unit in the encoding order, skip writing the classification information of the current encoding unit into the code stream.

[0554] In some embodiments, the encoding unit 23 is further configured to write the classification information of the current encoding unit into the point cloud code stream, and skip writing the first parameter into the point cloud code stream.

[0555] In some embodiments, the second determination unit 22 is specifically used to determine the classification information of the current coding unit based on the classification information of M coding units, where the M coding units are the M encoded coding units that are located before the current coding unit in the decoding order, and M is a positive integer.

[0556] In some embodiments, the second determining unit 22 is specifically configured to, if M is equal to 1, determine the classification information of a coding unit located before the current coding unit in the coding order as the classification information of the current coding unit.

[0557] In some embodiments, the second determining unit 22 is specifically configured to, if M is greater than 1, perform a preset process on the classification information of the M coding units, and determine the processing result as the classification information of the current coding unit.

[0558] In some embodiments, the second determining unit 22 is specifically configured to determine an average value of the classification information of the M coding units as the classification information of the current coding unit.

[0559] In some embodiments, the classification information includes at least one of a first height threshold and a second height threshold, and the first parameter includes at least one of a first sub-parameter and a second sub-parameter;

[0560] The first sub-parameter is used to indicate a calculation period of the first height threshold, the second sub-parameter is used to indicate a calculation period of the second height threshold, and the first height threshold and the second height threshold are used for classification of the current coding unit.

[0561] In some embodiments, the second determining unit 22 is specifically configured to determine a motion vector information calculation period corresponding to the current coding unit according to the second parameter; and determine the motion vector information of the current coding unit according to the motion vector information calculation period.

[0562] In some embodiments, the second determination unit 22 is specifically configured to determine the motion vector information of the current point coding unit based on the reference coding unit of the current coding unit if the current coding unit is the first coding unit within the motion vector information calculation cycle.

[0563] In some embodiments, the second determining unit 22 is specifically configured to determine the motion vector information of the current coding unit according to the encoded information or a default value if the current coding unit is not the first coding unit in the motion vector information calculation period.

[0564] In some embodiments, the encoding unit 23 is further used to write the second parameter into the point cloud code stream, and if the current encoding unit is the first encoding unit in the motion vector information calculation cycle, the motion vector information of the current encoding unit is written into the point cloud code stream.

[0565] In some embodiments, the encoding unit 23 is further used to write the second parameter into the point cloud code stream, and if the current encoding unit is not the first encoding unit in the motion vector information calculation cycle, then the motion vector information of the current encoding unit is skipped from being written into the point cloud code stream.

[0566] In some embodiments, the first parameter indicates that the motion vector information is calculated once every R coding units, and the second determination unit 22 is specifically used to determine the motion vector information of the current point coding unit based on the reference coding unit of the current coding unit if the current coding unit is the NRth coding unit in the coding order, and R and N are both positive integers.

[0567] In some embodiments, the second determination unit 22 is further configured to determine the motion vector information of the current coding unit according to the encoded information or a default value if the current coding unit is not the NR-th coding unit in the coding order.

[0568] In some embodiments, the encoding unit 23 is further used to write the second parameter into the point cloud code stream, and if the current encoding unit is the NKth encoding unit in the encoding order, the motion vector information of the current encoding unit is written into the code stream.

[0569] In some embodiments, the encoding unit 22 is further used to write the second parameter into the point cloud code stream, and if the current encoding unit is not the NKth encoding unit in the encoding order, skip writing the motion vector information of the current encoding unit into the code stream.

[0570] In some embodiments, the encoding unit 22 is further configured to write the motion vector information of the current encoding unit into the point cloud code stream, and skip writing the second parameter into the point cloud code stream.

[0571] In some embodiments, the second determination unit 22 is specifically used to determine the motion vector information of the current coding unit based on the motion vector information of S coding units, where the S coding units are the S encoded coding units that are located before the current coding unit in the coding order, and S is a positive integer.

[0572] In some embodiments, the second determining unit 22 is specifically configured to, if S is equal to 1, determine the motion vector information of a coding unit located before the current coding unit in the coding order as the motion vector information of the current coding unit.

[0573] In some embodiments, the second determining unit 22 is specifically configured to, if S is greater than 1, perform a preset process on the motion vector information of the S coding units, and determine the process result as the motion vector information of the current coding unit.

[0574] In some embodiments, the second determining unit 22 is specifically configured to determine an average value of the motion vector information of the S coding units as the motion vector information of the current coding unit.

[0575] In some embodiments, the second determining unit 22 is further configured to determine a degree of change of classification information of different coding units according to the first parameter; and determine motion vector information of the current coding unit according to the degree of change.

[0576] In some embodiments, the second determination unit 22 is specifically used to determine the classification information of the current coding unit based on the first parameter, and determine the degree of change between the classification information of the current coding unit and the classification information of the reference coding unit of the current coding unit.

[0577] In some embodiments, the second determination unit 22 is specifically used to determine the default value, or the motion vector information of the previous coding unit of the current coding unit in the coding order, as the motion vector information of the current coding unit if the degree of change is less than or equal to the first preset value.

[0578] In some embodiments, the second determining unit 22 is specifically configured to determine the motion vector information of the current coding unit according to the reference coding unit of the current coding unit if the degree of change is greater than a first preset value.

[0579] In some embodiments, the encoding unit 23 is further configured to write the first parameter into the point cloud code stream and skip writing the second parameter into the point cloud code stream.

[0580] In some embodiments, the motion vector information includes at least one of a rotation matrix and an offset vector, and the second parameter includes at least one of a third sub-parameter and a fourth sub-parameter;

[0581] The third sub-parameter is used to indicate a calculation period of the rotation matrix, and the fourth sub-parameter is used to indicate a calculation period of the offset vector.

[0582] In some embodiments, the encoding unit 23 is specifically used to divide the point cloud in the current encoding unit into P types of point clouds according to the classification information of the current encoding unit, where P is a positive integer greater than 1; determine the motion vector information corresponding to the P types of point clouds according to the motion vector information of the current encoding unit; and encode the current encoding unit according to the motion vector information corresponding to the P types of point clouds.

[0583] In some embodiments, the classification information includes a first height threshold and a second height threshold, and the first height threshold is greater than the second height threshold. The encoding unit 23 is specifically used to divide the point cloud in the current encoding unit into P types of point clouds according to the first height threshold and the second height threshold.

[0584] In some embodiments, the P-type point cloud includes a first-type point cloud and a second-type point cloud, and the encoding unit 23 is specifically used to classify the point cloud in the current encoding unit whose height value is less than or equal to the first height threshold and greater than or equal to the second height threshold as the first-type point cloud; and classify the point cloud in the current encoding unit whose height value is greater than the first height threshold or less than the second height threshold as the second-type point cloud.

[0585] In some embodiments, the encoding unit 23 is specifically used to perform motion compensation on the reference encoding unit of the current encoding unit based on the motion vector information of the P-type point cloud to obtain prediction information of the current encoding unit; and encode at least one of the geometric information and attribute information of the current encoding unit based on the prediction information.

[0586] In some embodiments, the current encoding unit is a current point cloud frame, or a spatial region of the current point cloud frame.

[0587] In some embodiments, the encoding unit 23 is further configured to write at least one of the first parameter and the second parameter into a sequence header parameter set.

[0588] In some embodiments, the first parameter is used to indicate that the classification information is calculated once every multiple point cloud frames; and / or,

[0589] The second parameter is used to indicate that the motion vector information is calculated once every multiple point cloud frames.

[0590] In some embodiments, the current encoding unit is a current point cloud slice, and the encoding unit 23 is further configured to write at least one of the first parameter and the second parameter into the point cloud slice header information.

[0591] In some embodiments, the first parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the classification information of the i-th point cloud piece is calculated once every multiple point cloud frames, where i is a positive integer; and / or

[0592] The second parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the motion vector information of the i-th point cloud piece is calculated once every multiple point cloud frames.

[0593] In some embodiments, the first parameter is used to indicate that classification information is calculated once every multiple point cloud slices in a point cloud frame; and / or,

[0594] The second parameter is used to calculate motion vector information once every multiple point cloud slices in a point cloud frame.

[0595] In some embodiments, the first determination unit 21 is further used to determine a first flag, where the first flag is used to indicate whether to perform inter-frame prediction coding; if the first flag indicates to perform inter-frame prediction coding, at least one of the first parameter and the second parameter is determined.

[0596] 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 coding device 20 shown in FIG8 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, no further description is given here.

[0597] The above describes the apparatus and system of the embodiment of the present application from the perspective of functional units in conjunction with the accompanying drawings. It should be understood that the functional unit can be implemented in the form of hardware, can be implemented by instructions in the form of software, or can 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 instructions in the processor, and the steps of the method disclosed in the embodiment of the present application can be directly embodied as being executed by a hardware decoding processor, or can be executed by a combination of hardware and software units in the decoding processor. Optionally, the software unit can be located in a mature storage medium in the art 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 the memory, and the processor reads the information in the memory and completes the steps in the above method embodiment in conjunction with its hardware.

[0598] FIG9 is a schematic block diagram of an electronic device provided in an embodiment of the present application.

[0599] As shown in FIG9 , 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. The electronic device 30 may include:

[0600] The memory 33 and the processor 32 are configured to store a 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.

[0601] For example, the processor 32 may be configured to execute the steps of the method 200 according to the instructions in the computer program 34 .

[0602] In some embodiments of the present application, the processor 32 may include but is not limited to:

[0603] General-purpose processor, Digital Signal Processor (DSP), Application Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware components, etc.

[0604] In some embodiments of the present application, the memory 33 includes but is not limited to:

[0605] Volatile memory and / or non-volatile memory. 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. 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 random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (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 (DR RAM).

[0606] 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 implement the method provided by the present application. The one or more units may be a series of computer program instruction segments capable of implementing specific functions, and the instruction segments are used to describe the execution process of the computer program 34 in the electronic device 30.

[0607] As shown in FIG9 , the electronic device 30 may further include:

[0608] The transceiver 33 may be connected to the processor 32 or the memory 33 .

[0609] The processor 32 can control the transceiver 33 to communicate with other devices. Specifically, it can send information or data to other devices or 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.

[0610] 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.

[0611] FIG10 is a schematic block diagram of a point cloud encoding and decoding system provided in an embodiment of the present application.

[0612] As shown in Figure 10, 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.

[0613] The present application also provides a code stream, which is generated according to the above encoding method.

[0614] The present application also provides a computer storage medium having a computer program stored thereon, which, when executed by a computer, enables the computer to perform the method of the above-mentioned method embodiment. In other words, the present application also provides a computer program product containing instructions, which, when executed by a computer, enables the computer to perform the method of the above-mentioned method embodiment.

[0615] When implemented using software, 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 device. 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 one website, computer, server or data center to another website, computer, server or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. 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 (DVD)), or a semiconductor medium (e.g., a solid state drive (SSD)).

[0616] Those skilled 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 beyond the scope of this application.

[0617] In the several embodiments provided in this 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 merely schematic. For example, the division of the unit is only a logical function division. In actual implementation, there may be other division methods, 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.

[0618] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment. For example, the functional units in the various embodiments 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.

[0619] The above content is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A point cloud decoding method, characterized in that: include: Decoding the point cloud code stream, and determining at least one of classification information and motion vector information of a current decoding unit, wherein the classification information is determined based on a first parameter, and the motion vector information is determined based on a second parameter, wherein the first parameter is used to indicate a calculation period of the classification information, and the second parameter is used to indicate a calculation period of the motion vector information; The current decoding unit is decoded according to at least one of the classification information and the motion vector information of the current decoding unit.

2. The method according to claim 1, characterized in that The decoding of the point cloud code stream to determine at least one of classification information and motion vector information of a current decoding unit includes: At least one of the classification information and the motion vector information of the current decoding unit is decoded from the point cloud code stream.

3. The method according to claim 1, characterized in that The decoding of the point cloud code stream to determine at least one of classification information and motion vector information of a current decoding unit includes: Decoding at least one of the first parameter and the second parameter from the point cloud code stream; The classification information of the current decoding unit is determined according to the first parameter, and / or the motion vector information of the current decoding unit is determined according to the second parameter.

4. The method according to claim 3, characterized in that The determining, according to the first parameter, the classification information of the current decoding unit includes: determining, according to the first parameter, a classification information calculation period corresponding to the current decoding unit; The classification information of the current decoding unit is determined according to the classification information calculation period.

5. The method according to claim 4, characterized in that The determining, according to the classification information calculation period, the classification information of the current decoding unit includes: If the current decoding unit is the first decoding unit in the classification information calculation cycle, the point cloud code stream is decoded to obtain the classification information of the current point decoding unit.

6. The method according to claim 4, characterized in that The determining, according to the classification information calculation period, the classification information of the current decoding unit includes: If the current decoding unit is not the first decoding unit in the classification information calculation period, the classification information of the current decoding unit is determined according to the decoded information or a default value.

7. The method according to claim 3, characterized in that The first parameter indicates that classification information is calculated once for every K decoding units, and determining the classification information of the current decoding unit according to the first parameter includes: If the current decoding unit is the NKth decoding unit in the decoding order, the point cloud code stream is decoded to obtain classification information of the current decoding unit, and K and N are both positive integers.

8. The method according to claim 7, characterized in that The method further comprises: If the current decoding unit is not the NKth decoding unit in the decoding order, the classification information of the current decoding unit is determined according to the decoded information or a default value.

9. The method according to claim 6 or 8, characterized in that The determining, based on the decoded information, the classification information of the current decoding unit includes: The classification information of the current decoding unit is determined according to the classification information of M decoding units, where the M decoding units are M decoded decoding units that precede the current decoding unit in a decoding order, and M is a positive integer.

10. The method according to claim 9, characterized in that The determining, based on the classification information of the M decoding units, the classification information of the current decoding unit includes: If M is equal to 1, the classification information of a decoding unit located before the current decoding unit in the decoding order is determined as the classification information of the current decoding unit.

11. The method according to claim 9, characterized in that The determining, based on the classification information of the M decoding units, the classification information of the current decoding unit includes: If M is greater than 1, the classification information of the M decoding units is subjected to a preset process, and the process result is determined as the classification information of the current decoding unit.

12. The method according to claim 11, characterized in that The performing preset processing on the classification information of the M decoding units and determining the processing result as the classification information of the current decoding unit includes: An average value of the classification information of the M decoding units is determined as the classification information of the current decoding unit.

13. The method according to any one of claims 3-8, 10-12, characterized in that: The classification information includes at least one of a first height threshold and a second height threshold, and the first parameter includes at least one of a first sub-parameter and a second sub-parameter; The first sub-parameter is used to indicate a calculation period of the first height threshold, the second sub-parameter is used to indicate a calculation period of the second height threshold, and the first height threshold and the second height threshold are used for classification of the point cloud in the current decoding unit.

14. The method according to claim 3, characterized in that The determining, according to the second parameter, the motion vector information of the current decoding unit includes: determining, according to the second parameter, a motion vector information calculation period corresponding to the current decoding unit; The motion vector information of the current decoding unit is determined according to the motion vector information calculation period.

15. The method according to claim 14, characterized in that The determining, according to the motion vector information calculation period, the motion vector information of the current decoding unit includes: If the current decoding unit is the first decoding unit in the motion vector information calculation cycle, the point cloud code stream is decoded to obtain the motion vector information of the current point decoding unit.

16. The method according to claim 14, characterized in that The determining, according to the motion vector information calculation period, the motion vector information of the current decoding unit includes: If the current decoding unit is not the first decoding unit in the motion vector information calculation period, the motion vector information of the current decoding unit is determined according to decoded information or a default value.

17. The method according to claim 3, characterized in that The first parameter indicates that motion vector information is calculated every R decoding units, and determining the motion vector information of the current decoding unit according to the second parameter includes: If the current decoding unit is the NRth decoding unit in the decoding order, the point cloud code stream is decoded to obtain the motion vector information of the current decoding unit, and R and N are both positive integers.

18. The method according to claim 17, characterized in that The method further comprises: If the current decoding unit is not the NR-th decoding unit in the decoding order, the motion vector information of the current decoding unit is determined according to decoded information or a default value.

19. The method according to claim 16 or 18, characterized in that The determining, based on the decoded information, the motion vector information of the current decoding unit includes: The motion vector information of the current decoding unit is determined according to the motion vector information of S decoding units, where the S decoding units are S decoded decoding units that precede the current decoding unit in a decoding order, and S is a positive integer.

20. The method according to claim 19, characterized in that The determining, based on the motion vector information of the S decoding units, the motion vector information of the current decoding unit includes: If S is equal to 1, the motion vector information of a decoding unit located before the current decoding unit in the decoding order is determined as the motion vector information of the current decoding unit.

21. The method according to claim 19, wherein The determining, based on the motion vector information of the S decoding units, the motion vector information of the current decoding unit includes: If S is greater than 1, a preset process is performed on the motion vector information of the S decoding units, and the process result is determined as the motion vector information of the current decoding unit.

22. The method according to claim 21, characterized in that The performing preset processing on the motion vector information of the S decoding units and determining the processing result as the motion vector information of the current decoding unit includes: An average value of the motion vector information of the S decoding units is determined as the motion vector information of the current decoding unit.

23. The method according to claim 3, characterized in that The method further comprises: determining a degree of change in the classification information based on the first parameter; Determine the motion vector information of the current decoding unit according to the degree of change.

24. The method according to claim 23, wherein Determining the degree of change of the classification information according to the first parameter includes: determining classification information of the current decoding unit according to the first parameter; Determine a degree of change between the classification information of the current decoding unit and the classification information of a reference decoding unit of the current decoding unit.

25. The method according to claim 23, characterized in that The determining, according to the degree of change, the motion vector information of the current decoding unit includes: If the degree of change is less than or equal to a first preset value, a default value or the motion vector information of a decoding unit preceding the current decoding unit in a decoding order is determined as the motion vector information of the current decoding unit.

26. The method according to claim 23, wherein The determining, according to the degree of change, the motion vector information of the current decoding unit includes: If the degree of change is greater than a first preset value, the point cloud code stream is decoded to obtain motion vector information of the current decoding unit.

27. The method according to any one of claims 14-18, 20-26, characterized in that The motion vector information includes at least one of a rotation matrix and an offset vector, and the second parameter includes at least one of a third sub-parameter and a fourth sub-parameter; The third sub-parameter is used to indicate a calculation period of the rotation matrix, and the fourth sub-parameter is used to indicate a calculation period of the offset vector.

28. The method according to claim 1, wherein The method further comprises: If the current decoding unit is the first decoding unit in the decoding order, the point cloud code stream is decoded to obtain at least one of the classification information and the motion vector information of the current decoding unit.

29. The method according to any one of claims 1-8, 10-12, 14-18, 20-26, characterized in that The decoding of the current decoding unit according to at least one of the classification information and the motion vector information of the current decoding unit includes: According to the classification information of the current decoding unit, the point cloud in the current decoding unit is divided into P types of point clouds, where P is a positive integer greater than 1; Determining the motion vector information corresponding to the P-type point cloud according to the motion vector information of the current decoding unit; The current decoding unit is decoded according to the motion vector information corresponding to the P type point cloud.

30. The method according to claim 29, wherein The classification information includes a first height threshold and a second height threshold, and the first height threshold is greater than the second height threshold, and the dividing the point cloud in the current decoding unit into P types of point clouds according to the classification information of the current decoding unit includes: According to the first height threshold and the second height threshold, the point cloud in the current decoding unit is divided into P types of point clouds.

31. The method according to claim 30, wherein The P-type point cloud includes a first-type point cloud and a second-type point cloud, and the dividing the point cloud in the current decoding unit into the P-type point cloud according to the first height threshold and the second height threshold includes: Classify the point clouds in the current decoding unit whose height values ​​are less than or equal to the first height threshold and greater than or equal to the second height threshold as the first type of point clouds; The point clouds with height values ​​in the current decoding unit greater than the first height threshold or less than the second height threshold are classified as the second type of point clouds.

32. The method according to claim 29, wherein The decoding of the current decoding unit according to the motion vector information of the P-type point cloud includes: Determining a reference decoding unit for the current decoding unit; Performing motion compensation on the reference decoding unit according to the motion vector information of the P-type point cloud to obtain prediction information of the current decoding unit; At least one of the geometric information and the attribute information of the current decoding unit is decoded according to the prediction information.

33. The method according to any one of claims 1-8, 10-12, 14-18, 20-26, characterized in that The current decoding unit is the current point cloud frame, or a spatial area of ​​the current point cloud frame.

34. The method according to any one of claims 3-8, 10-12, 14-18, 20-26, characterized in that Decoding at least one of the first parameter and the second parameter from the point cloud code stream includes: Decode the sequential header parameter set to obtain at least one of the first parameter and the second parameter.

35. The method according to claim 34, wherein The first parameter is used to indicate that the classification information is calculated once every multiple point cloud frames; and / or, The second parameter is used to indicate that the motion vector information is calculated once every multiple point cloud frames.

36. The method according to any one of claims 3-8, 10-12, 14-18, 20-26, characterized in that The current decoding unit is a current point cloud slice, and decoding at least one of the first parameter and the second parameter from the point cloud code stream includes: Decode the point cloud header information to obtain at least one of the first parameter and the second parameter.

37. The method according to claim 36, wherein The first parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the classification information of the i-th point cloud piece is calculated once every multiple point cloud frames, where i is a positive integer; and / or, The second parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the motion vector information of the i-th point cloud piece is calculated once every multiple point cloud frames.

38. The method according to claim 36, wherein The first parameter is used to indicate that classification information is calculated once every multiple point cloud slices in a point cloud frame; and / or, The second parameter is used to calculate motion vector information once every multiple point cloud slices in a point cloud frame.

39. The method according to any one of claims 3-8, 10-12, 14-18, 20-26, characterized in that Decoding at least one of the first parameter and the second parameter from the point cloud code stream includes: Decoding the point cloud code stream to obtain a first identifier, where the first identifier is used to indicate whether to perform inter-frame prediction decoding; If the first flag indicates that inter-frame prediction coding is to be performed, the point cloud code stream is decoded to obtain at least one of the first parameter and the second parameter.

40. A point cloud coding method, characterized in that: include: determining at least one of a first parameter and a second parameter, wherein the first parameter is used to indicate a calculation period of classification information, and the second parameter is used to indicate a calculation period of motion vector information; determining at least one of classification information and motion vector information of a current coding unit according to at least one of the first parameter and the second parameter; The current coding unit is encoded according to at least one of the classification information and the motion vector information of the current coding unit.

41. The method according to claim 40, wherein The determining, based on at least one of the first parameter and the second parameter, at least one of classification information and motion vector information of the current coding unit includes: According to the first parameter, the classification information of the current coding unit is determined, and / or according to the second parameter, the motion vector information of the current coding unit is determined.

42. The method according to claim 41, wherein The determining, according to the first parameter, the classification information of the current coding unit includes: Determining, according to the first parameter, a classification information calculation period corresponding to the current coding unit; The classification information of the current coding unit is determined according to the classification information calculation period.

43. The method according to claim 42, characterized in that The determining, according to the classification information calculation period, the classification information of the current coding unit includes: If the current coding unit is the first coding unit in the classification information calculation cycle, the category of the point cloud in the current coding unit is identified to obtain the classification information of the current coding unit.

44. The method according to claim 42, wherein The determining, according to the classification information calculation period, the classification information of the current coding unit includes: If the current coding unit is not the first coding unit in the classification information calculation period, the classification information of the current coding unit is determined according to the encoded information or a default value.

45. The method according to claim 43, wherein The method further comprises: The first parameter is written into the point cloud code stream, and if the current coding unit is the first coding unit in the classification information calculation cycle, the classification information of the current coding unit is written into the point cloud code stream.

46. ​​The method according to claim 44, wherein The method further comprises: The first parameter is written into the point cloud code stream, and if the current coding unit is not the first coding unit in the classification information calculation cycle, writing the classification information of the current coding unit into the point cloud code stream is skipped.

47. The method according to claim 42, wherein The first parameter indicates that classification information is calculated every K coding units, and determining the classification information of the current coding unit according to the first parameter includes: If the current coding unit is the NKth coding unit in the coding order, the category of the point cloud in the current point coding unit is identified to obtain classification information of the current point coding unit, and K and N are both positive integers.

48. The method according to claim 47, wherein The method further comprises: If the current coding unit is not the NKth coding unit in the coding order, the classification information of the current coding unit is determined according to the encoded information or a default value.

49. The method according to claim 47, wherein The method further comprises: The first parameter is written into the point cloud code stream, and if the current coding unit is the NKth coding unit in the coding order, the classification information of the current coding unit is written into the code stream.

50. The method according to claim 48, wherein The method further comprises: The first parameter is written into the point cloud code stream, and if the current coding unit is not the NKth coding unit in the coding order, writing the classification information of the current coding unit into the code stream is skipped.

51. The method according to any one of claims 41 to 50, characterized in that The method further comprises: The classification information of the current coding unit is written into the point cloud code stream, and writing the first parameter into the point cloud code stream is skipped.

52. The method according to claim 44 or 48, characterized in that The determining, based on the encoded information, the classification information of the current coding unit includes: The classification information of the current coding unit is determined according to the classification information of the M coding units, where the M coding units are M encoded coding units that precede the current coding unit in a decoding order, and M is a positive integer.

53. The method according to claim 52, characterized in that The determining, according to the classification information of the M coding units, the classification information of the current coding unit includes: If M is equal to 1, the classification information of a coding unit located before the current coding unit in the coding order is determined as the classification information of the current coding unit.

54. The method according to claim 52, wherein The determining, according to the classification information of the M coding units, the classification information of the current coding unit includes: If M is greater than 1, the classification information of the M coding units is processed in a preset manner, and the processing result is determined as the classification information of the current coding unit.

55. The method according to claim 54, characterized in that The performing preset processing on the classification information of the M coding units and determining the processing result as the classification information of the current coding unit includes: An average value of the classification information of the M coding units is determined as the classification information of the current coding unit.

56. The method according to any one of claims 42 to 50, wherein: The classification information includes at least one of a first height threshold and a second height threshold, and the first parameter includes at least one of a first sub-parameter and a second sub-parameter; The first sub-parameter is used to indicate a calculation period of the first height threshold, the second sub-parameter is used to indicate a calculation period of the second height threshold, and the first height threshold and the second height threshold are used for classification of the point cloud in the current coding unit.

57. The method according to claim 42, wherein The determining, according to the second parameter, the motion vector information of the current coding unit includes: determining, according to the second parameter, a motion vector information calculation period corresponding to the current coding unit; The motion vector information of the current coding unit is determined according to the motion vector information calculation period.

58. The method according to claim 57, wherein The determining, according to the motion vector information calculation period, the motion vector information of the current coding unit includes: If the current coding unit is the first coding unit in the motion vector information calculation period, the motion vector information of the current point coding unit is determined according to the reference coding unit of the current coding unit.

59. The method according to claim 57, wherein The determining, according to the motion vector information calculation period, the motion vector information of the current coding unit includes: If the current coding unit is not the first coding unit in the motion vector information calculation period, the motion vector information of the current coding unit is determined according to the encoded information or a default value.

60. The method according to claim 58, wherein The method further comprises: The second parameter is written into the point cloud code stream, and if the current coding unit is the first coding unit in the motion vector information calculation cycle, the motion vector information of the current coding unit is written into the point cloud code stream.

61. The method according to claim 59, wherein The method further comprises: The second parameter is written into the point cloud code stream, and if the current coding unit is not the first coding unit in the motion vector information calculation cycle, writing the motion vector information of the current coding unit into the point cloud code stream is skipped.

62. The method according to claim 42, wherein The first parameter indicates that motion vector information is calculated every R coding units, and determining the motion vector information of the current coding unit according to the second parameter includes: If the current coding unit is the NRth coding unit in the coding order, the motion vector information of the current point coding unit is determined according to the reference coding unit of the current coding unit, and R and N are both positive integers.

63. The method according to claim 62, characterized in that The method further comprises: If the current coding unit is not the NR-th coding unit in the coding order, the motion vector information of the current coding unit is determined according to the encoded information or a default value.

64. The method according to claim 62, characterized in that The method further comprises: The second parameter is written into the point cloud code stream, and if the current coding unit is the NKth coding unit in the coding order, the motion vector information of the current coding unit is written into the code stream.

65. The method according to claim 63, wherein The method further comprises: The second parameter is written into the point cloud code stream, and if the current coding unit is not the NKth coding unit in the coding order, writing the motion vector information of the current coding unit into the code stream is skipped.

66. The method according to any one of claims 57 to 65, wherein: The method further comprises: The motion vector information of the current coding unit is written into the point cloud code stream, and writing the second parameter into the point cloud code stream is skipped.

67. The method according to claim 59 or 63, characterized in that The determining, based on the encoded information, the motion vector information of the current coding unit includes: The motion vector information of the current coding unit is determined according to the motion vector information of S coding units, where the S coding units are S encoded coding units that precede the current coding unit in the encoding order, and S is a positive integer.

68. The method according to claim 67, characterized in that The determining, according to the motion vector information of the S coding units, the motion vector information of the current coding unit includes: If S is equal to 1, the motion vector information of a coding unit located before the current coding unit in the coding order is determined as the motion vector information of the current coding unit.

69. The method according to claim 67, characterized in that The determining, according to the motion vector information of the S coding units, the motion vector information of the current coding unit includes: If S is greater than 1, a preset process is performed on the motion vector information of the S coding units, and the process result is determined as the motion vector information of the current coding unit.

70. The method according to claim 69, wherein The performing preset processing on the motion vector information of the S coding units and determining the processing result as the motion vector information of the current coding unit includes: An average value of the motion vector information of the S coding units is determined as the motion vector information of the current coding unit.

71. The method according to claim 42, wherein The method further comprises: determining, based on the first parameter, a degree of change in classification information of different coding units; Determine motion vector information of the current coding unit according to the degree of change.

72. The method according to claim 71, characterized in that The determining, based on the first parameter, a degree of change of the classification information of different coding units includes: Determining classification information of the current coding unit according to the first parameter, Determine a degree of change between the classification information of the current coding unit and the classification information of a reference coding unit of the current coding unit.

73. The method according to claim 72, characterized in that The determining, according to the degree of change, the motion vector information of the current coding unit includes: If the degree of change is less than or equal to a first preset value, a default value or the motion vector information of a previous coding unit of the current coding unit in the coding order is determined as the motion vector information of the current coding unit.

74. The method according to claim 72, characterized in that The determining, according to the degree of change, the motion vector information of the current coding unit includes: If the degree of change is greater than a first preset value, determining motion vector information of the current coding unit according to a reference coding unit of the current coding unit.

75. The method according to claim 71, wherein The method further comprises: The first parameter is written into the point cloud code stream, and writing the second parameter into the point cloud code stream is skipped.

76. The method according to any one of claims 57 to 65, wherein: The motion vector information includes at least one of a rotation matrix and an offset vector, and the second parameter includes at least one of a third sub-parameter and a fourth sub-parameter; The third sub-parameter is used to indicate a calculation period of the rotation matrix, and the fourth sub-parameter is used to indicate a calculation period of the offset vector.

77. The method according to any one of claims 40-50, 57-65, characterized in that The encoding of the current coding unit according to at least one of the classification information and the motion vector information of the current coding unit includes: According to the classification information of the current coding unit, the point cloud in the current coding unit is divided into P types of point clouds, where P is a positive integer greater than 1; Determine the motion vector information corresponding to the P-type point cloud according to the motion vector information of the current coding unit; The current coding unit is encoded according to the motion vector information corresponding to the P-type point cloud.

78. The method according to claim 77, characterized in that The classification information includes a first height threshold and a second height threshold, and the first height threshold is greater than the second height threshold, and the dividing the point cloud in the current coding unit into P types of point clouds according to the classification information of the current coding unit includes: According to the first height threshold and the second height threshold, the point cloud in the current coding unit is divided into P types of point clouds.

79. The method according to claim 78, characterized in that The P-type point cloud includes a first-type point cloud and a second-type point cloud, and the dividing the point cloud in the current coding unit into the P-type point cloud according to the first height threshold and the second height threshold includes: Classify the point clouds in the current coding unit whose height values ​​are less than or equal to the first height threshold and greater than or equal to the second height threshold as the first type of point clouds; The point clouds in the current coding unit whose height values ​​are greater than the first height threshold or less than the second height threshold are classified as the second type of point clouds.

80. The method of claim 77, wherein: The encoding of the current coding unit according to the motion vector information of the P-type point cloud includes: Performing motion compensation on a reference coding unit of the current coding unit according to the motion vector information of the P-type point cloud to obtain prediction information of the current coding unit; At least one of geometric information and attribute information of the current coding unit is encoded according to the prediction information.

81. The method according to any one of claims 40-50, 57-65, characterized in that The current encoding unit is the current point cloud frame, or a spatial area of ​​the current point cloud frame.

82. The method according to any one of claims 40-50, 57-65, characterized in that The method further comprises: At least one of the first parameter and the second parameter is written into a sequence header parameter set.

83. The method according to claim 82, characterized in that The first parameter is used to indicate that the classification information is calculated once every multiple point cloud frames; and / or, The second parameter is used to indicate that the motion vector information is calculated once every multiple point cloud frames.

84. The method according to any one of claims 40-50, 57-65, characterized in that The current encoding unit is a current point cloud slice, and the method further includes: At least one of the first parameter and the second parameter is written into the point cloud header information.

85. The method according to claim 84, characterized in that The first parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the classification information of the i-th point cloud piece is calculated once every multiple point cloud frames, where i is a positive integer; and / or, The second parameter is used to indicate that for the i-th point cloud piece in the point cloud frame, the motion vector information of the i-th point cloud piece is calculated once every multiple point cloud frames.

86. The method according to claim 85, characterized in that The first parameter is used to indicate that classification information is calculated once every multiple point cloud slices in a point cloud frame; and / or, The second parameter is used to calculate motion vector information once every multiple point cloud slices in a point cloud frame.

87. The method according to any one of claims 40-50, 57-65, characterized in that Before determining at least one of the first parameter and the second parameter, the method further includes: Determining a first flag, where the first flag is used to indicate whether to perform inter-frame prediction coding; The determining of at least one of the first parameter and the second parameter comprises: If the first flag indicates that inter-frame prediction encoding is performed, at least one of the first parameter and the second parameter is determined.

88. A point cloud decoding device, characterized in that include: a determining unit, configured to decode a point cloud code stream and determine at least one of classification information and motion vector information of a current decoding unit, wherein the classification information is determined based on a first parameter, and the motion vector information is determined based on a second parameter, wherein the first parameter is used to indicate a calculation period of the classification information, and the second parameter is used to indicate a calculation period of the motion vector information; A decoding unit is configured to decode the current decoding unit according to at least one of the classification information and the motion vector information of the current decoding unit.

89. A point cloud encoding device, characterized in that include: a first determining unit, configured to determine at least one of a first parameter and a second parameter, wherein the first parameter is used to indicate a calculation period of classification information, and the second parameter is used to indicate a calculation period of motion vector information; a second determining unit, configured to determine at least one of classification information and motion vector information of a current coding unit according to at least one of the first parameter and the second parameter; A coding unit is configured to encode the current coding unit according to at least one of the classification information and the motion vector information of the current coding unit.

90. An electronic device, characterized in that include: processor and memory; The memory is used to store computer programs; The processor is configured to call and run the computer program stored in the memory to execute the method according to any one of claims 48 to 97.

91. A computer-readable storage medium, characterized in that Used to store a computer program, the computer program causing a computer to execute the method according to any one of claims 1 to 39 or 40 to 87.

Citation Information

Patent Citations

  • Point cloud compression encoder key parameter optimization method based on support vector machine

    CN110097605A

  • Coding method and decoding method of point cloud attribute information, storage medium and terminal equipment

    CN111405281A

  • Predictive geometry coding in g-pcc

    US20220108491A1

  • Point cloud encoding and decoding method, encoder and decoder

    US20230351639A1

  • Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

    WO2020184443A1