Point cloud coding method and device, equipment and storage medium
By periodically calculating classification information and motion vector information, the problem of increased encoding and decoding time caused by the calculation of each coding unit in the existing technology is solved, thereby improving the encoding and decoding efficiency.
Patent Information
- Application Number
- CN202280098080.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-11
- Publication Date
- 2025-12-09
- Estimated Expiration
- 2042-07-11
AI Technical Summary
In existing technologies, during the point cloud encoding and decoding process of inter-frame prediction, each coding unit needs to calculate classification information and motion vector information once, which increases the encoding and decoding processing time and reduces encoding and decoding efficiency.
By setting the first and second parameters, classification information and motion vector information are calculated periodically, reducing the number of calculations. Classification and motion vector information are calculated once every multiple coding units or frames.
It reduces encoding and decoding processing time and improves encoding and decoding efficiency.
Smart Images

Figure CN119497991B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of point cloud, and particularly relates to a point cloud coding and decoding method, device, equipment and storage medium. BACKGROUND
[0002] An object surface is collected by a collection device to form point cloud data, which includes hundreds of thousands or even more points. In a video production process, the point cloud data is transmitted in the form of a point cloud media file between a point cloud encoding device and a point cloud decoding device. However, such a large number of points brings challenges to transmission, and therefore, the point cloud encoding device needs to compress the point cloud data before transmission.
[0003] In the current point cloud coding and decoding using inter-prediction, classification information and motion vector information need to be calculated once for each coding unit. This will increase the coding and decoding processing time and reduce the coding and decoding efficiency. SUMMARY
[0004] Embodiments of the present application provide a point cloud coding and decoding method, device, equipment and storage medium to reduce the coding and decoding processing time and improve the coding and decoding efficiency.
[0005] In a first aspect, an embodiment of the present application provides a point cloud decoding method, comprising:
[0006] decoding a point cloud bitstream, determining at least one of classification information and motion vector 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, the first parameter being used to indicate a calculation period of the classification information, and the second parameter being used to indicate a calculation period of the motion vector information;
[0007] decoding the current decoding unit according to the at least one of the classification information and the motion vector information of the current decoding unit.
[0008] In a second aspect, an embodiment of the present application provides a point cloud encoding method, comprising:
[0009] determining at least one of a first parameter and a second parameter, the first parameter being used to indicate a calculation period of classification information, and the second parameter being used to indicate a calculation period of motion vector information;
[0010] determining at least one of classification information and motion vector information of a current coding unit according to the at least one of the first parameter and the second parameter;
[0011] encoding the current coding unit according to the at least one of the classification information and the motion vector information of the current coding unit.
[0012] In a third aspect, the present application provides a point cloud decoding apparatus for performing the method in the first aspect or each implementation manner thereof. Specifically, the apparatus comprises functional units for performing the method in the first aspect or each implementation manner thereof.
[0013] In a fourth aspect, the present application provides a point cloud encoding apparatus for performing the method in the second aspect or each implementation manner thereof. Specifically, the apparatus comprises functional units for performing the method in the second aspect or each implementation manner thereof.
[0014] 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 invoke and run the computer program stored in the memory to perform the method in the first aspect or each implementation manner thereof.
[0015] 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 invoke and run the computer program stored in the memory to perform the method in the second aspect or each implementation manner thereof.
[0016] In a seventh aspect, a point cloud coding system is provided, comprising a point cloud encoder and a point cloud decoder. The point cloud decoder is configured to perform the method in the first aspect or each implementation manner thereof, and the point cloud encoder is configured to perform the method in the second aspect or each implementation manner thereof.
[0017] In an eighth aspect, a chip is provided for implementing the method in any one of the first aspect to the second aspect or each implementation manner thereof. Specifically, the chip comprises a processor configured to invoke and run a computer program from a memory, so that a device installed with the chip performs the method in any one of the first aspect to the second aspect or each implementation manner thereof.
[0018] In a ninth aspect, a computer readable storage medium is provided for storing a computer program, which causes a computer to perform the method in any one of the first aspect to the second aspect or each implementation manner thereof.
[0019] In a tenth aspect, a computer program product is provided, comprising computer program instructions, which cause a computer to perform the method in any one of the first aspect to the second aspect or each implementation manner thereof.
[0020] In an eleventh aspect, a computer program is provided, which, when running on a computer, causes the computer to perform the method in any one of the first aspect to the second aspect or each implementation manner thereof.
[0021] In a twelfth aspect, a bitstream is provided, the bitstream being generated based on the method of the second aspect, and optionally, the bitstream comprising at least one of the first parameter and the second parameter.
[0022] According to the above technical solution, by decoding the point cloud bitstream, at least one of the classification information and the motion vector information of the current decoding unit is determined, wherein the classification information is determined based on the first parameter, and the motion vector information is determined based on the 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, 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. That is, in the embodiment of the present application, the classification information and the motion vector information are calculated periodically, compared with calculating the classification information and the motion vector information once for each decoding unit, the number of times of calculating the classification information and the motion vector information is greatly reduced, the processing time of the encoding and decoding is reduced, and the encoding and decoding efficiency is improved. BRIEF DESCRIPTION OF DRAWINGS
[0023] Figure 1 is a schematic block diagram of a point cloud coding system related to an embodiment of the present application;
[0024] Figure 2 is a schematic block diagram of a point cloud encoder provided by an embodiment of the present application;
[0025] Figure 3 is a schematic block diagram of a point cloud decoder provided by an embodiment of the present application;
[0026] Figure 4 is a flowchart of a point cloud decoding method provided by an embodiment of the present application;
[0027] Figure 5 is a point cloud histogram related to an embodiment of the present application;
[0028] Figure 6 is a flowchart of a point cloud encoding method provided by an embodiment of the present application;
[0029] Figure 7 is a schematic block diagram of a point cloud decoding device provided by an embodiment of the present application;
[0030] Figure 8 is a schematic block diagram of a point cloud encoding device provided by an embodiment of the present application;
[0031] Figure 9 is a schematic block diagram of an electronic device provided by an embodiment of the present application;
[0032] Figure 10 is a schematic block diagram of a point cloud coding system provided by an embodiment of the present application. DETAILED DESCRIPTION
[0033] The present application can be applied to the field of point cloud upsampling, for example, can be applied to the field of point cloud compression.
[0034] In order to facilitate understanding of the embodiments of the present application, first, the related concepts involved in the embodiments of the present application are briefly introduced as follows:
[0035] Point cloud (Point Cloud) refers to a set of discrete points in space that express the spatial structure and surface attributes of a three-dimensional object or a three-dimensional scene.
[0036] Point cloud data (Point Cloud Data) is a specific recording form of point cloud. The points in the point cloud can include position information of the points and attribute information of the points. For example, the position information of the points can be three-dimensional coordinate information of the points. The position information of the points can also be referred to as geometric information of the points. For example, the attribute information of the points can include color information, reflectance information, normal vector information, etc. For example, the color information can be information on any color space. For example, the color information can be (RGB). For another example, the color information can be 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) for describing color difference information. For example, according to the principle of laser measurement, the points in the point cloud can include three-dimensional coordinate information of the points and laser reflectance of the points. For another example, according to the principle of photogrammetry, the points in the point cloud can include three-dimensional coordinate information of the points and color information of the points. For another example, the point cloud obtained by combining the principles of laser measurement and photogrammetry can include three-dimensional coordinate information of the points, laser reflectance of the points, and color information of the points.
[0037] The acquisition approach of the point cloud data can include, but is not limited to, at least one of the following: (1) computer device generation. The computer device can generate point cloud data according to a virtual three-dimensional object and a virtual three-dimensional scene. (2) 3D (3-Dimension, three-dimensional) laser scanning acquisition. Through 3D laser scanning, point cloud data of a static real-world three-dimensional object or a three-dimensional scene can be acquired, and million-level point cloud data can be acquired per second; (3) 3D photogrammetry acquisition. A 3D photography device (i.e., a group of cameras or a camera device with multiple lenses and sensors) is used to collect a visual scene of a real world to acquire point cloud data of the visual scene of the real world, and through 3D photography, point cloud data of a dynamic real-world three-dimensional object or a three-dimensional scene can be obtained. (4) Point cloud data of biological tissue organs is acquired through medical devices. In the medical field, point cloud data of biological tissue organs can be acquired through medical devices such as magnetic resonance imaging (Magnetic Resonance Imaging, MRI), computed tomography (Computed Tomography, CT), and electromagnetic positioning information.
[0038] The point cloud can be divided into dense point cloud and sparse point cloud according to the acquisition approach.
[0039] The point cloud is divided into the following types according to the time sequence of the data:
[0040] The first type of static point cloud: the object is static, and the device for acquiring the point cloud is also static.
[0041] The second type of dynamic point cloud: the object is moving, but the device for acquiring the point cloud is static.
[0042] The third type of dynamic point cloud acquisition: the device for acquiring the point cloud is moving.
[0043] The point cloud is divided into two categories according to the use:
[0044] Category one: machine perception point cloud, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, rescue robots, and the like.
[0045] Category two: human eye perception point cloud, which can be used in digital cultural heritage, free-view broadcast, three-dimensional immersive communication, three-dimensional immersive interaction, and the like.
[0046] With the development of three-dimensional reconstruction and three-dimensional imaging technology, point clouds are widely used in virtual reality, immersive telepresence, three-dimensional printing and other fields. However, three-dimensional point clouds often have a large number of points, and the distribution of points in space is disordered. At the same time, each point often has rich attribute information, resulting in a large amount of data for a point cloud, which brings great challenges to the storage and transmission of point clouds. Therefore, point cloud compression coding technology is one of the key technologies for point cloud processing and application.
[0047] The related knowledge of point cloud coding is introduced below.
[0048] Figure 1 A schematic block diagram of a point cloud coding system related to an embodiment of the present application is shown. It should be noted that, Figure 1 This is only an example, and the point cloud coding system of the embodiment of the present application includes but is not limited to Figure 1 As shown in the figure, Figure 1 As shown in the figure, the point cloud coding system 100 includes an encoding device 110 and a decoding device 120. The encoding device is used to encode (which can be understood as compress) 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.
[0049] The encoding device 110 of the embodiment of the present application can be understood as a device with point cloud encoding function, and the decoding device 120 can be understood as a device with point cloud decoding function, that is, the encoding device 110 and the decoding device 120 of the embodiment of the present application include more general devices, such as smart phones, desktop computers, mobile computing devices, notebook (for example, laptop) computers, tablet computers, set-top boxes, televisions, cameras, display devices, digital media players, point cloud game consoles, vehicle-mounted computers, etc.
[0050] In some embodiments, the encoding device 110 can transmit the encoded point cloud data (such as code stream) to the decoding device 120 via the channel 130. The channel 130 can 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.
[0051] 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, and optionally, the communication media can also include wired communication media, such as one or more physical transmission lines.
[0052] In another example, the channel 130 includes a storage medium that can store the encoded point cloud data from the encoding device 110. The storage medium includes a variety of local access data storage media, such as optical discs, DVDs, flash memory, etc. In this example, the decoding device 120 can retrieve the encoded point cloud data from the storage medium.
[0053] In another example, the channel 130 can include a storage server that can store the encoded point cloud data from 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.
[0054] In some embodiments, the encoding device 110 includes the point cloud encoder 112 and an output interface 113. The output interface 113 can include a modulator / demodulator (modem) and / or a transmitter.
[0055] In some embodiments, the encoding device 110 includes the point cloud encoder 112 and an output interface 113. The output interface 113 can include a modulator / demodulator (modem) and / or a transmitter.
[0056] The point cloud source 111 can include at least one of a point cloud acquisition device (e.g., a scanner), a point cloud archive, a point cloud input interface for receiving point cloud data from a point cloud content provider, and a computer graphics system for generating point cloud data.
[0057] The point cloud encoder 112 encodes the point cloud data from the point cloud source 111 to generate a bitstream. 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 a storage server for later retrieval by the decoding device 120.
[0058] In some embodiments, the decoding device 120 includes an input interface 121 and a point cloud decoder 122.
[0059] In some embodiments, the decoding device 120 includes an input interface 121 and a point cloud decoder 122.
[0060] The input interface 121 can include a receiver and / or a modem. The input interface 121 can receive the encoded point cloud data from the channel 130.
[0061] The point cloud decoder 122 is configured 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.
[0062] The display device 123 displays the decoded point cloud data. The display device 123 can be integrated with the decoding device 120 or external to the decoding device 120. The display device 123 can 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.
[0063] In addition, Figure 1 For example only, the technical solutions of the embodiments of the present application are not limited to Figure 1 For example, the techniques of the present application can also be applied to single-sided point cloud encoding or single-sided point cloud decoding.
[0064] Current point cloud encoders can adopt two point cloud compression encoding technology routes proposed by the Moving Picture Experts Group (MPEG) of the International Organization for Standardization, namely Video-based Point Cloud Compression (VPCC) and Geometry-based Point Cloud Compression (GPCC). VPCC projects a three-dimensional point cloud into two dimensions, encodes the projected two-dimensional image using existing two-dimensional encoding tools, and GPCC divides the point cloud into multiple units by using a hierarchical structure, and encodes the entire point cloud by recording the division process.
[0065] The point cloud encoder and the point cloud decoder applicable to the embodiments of the present application will be described below taking the GPCC encoding and decoding framework as an example.
[0066] Figure 2 is a schematic block diagram of the point cloud encoder provided by the embodiments of the present application.
[0067] As described above, the points in the point cloud can include position information of the points and attribute information of the points, and therefore, the encoding of the points in the point cloud mainly includes position encoding and attribute encoding. In some examples, the position information of the points in the point cloud is also referred to as geometric information, and the position encoding of the points in the point cloud is also referred to as geometric encoding.
[0068] In the GPCC encoding framework, the geometric information and the corresponding attribute information of the point cloud are encoded separately.
[0069] The position coding process includes: first, a minimum cube is established to enclose all points of the point cloud, which is called the minimum bounding box. The minimum bounding box is octree divided, i.e., the bounding box is equally divided into 8 sub-cubes, and the non-empty (containing points in the point cloud) sub-cubes are continuously octree divided until the leaf nodes obtained by the division are 1x1x1 unit cubes, and 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, and a binary geometry bit stream, i.e., a geometry code stream, is generated. 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 coded, such as constructing an octree, and the position information output based on the constructed octree is used to reconstruct the position information of each point in the point cloud data to obtain the reconstructed value of the position information of each point.
[0070] The attribute coding process includes: by giving the reconstructed information of the position information of the input point cloud and the original value of the attribute information, one of the three prediction modes is selected for point cloud prediction, the result after prediction is quantized, and arithmetic coding is performed to form an attribute code stream.
[0071] As shown in Figure 2 The position coding can be implemented by the following units:
[0072] The coordinate conversion (Tanmsform coordinates) unit 201, the voxel (Voxelize) unit 202, the octree division (Analyze octree) unit 203, the geometry reconstruction (Reconstruct geometry) unit 204, the first arithmetic encoding (Arithmetic enconde) unit 205, and the surface fitting unit (Analyze surface approximation) 206.
[0073] The coordinate conversion unit 201 can be used to transform the world coordinates of the points in the point cloud into relative coordinates. For example, the geometric coordinates of the points are respectively subtracted by the minimum values of the xyz coordinate axes, which is equivalent to a direct current operation, so as to convert the coordinates of the points in the point cloud from the world coordinates to the relative coordinates.
[0074] The voxel (Voxelize) unit 202, also known as the quantization and duplicate point removal (Quantize and remove points) unit, can reduce the number of coordinates by quantization; after quantization, points that were originally different may be assigned the same coordinates, based on which duplicate points can be removed by a de-duplication operation; for example, multiple clouds with the same quantized position and different attribute information can be merged into one cloud through attribute conversion. In some embodiments of the present application, the voxel unit 202 is an optional unit module.
[0075] The octree division unit 203 can encode the quantized position information of the points using an octree coding method. For example, the point cloud is divided in the form of an octree, so that the positions of the points can be one-to-one corresponding to the positions of the octree. The positions of the points in the octree are counted, and a flag is recorded as 1 to perform geometry coding.
[0076] In some embodiments, in the process of encoding geometry information based on a triangle soup (trianglesoup, trisoup), the point cloud is also divided by the octree division unit 203 in the form of an octree. However, unlike the geometry information coding based on the octree, the trisoup does not need to divide the point cloud into unit cubes with an edge length of 1x1x1, but stops dividing when the edge length of the block (sub-block) is W. Based on the distribution of the point cloud in each block, a surface is formed, and at most twelve vertices (intersection points) are generated by the surface and the twelve edges of the block. The surface fitting unit 206 performs surface fitting on the intersection points, and the geometry coding is performed on the fitted intersection points.
[0077] The geometry reconstruction unit 204 can reconstruct the positions of the points in the point cloud data based on the position information output by the octree division unit 203 or the fitted intersection points output by the surface fitting unit 206.
[0078] The arithmetic coding unit 205 can perform arithmetic coding on the position information output by the octree analysis unit 203 or the fitted intersection points output by the surface fitting unit 206 using an entropy coding method, for example, to generate a geometry bitstream (geometry bitstream) using the arithmetic coding method.
[0079] The attribute coding can be implemented by the following units:
[0080] The color transform unit 210, the transfer attribute unit 211, the region adaptive hierarchical transform (RAHT) unit 212, the generate LOD unit 213, the lifting transform unit 214, the quantize coefficients unit 215, and the arithmetic coding unit 216.
[0081] It should be noted that the point cloud encoder 200 can include more than Figure 2More, less, or different functional components.
[0082] The color conversion unit 210 can be configured to transform the RGB color space of the points in the point cloud to YCbCr format or other formats.
[0083] The re-coloring unit 211 re-colors the color information with the reconstructed geometry information so that the unencoded attribute information corresponds to the reconstructed geometry information.
[0084] After the original values of the attribute information of the points are converted by the re-coloring unit 211, any kind of transformation unit can be selected to transform the points in the point cloud. The transformation unit can include a RAHT transform 212 and a lifting transform unit 214. The lifting transform depends on the generation of the level of detail (LOD).
[0085] Any of the RAHT transform and the lifting transform can be understood as being configured to predict the attribute information of the points in the point cloud to obtain a predicted value of the attribute information of the points, and then obtain a residual value of the attribute information of the points based on the predicted value of the attribute information of the points. For example, the residual value of the attribute information of the points can be the original value of the attribute information of the points minus the predicted value of the attribute information of the points.
[0086] In an embodiment of the present application, the process of generating the LOD by the LOD generation unit includes: obtaining the Euclidean distances between the points according to the position information of the points in the point cloud; and dividing the points into different levels of detail according to the Euclidean distances. In an embodiment, the Euclidean distances can be sorted, and the Euclidean distances in different ranges can be divided into different levels of detail. For example, a point can be randomly selected as a first level of detail. Then, the Euclidean distances between the remaining points and the point are calculated, and the points whose Euclidean distances meet a first threshold requirement are classified into a second level of detail. The centroid of the points in the second level of detail is obtained, the Euclidean distances between the points other than the first and second levels of detail and the centroid are calculated, and the points whose Euclidean distances meet a second threshold requirement are classified into a third level of detail. In this way, all the points are classified into levels of detail. By adjusting the thresholds of the Euclidean distances, the number of points in each LOD layer can be increased. It should be understood that the LOD division method can also use other methods, which are not limited in the present application.
[0087] It should be noted that the point cloud can be directly divided into one or more levels of detail, or the point cloud can be first divided into a plurality of point cloud slices, and then each point cloud slice is divided into one or more LOD layers.
[0088] For example, a point cloud can be divided into multiple point cloud chunks, each containing between 550,000 and 1,100,000 points. Each point cloud chunk can be viewed as a separate point cloud. Each point cloud chunk can also be divided into multiple detail representation layers, each containing multiple points. In one embodiment, the detail representation layers can be divided based on the Euclidean distance between the points.
[0089] The quantization unit 215 can be used to quantize the residual values of the attribute information of the points. For example, if the quantization unit 215 is connected to the RAHT transformation unit 212, the quantization unit 215 can be used to quantize the residual values of the attribute information of the points output by the RAHT transformation unit 212.
[0090] Arithmetic coding unit 216 can use zero-run-length coding to entropy-encode the residual values of the attribute information of the points to obtain an attribute bitstream. The attribute bitstream can be bitstream information.
[0091] Figure 3 This is a schematic block diagram of the point cloud decoder provided in the embodiments of this application.
[0092] like Figure 3 As shown, the decoder 300 can acquire the point cloud bitstream from the encoding device and obtain the position and attribute information of the points in the point cloud through the parsing code. Point cloud decoding includes position decoding and attribute decoding.
[0093] The location decoding process includes: performing arithmetic decoding on the geometric bitstream; constructing and merging octrees to reconstruct the point location information; and performing coordinate transformation on the reconstructed point location information to obtain the point's actual location information. The point's location information can also be referred to as its geometric information.
[0094] The attribute decoding process includes: obtaining the residual values of the attribute information of points in the point cloud by parsing the attribute bitstream; obtaining the residual values of the attribute information of points by inverse quantization; based on the reconstructed information of the point's position information obtained during the position decoding process, selecting one of the following inverse RAHT transform and inverse lifting transform to perform point cloud prediction, obtaining the predicted value, and adding the predicted value to the residual value to obtain the reconstructed value of the point's attribute information; and performing an inverse color space transformation on the reconstructed value of the point's attribute information to obtain the decoded point cloud.
[0095] like Figure 3 As shown, position decoding can be implemented using the following unit:
[0096] The arithmetic decoding unit 301, the octree synthesize unit 302, the surface approximation unit 303, the reconstruct geometry unit 304, and the inverse transform coordinates unit 305.
[0097] The attribute encoding can be implemented by the following units:
[0098] The arithmetic decoding unit 310, the inverse quantize unit 311, the RAHT inverse transform unit 312, the generate LOD unit 313, the inverse lifting unit 314, and the inverse transform colors unit 315.
[0099] It should be noted that the decompression is the inverse process of the compression, and similarly, the functions of the units in the decoder 300 can refer to the functions of the corresponding units in the encoder 200. In addition, the point cloud decoder 300 can include more, less, or different functional components. Figure 3
[0100] For example, the decoder 300 can divide the point cloud into multiple LODs according to the Euclidean distance between points in the point cloud; then, the attribute information of the points in the LODs is decoded in turn; for example, the number of zeros (zero_cnt) in the zero-run length encoding technology is calculated to decode the residual based on the zero_cnt; then, the decoder 300 can perform inverse quantization based on the decoded residual value, and add the inverse quantized residual value to the predicted value of the current point to obtain the reconstructed value of the point cloud, until all the point clouds are decoded. The current point will be the nearest neighbor of the points in the subsequent LODs, and the reconstructed value of the current point is used to predict the attribute information of the subsequent points.
[0101] The above is the basic process of the point cloud encoder and decoder based on the GPCC coding framework, and with the development of technology, some modules or steps of the framework or process can be optimized. The present application is applicable to the basic process of the point cloud encoder and decoder based on the GPCC coding framework, but is not limited to the framework and process.
[0102] Since the adjacent frames in the continuous point cloud sequence have high correlation, in some embodiments, inter-frame prediction can be introduced to improve the point cloud coding efficiency. Inter-frame prediction mainly includes motion estimation, motion compensation and other steps. In the motion estimation step, the spatial motion offset vector of the adjacent two frames is calculated and written into the code stream. 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. Considering that the spatial span of the radar point cloud is large and the motion vectors of different parts are different, in some embodiments, the radar point cloud is divided into road and non-road parts, and only the non-road part is used to estimate the global motion vector.
[0103] As described above, in the current point cloud coding using inter-frame prediction, the classification information and the motion vector information need to be calculated once for each coding unit, which will increase the coding processing time and reduce the point cloud coding efficiency.
[0104] To solve the above technical problems, the embodiments of the present application do not calculate the classification information and the motion vector information once for each coding unit based on the similarity of the contents of the continuous point cloud frames, but calculate the classification information and the motion vector information once every several coding units, thereby reducing the number of times of calculating the classification information and the motion vector information, reducing the coding processing time and improving the coding efficiency.
[0105] The point cloud coding method related to the embodiments of the present application will be introduced below in combination with specific embodiments.
[0106] First, taking the decoding end as an example, the point cloud decoding method provided by the embodiments of the present application will be introduced.
[0107] Figure 4 The point cloud decoding method provided by an embodiment of the present application is shown in the flowchart. The point cloud decoding method of the embodiments of the present application can be completed by the point cloud decoding device shown in the above Figure 1 or Figure 3 .
[0108] As shown in Figure 4 , the point cloud decoding method of the embodiments of the present application includes:
[0109] S101, decoding the point cloud code stream to determine at least one of the classification information and the motion vector information of the current decoding unit.
[0110] 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.
[0111] As can be seen from the above description, the adjacent frames in the continuously collected point cloud sequence have high correlation, and therefore inter-frame prediction can be introduced to improve the point cloud coding efficiency.
[0112] In some embodiments, in the motion estimation step, the spatial motion offset vector of the adjacent two frames is calculated and written into the code stream. 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.
[0113] The embodiments of the present application do not limit the specific content of the motion vector information of the current decoding unit, which can be the motion information involved in the motion estimation, motion compensation and other steps.
[0114] For example, the motion vector information can be the spatial motion offset vector of the adjacent two frames, i.e., the motion vector, in the motion estimation.
[0115] For another example, the motion vector information can also be the motion estimation ME (Motion Estimation) between the adjacent two frames in the motion compensation.
[0116] In actual scenarios, different objects can have different motions. For example, taking the point cloud data captured by a laser radar sensor on a moving vehicle as an example, the road and the objects in the point cloud data usually have different motions. Since the distance between the road and the radar sensor is relatively constant, and the road has only a slight change from one vehicle position to the next vehicle position, the movement of the points representing the road relative to the radar sensor position is small. 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 road and object points will improve the accuracy of global motion estimation and compensation, thereby improving the compression efficiency. That is, for point cloud data using inter-frame prediction, in order to improve the accuracy of inter-frame prediction and improve the compression efficiency, the point cloud in a 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.
[0117] In some embodiments, the classification of the point cloud in the decoding unit is indicated by classification information, wherein the classification information can be understood as the information required to divide the point cloud into several categories.
[0118] In the embodiments 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, i.e., the information required to divide the point cloud in the current decoding unit into several categories.
[0119] In 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 the decoding process of each decoding unit is basically consistent. For ease of description, the embodiments of the present application take the decoding unit currently being decoded, i.e., the current decoding unit, as an example for description.
[0120] The embodiments of the present application do not limit the specific size of the current decoding unit, which can be determined according to actual needs.
[0121] In some embodiments, the current decoding unit is the current point cloud frame, i.e., one point cloud frame can be decoded as one decoding unit.
[0122] In some embodiments, the current decoding unit is a partial region of the current point cloud frame, for example, the current point cloud frame is divided into multiple regions, and one region is taken as one decoding unit for separate decoding.
[0123] The embodiments of the present application do not limit the specific way of dividing the current point cloud frame into multiple regions.
[0124] In one example, the current point cloud frame is divided into multiple point cloud slices, the sizes of the multiple point cloud slices can be the same or not completely the same, one point cloud slice is taken as one decoding unit for separate decoding.
[0125] In another example, the current point cloud frame is divided into multiple point cloud blocks, the sizes of the multiple point cloud blocks can be the same or not completely the same, one point cloud block is taken as one decoding unit for separate decoding.
[0126] In order to avoid calculating the classification information and the motion vector information once for each decoding unit, the embodiments of the present application set at least one of the first parameter and the 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. In this way, the encoding end can periodically calculate the classification information according to the classification information calculation period indicated by the first parameter, and / or periodically calculate the motion vector information according to the motion vector information calculation period indicated by the second parameter, thereby reducing the calculation times of the classification information and / or the motion vector information, and improving the coding efficiency.
[0127] In some embodiments, the calculation period of the 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.
[0128] In some embodiments, the calculation period of the 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.
[0129] In the embodiments of this application, the specific implementation of the decoding end decoding the point cloud code stream in S101 to determine at least one of the classification information and the motion vector information of the current decoding unit includes but is not limited to the following methods:
[0130] Method one, the decoding end decodes at least one of the classification information and the motion vector information of the current decoding unit from the point cloud code stream.
[0131] In the method one, the encoding end can determine the classification information of each decoding unit and / or the motion vector information of each decoding unit according to the first parameter and / or the second parameter. Then, the encoding end writes at least one of the classification information and the motion vector information of each decoding unit into the point cloud code stream. In this way, the decoding end can obtain the classification information of each decoding unit and / or the motion vector information of each decoding unit by directly decoding the code stream.
[0132] In a possible implementation of the method one, the encoding end can skip writing the first parameter and / or the second parameter into the point cloud code stream, that is, the encoding end does not write the first parameter and / or the second parameter into the point cloud code stream, but directly writes the classification information of each decoding unit and / or the motion vector information of each decoding unit into the point cloud code stream. In this way, the decoding end can directly decode the classification information of each decoding unit and / or the motion vector information of each decoding unit from the code stream by using the existing decoding method, thereby improving the encoding efficiency without increasing the decoding complexity.
[0133] In some embodiments, the decoding end can also determine at least one of the classification information and the motion vector information of the current decoding unit according to the following method two.
[0134] Method two, the decoding end determines at least one of the classification information and the motion vector information by the following steps S101-A and S101-B:
[0135] S101-A, decoding at least one of the first parameter and the second parameter from the point cloud code stream;
[0136] S101-B, determining the classification information of the current decoding unit according to the first parameter and / or determining the motion vector information of the current decoding unit according to the second parameter.
[0137] It should be noted that the first parameter and the second parameter can be used separately. In an example, the first parameter is written into the point cloud bitstream by the encoding end, but the second parameter is not written into the point cloud bitstream. In this way, the decoding end can determine the classification information of the current decoding unit according to the first parameter, and obtain the motion vector information of the current decoding unit by decoding the point cloud bitstream. In another example, the second parameter is written into the point cloud bitstream by the encoding end, but the first parameter is not written into the point cloud bitstream. In this way, the decoding end can determine the motion vector information of the current decoding unit according to the second parameter, and obtain the classification information of the current decoding unit by decoding the point cloud bitstream. In yet another example, the first parameter and the second parameter are both written into the point cloud bitstream by the encoding end. In this way, the decoding end can determine the classification information of the current decoding unit according to the first parameter, and determine the motion vector information of the current decoding unit according to the second parameter.
[0138] In the second mode, if the encoding end writes the first parameter into the point cloud bitstream, the classification information of each decoding unit is not written into the point cloud bitstream. Correspondingly, the decoding end determines the classification information of the decoding unit according to 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 bitstream, the motion vector information of each decoding unit is not written into the point cloud bitstream. Correspondingly, the decoding end determines the motion vector information of the decoding unit according to the second parameter, rather than obtaining the motion vector information of the decoding unit by decoding one by one. As can be seen, the encoding end writes the first parameter and / or the second parameter into the bitstream, and skips writing the classification information and / or the motion vector information of each decoding unit into the point cloud bitstream, which can reduce the decoding processing time and reduce the bitstream burden of encoding the classification information and / or the motion vector information of each decoding unit.
[0139] Optionally, at least one of the first parameter and the second parameter can be stored in the form of an unsigned integer, denoted as u(v), indicating that a parameter is described using v bits of bits.
[0140] Optionally, at least one of the first parameter and the second parameter can also be stored in the form of unsigned exponential Golomb coding, denoted as ue(v), indicating that the parameter is first converted into a v-bit 01 bit sequence by exponential Golomb coding, and then written into the bitstream.
[0141] In some embodiments, the encoding end writes at least one of the first parameter and the second parameter into the sequence header parameter set. At this time, the decoding end obtains at least one of the first parameter and the second parameter by decoding the sequence header parameter set.
[0142] In an example, 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.
[0143] For example, the first parameter and the second parameter are stored in a sequence header parameter set as shown in Table 1.
[0144] Table 1
[0145]
[0146] In Table 1, classification_period represents the first parameter, motion_period represents the second parameter, classification_info represents the classification information, and motion_info represents the motion vector information.
[0147] In some embodiments, the encoder writes at least one of the first parameter and the second parameter into point cloud slice header information, and the decoder obtains the at least one of the first parameter and the second parameter by decoding the point cloud slice header information.
[0148] In an example, the first parameter is used to indicate that the classification information of an i-th point cloud slice in a point cloud frame is calculated once at intervals of a plurality of point cloud frames, i being a positive integer; and / or, the second parameter is used to indicate that the motion vector information of the i-th point cloud slice in the point cloud frame is calculated once at intervals of a plurality of point cloud frames.
[0149] In this example, the first parameter and the second parameter are stored in point cloud slice header information as shown in Table 2.
[0150] Table 2
[0151]
[0152] In Table 2, classification_frame_period represents the first parameter, motion_frame_period represents the second parameter, classification_info represents the classification information, and motion_info represents the motion vector information.
[0153] In an example, the first parameter is used to indicate that the classification information is calculated once at intervals of a plurality of point cloud slices in a point cloud frame; and / or, the second parameter is used to indicate that the motion vector information is calculated once at intervals of a plurality of point cloud slices in the point cloud frame.
[0154] In this example, the first parameter and the second parameter are stored in point cloud slice header information as shown in Table 3.
[0155] Table 3
[0156]
[0157] In Table 3, the classification_slice_period represents the first parameter, the motion_slice_period represents the second parameter, the classification_info represents the classification information, and the motion_info represents the motion vector information.
[0158] In some embodiments, the decoding end needs to decode the point cloud bitstream first to obtain a first identifier inter_prediction_flag before decoding the first parameter and the second parameter, where the first identifier inter_prediction_flag is used to indicate whether to perform inter-prediction decoding; if the first identifier inter_prediction_flag indicates to perform inter-prediction encoding, the point cloud bitstream is decoded to obtain at least one of the first parameter and the second parameter.
[0159] The following describes a specific process in which the decoding end determines the classification information of the current decoding unit according to the first parameter in S101-B.
[0160] The specific implementation manner in which the decoding end determines the classification information of the current decoding unit according to the first parameter in S101-B includes but is not limited to the following several manners:
[0161] In manner 1, S101-B includes the following steps of S101-B-11 and S101-B-12.
[0162] S101-B-11, determining a classification information calculation period corresponding to the current decoding unit according to the first parameter.
[0163] S101-B-12, determining the classification information of the current decoding unit according to the classification information calculation period.
[0164] In the embodiments of the present application, the classification information calculation periods corresponding to different decoding units in the point cloud sequence can be the same or different, and the embodiments of the present application do not limit this.
[0165] In some embodiments, if the classification information calculation periods corresponding to different decoding units in the point cloud sequence are the same, a first parameter can be written in the bitstream to indicate the classification information calculation period of each decoding unit in the point cloud sequence. For example, the first parameter indicates that the classification information is calculated once every K decoding units.
[0166] In some embodiments, if the calculation periods of the classification information corresponding to different decoding units in the point cloud sequence are not all the same, a plurality of first parameters can be written in the code stream to indicate the calculation periods of the classification information of each decoding unit in the point cloud sequence. For example, three first parameters are written in the code stream, where the first first parameter indicates that the classification information is calculated once every K1 decoding units, the second first parameter indicates that the classification information is calculated once every K2 decoding units, and the third first parameter indicates that the classification information is calculated once every K3 decoding units.
[0167] As can be seen from the above, no matter what form the first parameter indicates the calculation period of the classification information, for the current decoding unit, the calculation period of the classification information corresponding to the current decoding unit can be determined according to the first parameter decoded from the code stream. For example, the current decoding unit is a current point cloud frame, the first parameter indicates that the classification information is calculated once every 4 point cloud frames, and it is assumed that the current decoding unit is the 6th point cloud frame in the decoding order, the 0th point cloud frame in the decoding order calculates the classification information once, the 5th point cloud frame calculates the classification information once, and the 10th point cloud frame calculates the classification information once. The 0th point cloud frame to the 4th point cloud frame can be understood as the first calculation period of the classification information, the 5th point cloud frame to the 9th point cloud frame can be understood as the second calculation period of the classification information, and the current decoding unit is in the second calculation period, and then the second calculation period is determined as the calculation period of the classification information corresponding to the current decoding unit.
[0168] After the decoding end determines the calculation period of the classification information corresponding to the current decoding unit according to the above steps, the classification information of the current decoding unit is determined according to the calculation period of the classification information.
[0169] The present application does not limit the specific way in which the decoding end determines the classification information of the current decoding unit according to the calculation period of the classification information corresponding to the current decoding unit.
[0170] In some embodiments, the coding and decoding ends agree that the classification information of the decoding unit in the classification information calculation period is a default value 1, and then the decoding end determines the default value 1 as the classification information of the current decoding unit.
[0171] In some embodiments, the coding and decoding ends agree to calculate the classification information of the decoding unit in the classification information calculation period using a preset calculation method. For example, the current decoding unit is a region of a current point cloud frame, and then the classification information of the current decoding unit can be determined according to the classification information of the point cloud around the current decoding unit in the current point cloud frame.
[0172] In some embodiments, the encoding end writes the classification information of the first decoding unit in a classification information calculation period into the code stream, and does not write the classification information of other decoding units in the classification information calculation period into the code stream. In this way, the decoding end can determine the classification information of the current decoding unit according to the position of the current decoding unit in the classification information calculation period corresponding to the current decoding unit.
[0173] In example 1, if the current decoding unit is the first decoding unit in the classification information calculation period, the point cloud code stream is decoded to obtain the classification information of the current point decoding unit.
[0174] In example 2, 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.
[0175] In this embodiment, the encoding end writes the first parameter and the classification information of the first decoding unit in each classification information calculation period into the point cloud code stream, and does not write the classification information of other decoding units in the classification information calculation period into the point cloud code stream. In this way, after determining the classification information calculation period corresponding to the current decoding unit, the decoding end can determine the classification information of the current decoding unit according to whether the current decoding unit is the first decoding unit in the classification information calculation period.
[0176] Continuing to refer to the above example, assuming that the classification information calculation period corresponding to the current decoding unit is 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 decoding end directly decodes the classification information of the current decoding unit from the code stream. If the current decoding unit is not the 5th point cloud frame, for example, the 6th point cloud frame, the decoding end determines the classification information of the current decoding unit as a default value, or determines the classification information of the current decoding unit according to the decoded information.
[0177] The present application does not limit the specific implementation of determining the classification information of the current decoding unit according to the decoded information in example 2 described above.
[0178] In a possible implementation, the classification information of the current decoding unit is determined according to the classification information of the first decoding unit in the classification information calculation period corresponding to the current decoding unit. For example, the classification information of the first decoding unit in the classification information calculation period is determined as the classification information of the current decoding unit, or the classification information of the first decoding unit in the classification information calculation period is processed to obtain the classification information of the current decoding unit.
[0179] In a possible implementation, the classification information of the current decoding unit is determined according to the following step 11:
[0180] Step 11, determining the classification information of the current decoding unit according to the classification information of M decoding units, the M decoding units being M decoded decoding units before the current decoding unit in the decoding order, M being a positive integer.
[0181] The embodiment of the present application does not limit the specific selection manner of the above-mentioned M decoding units.
[0182] In some embodiments, the above-mentioned M decoding units are sequentially adjacent in the decoding order without interval.
[0183] In some embodiments, the above-mentioned M decoding units can be any M decoding units before the current decoding unit in the decoding order, that is, the M decoding units can be adjacent or not completely adjacent, and the embodiment of the present application does not limit this.
[0184] Due to the specific relevance between the contents of adjacent point cloud frames, in this implementation manner, in the decoded information, M decoding units before the current decoding unit in the decoding order are obtained, and the classification information of the current decoding unit is determined according to the classification information of the M decoding units.
[0185] The implementation manner of step 11 of determining the classification information of the current decoding unit according to the classification information of the M decoding units includes at least the following several examples:
[0186] In the first example, if M is equal to 1, the classification information of one decoding unit before the current decoding unit in the decoding order is determined as the classification information of the current decoding unit. For example, the current decoding unit is the 6th point cloud frame in the decoding order, and the classification information of the 5th point cloud frame in the decoding order is determined as the classification information of the current decoding unit.
[0187] In the second example, if M is greater than 1, the classification information of the M decoding units is preprocessed, and the processing result is determined as the classification information of the current decoding unit.
[0188] 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.
[0189] For another example, the weighted average value of the classification information of the M decoding units is determined as the classification information of the current decoding unit. Optionally, the closer the M decoding units are to the current decoding unit in the decoding order, the greater the weight, and the farther the M decoding units are from the current decoding unit in the decoding order, the smaller the weight.
[0190] In addition to determining the classification information of the current decoding unit by the above-mentioned manner 1, the decoding end can also determine the classification information of the current decoding unit according to the following manner 2.
[0191] In the second mode, if the first parameter indicates that the classification information is calculated once per K decoding units, the implementation mode of S101-B includes at least the following two examples:
[0192] Example 1: If the current decoding unit is the NKth decoding unit in the decoding order, the point cloud bitstream is decoded to obtain the classification information of the current decoding unit, where K and N are positive integers.
[0193] 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 a default value.
[0194] In the second mode, the classification information calculation period of each decoding unit in the point cloud series is the same, for example, the classification information is calculated once per K decoding units. In this way, the encoding end writes the classification information of the decoding units numbered 0 and the integer multiples of K (i.e., the NKth decoding unit) in the decoding order into the bitstream, and does not write the classification information of the decoding units not numbered the integer multiples of K (i.e., the non-NKth decoding unit) into the bitstream, thereby reducing the bitstream burden. Correspondingly, when the decoding end decodes the current decoding unit, it is determined whether the current decoding unit is the NKth decoding unit in the decoding order, that is, whether the serial 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 bitstream. If the current decoding unit is not the NKth decoding unit in the decoding order, a default value is determined as the classification information of the current decoding unit, or the classification information of the current decoding unit is determined according to the decoded information.
[0195] In the second implementation mode, if the first parameter indicates that the classification information is calculated once per K decoding units, the decoding end decodes the classification information from the bitstream once per K decoding units, which can reduce the decoding times of the decoding end. For example, the point cloud series includes 1000 point cloud frames, and it is assumed that one point cloud frame is taken as one decoding unit. In this way, the decoding times of the decoding end is 1000 / K, instead of 1000 times, which greatly reduces the decoding times, reduces the decoding burden of the decoding end, and improves the decoding efficiency.
[0196] In the second mode, 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 according to the decoded information can refer to the descriptions of steps 11 and 12, which will not be described here.
[0197] In the embodiments of the present application, the classification information of the current decoding unit can be determined according to the above modes.
[0198] The classification information can be understood as information required for classifying the point cloud into different categories. Embodiments of the present application do not limit the specific forms of the classification information.
[0199] In some embodiments, the classification information includes at least one of a first height threshold and a second height threshold, the first height threshold and the second height threshold being used for classification of the point cloud in the current decoding unit.
[0200] Optionally, at least one of the first height threshold and the second height threshold is a preset value.
[0201] Optionally, at least one of the first height threshold and the second height threshold is a statistical value. For example, Figure 5 As shown, the height values of the points in the point cloud are counted using a histogram, the horizontal axis of the histogram being the height values of the points in the point cloud, and the vertical axis of the histogram being the number of points at the height values. Figure 5 The radar point cloud is taken as an example for counting, and the height of the radar is taken as the height zero point, so that the height values of most points are negative values. Then, the height value corresponding to the peak value of the histogram is obtained, and the standard deviation of the height values is calculated. Then, the threshold value higher than the center a times (for example, 1.5 times) of the standard deviation is taken as the first height threshold Top_thr, and the threshold value lower than the center b times (for example, 1.5 times) of the standard deviation is taken as the second height threshold Bottom_thr.
[0202] The first height threshold and the second height threshold divide the point cloud into different categories. For example, the point cloud whose height value is between the first height threshold and the second height threshold in the point cloud is recorded as the first category of point cloud, and the point cloud whose height value is greater than the first height threshold and whose height value is less than the second height threshold is recorded as the second category of point cloud.
[0203] In some embodiments, if the classification information includes at least one of the first height threshold and the second height threshold, the first parameter classification_period can include at least one of a first sub-parameter top_threshold_period and a second sub-parameter bottom_threshold_period.
[0204] The first sub-parameter top_threshold_period is used to indicate the calculation period of the first height threshold, and the second sub-parameter bottom_threshold_period is used to indicate the calculation period of the second height threshold.
[0205] The first sub-parameter and the second sub-parameter can be independently assigned.
[0206] Optionally, the calculation period of the first height threshold and the calculation period of the second height threshold can be the same or different, and the embodiments of the present application do not limit this.
[0207] The specific process of determining the classification information of the current decoding unit according to the first parameter in S101-B is introduced above, and the specific implementation process of determining the motion vector information of the current decoding unit according to the second parameter in S101-B is introduced below.
[0208] The specific implementation manner of determining the motion vector information of the current decoding unit according to the second parameter in S101-B includes but is not limited to the following several manners:
[0209] Manner 1, S101-B includes the following steps of S101-B-21 and S101-B-22:
[0210] S101-B-21, determining the motion vector information calculation period corresponding to the current decoding unit according to the second parameter;
[0211] S101-B-22, determining the motion vector information of the current decoding unit according to the motion vector information calculation period.
[0212] In the embodiments of the present application, the motion vector information calculation periods corresponding to different decoding units in the point cloud sequence can be the same or different, and the embodiments of the present application do not limit this.
[0213] In some embodiments, if the motion vector information calculation periods corresponding to different decoding units in the point cloud sequence are the same, one second parameter can be written in the code stream to indicate the motion vector information calculation periods of the decoding units in the point cloud sequence. For example, the second parameter indicates that the motion vector information is calculated once every R decoding units.
[0214] In some embodiments, if the motion vector information calculation periods corresponding to different decoding units in the point cloud sequence are not completely the same, multiple second parameters can be written in the code stream to indicate the motion vector information calculation periods corresponding to the decoding units in the point cloud sequence. For example, three second parameters are written in the code stream, wherein the first second parameter indicates that the motion vector information is calculated once every R1 decoding units, the second second parameter indicates that the motion vector information is calculated once every R2 decoding units, and the third second parameter indicates that the motion vector information is calculated once every R3 decoding units.
[0215] As can be seen from the above, no matter in which form the second parameter indicates the calculation period of the motion vector information, the motion vector information calculation period corresponding to the current decoding unit can be determined according to the second parameter decoded from the bitstream for the current decoding unit. For example, the current decoding unit is a current point cloud frame, the second parameter indicates that the motion vector information is calculated once every 4 point cloud frames, it is assumed that the current decoding unit is the 6th point cloud frame in the decoding order, the 0th point cloud frame in the decoding order calculates the motion vector information once, the 5th point cloud frame calculates the motion vector information once, and the 10th point cloud frame calculates the motion vector information once. The 0th point cloud frame to the 4th point cloud frame can be understood as the first calculation period of the motion vector information, the 5th point cloud frame to the 9th point cloud frame can be understood as the second calculation period of the motion vector information, and the current decoding unit is in the second calculation period, and then the second calculation period is determined as the motion vector information calculation period corresponding to the current decoding unit.
[0216] After the decoding end determines the motion vector information calculation period corresponding to the current decoding unit according to the above steps, the motion vector information of the current decoding unit is determined according to the motion vector information calculation period.
[0217] The present application does not limit the specific way in which the decoding end determines the motion vector information of the current decoding unit according to the motion vector information calculation period corresponding to the current decoding unit.
[0218] In some embodiments, the encoding and decoding ends agree that the motion vector information of the decoding unit in the motion vector information calculation period is a default value 1, and then the decoding end determines the default value 1 as the motion vector information of the current decoding unit.
[0219] In some embodiments, the encoding and decoding ends agree to calculate the motion vector information of the decoding unit in the motion vector information calculation period by using a preset calculation method. For example, the current decoding unit is a region of a current point cloud frame, and the motion vector information of the current decoding unit can be determined according to the motion vector information of the decoded regions around the current decoding unit in the current point cloud frame.
[0220] In some embodiments, the encoding end writes the motion vector information of the first decoding unit in a motion vector information calculation period into the bitstream, and the motion vector information of other decoding units in the motion vector information calculation period is not written into the bitstream. In this way, the decoding end can determine the motion vector information of the current decoding unit according to the position of the current decoding unit in the motion vector information calculation period corresponding to the current decoding unit.
[0221] Example 1: If the current decoding unit is the first decoding unit in the motion vector information calculation period, the motion vector information of the current point decoding unit is obtained by decoding the point cloud bitstream.
[0222] In example 2, 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 the decoded information or a default value.
[0223] In this embodiment, the encoder writes the second parameter and the motion vector information of the first decoding unit in each motion vector information calculation period into the point cloud bitstream, and does not write the motion vector information of other decoding units in the motion vector information calculation period into the point cloud bitstream. In this way, after determining the motion vector information calculation period corresponding to the current decoding unit, the decoder can determine the motion vector information of the current decoding unit according to whether the current decoding unit is the first decoding unit in the motion vector information calculation period.
[0224] Continuing to refer to the above example, assuming that the motion vector information calculation period corresponding to the current decoding unit is 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 motion vector information of the current decoding unit as a default value or according to the decoded information.
[0225] The present application does not limit the specific implementation of determining the motion vector information of the current decoding unit according to the decoded information in example 2.
[0226] In a possible implementation, the motion vector information of the current decoding unit is determined according to the motion vector information of the first decoding unit in the motion vector information calculation period corresponding to the current decoding unit. For example, the motion vector information of the first decoding unit in 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 in the motion vector information calculation period is processed to obtain the motion vector information of the current decoding unit.
[0227] In a possible implementation, the motion vector information of the current decoding unit is determined according to the following step 21:
[0228] Step 21, determining the motion vector information of the current decoding unit according to the motion vector information of S decoding units, the S decoding units being S decoded decoding units before the current decoding unit in the decoding order, and S being a positive integer.
[0229] The present application does not limit the specific selection of the above S decoding units.
[0230] In some embodiments, the S decoding units are sequentially adjacent without interval in the decoding order.
[0231] In some embodiments, the S decoding units can be any S decoding units before the current decoding unit in the decoding order, i.e., the S decoding units can be adjacent or not completely adjacent, and the embodiments of the present application do not limit this.
[0232] Due to the specific relevance between the contents of adjacent point cloud frames, in this implementation, the decoding end obtains, from the decoded information, S decoding units before the current decoding unit in the decoding order, and determines the motion vector information of the current decoding unit according to the motion vector information of the S decoding units.
[0233] The implementation of step 21 of determining the motion vector information of the current decoding unit according to the motion vector information of the S decoding units includes at least the following examples:
[0234] In the first example, if S is equal to 1, the motion vector information of one decoding unit before 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 6th point cloud frame in the decoding order, the motion vector information of the 5th point cloud frame in the decoding order is determined as the motion vector information of the current decoding unit.
[0235] In the second example, if S is greater than 1, the motion vector information of the S decoding units is preprocessed, and the processing result is determined as the motion vector information of the current decoding unit.
[0236] For example, the average of the motion vector information of the S decoding units is determined as the motion vector information of the current decoding unit.
[0237] For another example, the weighted average of the motion vector information of the S decoding units is determined as the motion vector information of the current decoding unit. Optionally, the closer the S decoding units are to the current decoding unit in the decoding order, the greater the weight, and the farther the S decoding units are from the current decoding unit in the decoding order, the smaller the weight.
[0238] In addition to determining the motion vector information of the current decoding unit by the above-mentioned manner 1, the decoding end can also determine the motion vector information of the current decoding unit according to the following manner 2.
[0239] If the second parameter indicates that the motion vector information is calculated once every R decoding units, the implementation of S101-B includes at least the following two examples:
[0240] In example 1, if the current decoding unit is the NRth decoding unit in the decoding order, the point cloud bitstream is decoded to obtain the motion vector information of the current decoding unit, and R and N are positive integers.
[0241] In example 2, if the current decoding unit is not the NRth decoding unit in the decoding order, the motion vector information of the current decoding unit is determined according to the decoded information or a default value.
[0242] In this manner 2, the motion vector information calculation period of each decoding unit in the point cloud series is the same, for example, the motion vector information is calculated once every R decoding units. In this way, the encoding end writes the motion vector information of the decoding units numbered 0 and the integer multiples of R (i.e., the NRth decoding unit) in the decoding order into the bitstream, and does not write the motion vector information of the decoding units not numbered the integer multiples of R (i.e., the non-NRth decoding unit) into the bitstream, thereby reducing the bitstream burden. Correspondingly, when the decoding end decodes the current decoding unit, it is determined whether the current decoding unit is the NRth decoding unit in the decoding order, that is, whether the serial 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 bitstream. If the current decoding unit is not the NRth decoding unit in the decoding order, a 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 according to the decoded information.
[0243] In this implementation manner 2, if the second parameter indicates that the motion vector information is calculated once every R decoding units, the decoding end decodes the motion vector information from the bitstream once every R decoding units, which can reduce the decoding times of the decoding end. For example, the point cloud series includes 1000 point cloud frames, and it is assumed that one point cloud frame is taken as one decoding unit. In this way, the decoding times of the decoding end is 1000 / R, instead of 1000 times, which greatly reduces the decoding times, reduces the decoding burden of the decoding end, and improves the decoding efficiency.
[0244] In this manner 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 according to the decoded information can refer to the descriptions of steps 21 and 22 above, and will not be described here.
[0245] In addition to determining the motion vector information of the current decoding unit according to the methods shown in the above manner 1 and manner 2, the decoding end can also determine the motion vector information of the current decoding unit according to the following manner 3.
[0246] In the third mode, the decoding end determines the motion vector information according to the variation degree 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 step 1 and step 2:
[0247] Step 1, determining the variation degree of the classification information according to the first parameter;
[0248] Step 2, determining the motion vector information of the current decoding unit according to the variation degree.
[0249] In the embodiments of the present application, if the classification information of different decoding units varies little, it indicates that the motion vector information of different decoding units may also vary little. Conversely, if the classification information of different decoding units varies greatly, it indicates that the motion vector information of different decoding units may also vary greatly. Therefore, the motion vector information of the current decoding unit can be determined according to the variation degree of the classification information of different decoding units.
[0250] The embodiments of the present application do not limit the specific implementation of the step 1 of determining the variation degree of the classification information of the point cloud according to the first parameter.
[0251] In some embodiments, the classification information of a plurality of decoding units is determined according to the first parameter, and the variation degree of the classification information is determined according to the classification information of the plurality of decoding units. For example, if the classification information of the plurality of decoding units varies greatly, it indicates that the variation degree of the classification information is great, and if the classification information of the plurality of decoding units varies little, it indicates that the variation degree of the classification information is small.
[0252] In some embodiments, the variation degree of the classification information is determined according to the classification information of the current decoding unit and the classification information of the reference decoding unit of the current decoding unit.
[0253] For example, the classification information of the current decoding unit is determined according to the first parameter, and the specific process can refer to the description of the above embodiments, which will not be described here. Then, the variation degree 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 variation degree of the classification information.
[0254] According to the above method, after the variation degree of the classification information is determined, the motion vector information of the current decoding unit is determined according to the variation degree of the classification information.
[0255] For example, if the variation degree of the classification information is less than or equal to a first preset value, the motion vector information of the previous decoding unit of the current decoding unit in the decoding order or a default value is determined as the motion vector information of the current decoding unit.
[0256] For another example, if the variation degree is greater than the first preset value, the point cloud code stream is decoded to obtain the motion vector information of the current decoding unit.
[0257] In the embodiments of this application, according to the above manner, the motion vector information of the current decoding unit can be determined.
[0258] The motion vector information can be understood as the motion information required for inter-frame prediction at the decoding end. The specific form of the motion vector information is not limited in the embodiments of this application.
[0259] In some embodiments, the motion vector information includes at least one of a rotation matrix and an offset vector. The rotation matrix describes the three-dimensional rotation of the decoding unit and the reference decoding unit, and the offset vector describes the offset amount of the coordinate origin of the decoding unit and the reference decoding unit in three directions.
[0260] In an example, when the rotation matrix is , it indicates that the current decoding unit does not rotate compared with the reference decoding unit.
[0261] In an example, when the offset vector is , it indicates that the coordinate origin of the current decoding unit does not offset compared with the reference decoding unit.
[0262] If the current decoding unit does not rotate and offset compared with the reference decoding unit, the motion vector between the two decoding units is recorded as zero motion vector.
[0263] In some embodiments, if the motion vector information includes at least one of the rotation matrix and the offset vector, correspondingly, the second parameter motion_period includes at least one of the third sub-parameter rotation_matrix_period and the fourth sub-parameter translation_vector_period.
[0264] 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.
[0265] The third sub-parameter and the fourth sub-parameter can be independently assigned.
[0266] Optionally, the calculation period of the rotation matrix and the calculation period of the offset vector can be the same or different, and the embodiments of this application do not limit this.
[0267] In some embodiments, if the current decoding unit is the first decoding unit in the decoding order, i.e., the decoding order number is 0, the encoder writes at least one of the classification information and the motion vector information of the current decoding unit into the point cloud bitstream. In this way, the decoder can decode the point cloud bitstream to directly obtain at least one of the classification information and the motion vector information of the current decoding unit.
[0268] In the embodiments of the present application, after the decoder determines at least one of the classification information and the motion vector information of the current decoding unit according to the above steps, the decoder performs the following step S102.
[0269] S102, decoding the current decoding unit according to at least one of the classification information and the motion vector information of the current decoding unit.
[0270] Since different objects have different motions, in order to improve the decoding accuracy, the category of the point cloud in the current decoding unit is determined according to 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, and the motion vector information of the road points and the object points is different,
[0271] The embodiments of the present application do not limit the specific process of decoding the current decoding unit according to at least one of the classification information and the motion vector information of the current decoding unit in the above S102.
[0272] 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 according to the classification information. Different motion vector information is assigned to each category, wherein the motion vector information assigned to different categories can be a preset value corresponding to different categories or a value calculated according to the category, and the embodiments of the present application do not limit this.
[0273] 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, the decoder can determine the classification information of the current decoding unit by itself, for example, according to the decoding information of the already decoded units around the current decoding unit. Then, the point cloud in the current decoding unit is divided into multiple categories according to the classification information. The motion vector information of the point cloud of each category in the current decoding unit is determined according to the motion vector information of the current decoding unit. For example, the current decoding unit includes first category point cloud and second category point cloud, the above determined motion vector information can be determined as the motion vector information of the first category point cloud, and the motion vector information of the second category point cloud is a preset value, for example, a zero vector.
[0274] 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, the S102 includes the following steps:
[0275] S102-A, according to the classification information of the current decoding unit, the point cloud in the current decoding unit is divided into P classes of point clouds, P is a positive integer greater than 1.
[0276] In this embodiment, the decoding end divides the point cloud in the current decoding unit into P classes of point clouds according to the classification information of the current decoding unit, determines the motion vector information corresponding to the P classes of point clouds according to the motion vector information of the current decoding unit, and then decodes the current decoding unit according to the motion vector information corresponding to the P classes of point clouds. That is, in the embodiment of the application, different motion vector information is used to decode different categories of point clouds in the current decoding unit, thereby improving the accuracy of decoding.
[0277] The embodiment of the application does not limit the specific type of S102-A, which divides the point cloud in the current decoding unit into P classes of point clouds according to the classification information of the current decoding unit.
[0278] In some embodiments, the classification information of the current decoding unit can be a category identifier, for example, each point in the current decoding unit includes a category identifier, so that the point cloud in the current decoding unit can be divided into P classes of point clouds according to the category identifier.
[0279] 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, and the S102-A includes the following steps:
[0280] S102-A1, according to the first height threshold and the second height threshold, the point cloud in the current decoding unit is divided into P classes of point clouds.
[0281] For example, the point cloud with a height value greater than the first height threshold in the current decoding unit is divided into a class of point clouds, the point cloud with a height value between the first height threshold and the second height threshold in the current decoding unit is divided into a class of point clouds, and the point cloud with a height value less than the second height threshold in the current decoding unit is divided into a class of point clouds.
[0282] For another example, the point cloud with a height value less than or equal to the first height threshold and greater than or equal to the second height threshold in the current decoding unit is divided into a first class of point clouds, and the point cloud with a height value greater than the first height threshold or less than the second height threshold in the current decoding unit is divided into a second class of point clouds.
[0283] 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.
[0284] According to the above steps, the point cloud in the current decoding unit is divided into P-type point clouds, and then the motion vector information corresponding to the P-type point cloud is determined according to 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 a type of point cloud in the P-type point cloud, and the motion vector information of other types of point clouds in the P-type point cloud can be a preset value.
[0285] In an example, the P-type point cloud includes the first type of point cloud and the second type of point cloud described above, and the motion vector information of the current decoding unit can be determined as the motion vector information of the second type of point cloud, and the motion vector information of the first type of point cloud is a preset value, for example, a zero vector.
[0286] Taking the vehicle-mounted point cloud as an example, the first type of point cloud can be understood as a road point cloud, and the second type of point cloud can be understood as a non-road point cloud. Since the road changes little, the non-road point cloud is the focus of study, and 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, i.e., zero motion, i.e., the motion vector information of the road point is a zero vector.
[0287] S102-C, decode the current decoding unit according to the motion vector information corresponding to the P-type point cloud.
[0288] According to the above method, the motion vector information corresponding to the P-type point cloud in the current decoding unit is determined, and then the current decoding unit is decoded according to the motion vector information corresponding to the P-type point cloud.
[0289] The embodiments of the present application do not limit the specific implementation of decoding the current decoding unit according to the motion vector information corresponding to the P-type point cloud.
[0290] In some embodiments, the decoding end can determine the 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 the prediction information of the current decoding unit, and decode at least one of the geometric information and the attribute information of the current decoding unit according to the prediction information.
[0291] In an example, taking decoding the geometric information of the current decoding unit according to the prediction information as an example, the prediction information can be understood as a prediction unit of the current decoding unit. In this way, the spatial occupation of the current decoding unit can be predicted according to the spatial occupation of the prediction unit, and then the geometric code stream of the current decoding unit is decoded according to the predicted spatial occupation of the current decoding unit to obtain the geometric information of the current decoding unit.
[0292] In another example, the prediction information can be understood as a prediction unit of the current decoding unit, and the attribute information of the current decoding unit is decoded according to the prediction information. In this way, for each point in the current decoding unit, at least one reference point of the point is obtained in the prediction unit, the attribute information of the point is predicted according to the attribute information of the at least one reference point, and an attribute prediction value of the point is obtained. Then, the attribute code stream is decoded to obtain an attribute residual value of the point, and the attribute reconstruction value of the point is determined according to the attribute prediction value and the attribute residual value of the point. According to the above method, the attribute reconstruction value of each point in the current decoding unit can be determined, and the attribute reconstruction value of the current decoding unit is further obtained.
[0293] It should be noted that the decoding end can also use a method of decoding the current decoding unit according to at least one of the classification information and the motion vector information of the current decoding unit, and the embodiments of the present application do not limit this.
[0294] The point cloud decoding method provided by the embodiments of the present application includes the following steps.
[0295] The point cloud decoding method provided by the embodiments of the present application is described in detail above by taking the decoding end as an example. The point cloud encoding method provided by the embodiments of the present application is described below by taking the encoding end as an example.
[0296] Figure 6 The point cloud encoding method provided by an embodiment of the present application is shown in the flowchart. The point cloud encoding method of the embodiments of the present application can be completed by the point cloud encoding device shown in the point cloud encoding method provided by the embodiments of the present application. Figure 1 Or Figure 2 The point cloud encoding method provided by an embodiment of the present application is shown in the flowchart. The point cloud encoding method of the embodiments of the present application can be completed by the point cloud encoding device shown in the point cloud encoding method provided by the embodiments of the present application.
[0297] As shown in Figure 6 The point cloud decoding method provided by the embodiments of the present application includes the following steps.
[0298] S201, at least one of the first parameter and the second parameter is determined.
[0299] 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.
[0300] As described above, the adjacent frames in the continuously collected point cloud sequence have high correlation, and therefore, inter-frame prediction can be introduced to improve the point cloud coding efficiency.
[0301] The inter-frame prediction mainly includes steps such as motion estimation and motion compensation. In some embodiments, in the motion estimation step, the spatial motion offset vector of the adjacent two frames is calculated and written into the code stream. 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.
[0302] The embodiments of the present application do not limit the specific content of the motion vector information of the current coding unit, and can be motion information involved in steps such as motion estimation and motion compensation.
[0303] For example, the motion vector information can be the spatial motion offset vector of the adjacent two frames in the motion estimation, that is, the motion vector.
[0304] For another example, the motion vector information can also be the motion estimation ME (Motion Estimation) between the adjacent two frames in the motion compensation.
[0305] In actual scenarios, different objects can have different motions. For example, taking the point cloud data captured by a laser radar sensor on a moving vehicle as an example, the road and the objects in the point cloud data usually have different motions. Since the distance between the road and the radar sensor is relatively constant, and the road has a slight change from one vehicle position to the next vehicle position, the movement of the points representing the road relative to the radar sensor position is small. 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 road and object points will improve the accuracy of global motion estimation and compensation, thereby improving the compression efficiency. That is, for point cloud data using inter-frame prediction, in order to improve the accuracy of inter-frame prediction and improve the compression efficiency, for a coding unit, the point cloud in the coding unit needs to be classified, for example, the point cloud in the coding unit is divided into road point cloud and non-road point cloud.
[0306] In the embodiments of the present application, in order to avoid calculating the classification information and the motion vector information once for each coding unit, at least one of the first parameter and the 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 calculate the classification information periodically according to the classification information calculation period indicated by the first parameter, and / or calculate the motion vector information periodically according to the motion vector information calculation period indicated by the second parameter, thereby reducing the number of times of calculating the classification information and / or the motion vector information, and improving the encoding efficiency.
[0307] In some embodiments, the calculation period of the 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.
[0308] In some embodiments, the calculation period of the 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.
[0309] Optionally, the first parameter can be represented by classification_period.
[0310] Optionally, the second parameter can be represented by motion_period.
[0311] Optionally, the first parameter and the second parameter can have different representations, for example, can be set as classification_period_log2 and motion_period_log2, respectively representing the calculation period of the classification information taking 2 logarithms and the calculation period of the motion vector taking 2 logarithms, which still belong to the protection scope of the present application.
[0312] In some embodiments, at least one of the first parameter and the second parameter is a preset value.
[0313] In some embodiments, at least one of the first parameter and the second parameter is a user input parameter.
[0314] S202, according to at least one of the first parameter and the second parameter, determining at least one of the classification information and the motion vector information of the current coding unit.
[0315] In the point cloud encoding process, the point cloud data can be divided into at least one coding unit, the encoding process of each coding unit is independent, and the decoding process of each coding unit is basically consistent. In order to facilitate description, the embodiments of the present application take the coding unit currently being encoded, i.e. the current coding unit, as an example for description.
[0316] The embodiments of the present application do not limit the specific size of the current coding unit, and the specific size can be determined according to actual needs.
[0317] In some embodiments, the current coding unit is a current point cloud frame, that is, one point cloud frame can be encoded as one coding unit.
[0318] In some embodiments, the current coding unit is a partial region of the current point cloud frame, for example, the current point cloud frame is divided into multiple regions, and one region is encoded as one coding unit.
[0319] The embodiments of the present application do not limit the specific way of dividing the current point cloud frame into multiple regions.
[0320] In one example, the current point cloud frame is divided into multiple point cloud slices, and the sizes of the multiple point cloud slices can be the same or not completely the same, one point cloud slice is encoded as one coding unit.
[0321] In another example, the current point cloud frame is divided into multiple point cloud blocks, and the sizes of the multiple point cloud blocks can be the same or not completely the same, one point cloud block is encoded as one coding unit.
[0322] In the embodiments of the present application, the specific implementation 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 the above S202 includes but is not limited to the following several ways:
[0323] In one example, the encoding end determines at least one of the classification information and the motion vector information through the following steps S202-A:
[0324] S202-A, determining the classification information of the current coding unit according to the first parameter, and / or determining the motion vector information of the current coding unit according to the second parameter.
[0325] It should be noted that the above first parameter and second parameter can be used alone, in one example, the encoding end can determine the classification information of the current coding unit according to the first parameter, and obtain the motion vector information of the current coding unit according to the existing method. In another example, the encoding end can determine the motion vector information of the current coding unit according to the second parameter, and obtain the classification information of the current coding unit according to the existing method. In yet another example, the encoding end can determine the classification information of the current coding unit according to the first parameter, and determine the motion vector information of the current coding unit according to the second parameter.
[0326] In the first mode, the encoding end determines the classification information of the coding unit according to the first parameter, instead of determining the classification information of the point cloud in each coding unit one by one. And / or, the encoding end determines the motion vector information of the coding unit according to the second parameter, instead of determining the motion vector information of each coding unit one by one.
[0327] The following describes the specific process of determining the classification information of the current coding unit according to the first parameter by the encoding end in S202-A.
[0328] The specific implementation of determining the classification information of the current coding unit according to the first parameter by the encoding end in S202-A includes but is not limited to the following modes:
[0329] In mode 1, S202-A includes the following steps of S202-A-11 and S202-A-12:
[0330] S202-A-11, determining a classification information calculation period corresponding to the current coding unit according to the first parameter;
[0331] S202-A-12, determining the classification information of the current coding unit according to the classification information calculation period.
[0332] In the embodiments of the present application, the classification information calculation periods corresponding to different coding units in the point cloud sequence can be the same or different, and the present application does not limit this.
[0333] In some embodiments, the first parameter indicates the classification information calculation period of each coding unit in the point cloud sequence. For example, the first parameter indicates that the classification information is calculated once every K coding units.
[0334] In some embodiments, the classification information calculation periods corresponding to different coding units in the point cloud sequence are not completely the same, and then a plurality of first parameters can be used to indicate the classification information calculation periods of each coding unit in the point cloud sequence. For example, three first parameters are determined, wherein the first first parameter indicates that the classification information is calculated once every K1 coding units, the second first parameter indicates that the classification information is calculated once every K2 coding units, and the third first parameter indicates that the classification information is calculated once every K3 coding units.
[0335] From the above, no matter what form the first parameter indicates the calculation period of the classification information, the classification information calculation period corresponding to the current coding unit can be determined according to the first parameter for the current coding unit. For example, the current coding unit is a current point cloud frame, 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 0th point cloud frame in the coding order calculates the classification information once, the 5th point cloud frame calculates the classification information once, and the 10th point cloud frame calculates the classification information once. The 0th point cloud frame to the 4th point cloud frame can be understood as the first calculation period of the classification information, the 5th point cloud frame to the 9th point cloud frame can be understood as the second calculation period of the classification information, and the current coding unit is in the second calculation period, and then the second calculation period is determined as the classification information calculation period corresponding to the current coding unit.
[0336] After the encoding end determines the classification information calculation period corresponding to the current coding unit according to the above steps, the classification information of the current coding unit is determined according to the classification information calculation period.
[0337] The embodiment of the present application does not limit the specific way in which the encoding end determines the classification information of the current coding unit according to the classification information calculation period corresponding to the current coding unit.
[0338] In some embodiments, the encoding and decoding ends agree that the classification information of the coding unit in the classification information calculation period is a default value 1, and then the encoding end determines the default value 1 as the classification information of the current coding unit.
[0339] In some embodiments, the encoding and decoding ends agree to calculate the classification information of the coding unit in the classification information calculation period using a preset calculation method. For example, the current coding unit is a region of a current point cloud frame, and the classification information of the current coding unit can be determined according to the classification information of the point cloud around the current coding unit in the current point cloud frame.
[0340] In some embodiments, the encoding end can determine the classification information of the current coding unit according to the position of the current coding unit in the classification information calculation period corresponding to the current coding unit.
[0341] Example 1, if the current coding unit is the first coding unit in the classification information calculation period, the classification information of the current point coding unit is obtained by identifying the category of the point cloud in the current point coding unit.
[0342] 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 coded information or the default value.
[0343] In this embodiment, after determining the classification information calculation period corresponding to the current coding unit, the encoder can 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.
[0344] With reference to the above example, assume that the classification information calculation period corresponding to the current coding unit is the 5th point cloud frame to the 9th point cloud frame, if the current coding unit is the 5th point cloud frame in the coding order, the encoder identifies the category of the point cloud in the current point coding unit to obtain the classification information of the current point coding unit. If the current coding unit is not the 5th point cloud frame, for example, the 6th point cloud frame, the encoder determines a default value as the classification information of the current coding unit, or determines the classification information of the current coding unit according to the coded information.
[0345] The present application does not limit the specific implementation of determining the classification information of the current coding unit according to the coded information in the above example 2.
[0346] In a possible implementation, the classification information of the current coding unit is determined according to the classification information of the first coding unit in the classification information calculation period corresponding to the current coding unit. For example, the classification information of the first coding unit in 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 in the classification information calculation period is processed to obtain the classification information of the current coding unit.
[0347] In a possible implementation, the classification information of the current coding unit is determined according to the following step 11:
[0348] Step 11, determining the classification information of the current coding unit according to the classification information of M coding units, the M coding units being M coded coding units before the current coding unit in the coding order, and M being a positive integer.
[0349] The present application does not limit the specific selection of the above M coding units.
[0350] In some embodiments, the above M coding units are sequentially adjacent in the coding order without interval.
[0351] In some embodiments, the above M coding units can be any M coding units before the current coding unit in the coding order, that is, the M coding units can be adjacent or not completely adjacent, and the present application does not limit this.
[0352] Due to the specific relevance between the contents of adjacent point cloud frames, in this implementation mode, the encoding end obtains M encoding units before the current encoding unit in the encoding order from the encoded information, and determines the classification information of the current encoding unit according to the classification information of the M encoding units.
[0353] The implementation mode of determining the classification information of the current encoding unit according to the classification information of the M encoding units in step 12 at least includes the following several examples:
[0354] In a first example, if M is equal to 1, the classification information of one encoding unit before the current encoding unit in the encoding order is determined as the classification information of the current encoding unit. For example, if the current encoding unit is the 6th point cloud frame in the encoding order, the classification information of the 5th point cloud frame in the encoding order is determined as the classification information of the current encoding unit.
[0355] In a second example, if M is greater than 1, the classification information of the M encoding units is preprocessed, and the processing result is determined as the classification information of the current encoding unit.
[0356] For example, the average value of the classification information of the M encoding units is determined as the classification information of the current encoding unit.
[0357] For another example, the weighted average value of the classification information of the M encoding units is determined as the classification information of the current encoding unit. Optionally, the closer the M encoding units are to the current encoding unit in the encoding order, the greater the weight, and the farther the M encoding units are from the current encoding unit in the encoding order, the smaller the weight.
[0358] In some embodiments of the above mode 1, the encoding end writes the first parameter into the point cloud bitstream, and if the current encoding unit is the first encoding unit in the classification information calculation period, the classification information of the current encoding unit is written into the point cloud bitstream.
[0359] In some embodiments of the above mode 1, the first parameter is written into the point cloud bitstream, and if the current encoding unit is not the first encoding unit in the classification information calculation period, the classification information of the current encoding unit is skipped to be written into the point cloud bitstream.
[0360] That is, in this mode 1, the encoding end can also write the first parameter into the bitstream, and write the classification information of the first encoding unit in the classification information calculation period into the bitstream, and the classification information of the encoding unit located in the middle of the classification information calculation period (i.e., the first encoding unit in the calculation period) is not written into the bitstream, which can reduce the burden of the bitstream.
[0361] In some embodiments, in the manner 1, the encoder writes the classification information of the current coding unit into the point cloud bitstream, and skips writing the first parameter into the point cloud bitstream.
[0362] In addition to determining the classification information of the current coding unit by the above-mentioned manner 1, the encoder can also determine the classification information of the current coding unit according to the following manner 2.
[0363] In the manner 2, if the first parameter indicates that the classification information is calculated once every K coding units, the implementation manner of the above-mentioned S202-A at least includes the following two examples:
[0364] Example 1, if the current coding unit is the NKth coding unit in the coding order, the classification information of the current point coding unit is determined by identifying the category of the point cloud in the current point coding unit, K and N are both positive integers.
[0365] 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 coded information or a default value.
[0366] In an embodiment of the manner 2, the first parameter is written into the point cloud bitstream, 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 bitstream.
[0367] In another embodiment of the manner 2, the first parameter is written into the point cloud bitstream, and if the current coding unit is not the NKth coding unit in the coding order, the classification information of the current coding unit is skipped to be written into the bitstream.
[0368] In the implementation manner 2, if the first parameter indicates that the classification information is calculated once every K coding units, the encoder writes the classification information of the coding unit numbered 0 or an integer multiple of K into the bitstream, and for other coding units, the classification information is not written into the bitstream. For example, the point cloud sequence includes 1000 point cloud frames, assuming that one point cloud frame is taken as one coding unit, so the number of encoding times of the encoder is 1000 / K, not 1000 times, which greatly reduces the number of encoding times, reduces the encoding burden of the encoder, and improves the encoding efficiency.
[0369] In another embodiment of the manner 2, the classification information of the current coding unit can be written into the point cloud bitstream, and the first parameter is skipped to be written into the point cloud bitstream.
[0370] In the manner 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 according to the coded information can refer to the description of the above-mentioned steps 11 and 12, which will not be described here.
[0371] In the embodiments of the present application, according to the above manner, the classification information of the current coding unit can be determined.
[0372] The classification information can be understood as information required for dividing the point cloud into different categories. The specific forms of the classification information are not limited in the embodiments of the present application.
[0373] 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.
[0374] Optionally, at least one of the first height threshold and the second height threshold is a preset value.
[0375] Optionally, at least one of the first height threshold and the second height threshold is a statistical value. For example, Figure 5 As shown, the height values of the points in the point cloud are counted using a histogram, the horizontal axis of the histogram is the height value of the point in the point cloud, and the vertical axis of the histogram is the number of points at the height value. Figure 5 The radar point cloud is taken as an example for counting, and the height of the radar is taken as the height zero point, so that the height values of most points are negative values. Then, the height value corresponding to the peak value of the histogram is obtained, and the standard deviation of the height value is calculated. Then, the threshold value higher than the center a times (for example, 1.5 times) of the standard deviation is taken as the first height threshold Top_thr, and the threshold value lower than the center b times (for example, 1.5 times) of the standard deviation is taken as the second height threshold Bottom_thr.
[0376] The first height threshold and the second height threshold divide the point cloud into different categories. For example, the point cloud with the height value between the first height threshold and the second height threshold in the point cloud is recorded as the first category of point cloud, and the point cloud with the height value greater than the first height threshold and the height value less than the second height threshold is recorded as the second category of point cloud.
[0377] In some embodiments, if the classification information includes at least one of the first height threshold and the second height threshold, the first parameter classification_period can include at least one of a first sub-parameter top_threshold_period and a second sub-parameter bottom_threshold_period.
[0378] The first sub-parameter top_threshold_period is used to indicate the calculation period of the first height threshold, and the second sub-parameter bottom_threshold_period is used to indicate the calculation period of the second height threshold.
[0379] The first sub-parameter and the second sub-parameter can be independently assigned respectively.
[0380] Optionally, the calculation period of the first height threshold and the calculation period of the second height threshold can be the same or different, and the embodiments of the present application do not limit this.
[0381] The specific process of determining the classification information of the current coding unit according to the first parameter in S202-A is introduced above, and the specific implementation process of determining the motion vector information of the current coding unit according to the second parameter in S202-A is introduced below.
[0382] In the above S202-A, the specific implementation manner of determining the motion vector information of the current coding unit according to the second parameter at the encoding end includes but is not limited to the following several manners:
[0383] Manner 1, the above S202-A includes the following steps of S202-A-21 and S202-A-22:
[0384] S202-A-21, determining the motion vector information calculation period corresponding to the current coding unit according to the second parameter;
[0385] S202-A-22, determining the motion vector information of the current coding unit according to the motion vector information calculation period.
[0386] In the embodiments of the present application, the motion vector information calculation periods corresponding to different coding units in the point cloud sequence can be the same or different, and the embodiments of the present application do not limit this.
[0387] In some embodiments, the second parameter indicates the calculation period of the motion vector information of each coding unit in the point cloud sequence. For example, the second parameter indicates that the motion vector information is calculated once every R coding units.
[0388] In some embodiments, a plurality of second parameters are used to indicate the calculation period of the motion vector information corresponding to each coding unit in the point cloud sequence. For example, three second parameters are determined, wherein the first second parameter indicates that the motion vector information is calculated once every R1 coding units, the second second parameter indicates that the motion vector information is calculated once every R2 coding units, and the third second parameter indicates that the motion vector information is calculated once every R3 coding units.
[0389] As can be seen from the above, no matter in which 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 the current coding unit. For example, the current coding unit is a current point cloud frame, the second parameter indicates that the motion vector information is calculated once every 4 point cloud frames, it is assumed that the current coding unit is the 6th point cloud frame in the coding order, the 0th point cloud frame in the coding order calculates the motion vector information once, the 5th point cloud frame calculates the motion vector information once, and the 10th point cloud frame calculates the motion vector information once, wherein the 0th point cloud frame to the 4th point cloud frame can be understood as the first calculation period of the motion vector information, the 5th point cloud frame to the 9th point cloud frame can be understood as the second calculation period of the motion vector information, and the current coding unit is in the second calculation period, and then the second calculation period is determined as the motion vector information calculation period corresponding to the current coding unit.
[0390] After the encoding end determines the motion vector information calculation period corresponding to the current coding unit according to the above steps, the motion vector information of the current coding unit is determined according to the motion vector information calculation period.
[0391] The embodiments of the present application do not limit the specific manner in which the encoding end determines the motion vector information of the current coding unit according to the motion vector information calculation period corresponding to the current coding unit.
[0392] In some embodiments, the encoding and decoding ends agree that the motion vector information of the coding unit in the motion vector information calculation period is a default value 1, and then the encoding end determines the default value 1 as the motion vector information of the current coding unit.
[0393] In some embodiments, the encoding and decoding ends agree to calculate the motion vector information of the coding unit in the motion vector information calculation period by using a preset calculation method. For example, the current coding unit is a region of a current point cloud frame, and the motion vector information of the current coding unit can be determined according to the motion vector information of the already coded regions around the current coding unit in the current point cloud frame.
[0394] In some embodiments, the encoding end can 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.
[0395] In example 1, 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.
[0396] In 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 coded information or a default value.
[0397] In this embodiment, after determining the motion vector information calculation period corresponding to the current coding unit, the encoder can 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.
[0398] Continuing with the above example, assuming that the motion vector information calculation period corresponding to the current coding unit is 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 cloud coding unit according to 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 motion vector information of the current coding unit as a default value or according to the coded information.
[0399] The present application does not limit the specific implementation of determining the motion vector information of the current coding unit according to the coded information in Example 2 above.
[0400] In one possible implementation, the motion vector information of the current coding unit is determined according to the motion vector information of the first coding unit in the motion vector information calculation period corresponding to the current coding unit. For example, the motion vector information of the first coding unit in 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 in the motion vector information calculation period is processed to obtain the motion vector information of the current coding unit.
[0401] In one possible implementation, the motion vector information of the current coding unit is determined according to the following step 21:
[0402] Step 21: determining the motion vector information of the current coding unit according to the motion vector information of S coding units, the S coding units being S coded coding units before the current coding unit in the encoding order, and S being a positive integer.
[0403] The present application does not limit the specific selection of the S coding units.
[0404] In some embodiments, the S coding units are sequentially adjacent in the encoding order without any interval.
[0405] In some embodiments, the S coding units mentioned above can be any S coding units before the current coding unit in the coding order, i.e., the S coding units can be adjacent or not completely adjacent, and the embodiments of the present application do not limit this.
[0406] Due to the specific correlation between the contents of adjacent point cloud frames, in this implementation, the encoding end obtains S coding units before the current coding unit in the coding order from the coded information, and determines the motion vector information of the current coding unit according to the motion vector information of the S coding units.
[0407] The implementation of step 22 of determining the motion vector information of the current coding unit according to the motion vector information of the S coding units includes at least the following examples:
[0408] In the first example, if S is equal to 1, the motion vector information of one coding unit before 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 6th point cloud frame in the coding order, the motion vector information of the 5th point cloud frame in the coding order is determined as the motion vector information of the current coding unit.
[0409] In the second example, if S is greater than 1, the motion vector information of the S coding units is preprocessed, and the processing result is determined as the motion vector information of the current coding unit.
[0410] For example, the average of the motion vector information of the S coding units is determined as the motion vector information of the current coding unit.
[0411] For another example, the weighted average of the motion vector information of the S coding units is determined as the motion vector information of the current coding unit. Optionally, the closer the S coding units are to the current coding unit in the coding order, the greater the weight, and the farther the S coding units are from the current coding unit in the coding order, the smaller the weight.
[0412] In an embodiment of the above-mentioned manner 1, the second parameter is written into the point cloud bitstream, and if the current coding unit is the first coding unit in the motion vector information calculation period, the motion vector information of the current coding unit is written into the point cloud bitstream.
[0413] In an embodiment of the above-mentioned manner 1, the second parameter is written into the point cloud bitstream, and 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 skipped to be written into the point cloud bitstream.
[0414] That is, in the manner 1, the encoding end can also write the second parameter into the code stream, and write the motion vector information of the first coding unit in the motion vector information calculation period into the code stream, and not write the motion vector information of the coding unit located in the middle of the motion vector information calculation period (i.e. the first coding unit in the non-calculation period) into the code stream, so as to reduce the burden of the code stream.
[0415] In an embodiment of the manner 1, the motion vector information of the current coding unit is written into the point cloud code stream, and the second parameter is skipped to be written into the point cloud code stream.
[0416] In addition to determining the motion vector information of the current coding unit by the above-mentioned manner 1, the encoding end can also determine the motion vector information of the current coding unit according to the following manner 2.
[0417] The manner 2, if the second parameter indicates that the motion vector information is calculated once every R coding units, the implementation manner of the above-mentioned S202-A at least includes the following two examples:
[0418] Example 1, 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.
[0419] Example 2, if the current coding unit is not the NRth coding unit in the coding order, the motion vector information of the current coding unit is determined according to the coded information or the default value.
[0420] In the manner 2, the motion vector information calculation period of each coding unit in the point cloud series is the same, for example, the motion vector information is calculated once every R coding units. In this way, when the encoding end encodes the current coding unit, it is judged whether the current coding unit is the NRth coding unit in the coding order, that is, whether the serial number of the current coding unit in the coding order is an integer multiple of R. If the encoding end determines that 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. If the current coding unit is not the NRth 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 according to the coded information.
[0421] In an embodiment of the manner 2, 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.
[0422] In an embodiment of the manner 2, the second parameter is written into the point cloud bitstream, and if the current coding unit is not the NKth coding unit in the coding order, the motion vector information of the current coding unit is skipped from being written into the point cloud bitstream.
[0423] In the implementation manner 2, if the second parameter indicates that the motion vector information is calculated once per R coding units, the motion vector information is encoded once per R coding units at the encoding end, and the number of encoding times of the motion vector information can be reduced. For example, a point cloud sequence includes 1000 point cloud frames, and it is assumed that one point cloud frame is taken as one coding unit, so that the number of encoding times at the encoding end is 1000 / R, instead of 1000 times, which greatly reduces the number of encoding times, reduces the encoding burden of the encoding end, and improves the encoding efficiency.
[0424] In an embodiment of the manner 2, the motion vector information of the current coding unit is written into the point cloud bitstream, and the second parameter is skipped from being written into the point cloud bitstream.
[0425] In the manner 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 according to the encoded information can refer to the descriptions of the steps 21 and 22, and will not be described here.
[0426] In addition to determining the motion vector information of the current coding unit according to the methods shown in the above manners 1 and 2, the encoding end can also determine the motion vector information of the current coding unit according to the following manner 3.
[0427] In the manner 3, the encoding end determines the motion vector information according to the variation degree of the classification information of the coding unit. That is, the encoding end determines the motion vector information of the current coding unit according to the following steps 1 and 2:
[0428] Step 1, determining the variation degree of the classification information according to the first parameter;
[0429] Step 2, determining the motion vector information of the current coding unit according to the variation degree.
[0430] In the embodiments of the present application, if the classification information of different coding units does not vary much, it means that the motion vector information of different coding units may also not vary much. On the contrary, if the classification information of different coding units varies greatly, it means that the motion vector information of different coding units may also vary greatly. Therefore, the motion vector information of the current coding unit can be determined according to the variation degree of the classification information of different coding units.
[0431] The embodiments of the present application do not limit the specific implementation manners of determining the variation degree of the classification information of the point cloud according to the first parameter in the step 1.
[0432] In some embodiments, according to the first parameter, the classification information of the plurality of coding units is determined, and according to the classification information of the plurality of coding units, the variation degree of the classification information is determined. For example, when the classification information of the plurality of coding units is greatly different, it indicates that the variation degree of the classification information is large, and when the classification information of the plurality of coding units is less different, it indicates that the variation degree of the classification information is small.
[0433] In some embodiments, according to the classification information of the current coding unit and the classification information of the reference coding unit of the current coding unit, the variation degree of the classification information is determined.
[0434] For example, according to the first parameter, the classification information of the current coding unit is determined, and the specific process can refer to the description of the above embodiments, which will not be repeated here. Then, the variation degree 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 variation degree of the classification information.
[0435] According to the above method, after the variation degree of the classification information is determined, the motion vector information of the current coding unit is determined according to the variation degree of the classification information.
[0436] For example, if the variation degree of the classification information is less than or equal to a first preset value, the default value or the motion vector information of the previous coding unit of the current coding unit in the encoding order is determined as the motion vector information of the current coding unit.
[0437] For another example, if the variation degree is greater than the 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.
[0438] In the embodiments of the present application, according to the above method, the motion vector information of the current coding unit can be determined.
[0439] The motion vector information can be understood as the motion information required for inter-frame prediction at the encoding end. The specific form of the motion vector information is not limited in the embodiments of the present application.
[0440] In some embodiments, the motion vector information includes at least one of a rotation matrix and an offset vector. The rotation matrix describes the three-dimensional rotation of the coding unit and the reference coding unit, and the offset vector describes the offset amount of the coordinate origin of the coding unit and the reference coding unit in three directions.
[0441] In some embodiments, if the motion vector information includes at least one of the rotation matrix and the offset vector, the corresponding second parameter motion_period includes at least one of a third sub-parameter rotation_matrix_period and a fourth sub-parameter translation_vector_period.
[0442] The third sub-parameter rotation_matrix_period is used to indicate a calculation period of the rotation matrix, and the fourth sub-parameter translation_vector_period is used to indicate a calculation period of the offset vector.
[0443] The third sub-parameter and the fourth sub-parameter can be independently assigned.
[0444] Optionally, the calculation period of the rotation matrix and the calculation period of the offset vector can be the same or different, and the embodiments of the present application do not limit this.
[0445] In some embodiments, if the current coding unit is the first coding unit in the coding order, i.e., the coding sequence number is 0, the encoder writes at least one of the classification information and the motion vector information of the current coding unit into the point cloud bitstream.
[0446] In the embodiments 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, the following step S203 is performed.
[0447] S203, encoding the current coding unit according to at least one of the classification information and the motion vector information of the current coding unit.
[0448] Since the motion of different objects is different, in order to improve the coding accuracy, the category of the point cloud in the current coding unit is determined according to 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 the vehicle-mounted radar as an example, the point cloud can be divided into road points and object points, and the motion vector information of the road points and the object points is different,
[0449] The embodiments of the present application do 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.
[0450] 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 according to the classification information. Different motion vector information is assigned to each category, wherein the motion vector information assigned to different categories can be a preset value corresponding to different categories or a value calculated according to the category, and the embodiments of the present application do not limit this.
[0451] 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, the encoding end can determine the classification information of the current coding unit by itself, for example, according to the encoding information of the already coded units around the current coding unit, to determine the classification information of the current coding unit. Then, the point cloud in the current coding unit is divided into multiple categories according to the classification information. The motion vector information of the point cloud of each category in the current coding unit is determined according to the motion vector information of the current coding unit. For example, the current coding unit includes first category point cloud and second category point cloud, the above determined motion vector information can be determined as the motion vector information of the first category point cloud, and the motion vector information of the second category point cloud is a preset value, for example, a zero vector.
[0452] 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, the above S203 includes the following steps:
[0453] S203-A, according to the classification information of the current coding unit, the point cloud in the current coding unit is divided into P category point clouds, P is a positive integer greater than 1.
[0454] In this embodiment, the encoding end divides the point cloud in the current coding unit into P category point clouds through the classification information of the current coding unit, determines the motion vector information corresponding to the P category point clouds according to the motion vector information of the current coding unit, and then encodes the current coding unit according to the motion vector information corresponding to the P category point clouds. That is, the embodiments of the present application use different motion vector information to encode the point clouds of different categories in the current coding unit, thereby improving the accuracy of encoding.
[0455] The embodiments of the present application do not limit the specific type of the above S203-A, which divides the point cloud in the current coding unit into P category point clouds according to the classification information of the current coding unit.
[0456] In some embodiments, the classification information of the current coding unit can be a category identifier, for example, each point in the current coding unit includes a category identifier, so that the point cloud in the current coding unit can be divided into P category point clouds according to the category identifier.
[0457] 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, and S203-A includes the following steps:
[0458] S203-A1, according to the first height threshold and the second height threshold, the point cloud in the current coding unit is divided into P-class point clouds.
[0459] For example, the point cloud in the current coding unit with a height value greater than the first height threshold is classified as a class of point clouds, the point cloud in the current coding unit with a height value between the first height threshold and the second height threshold is classified as a class of point clouds, and the point cloud in the current coding unit with a height value less than the second height threshold is classified as a class of point clouds.
[0460] For another example, the point cloud in the current coding unit with a height value less than or equal to the first height threshold and greater than or equal to the second height threshold is classified as a first class of point clouds, and the point cloud in the current coding unit with a height value greater than the first height threshold or less than the second height threshold is classified as a second class of point clouds.
[0461] S203-B, according to the motion vector information of the current coding unit, determine the motion vector information corresponding to the P-class point clouds.
[0462] According to the above steps, after the point cloud in the current coding unit is divided into P-class point clouds, according to the motion vector information of the current coding unit, the motion vector information corresponding to the P-class point clouds is determined. For example, the motion vector information of the current coding unit is determined as the motion vector information of a class of point clouds in the P-class point clouds, and the motion vector information of other classes of point clouds in the P-class point clouds can be a preset value.
[0463] In an example, the P-class point cloud includes the above-mentioned first class of point clouds and the second class of point clouds, and the motion vector information of the current coding unit can be determined as the motion vector information of the second class of point clouds, and the motion vector information of the first class of point clouds is a preset value, for example, a zero vector.
[0464] Taking the vehicle-mounted point cloud as an example, the first class of point clouds can be understood as road point clouds, and the second class of point clouds can be understood as non-road point clouds. Since the road changes little, the non-road point cloud is the focus of study, and 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, i.e., zero motion, i.e., the motion vector information of the road point is a zero vector.
[0465] S203-C, according to the motion vector information corresponding to the P-class point clouds, encode the current coding unit.
[0466] According to the method, after determining the motion vector information corresponding to the P-type point cloud in the current coding unit, the current coding unit is encoded according to the motion vector information corresponding to the P-type point cloud.
[0467] The embodiments of the present application do not limit the specific implementation of encoding the current coding unit according to the motion vector information corresponding to the P-type point cloud.
[0468] In some embodiments, the encoding end can determine the reference coding unit of the current coding unit, perform motion compensation on the reference coding unit according to the motion vector information of the P-type point cloud to obtain the prediction information of the current coding unit, and encode at least one of the geometric information and the attribute information of the current coding unit according to the prediction information.
[0469] In an example, taking encoding the geometric information of the current coding unit according to the prediction information as an example, the prediction information can be understood as a prediction unit of the current coding unit. In this way, the spatial occupation of the current coding unit can be predicted according to the spatial occupation in the prediction unit, and then the geometric information of the current coding unit can be encoded according to the predicted spatial occupation of the current coding unit to obtain the geometric bitstream of the current coding unit.
[0470] In another example, taking encoding the attribute information of the current coding unit according to the prediction information as an example, the prediction information can be understood as a prediction unit of the current coding unit. In this way, for each point in the current coding unit, at least one reference point of the point is obtained in the prediction unit, the attribute information of the at least one reference point is used to predict the attribute information of the point to obtain the attribute prediction value of the point. Then, the attribute residual value of the point is determined according to the attribute prediction value and the attribute value of the point, and the attribute residual value of the point is encoded to form the attribute bitstream.
[0471] It should be noted that the encoding end can also use the method 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, and the embodiments of the present application do not limit this.
[0472] As described above, the encoding end can write at least one of the first parameter and the second parameter into the bitstream.
[0473] Optionally, at least one of the first parameter and the second parameter can be stored in the form of an unsigned integer, denoted as u(v), indicating that a parameter is described using v bits.
[0474] Optionally, at least one of the first parameter and the second parameter can also be stored in the form of unsigned exponential Golomb coding, denoted as ue(v), indicating that the parameter value is first converted into a 01 bit sequence of v bits through exponential Golomb coding, and then written into the bitstream.
[0475] In some embodiments, the encoder writes at least one of the first parameter and the second parameter in a sequence header parameter set.
[0476] In an example, the first parameter is used to indicate that the classification information is calculated once per a plurality of point cloud frames; and / or, the second parameter is used to indicate that the motion vector information is calculated once per a plurality of point cloud frames.
[0477] In an example, the first parameter and the second parameter are stored in the sequence header parameter set as shown in Table 1.
[0478] In some embodiments, the encoder writes at least one of the first parameter and the second parameter in a point cloud slice header information.
[0479] In an example, the first parameter is used to indicate that the classification information of an i-th point cloud slice in a point cloud frame is calculated once per a plurality of point cloud frames, i being a positive integer; and / or, the second parameter is used to indicate that the motion vector information of the i-th point cloud slice in the point cloud frame is calculated once per a plurality of point cloud frames.
[0480] In this example, the first parameter and the second parameter are stored in the point cloud slice header information as shown in Table 2.
[0481] In an example, the first parameter is used to indicate that the classification information is calculated once per a plurality of point cloud slices in a point cloud frame; and / or, the second parameter is used to indicate that the motion vector information is calculated once per a plurality of point cloud slices in the point cloud frame.
[0482] In this example, the first parameter and the second parameter are stored in the point cloud slice header information as shown in Table 3.
[0483] In some embodiments, before determining the first parameter and the second parameter, the encoder first needs to determine a first flag inter_prediction_flag, which is used to indicate whether to perform inter-prediction encoding; if the first flag inter_prediction_flag indicates to perform inter-prediction encoding, at least one of the first parameter and the second parameter is determined.
[0484] The point cloud encoding method provided in the embodiments of the present application comprises the following steps: determining at least one of a first parameter and a second parameter at an encoding end, 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 encoding unit according to at least one of the first parameter and the second parameter; and encoding the current encoding unit according to at least one of the classification information and the motion vector information of the current encoding unit. That is, in the embodiments of the present application, the classification information and the motion vector information are calculated periodically, and compared with the case that the classification information and the motion vector information are calculated once for each encoding unit, the number of times of calculation of the classification information and the motion vector information is greatly reduced, the encoding processing time is reduced, and the encoding efficiency is improved.
[0485] It should be understood that, Figure 4 to Figure 6 The above merely illustrates the embodiments of the present application, and should not be understood as a limitation on the present application.
[0486] The preferred embodiments of the present application are described in detail above with reference to the drawings, but the present application is not limited to the specific details in the above-described embodiments. Within the technical concept of the present application, various simple modifications can be made to the technical solutions of the present application, and these simple modifications all belong to the protection scope of the present application. For example, in the above-described specific embodiments, various specific technical features described in the embodiments can be combined in any appropriate manner without contradiction. In order to avoid unnecessary repetition, various possible combination manners are not described again in the present application. For another example, various different embodiments of the present application can also be combined in any manner, as long as it does not deviate from the idea of the present application, and it should also be considered as disclosed in the present application.
[0487] It should also be understood that in various method embodiments of the present application, the size of the serial number of the above-described processes does not mean the order of execution. The execution order of the processes should be determined according to its function and inherent 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 between the associated objects, indicating that there can be three relationships. Specifically, A and / or B can represent the following three cases: A exists alone, A and B exist together, and B exists alone. In addition, the character " / " in this paper generally represents that the front and rear associated objects are in an "or" relationship.
[0488] The method embodiments of the present application are described in detail above in combination with Figure 4 to Figure 6 , and the device embodiments of the present application are described in detail below in combination with Figure 7 to Figure 10 .
[0489] Figure 7 is a schematic block diagram of the point cloud decoding device provided in the embodiments of the present application.
[0490] As Figure 7 shown, the point cloud decoding apparatus 10 can comprise:
[0491] a determining unit 11 configured to decode a point cloud bitstream, and determine at least one of classification information and motion vector 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, the first parameter being used to indicate a calculation period of the classification information, and the second parameter being used to indicate a calculation period of the motion vector information;
[0492] a decoding unit 12 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.
[0493] In some embodiments, the determining 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 bitstream.
[0494] In some embodiments, the determining unit 11 is specifically configured to decode at least one of the first parameter and the second parameter from the point cloud bitstream, determine the classification information of the current decoding unit according to the first parameter, and / or determine the motion vector information of the current decoding unit according to the second parameter.
[0495] In some embodiments, the determining unit 11 is specifically configured to determine a classification information calculation period corresponding to the current decoding unit according to the first parameter, and determine the classification information of the current decoding unit according to the classification information calculation period.
[0496] In some embodiments, the determining unit 11 is specifically configured to decode the point cloud bitstream to obtain the classification information of the current decoding unit if the current decoding unit is a first decoding unit in the classification information calculation period.
[0497] 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 a non-first decoding unit in the classification information calculation period.
[0498] In some embodiments, the first parameter indicates that the classification information is calculated once every K decoding units, and the determining unit 11 is specifically configured to decode the point cloud bitstream to obtain the classification information of the current decoding unit if the current decoding unit is an NKth decoding unit in a decoding order, K and N being positive integers.
[0499] In some embodiments, the determining unit 11 is further configured to determine the classification information of the current decoding unit according to the decoded information or a default value, if the current decoding unit is not the NKth decoding unit in the decoding order.
[0500] In some embodiments, the determining unit 11 is specifically configured to determine the classification information of the current decoding unit according to the classification information of the M decoding units, which are M decoded decoding units before the current decoding unit in the decoding order, and M is a positive integer.
[0501] In some embodiments, the determining unit 11 is specifically configured to determine the classification information of one decoding unit before the current decoding unit in the decoding order as the classification information of the current decoding unit, if the M is equal to 1.
[0502] In some embodiments, the determining unit 11 is specifically configured to perform a preset processing on the classification information of the M decoding units, and determine the processing result as the classification information of the current decoding unit, if the M is greater than 1.
[0503] In some embodiments, the determining unit 11 is specifically configured to determine the average value of the classification information of the M decoding units as the classification information of the current decoding unit.
[0504] 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.
[0505] 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.
[0506] In some embodiments, the determining 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.
[0507] In some embodiments, the determining 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 in the motion vector information calculation period.
[0508] In some embodiments, the determining unit 11 is specifically configured to determine the motion vector information of the current decoding unit according to the decoded information or a default value if the current decoding unit is not the first decoding unit in the motion vector information calculation period.
[0509] In some embodiments, the first parameter indicates that the motion vector information is calculated once every R decoding units, and the determining unit 11 is specifically configured to decode the point cloud bitstream to obtain the motion vector information of the current decoding unit if the current decoding unit is the NRth decoding unit in the decoding order, where R and N are positive integers.
[0510] In some embodiments, the determining unit 11 is further configured to determine the motion vector information of the current decoding unit according to the decoded information or a default value if the current decoding unit is not the NRth decoding unit in the decoding order.
[0511] In some embodiments, the determining unit 11 is specifically configured to determine the motion vector information of the current decoding unit according to the motion vector information of S decoding units, where the S decoding units are S decoded decoding units before the current decoding unit in the decoding order, and S is a positive integer.
[0512] In some embodiments, the determining unit 11 is specifically configured to determine the motion vector information of one decoding unit before the current decoding unit in the decoding order as the motion vector information of the current decoding unit if S is equal to 1.
[0513] In some embodiments, the determining unit 11 is specifically configured to perform a preset processing on the motion vector information of the S decoding units and determine the processing result as the motion vector information of the current decoding unit if S is greater than 1.
[0514] In some embodiments, the determining unit 11 is specifically configured to determine the average of the motion vector information of the S decoding units as the motion vector information of the current decoding unit.
[0515] In some embodiments, the determining 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.
[0516] In some embodiments, the determining unit 11 is specifically configured to determine the classification information of the current decoding unit according to the first parameter, and determine a change degree between the classification information of the current decoding unit and the classification information of a reference decoding unit of the current decoding unit.
[0517] In some embodiments, the determining unit 11 is specifically configured to determine, if the degree of change is less than or equal to a first preset value, a default value or motion vector information of a previous decoding unit of the current decoding unit in the decoding order as the motion vector information of the current decoding unit.
[0518] In some embodiments, the determining unit 11 is specifically configured to decode the point cloud bitstream to obtain the motion vector information of the current decoding unit, if the degree of change is greater than the first preset value.
[0519] In some embodiments, the motion vector information comprises at least one of a rotation matrix and an offset vector, and the second parameter comprises at least one of a third sub-parameter and a fourth sub-parameter.
[0520] 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.
[0521] In some embodiments, the determining unit 11 is further configured to decode the point cloud bitstream to obtain at least one of the classification information and the motion vector information of the current decoding unit, if the current decoding unit is a first decoding unit in the decoding order.
[0522] In some embodiments, the decoding unit 12 is specifically configured to divide point clouds in the current decoding unit into P classes of point clouds according to the classification information of the current decoding unit, where P is a positive integer greater than 1; determine motion vector information corresponding to the P classes 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 classes of point clouds.
[0523] In some embodiments, the classification information comprises a first height threshold and a second height threshold, and the first height threshold is greater than the second height threshold, and the decoding unit 12 is specifically configured to divide point clouds in the current decoding unit into P classes of point clouds according to the first height threshold and the second height threshold.
[0524] In some embodiments, the P classes of point clouds comprise a first class of point clouds and a second class of point clouds, and the decoding unit 12 is specifically configured to divide 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, into the first class of point clouds; and divide point clouds in the current decoding unit, whose height values are greater than the first height threshold or less than the second height threshold, into the second class of point clouds.
[0525] In some embodiments, the decoding unit 12 is specifically configured to determine a reference decoding unit of the current decoding unit; perform motion compensation on the reference decoding unit according to motion vector information of the P-type point cloud to obtain prediction information of the current decoding unit; and decode at least one of geometry information and attribute information of the current decoding unit according to the prediction information.
[0526] In some embodiments, the current decoding unit is a current point cloud frame or a spatial region of the current point cloud frame.
[0527] In some embodiments, the decoding unit 12 is specifically configured to decode a sequence header parameter set to obtain at least one of the first parameter and the second parameter.
[0528] In some embodiments, the first parameter is used to indicate that classification information is calculated once every multiple point cloud frames; and / or,
[0529] The second parameter is used to indicate that motion vector information is calculated once every multiple point cloud frames.
[0530] In some embodiments, the current decoding unit is a current point cloud slice, and the decoding unit 12 is specifically configured to decode point cloud slice header information to obtain at least one of the first parameter and the second parameter.
[0531] In some embodiments, the first parameter is used to indicate that, for an i-th point cloud slice in a point cloud frame, classification information of the i-th point cloud slice is calculated once every multiple point cloud frames, where i is a positive integer; and / or,
[0532] The second parameter is used to indicate that, for an i-th point cloud slice in a point cloud frame, motion vector information of the i-th point cloud slice is calculated once every multiple point cloud frames.
[0533] 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,
[0534] The second parameter is used to indicate that motion vector information is calculated once every multiple point cloud slices in a point cloud frame.
[0535] In some embodiments, the decoding unit 12 is specifically configured to decode the point cloud code stream to obtain a first flag, where the first flag is used to indicate whether to perform inter-frame prediction decoding.
[0536] If the first flag indicates that inter-frame prediction encoding is performed, the point cloud code stream is decoded to obtain at least one of the first parameter and the second parameter.
[0537] It should be understood that the apparatus embodiments and the method embodiments can correspond to each other, and similar descriptions can be referred to the method embodiments. To avoid repetition, no further description is given here. Specifically, Figure 7 The point cloud decoding apparatus 10 shown can correspond to the corresponding subject in the point cloud decoding method of the embodiments of the present application, and the foregoing and other operations and / or functions of each unit in the point cloud decoding apparatus 10 are respectively for realizing the corresponding process in the point cloud decoding method. For the sake of brevity, no further description is given here.
[0538] Figure 8 is a schematic block diagram of the point cloud encoding apparatus provided by the embodiments of the present application.
[0539] As shown in Figure 8 The point cloud encoding apparatus 20 includes:
[0540] The first determining unit 21 is configured to determine at least one of a first parameter and a second parameter, the first parameter being used to indicate a calculation period of classification information, and the second parameter being used to indicate a calculation period of motion vector information.
[0541] The second determining unit 22 is configured to determine 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.
[0542] The coding unit 23 is configured to code the current coding unit according to at least one of the classification information and the motion vector information of the current coding unit.
[0543] 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.
[0544] 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.
[0545] In some embodiments, the second determining unit 22 is specifically configured to identify the category of the current point coding unit to obtain the classification information of the current point coding unit if the current coding unit is the first coding unit in the classification information calculation period.
[0546] In some embodiments, the second determining unit 22 is specifically configured to determine the classification information of the current coding unit according to the coded information or a default value if the current coding unit is not the first coding unit in the classification information calculation period.
[0547] In some embodiments, the encoding unit 23 is further configured to write the first parameter into a point cloud bitstream, and if the current coding unit is the first coding unit in a classification information calculation period, write the classification information of the current coding unit into the point cloud bitstream.
[0548] In some embodiments, the encoding unit 23 is further configured to write the first parameter into a point cloud bitstream, and if the current coding unit is not the first coding unit in the classification information calculation period, skip writing the classification information of the current coding unit into the point cloud bitstream.
[0549] In some embodiments, the first parameter indicates that classification information is calculated once every K coding units, and the second determining unit 22 is specifically configured to, if the current coding unit is the NKth coding unit in the coding order, identify the categories of the point cloud in the current point coding unit to obtain the classification information of the current point coding unit, where K and N are positive integers.
[0550] In some embodiments, the second determining unit 22 is further configured to, if the current coding unit is not the NKth coding unit in the coding order, determine the classification information of the current coding unit according to the coded information or a default value.
[0551] In some embodiments, the encoding unit 23 is further configured to write the first parameter into a point cloud bitstream, and if the current coding unit is the NKth coding unit in the coding order, write the classification information of the current coding unit into the bitstream.
[0552] In some embodiments, the encoding unit 23 is further configured to write the first parameter into a point cloud bitstream, and if the current coding unit is not the NKth coding unit in the coding order, skip writing the classification information of the current coding unit into the bitstream.
[0553] In some embodiments, the encoding unit 23 is further configured to write the classification information of the current coding unit into a point cloud bitstream, and skip writing the first parameter into the point cloud bitstream.
[0554] In some embodiments, the second determining unit 22 is specifically configured to determine the classification information of the current coding unit according to the classification information of M coding units, where the M coding units are M coded coding units located before the current coding unit in the decoding order, and M is a positive integer.
[0555] In some embodiments, the second determining unit 22 is specifically configured to, if the M is equal to 1, determine the classification information of one coding unit located before the current coding unit in the coding order as the classification information of the current coding unit.
[0556] In some embodiments, the second determining unit 22 is specifically configured to, if the M is greater than 1, perform preset processing on the classification information of the M coding units, and determine the processing result as the classification information of the current coding unit.
[0557] In some embodiments, the second determining unit 22 is specifically configured to determine the average value of the classification information of the M coding units as the classification information of the current coding unit.
[0558] In some embodiments, the classification information comprises at least one of a first height threshold and a second height threshold, and the first parameter comprises at least one of a first sub-parameter and a second sub-parameter.
[0559] 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.
[0560] 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.
[0561] In some embodiments, the second determining unit 22 is specifically configured to, if the current coding unit is a first coding unit in the motion vector information calculation period, determine the motion vector information of the current coding unit according to a reference coding unit of the current coding unit.
[0562] In some embodiments, the second determining unit 22 is specifically configured to, if the current coding unit is not a first coding unit in the motion vector information calculation period, determine the motion vector information of the current coding unit according to the coded information or a default value.
[0563] In some embodiments, the encoding unit 23 is further configured to write the second parameter into a point cloud bitstream, and if the current coding unit is a first coding unit in the motion vector information calculation period, write the motion vector information of the current coding unit into the point cloud bitstream.
[0564] In some embodiments, the encoding unit 23 is further configured to write the second parameter into a point cloud bitstream, and if the current coding unit is not a first coding unit in the motion vector information calculation period, skip writing the motion vector information of the current coding unit into the point cloud bitstream.
[0565] In some embodiments, the first parameter indicates that motion vector information is calculated once every R coding units, and the second determination unit 22 is specifically configured to determine the motion vector information of the current coding unit according to a reference coding unit of the current coding unit if the current coding unit is an NRth coding unit in coding order, where R and N are positive integers.
[0566] In some embodiments, the second determination unit 22 is further configured to determine the motion vector information of the current coding unit according to coded information or a default value if the current coding unit is not an NRth coding unit in coding order.
[0567] In some embodiments, the coding unit 23 is further configured to write the second parameter into a point cloud bitstream, and write the motion vector information of the current coding unit into the bitstream if the current coding unit is an NKth coding unit in coding order.
[0568] In some embodiments, the coding unit 23 is further configured to write the second parameter into a point cloud bitstream, and skip writing the motion vector information of the current coding unit into the bitstream if the current coding unit is not an NKth coding unit in coding order.
[0569] In some embodiments, the coding unit 23 is further configured to write the motion vector information of the current coding unit into a point cloud bitstream, and skip writing the second parameter into the point cloud bitstream.
[0570] In some embodiments, the second determination unit 22 is specifically configured to determine the motion vector information of the current coding unit according to motion vector information of S coding units, where the S coding units are S coded coding units located before the current coding unit in coding order, and S is a positive integer.
[0571] In some embodiments, the second determination unit 22 is specifically configured to determine the motion vector information of one coding unit located before the current coding unit in coding order as the motion vector information of the current coding unit if S is equal to 1.
[0572] In some embodiments, the second determination unit 22 is specifically configured to perform a preset processing on the motion vector information of the S coding units if S is greater than 1, and determine a processing result as the motion vector information of the current coding unit.
[0573] In some embodiments, the second determination 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.
[0574] In some embodiments, the second determining unit 22 is further configured to determine a variation degree of the classification information of different coding units according to the first parameter; and determine the motion vector information of the current coding unit according to the variation degree.
[0575] 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 determine a variation degree between the classification information of the current coding unit and the classification information of a reference coding unit of the current coding unit.
[0576] In some embodiments, the second determining unit 22 is specifically configured to, if the variation degree is less than or equal to a first preset value, determine a default value or motion vector information of a previous coding unit of the current coding unit in the encoding order as the motion vector information of the current coding unit.
[0577] In some embodiments, the second determining unit 22 is specifically configured to, if the variation degree is greater than the first preset value, determine the motion vector information of the current coding unit according to the reference coding unit of the current coding unit.
[0578] In some embodiments, the encoding unit 23 is further configured to write the first parameter into a point cloud bitstream, and skip writing the second parameter into the point cloud bitstream.
[0579] 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.
[0580] 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.
[0581] In some embodiments, the encoding unit 23 is specifically configured to divide point clouds in the current coding unit into P-class point clouds according to the classification information of the current coding unit, where P is a positive integer greater than 1; determine motion vector information corresponding to the P-class point clouds according to the motion vector information of the current coding unit; and encode the current coding unit according to the motion vector information corresponding to the P-class point clouds.
[0582] 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, and the encoding unit 23 is specifically configured to divide the point clouds in the current coding unit into P-class point clouds according to the first height threshold and the second height threshold.
[0583] 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 configured to divide, into the first type point cloud, a point cloud in the current encoding unit with a height value less than or equal to the first height threshold and greater than or equal to the second height threshold; and divide, into the second type point cloud, a point cloud in the current encoding unit with a height value greater than the first height threshold or less than the second height threshold.
[0584] In some embodiments, the encoding unit 23 is specifically configured to perform motion compensation on a reference encoding unit of the current encoding unit according to motion vector information of the P-type point cloud to obtain prediction information of the current encoding unit; and encode at least one of geometry information and attribute information of the current encoding unit according to the prediction information.
[0585] In some embodiments, the current encoding unit is a current point cloud frame or a spatial region of the current point cloud frame.
[0586] 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.
[0587] In some embodiments, the first parameter is used to indicate that classification information is calculated once every multiple point cloud frames; and / or,
[0588] The second parameter is used to indicate that motion vector information is calculated once every multiple point cloud frames.
[0589] 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 point cloud slice header information.
[0590] In some embodiments, the first parameter is used to indicate that, for an i-th point cloud slice in a point cloud frame, classification information of the i-th point cloud slice is calculated once every multiple point cloud frames, where i is a positive integer; and / or,
[0591] The second parameter is used to indicate that, for an i-th point cloud slice in a point cloud frame, motion vector information of the i-th point cloud slice is calculated once every multiple point cloud frames.
[0592] 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,
[0593] The second parameter is used to indicate that motion vector information is calculated once every multiple point cloud slices in a point cloud frame.
[0594] In some embodiments, the first determining unit 21 is further configured to determine a first flag, the first flag being used to indicate whether to perform inter prediction coding; and at least one of the first parameter and the second parameter is determined if the first flag indicates to perform inter prediction coding.
[0595] It should be understood that the apparatus embodiments and the method embodiments can correspond to each other, and similar descriptions can be referred to the method embodiments. To avoid repetition, the details are not described herein. Specifically, Figure 8 The point cloud encoding apparatus 20 shown can correspond to the corresponding subject in the point cloud encoding method of the embodiments of the present application, and the foregoing and other operations and / or functions of each unit in the point cloud encoding apparatus 20 are respectively for realizing the corresponding process in the point cloud encoding method. For the sake of brevity, the details are not described herein.
[0596] The apparatus and system of the embodiments of the present application are described above from the perspective of functional units in combination with the drawings. It should be understood that the functional units can be realized by hardware, or by instructions in the form of software, or by a combination of hardware and software units. Specifically, each step of the method embodiments in the embodiments of the present application can be completed by integrated logic circuits and / or instructions in the form of software in the hardware in the processor, and the steps of the method disclosed in the embodiments of the present application can be directly embodied as hardware code processing performed by the processor, or executed by a combination of hardware and software units in the processor. Alternatively, the software unit can be located in a mature storage medium in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and combines the hardware to complete the steps in the above method embodiments.
[0597] Figure 9 is a schematic block diagram of an electronic device provided by the embodiments of the present application.
[0598] As Figure 9 shown, the electronic device 30 can be the point cloud decoding device or the point cloud encoding device described in the embodiments of the present application, and the electronic device 30 can include:
[0599] The memory 31 and the processor 32, the memory 31 is used to store the computer program 34, and the program code 34 is transmitted to the processor 32. In other words, the processor 32 can call and run the computer program 34 from the memory 31 to realize the method in the embodiments of the present application.
[0600] For example, the processor 32 can be used to execute the steps in the above method according to the instructions in the computer program 34.
[0601] In some embodiments of the present application, the processor 32 can include but is not limited to:
[0602] The processing unit can include one or more processors, such as a general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, a discrete gate or transistor logic component, discrete hardware components, or the like.
[0603] In some embodiments of the present application, the memory 31 includes, but is not limited to:
[0604] volatile memory and / or non-volatile memory. The non-volatile memory can be a Read-Only Memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an Electrically EPROM (EEPROM), or a flash memory. The volatile memory can be a Random Access Memory (RAM) used as an external cache. By way of example, and not limitation, many forms of RAM can be used, such as a Static RAM (SRAM), a Dynamic RAM (DRAM), a Synchronous DRAM (SDRAM), a Double Data Rate SDRAM (DDR SDRAM), an Enhanced SDRAM (ESDRAM), a synch link DRAM (SLDRAM), and a Direct Rambus RAM (DR RAM).
[0605] In some embodiments of the present application, the computer program 34 can be divided into one or more units, which are stored in the memory 31 and executed by the processor 32 to complete the method provided by the present application. The one or more units can be a series of computer program instruction segments capable of completing a specific function, which are used to describe the execution process of the computer program 34 in the electronic device 30.
[0606] As shown in Figure 9 The electronic device 30 can further include:
[0607] a transceiver 33, which can be connected to the processor 32 or the memory 31.
[0608] The processor 32 can control the transceiver 33 to communicate with other devices, specifically, can send information or data to other devices, or receive information or data sent by other devices. The transceiver 33 can include a transmitter and a receiver. The transceiver 33 can further include an antenna, and the number of antennas can be one or more.
[0609] It should be understood that various components in the electronic device 30 are connected through a bus system, which includes a data bus, a power supply bus, a control bus, and a state signal bus, in addition to a data bus.
[0610] Figure 10 is a schematic block diagram of a point cloud coding system provided by the embodiments of the present application.
[0611] As shown in Figure 10 The point cloud coding system 40 can include a point cloud encoder 41 and a point cloud decoder 42, wherein the point cloud encoder 41 is used to perform the point cloud encoding method related to the embodiments of the present application, and the point cloud decoder 42 is used to perform the point cloud decoding method related to the embodiments of the present application.
[0612] The present application also provides a code stream, which is generated according to the above-mentioned encoding method.
[0613] The present application also provides a computer storage medium, which stores a computer program, and the computer program makes the computer able to execute the method of the above-mentioned method embodiment when the computer executes the computer program. Or, the embodiments of the present application also provide a computer program product containing instructions, and the instructions make the computer execute the method of the above-mentioned method embodiment when the computer executes the instructions.
[0614] When implemented in software, the functions can be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media can be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired computer program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, or a twisted pair, as examples, then the coaxial cable, fiber optic cable, or twisted pair are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), and Blu-Ray® disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
[0615] In some embodiments, the functions of the various examples described herein can be implemented as part of an operating system or a specific application, component, method, or process. Similarly, elements of the various examples can also be implemented as a computer program product, such as a computer program tangibly embodied in a machine-readable storage medium, for execution by a computer or processor. The machine-readable storage medium can include one or more types of computer-readable storage media including, but not limited to, volatile memory, non-volatile memory, magnetic storage, optical storage, or any suitable combination of the foregoing. Additionally, at least one of the above-described elements can be implemented as a computer- accessible product, such as a computer program tangibly embodied in a machine-readable storage medium, for execution by a computer or processor.
[0616] In several embodiments provided in the present application, it should be understood that the disclosed system, device and method can be implemented in other ways. For example, the above-described device embodiments are merely illustrative, and the division of the units is merely a logical function division. In actual implementation, other division manners can be used, for example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units or components shown or discussed can be indirect coupling or communication connection through some interfaces, devices or units, and can be electrical, mechanical or other forms.
[0617] The units described as separate components may or may not be physically separate, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may also be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment scheme. For example, the functional units in each embodiment of the present application can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit.
[0618] The above is only a specific embodiment of the present application, but the protection scope of the present application is not limited thereto, and any person skilled in the art can easily think of changes or replacements within the technical scope disclosed by the present application, which should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
Claims
1. A point cloud decoding method, characterized in that, The method comprises: decoding a point cloud bitstream to determine at least one of classification information and motion vector 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, the first parameter being used to indicate a calculation period of the classification information, and the second parameter being used to indicate a calculation period of the motion vector information; decoding the current decoding unit according to the at least one of the classification information and the motion vector information of the current decoding unit.
2. The method of claim 1, wherein, The method of decoding a point cloud bitstream to determine at least one of classification information and motion vector information of a current decoding unit comprises: decoding at least one of the classification information and the motion vector information of the current decoding unit from the point cloud bitstream.
3. The method of claim 1, wherein, The method of decoding a point cloud bitstream to determine at least one of classification information and motion vector information of a current decoding unit comprises: decoding at least one of the first parameter and the second parameter from the point cloud bitstream; determining the classification information of the current decoding unit according to the first parameter, and / or determining the motion vector information of the current decoding unit according to the second parameter.
4. The method of claim 3, wherein, The method of determining the classification information of the current decoding unit according to the first parameter comprises: determining a classification information calculation period corresponding to the current decoding unit according to the first parameter; determining the classification information of the current decoding unit according to the classification information calculation period.
5. The method of claim 4, wherein, The method of determining the classification information of the current decoding unit according to the classification information calculation period comprises: if the current decoding unit is a first decoding unit in the classification information calculation period, decoding the point cloud bitstream to obtain the classification information of the current decoding unit.
6. The method of claim 4, wherein, The method of determining the classification information of the current decoding unit according to the classification information calculation period comprises: if the current decoding unit is not a first decoding unit in the classification information calculation period, determining the classification information of the current decoding unit according to decoded information or a default value.
7. The method of claim 3, wherein, The first parameter indicates that classification information is calculated once every K decoding units, and the method of determining the classification information of the current decoding unit according to the first parameter comprises: if the current decoding unit is an NKth decoding unit in a decoding order, decoding the point cloud bitstream to obtain the classification information of the current decoding unit, K and N being positive integers.
8. The method of claim 7, wherein, The method further comprises: if the current decoding unit is not an NKth decoding unit in the decoding order, determining the classification information of the current decoding unit according to decoded information or a default value.
9. The method according to claim 6 or 8, characterized in that, The method of determining the classification information of the current decoding unit according to decoded information comprises: determining the classification information of the current decoding unit according to classification information of M decoding units, the M decoding units being M decoded decoding units before the current decoding unit in the decoding order, M being a positive integer.
10. The method of claim 9, wherein, The method of determining the classification information of the current decoding unit according to classification information of M decoding units comprises: If the M is equal to 1, the classification information of a decoding unit before the current decoding unit in the decoding order is determined as the classification information of the current decoding unit.
11. The method of claim 9, wherein, The determining the classification information of the current decoding unit according to the classification information of the M decoding units comprises: If the M is greater than 1, the classification information of the M decoding units is preprocessed, and the processing result is determined as the classification information of the current decoding unit.
12. The method of claim 11, wherein, The preprocessing the classification information of the M decoding units and determining the processing result as the classification information of the current decoding unit comprises: 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 comprises at least one of a first height threshold and a second height threshold, and the first parameter comprises 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 a point cloud in the current decoding unit.
14. The method of claim 3, wherein, The determining the motion vector information of the current decoding unit according to the second parameter comprises: According to the second parameter, a motion vector information calculation period corresponding to the current decoding unit is determined. According to the motion vector information calculation period, the motion vector information of the current decoding unit is determined.
15. The method of claim 14, wherein, The determining the motion vector information of the current decoding unit according to the motion vector information calculation period comprises: If the current decoding unit is the first decoding unit in the motion vector information calculation period, the point cloud code stream is decoded to obtain the motion vector information of the current decoding unit.
16. The method of claim 14, wherein, The determining the motion vector information of the current decoding unit according to the motion vector information calculation period comprises: 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 of claim 3, wherein, The first parameter indicates that the motion vector information is calculated once every R decoding units, and the determining the motion vector information of the current decoding unit according to the second parameter comprises: 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 positive integers.
18. The method of claim 17, wherein, The method further comprises: If the current decoding unit is not the NRth 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 of claim 16 or 18, wherein, The determining the motion vector information of the current decoding unit according to the decoded information comprises: According to the motion vector information of S decoding units, the motion vector information of the current decoding unit is determined, the S decoding units are S decoded decoding units before the current decoding unit in the decoding order, and S is a positive integer.
20. The method of claim 19, wherein, The determining the motion vector information of the current decoding unit according to the motion vector information of the S decoding units comprises: If the S is equal to 1, the motion vector information of a decoding unit before the current decoding unit in the decoding order is determined as the motion vector information of the current decoding unit.
21. The method of claim 19, wherein, The determining the motion vector information of the current decoding unit according to the motion vector information of the S decoding units comprises: If the S is greater than 1, the motion vector information of the S decoding units is preprocessed, and the processing result is determined as the motion vector information of the current decoding unit.
22. The method of claim 21, wherein, The preprocessing the motion vector information of the S decoding units and determining the processing result as the motion vector information of the current decoding unit comprises: 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 of claim 3, wherein, The method further comprises: According to the first parameter, a change degree of the classification information is determined. According to the change degree, the motion vector information of the current decoding unit is determined.
24. The method of claim 23, wherein, The determining the change degree of the classification information according to the first parameter comprises: According to the first parameter, the classification information of the current decoding unit is determined. A change degree between the classification information of the current decoding unit and the classification information of a reference decoding unit of the current decoding unit is determined.
25. The method of claim 23, wherein, The determining the motion vector information of the current decoding unit according to the change degree comprises: If the change degree is less than or equal to a first preset value, a default value or the motion vector information of a previous decoding unit of the current decoding unit in the decoding order is determined as the motion vector information of the current decoding unit.
26. The method of claim 23, wherein, The determining the motion vector information of the current decoding unit according to the change degree comprises: If the change degree is greater than the first preset value, the point cloud code stream is decoded to obtain the motion vector information of the current decoding unit.
27. The method of any one of claims 14-18, 20-26, wherein, The motion vector information comprises at least one of a rotation matrix and an offset vector, and the second parameter comprises 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 of claim 1, wherein, The method further comprises: If the current decoding unit is a first decoding unit in the decoding order, at least one of the classification information and the motion vector information of the current decoding unit is obtained by decoding the point cloud code stream.
29. The method of any one of claims 1-8, 10-12, 14-18, 20-26, wherein, The decoding the current decoding unit according to at least one of the classification information and the motion vector information of the current decoding unit comprises: According to the classification information of the current decoding unit, point clouds in the current decoding unit are divided into P types of point clouds, wherein P is a positive integer greater than 1. According to the motion vector information of the current decoding unit, motion vector information corresponding to the P types of point clouds is determined. The current decoding unit is decoded according to the motion vector information corresponding to the P types of point clouds.
30. The method of claim 29, wherein, The classification information comprises 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-class point clouds according to the classification information of the current decoding unit comprises: dividing the point cloud in the current decoding unit into P-class point clouds according to the first height threshold and the second height threshold.
31. The method of claim 30, wherein, The P-class point clouds comprise first-class point clouds and second-class point clouds, and the dividing the point cloud in the current decoding unit into P-class point clouds according to the first height threshold and the second height threshold comprises: dividing 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, into the first-class point clouds; dividing 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, into the second-class point clouds.
32. The method of claim 29, wherein, The decoding the current decoding unit according to the motion vector information of the P-class point clouds comprises: determining a reference decoding unit of the current decoding unit; performing motion compensation on the reference decoding unit according to the motion vector information of the P-class point clouds to obtain prediction information of the current decoding unit; decoding at least one of geometry information and attribute information of the current decoding unit according to the prediction information.
33. The method of any one of claims 1-8, 10-12, 14-18, 20-26, wherein, The current decoding unit is a current point cloud frame or a spatial region of the current point cloud frame.
34. The method of any one of claims 3-8, 10-12, 14-18, 20-26, wherein, The decoding at least one of the first parameter and the second parameter from the point cloud bitstream comprises: decoding a sequence header parameter set to obtain at least one of the first parameter and the second parameter.
35. The method of claim 34, wherein, The first parameter is used for indicating that classification information is calculated once every multiple point cloud frames; and / or The second parameter is used for indicating that motion vector information is calculated once every multiple point cloud frames.
36. The method of any one of claims 3-8, 10-12, 14-18, 20-26, wherein, The current decoding unit is a current point cloud slice, and the decoding at least one of the first parameter and the second parameter from the point cloud bitstream comprises: decoding point cloud slice header information to obtain at least one of the first parameter and the second parameter.
37. The method of claim 36, wherein, The first parameter is used for indicating that classification information of an i th point cloud slice in a point cloud frame is calculated once every multiple point cloud frames, wherein i is a positive integer; and / or The second parameter is used for indicating that motion vector information of the i th point cloud slice in the point cloud frame is calculated once every multiple point cloud frames.
38. The method of claim 36, wherein, The first parameter is used for indicating that classification information is calculated once every multiple point cloud slices in a point cloud frame; and / or The second parameter is used for indicating that motion vector information is calculated once every multiple point cloud slices in the point cloud frame.
39. The method of any one of claims 3-8, 10-12, 14-18, 20-26, wherein, The decoding at least one of the first parameter and the second parameter from the point cloud bitstream comprises: decoding the point cloud bitstream to obtain a first identifier, the first identifier being used for indicating whether to perform inter-frame prediction decoding; if the first identifier indicates to perform inter-frame prediction decoding, decoding the point cloud bitstream to obtain at least one of the first parameter and the second parameter.
40. A point cloud encoding method, comprising: determining at least one of a first parameter and a second parameter, the first parameter being used to indicate a calculation period of classification information, and the second parameter being 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; encoding the current coding unit according to at least one of the classification information and the motion vector information of the current coding unit.
41. The method of claim 40, wherein, The 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 comprises: determining the classification information of the current coding unit according to the first parameter, and / or determining the motion vector information of the current coding unit according to the second parameter.
42. The method of claim 41, wherein, The determining the classification information of the current coding unit according to the first parameter comprises: determining a classification information calculation period corresponding to the current coding unit according to the first parameter; determining the classification information of the current coding unit according to the classification information calculation period.
43. The method of claim 42, wherein, The determining the classification information of the current coding unit according to the classification information calculation period comprises: if the current coding unit is a first coding unit in the classification information calculation period, identifying a category of point cloud in the current coding unit to obtain the classification information of the current coding unit.
44. The method of claim 42, wherein, The determining the classification information of the current coding unit according to the classification information calculation period comprises: if the current coding unit is a non-first coding unit in the classification information calculation period, determining the classification information of the current coding unit according to coded information or a default value.
45. The method of claim 43, wherein, The method further comprises: writing the first parameter into a point cloud bitstream, and if the current coding unit is the first coding unit in the classification information calculation period, writing the classification information of the current coding unit into the point cloud bitstream.
46. The method of claim 44, wherein, The method further comprises: writing the first parameter into a point cloud bitstream, and if the current coding unit is a non-first coding unit in the classification information calculation period, skipping writing the classification information of the current coding unit into the point cloud bitstream.
47. The method of claim 42, wherein, The first parameter indicates that classification information is calculated once every K coding units, and the determining the classification information of the current coding unit according to the first parameter comprises: if the current coding unit is an NKth coding unit in a coding order, identifying a category of point cloud in the current coding unit to obtain the classification information of the current coding unit, K and N being positive integers.
48. The method of claim 47, wherein, The method further comprises: if the current coding unit is a non-NKth coding unit in the coding order, determining the classification information of the current coding unit according to coded information or a default value.
49. The method of claim 47, wherein, The method further comprises: writing the first parameter into a point cloud bitstream, and if the current coding unit is the NKth coding unit in the coding order, writing the classification information of the current coding unit into the bitstream.
50. The method of claim 48, wherein, The method further comprises: writing the first parameter into a point cloud bitstream, and if the current coding unit is not the NKth coding unit in coding order, then skipping writing classification information of the current coding unit into the bitstream.
51. The method of any one of claims 41-50, wherein, The method further comprises: writing classification information of the current coding unit into a point cloud bitstream, and skipping writing the first parameter into the point cloud bitstream.
52. The method of claim 44 or 48, wherein, The determining the classification information of the current coding unit according to the coded information comprises: determining the classification information of the current coding unit according to classification information of M coding units, the M coding units being M coded coding units before the current coding unit in decoding order, the M being a positive integer.
53. The method of claim 52, wherein, The determining the classification information of the current coding unit according to the classification information of the M coding units comprises: if the M is equal to 1, then determining the classification information of one coding unit before the current coding unit in the coding order as the classification information of the current coding unit.
54. The method of claim 52, wherein, The determining the classification information of the current coding unit according to the classification information of the M coding units comprises: if the M is greater than 1, then performing a preset processing on the classification information of the M coding units, and determining a processing result as the classification information of the current coding unit.
55. The method of claim 54, wherein, The performing the 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 comprises: determining an average value of the classification information of the M coding units as the classification information of the current coding unit.
56. The method of any one of claims 42-50, wherein, The classification information comprises at least one of a first height threshold and a second height threshold, and the first parameter comprises 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 a point cloud in the current coding unit.
57. The method of claim 42, wherein, The determining the motion vector information of the current coding unit according to the second parameter comprises: determining a motion vector information calculation period corresponding to the current coding unit according to the second parameter; determining the motion vector information of the current coding unit according to the motion vector information calculation period.
58. The method of claim 57, wherein, The determining the motion vector information of the current coding unit according to the motion vector information calculation period comprises: if the current coding unit is a first coding unit in the motion vector information calculation period, then determining the motion vector information of the current coding unit according to a reference coding unit of the current coding unit.
59. The method of claim 57, wherein, The determining the motion vector information of the current coding unit according to the motion vector information calculation period comprises: if the current coding unit is not the first coding unit in the motion vector information calculation period, then determining the motion vector information of the current coding unit according to coded information or a default value.
60. The method of claim 58, wherein, The method further comprises: writing the second parameter into the point cloud bitstream, and if the current coding unit is the first coding unit in the motion vector information calculation period, writing the motion vector information of the current coding unit into the point cloud bitstream.
61. The method of claim 59, wherein, The method further comprises: writing the second parameter into the point cloud bitstream, and if the current coding unit is not the first coding unit in the motion vector information calculation period, skipping writing the motion vector information of the current coding unit into the point cloud bitstream.
62. The method of claim 42, wherein, The first parameter indicates that motion vector information is calculated once every R coding units, and the determining the motion vector information of the current coding unit according to the second parameter comprises: if the current coding unit is the NRth coding unit in the coding order, determining the motion vector information of the current coding unit according to a reference coding unit of the current coding unit, wherein R and N are positive integers.
63. The method of claim 62, wherein, The method further comprises: if the current coding unit is not the NRth coding unit in the coding order, determining the motion vector information of the current coding unit according to coded information or a default value.
64. The method of claim 62, wherein, The method further comprises: writing the second parameter into the point cloud bitstream, and if the current coding unit is the NKth coding unit in the coding order, writing the motion vector information of the current coding unit into the bitstream.
65. The method of claim 63, wherein, The method further comprises: writing the second parameter into the point cloud bitstream, and if the current coding unit is not the NKth coding unit in the coding order, skipping writing the motion vector information of the current coding unit into the bitstream.
66. The method of any one of claims 57-65, wherein, The method further comprises: writing the motion vector information of the current coding unit into the point cloud bitstream, and skipping writing the second parameter into the point cloud bitstream.
67. The method of claim 59 or 63, wherein, The determining the motion vector information of the current coding unit according to the coded information comprises: determining the motion vector information of the current coding unit according to the motion vector information of S coding units, wherein the S coding units are S coded coding units before the current coding unit in the coding order, and S is a positive integer.
68. The method of claim 67, wherein, The determining the motion vector information of the current coding unit according to the motion vector information of the S coding units comprises: if the S is equal to 1, determining the motion vector information of one coding unit before the current coding unit in the coding order as the motion vector information of the current coding unit.
69. The method of claim 67, wherein, The determining the motion vector information of the current coding unit according to the motion vector information of the S coding units comprises: if the S is greater than 1, performing a preset processing on the motion vector information of the S coding units, and determining a processing result as the motion vector information of the current coding unit.
70. The method of claim 69, wherein, The performing the 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 comprises: determining an average value of the motion vector information of the S coding units as the motion vector information of the current coding unit.
71. The method of claim 42, wherein, The method further comprises, comprising: determining a variation degree of classification information of different coding units according to the first parameter; determine the motion vector information of the current coding unit according to the change degree.
72. The method of claim 71, wherein, The determining the change degree of the classification information of different coding units according to the first parameter comprises: determining the classification information of the current coding unit according to the first parameter, determining the change degree between the classification information of the current coding unit and the classification information of the reference coding unit of the current coding unit.
73. The method of claim 72, wherein, The determining the motion vector information of the current coding unit according to the change degree comprises: if the change degree is less than or equal to a first preset value, determining the motion vector information of the previous coding unit of the current coding unit in the encoding order as the motion vector information of the current coding unit.
74. The method of claim 72, wherein, The determining the motion vector information of the current coding unit according to the change degree comprises: if the change degree is greater than the first preset value, determining the motion vector information of the current coding unit according to the reference coding unit of the current coding unit.
75. The method of claim 71, wherein, The method further comprises: writing the first parameter into a point cloud bitstream and skipping writing the second parameter into the point cloud bitstream.
76. The method of any one of claims 57-65, wherein, The motion vector information comprises at least one of a rotation matrix and an offset vector, and the second parameter comprises 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 of any one of claims 40-50, 57-65, wherein, The encoding the current coding unit according to at least one of the classification information and the motion vector information of the current coding unit comprises: dividing point clouds in the current coding unit into P-class point clouds according to the classification information of the current coding unit, wherein P is a positive integer greater than 1; determining motion vector information corresponding to the P-class point clouds according to the motion vector information of the current coding unit; encoding the current coding unit according to the motion vector information corresponding to the P-class point clouds.
78. The method of claim 77, wherein, The classification information comprises 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 clouds in the current coding unit into P-class point clouds according to the classification information of the current coding unit comprises: dividing the point clouds in the current coding unit into P-class point clouds according to the first height threshold and the second height threshold.
79. The method of claim 78, wherein, The P-class point clouds comprise first-class point clouds and second-class point clouds, and the dividing the point clouds in the current coding unit into P-class point clouds according to the first height threshold and the second height threshold comprises: dividing 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, into the first-class point clouds; dividing point clouds in the current coding unit, whose height values are greater than the first height threshold or less than the second height threshold, into the second-class point clouds.
80. The method of claim 77, wherein, The encoding the current coding unit according to the motion vector information of the P-class point clouds comprises: According to the motion vector information of the P-class point cloud, motion compensation is performed on a reference coding unit of the current coding unit to obtain prediction information of the current coding unit; According to the prediction information, at least one of the geometry information and the attribute information of the current coding unit is encoded.
81. The method of any one of claims 40-50, 57-65, wherein, The current coding unit is a current point cloud frame or a spatial region of the current point cloud frame.
82. The method of any one of claims 40-50, 57-65, wherein, 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 of claim 82, wherein, 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.
84. The method of any one of claims 40-50, 57-65, wherein, The current coding unit is a current point cloud slice, and the method further comprises: At least one of the first parameter and the second parameter is written into point cloud slice header information.
85. The method of claim 84, wherein, The first parameter is used to indicate that classification information of an i-th point cloud slice in a point cloud frame is calculated once every multiple point cloud frames, where i is a positive integer; and / or The second parameter is used to indicate that motion vector information of the i-th point cloud slice in the point cloud frame is calculated once every multiple point cloud frames.
86. The method of claim 85, 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 indicate that motion vector information is calculated once every multiple point cloud slices in the point cloud frame.
87. The method of any one of claims 40-50, 57-65, wherein, Before determining at least one of the first parameter and the second parameter, the method further comprises: A first identifier is determined, and the first identifier is used to indicate whether inter-frame prediction encoding is performed; The determination of at least one of the first parameter and the second parameter comprises: If the first identifier indicates that inter-frame prediction encoding is performed, at least one of the first parameter and the second parameter is determined.
88. An apparatus for point cloud decoding, the apparatus comprising: Comprise: A determination unit is configured to decode a point cloud code stream, determine at least one of classification information and motion vector information of a current decoding unit, 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 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. An apparatus for point cloud encoding, the apparatus comprising: Comprise: A first determination unit is configured to determine at least one of a first parameter and a second parameter, 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 determination unit is 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, comprising: Comprise: A processor and a memory; The memory is used to store a computer program; The processor is configured to invoke and run a computer program stored in the memory to perform the method of any one of claims 1 to 39 or 40 to 87.
91. A computer readable storage medium, characterized in that, A computer program for storing, which causes a computer to perform the method of any one of claims 1 to 39 or 40 to 87.
Citation Information
Patent Citations
Coding method and decoding method of point cloud attribute information, storage medium and terminal equipment
CN111405281A
Prediction method, encoder, decoder and storage medium
WO2022116118A1