Encoding and decoding methods, code stream, encoder, decoder, and storage medium
By using azimuth sampling information to initialize the predicted value in the point cloud encoding and decoding method, the problem of unreasonable initialization of predicted value in the prior art is solved, and the point cloud compression performance is improved.
Patent Information
- Application Number
- PCT/CN2023/106176
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-07-06
- Publication Date
- 2025-03-20
AI Technical Summary
In the existing geometric codec method based on prediction trees, the initialization of the prediction value is unreasonable, which reduces the accuracy of the prediction effect, and thus affects the point cloud compression performance.
By determining the azimuth sampling information of the current point cloud, the predicted value is initialized to ensure that the predicted value is more reasonable.
Improve the accuracy of prediction effects, thereby improving point cloud compression performance.
Smart Images

Figure CN2023106176_20032025_PF_FP_ABST
Abstract
Description
Coding and decoding method, code stream, encoder, decoder and storage medium Technical Field
[0001] The embodiments of the present application relate to the field of point cloud encoding and decoding technology, and in particular to an encoding and decoding method, a bit stream, an encoder, a decoder, and a storage medium. Background Art
[0002] In the geometry-based point cloud compression (G-PCC) codec framework, the geometric information of a point cloud and the attribute information corresponding to each point in the point cloud are encoded separately. For the G-PCC codec framework, the encoding and decoding of geometric information can include octree-based geometry encoding and decoding and prediction tree-based geometry encoding and decoding.
[0003] In the process of geometric encoding and decoding based on prediction trees, although the relevant technology has achieved the initialization of the prediction value, the initialized prediction value is not reasonable, which reduces the accuracy of the prediction effect and thus affects the point cloud compression performance.
[0004] Summary of the Invention
[0005] The embodiments of the present application provide a coding and decoding method, a code stream, an encoder, a decoder, and a storage medium, which can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
[0006] The technical solution of the embodiment of the present application can be implemented as follows:
[0007] In a first aspect, an embodiment of the present application provides a decoding method, applied to a decoder, the method comprising:
[0008] Decode the code stream to determine the azimuth sampling information corresponding to the current point cloud;
[0009] An initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and a prediction value of a midpoint of the current point cloud is determined according to the initial prediction value.
[0010] In a second aspect, an embodiment of the present application provides an encoding method, applied to an encoder, the method comprising:
[0011] Determine the azimuth sampling information corresponding to the current point cloud, and write the azimuth sampling information into the bitstream;
[0012] An initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and a prediction value of a midpoint of the current point cloud is determined according to the initial prediction value.
[0013] In a third aspect, an embodiment of the present application provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least:
[0014] Initialize mode identification information, azimuth sampling information, radial distance information, quantization parameters, quantized prediction residual, and mode identification information.
[0015] In a fourth aspect, an embodiment of the present application provides an encoder, the encoder comprising: a first determining unit and an encoding unit; wherein,
[0016] The first determining unit is configured to determine azimuth sampling information corresponding to the current point cloud;
[0017] The encoding unit is configured to write the azimuth sampling information into a bitstream;
[0018] The first determining unit is further configured to determine an initial prediction value corresponding to the current point cloud according to the azimuth sampling information corresponding to the current point cloud, and determine a prediction value of a midpoint in the current point cloud according to the initial prediction value.
[0019] In a fifth aspect, an embodiment of the present application provides an encoder, the encoder including a first memory and a first processor; wherein,
[0020] The first memory is used to store a computer program that can be run on the first processor;
[0021] The first processor is configured to execute the encoding method described above when running the computer program.
[0022] In a sixth aspect, an embodiment of the present application provides a decoder, the decoder comprising: a decoding unit and a second determining unit; wherein,
[0023] The decoding unit is configured to decode the code stream;
[0024] The second determination unit is configured to determine the azimuth sampling information corresponding to the current point cloud; determine the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determine the prediction value of the midpoint of the current point cloud based on the initial prediction value.
[0025] In a seventh aspect, an embodiment of the present application provides a decoder, the decoder including a second memory and a second processor; wherein,
[0026] The second memory is used to store a computer program that can be run on the second processor;
[0027] The second processor is configured to execute the above-mentioned decoding method when running the computer program.
[0028] In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed, it implements the decoding method as described in the first aspect, or implements the encoding method as described in the second aspect.
[0029] The embodiment of the present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium. At the decoding end, the code stream is decoded to determine the azimuth sampling information corresponding to the current point cloud; the initial prediction value corresponding to the current point cloud is determined based on the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined based on the initial prediction value. At the encoding end, the azimuth sampling information corresponding to the current point cloud is determined, and the azimuth sampling information is written into the code stream; the initial prediction value corresponding to the current point cloud is determined based on the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined based on the initial prediction value. It can be seen that in the embodiment of the present application, in the process of initializing the prediction value of the current point cloud, the corresponding initial prediction value can be determined by the azimuth sampling information corresponding to the current point cloud, which can fully take into account the actual size of the azimuth of the root node of the current point cloud, and achieve more reasonable initialization processing of the prediction value. That is to say, in the embodiment of the present application, the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] FIG1 is a schematic diagram of a network architecture of a point cloud encoding and decoding method provided in an embodiment of the present application;
[0031] FIG2 is a schematic diagram of a composition framework of a G-PCC encoder;
[0032] FIG3 is a schematic diagram of a composition framework of a G-PCC decoder;
[0033] FIG4 is a schematic diagram of geometric coding;
[0034] FIG5 is a schematic diagram of geometric decoding;
[0035] FIG6 is a schematic diagram of an arrangement of geometric information;
[0036] FIG7 is a first schematic diagram of an implementation flow of the point cloud decoding method proposed in an embodiment of the present application;
[0037] FIG8 is a second schematic diagram of the implementation flow of the point cloud decoding method proposed in an embodiment of the present application;
[0038] FIG9 is a third schematic diagram of the implementation flow of the point cloud decoding method proposed in an embodiment of the present application;
[0039] FIG10 is a first schematic diagram of an implementation flow of the point cloud encoding method proposed in an embodiment of the present application;
[0040] FIG11 is a second schematic diagram of the implementation flow of the point cloud encoding method proposed in an embodiment of the present application;
[0041] FIG12 is a third schematic diagram of the implementation flow of the point cloud encoding method proposed in an embodiment of the present application;
[0042] FIG13 is a schematic diagram of the structure of the encoder;
[0043] FIG14 is a second schematic diagram of the structure of the encoder;
[0044] FIG15 is a schematic diagram of the structure of the decoder;
[0045] FIG16 is a second schematic diagram of the structure of the decoder. DETAILED DESCRIPTION
[0046] In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
[0047] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
[0048] In the following description, reference is made to "some embodiments," which describe a subset of all possible embodiments. However, it is understood that "some embodiments" may be the same subset or different subsets of all possible embodiments, and may be combined with each other without conflict. It should also be noted that the terms "first, second, and third" in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It is understood that "first, second, and third" may be interchanged in a specific order or sequential order where permitted, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0049] Before further explaining the embodiments of the present application in detail, the nouns and terms involved in the embodiments of the present application are explained first. The nouns and terms involved in the embodiments of the present application are subject to the following interpretations:
[0050] Point Cloud Compression (PCC);
[0051] Geometry-based Point Cloud Compression (G-PCC or GPCC);
[0052] Video-based Point Cloud Compression (V-PCC or VPCC);
[0053] Octree;
[0054] Intra Prediction;
[0055] Look Up Table (LUT);
[0056] Red-Green-Blue (RGB);
[0057] Luminance-Chrominance (YUV);
[0058] Level of Detail (LOD);
[0059] Predicting Transform;
[0060] Lifting Transform;
[0061] Region Adaptive Hierarchal Transform (RAHT);
[0062] Context-based Adaptive Binary Arithmetic Coding (CABAC)
[0063] It can be understood that point cloud is a three-dimensional representation of the surface of an object. Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, multi-view camera, etc.
[0064] In addition, a point cloud refers to a collection of massive three-dimensional points. The points in the point cloud can include the location information and attribute information of the points. For example, the location information of a point can be the three-dimensional coordinate information of the point. The location information of a point can also be called the geometric information of the point. For example, the attribute information of a point can include color information and / or reflectivity, etc. For example, color information can be information in any color space. For example, color information can be RGB information. R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, color information can be luminance and chrominance (YCbCr, YUV) information. Y represents brightness, Cb (U) represents blue chrominance, and Cr (V) represents red chrominance.
[0065] For example, a point cloud obtained based on the principle of laser measurement can include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point. For another example, a point cloud obtained based on the principle of photogrammetry can include the three-dimensional coordinate information of the point and the color information of the point. For another example, a point cloud obtained by combining the principles of laser measurement and photogrammetry can include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point, and the color information of the point.
[0066] Point clouds can be divided into the following categories according to the acquisition method:
[0067] The first type of static point cloud: the object is stationary and the device used to obtain the point cloud is also stationary;
[0068] The second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is stationary;
[0069] The third type of dynamic point cloud acquisition: the device that acquires the point cloud is moving.
[0070] For example, point clouds can be divided into two categories according to their usage:
[0071] Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;
[0072] Category 2: Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
[0073] Since point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of point clouds at the network layer without compression. Therefore, point clouds need to be compressed.
[0074] In other words, with the advancement of hardware processing power and the rapid development of computer vision, 3D point clouds have become the next generation of immersive multimedia, following audio, images, and video. They are widely used in applications such as virtual reality, augmented reality, autonomous driving, and environmental modeling. However, point clouds typically have large data volumes, which are not conducive to their transmission and storage. Therefore, efficient encoding and decoding of point clouds is necessary.
[0075] To date, the point cloud coding framework that can compress point clouds can be the G-PCC codec framework or the V-PCC codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS). Among them, the G-PCC codec framework can be used to compress the first type of static point cloud and the third type of dynamically acquired point cloud, and the V-PCC codec framework can be used to compress the second type of dynamic point cloud. In the embodiments of the present application, the description is mainly based on the G-PCC codec framework.
[0076] An embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method. FIG1 is a schematic diagram of a network architecture of a point cloud encoding and decoding system provided by an embodiment of the present application. As shown in FIG1 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions. For example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application. Among them, the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.
[0077] Among them, the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
[0078] The following describes the related technologies using the G-PCC encoding and decoding framework as an example.
[0079] As you can understand, in the point cloud G-PCC codec framework, the point cloud data to be encoded is first divided into multiple slices through slice partitioning. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately.
[0080] Figure 2 shows a schematic diagram of the G-PCC encoder architecture. As shown in Figure 2, during the geometry encoding process, the geometric information is transformed so that the entire point cloud is contained within a bounding box. Quantization then occurs. This quantization step primarily serves a scaling purpose. Due to quantization rounding, the geometric information of some point clouds becomes identical. Parameters are then used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also known as voxelization. The bounding box is then partitioned into an octree or a prediction tree is constructed. During this process, arithmetic coding is performed on the points in the leaf nodes of the partition to generate a binary geometry bitstream. Alternatively, arithmetic coding is performed on the intersection points (vertices) generated by the partition (surface fitting is performed based on the intersections) to generate a binary geometry bitstream. During the attribute encoding process, after the geometry encoding is completed and the geometric information is reconstructed, color conversion is performed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. The reconstructed geometry information is then used to recolor the point cloud, aligning the unencoded attribute information with the reconstructed geometry information. Attribute encoding is mainly performed on color information. In the process of color information encoding, there are two main transformation methods. One is the distance-based lifting transformation that relies on LOD division, and the other is direct RAHT transformation. Both methods convert color information from the spatial domain to the frequency domain, and obtain high-frequency coefficients and low-frequency coefficients through transformation. Finally, the coefficients are quantized and then arithmetic coding is performed on the quantized coefficients to generate a binary attribute bit stream.
[0081] Figure 3 shows a schematic diagram of the composition framework of a G-PCC decoder. As shown in Figure 3, for the acquired binary bit stream, the geometric bit stream and attribute bit stream in the binary bit stream are first decoded independently. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-reconstruction of the octree / reconstruction of the prediction tree-reconstruction of the geometry-coordinate inverse conversion; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD partitioning / RAHT-color inverse conversion, and the point cloud data to be encoded (i.e., the output point cloud) is restored based on the geometric information and attribute information.
[0082] It should be noted that FIG4 is a schematic diagram of geometric coding. As shown in FIG4, for the geometric coding process, the geometric information is firstly transformed into coordinates so that all point clouds are contained in a point cloud consisting of two extreme points (0, 0, 0) and (2 d , 2 d, 2D). Voxelization is then performed, which involves quantization, rounding, and duplicate point removal. Whether or not to remove duplicate points is determined by encoder parameters. Currently, G-PCC geometric coding can be divided into two types: octree-based geometric coding and prediction tree-based geometric coding.
[0083] In the prediction tree-based geometric coding, the input geometric information is first sorted. The default sorting method of the current G-PCC standard test conditions is based on azimuth. First, the cylindrical coordinates (r, θ), where r is the radial distance of the point, also known as the radius; is the azimuth angle of the point; θ is the elevation angle of the laser beam to which the point belongs. Then according to Sort by r, tanθ. First compare If the size If they are the same, r is compared. If r is the same, tanθ is compared. This completes the reordering of the entire point cloud. Depending on whether the angle mode is enabled, prediction tree geometry coding can be divided into azimuth-based geometry prediction coding schemes and KD-tree-based geometry prediction coding schemes.
[0084] In the azimuth-based geometric prediction coding scheme, when building the prediction tree, the encoder first converts the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates (r, θ). Each point in the input point cloud is then divided into different laser beams according to its pitch angle. Since the azimuth-based sorting method is used by default when sorting the input geometric information, the geometric information of the entire point cloud is arranged in ascending order of azimuth. For the i-th laser beam, the first point visited is the point with the smallest azimuth among all the points belonging to this laser beam. And the parent node of the points subsequently visited by the i-th beam is the first point in the same laser beam with a smaller azimuth than itself. The parent node of the first point of the i-th laser beam is the first point of the i-1-th laser beam. For the first point of the 0-th laser beam, since it has no parent node, it serves as the root node of the entire tree.
[0085] Next, predictive coding is performed on each node in the prediction tree in depth-first order. For the point to be coded, the predicted value of the geometric information is first determined using either an intra-frame prediction algorithm or an inter-frame prediction algorithm. In intra-frame prediction, a prediction list is used to predict the point to be coded. For inter-frame prediction, a prediction point is found in the previously coded frame to predict the point to be coded. Then, through rate-distortion optimization, the predicted value with the lowest bitrate is selected as the predicted value for the point to be coded (decoded). The prediction residual is then obtained by subtracting the actual value of the node's geometric information from the predicted value, and the prediction residual is quantized using a quantization parameter. Finally, the quantization parameter, the selected prediction value index, the prediction residual, and other information are encoded to generate a binary bitstream.
[0086] Correspondingly, Figure 5 is a schematic diagram of geometric decoding. As shown in Figure 5, for the geometric decoding process, decoding is the inverse process of encoding. In the prediction tree-based geometric decoding, for the point to be decoded, the quantization coefficient and prediction index corresponding to each node are first decoded, and the corresponding prediction value is uniquely determined based on the prediction index. Then, the prediction residual of the geometric information is decoded and dequantized. Then, the geometric reconstruction information of the point to be decoded is restored based on the prediction value and prediction residual. The coordinate inverse transformation of the obtained reconstructed geometric information is then performed to obtain the final reconstructed geometric information.
[0087] It should be noted that when building a prediction tree based on azimuth, first, the original point cloud is reordered to build the prediction tree more efficiently. The available sorting methods are unordered, Morton order, azimuth order, and radial distance order. Currently, the default sorting method is sorting by azimuth, that is, sorting each point according to azimuth, radial distance, and pitch angle tangent value in turn.
[0088] Then, the prediction tree structure is established. The encoder first converts the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates (r, θ). Then each point in the input point cloud is divided into different laser beams according to its pitch angle. θ) can be converted to (r, i), where i represents the index of the laser beam. Since the default sorting method based on azimuth angle is used when sorting the input geometric information, the geometric information of the entire point cloud is arranged in ascending order of azimuth angle.
[0089] Figure 6 is a schematic diagram of the arrangement of geometric information. As shown in Figure 6, for the i-th laser beam, the first point visited is the point with the smallest azimuth angle among all points belonging to that beam. The parent node of each subsequent point visited is the first point in the same beam with a smaller azimuth angle than the i-th laser beam itself. The parent node of the first point in the i-th laser beam is the first point in the i-1-th laser beam. Since the first point in the 0th laser beam has no parent node, it serves as the root node of the entire tree.
[0090] Next, we traverse each node in the prediction tree starting from the root node, predicting the node's geometry by selecting different prediction values, obtaining the corresponding prediction residual, and quantizing it. Finally, we encode the quantization parameter, the selected prediction value index, the prediction residual, and other information to generate a binary bitstream.
[0091] In general, the cylindrical coordinates of the input point cloud (r, The predicted value of i) is initialized to (r min , 0, 0). When the code point to be encoded (decoded) is the root node of the prediction tree, its cylindrical coordinates (r, The predicted value of i) is (r min ,0,0), where r min This is the minimum radius of the current input point cloud, obtained by traversal at the encoder and transmitted to the decoder via pgeom_min_radius. Since the azimuth angle is in the range (-π, π]), and considering that the geometric information of the input point cloud is arranged in ascending azimuth order, the azimuth angle of the root node is very close to -π. Using 0 as the predicted value for the root node azimuth angle is unreasonable.
[0092] It can be seen from this that although the common point cloud encoding and decoding technology has achieved the initialization of the prediction value, the initialization prediction value is not reasonable, which reduces the accuracy of the prediction effect and thus affects the point cloud compression performance.
[0093] In order to solve the above problems, in an embodiment of the present application, at the decoding end, the code stream is decoded to determine the azimuth sampling information corresponding to the current point cloud; the initial prediction value corresponding to the current point cloud is determined based on the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined based on the initial prediction value. At the encoding end, the azimuth sampling information corresponding to the current point cloud is determined, and the azimuth sampling information is written into the code stream; the initial prediction value corresponding to the current point cloud is determined based on the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined based on the initial prediction value. It can be seen that in the embodiment of the present application, in the process of initializing the prediction value of the current point cloud, the corresponding initial prediction value can be determined by the azimuth sampling information corresponding to the current point cloud, which can fully take into account the actual size of the azimuth of the root node of the current point cloud, and achieve more reasonable initialization processing of the prediction value. That is to say, in the embodiment of the present application, the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
[0094] The point cloud encoding method in the embodiment of the present application can be applied to the predictive encoding and arithmetic encoding parts as shown in Figure 4. In addition, the point cloud decoding method in the embodiment of the present application can also be applied to the predictive decoding and arithmetic decoding parts as shown in Figure 5. In other words, the point cloud encoding and decoding method in the embodiment of the present application can be applied to both the encoder and the decoder, or even to both the encoder and the decoder at the same time, but this embodiment of the present application does not specifically limit this.
[0095] The embodiments of the present application will be described in detail below with reference to the accompanying drawings.
[0096] The present application proposes a point cloud decoding method. FIG7 is a schematic diagram of a first implementation flow of the point cloud decoding method proposed in the present application. As shown in FIG7 , the method for performing point cloud decoding processing by the decoder may include the following steps:
[0097] Step 101: Decode the code stream to determine the azimuth sampling information corresponding to the current point cloud.
[0098] In an embodiment of the present application, the decoder may first decode the code stream, thereby determining the azimuth sampling information corresponding to the current point cloud.
[0099] It should be noted that, in the embodiment of the present application, the azimuth sampling information corresponding to the current point cloud can determine the azimuth sampling interval corresponding to the current point cloud.
[0100] Furthermore, in an embodiment of the present application, the azimuth sampling information corresponding to the current point cloud can be represented in the form of syntax elements, that is, the decoder decodes the code stream to obtain the syntax elements representing the azimuth sampling information, thereby determining the azimuth sampling information.
[0101] It can be understood that in the embodiments of the present application, by decoding the code stream, the azimuth sampling information corresponding to the current point cloud and representing the azimuth sampling interval can be directly obtained, and the relevant information used to calculate the azimuth sampling information can also be obtained, and then the azimuth sampling information corresponding to the current point cloud and representing the azimuth sampling interval can be deduced based on the relevant information.
[0102] Furthermore, in an embodiment of the present application, when determining the azimuth sampling information, the code stream can also be decoded to determine the first azimuth parameter, and then the azimuth sampling information corresponding to the current point cloud can be further determined based on the first azimuth parameter and the preset value.
[0103] It can be understood that, in the embodiments of the present application, the preset value can be any pre-set value, and the present application does not specifically limit it. For example, the preset value can be 1.
[0104] For example, in some embodiments, the azimuth sampling information corresponding to the current point cloud can be directly determined by decoding the code stream, that is, the azimuth sampling interval
[0105] For example, in some embodiments, the first azimuth parameter geom_angular_azimuth_speed_minus1 can be determined by decoding the code stream, and then the corresponding azimuth sampling information is calculated by the first azimuth parameter geom_angular_azimuth_speed_minus1 and a preset value (such as 1), that is, the azimuth sampling interval For example, formula (1):
[0106] The syntax element geom_angular_azimuth_speed_minus1 may be transmitted from the encoding end to the decoding end through a bitstream, and the geom_angular_azimuth_speed_minus1 may be a syntax element in a geometric parameter set (GPS).
[0107] Furthermore, in an embodiment of the present application, while decoding the code stream to determine the azimuth sampling information corresponding to the current point cloud, the code stream can also be decoded to determine the radial distance information corresponding to the current point cloud.
[0108] It should be noted that, in the embodiment of the present application, the radial distance information corresponding to the current point cloud can determine the minimum radial distance corresponding to the current point cloud, that is, the minimum radius.
[0109] Furthermore, in an embodiment of the present application, the radial distance information corresponding to the current point cloud can be represented in the form of syntax elements, that is, the decoder decodes the code stream to obtain the syntax elements representing the radial distance information, thereby determining the radial distance information.
[0110] For example, in some embodiments, the syntax element pgeom_min_radius representing the radial distance information may be determined by decoding the code stream, and then the corresponding radial distance information r may be determined by pgeom_min_radius. min For example, formula (2):
[0111] r min =pgeom_min_radius (2)
[0112] The syntax element pgeom_min_radius may be transmitted from the encoding end to the decoding end through a bitstream, and the pgeom_min_radius may be a syntax element in geometry block header (GPS) information.
[0113] It should be noted that, in the embodiment of the present application, the point cloud decoding method proposed in the embodiment of the present application can be used in the geometric decoding process based on the prediction tree, wherein the current point cloud can be the point cloud to be decoded.
[0114] It is understood that, in the embodiment of the present application, the geometric information of the points in the current point cloud can be represented in the form of cylindrical coordinates. For example, the geometric information of the points in the current point cloud can be represented as (r, i), where r is the radial distance of the point, also known as the radius; is the azimuth angle of the point; θ is the elevation angle of the laser beam to which the point belongs.
[0115] That is to say, in the embodiment of the present application, the geometric information of the point in the current point cloud can be represented by a radial distance component, an azimuth component, and a pitch angle component.
[0116] Step 102: Determine an initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determine a prediction value of the midpoint of the current point cloud based on the initial prediction value.
[0117] In an embodiment of the present application, after decoding the code stream and determining the azimuth sampling information corresponding to the current point cloud, the prediction value can be initialized according to the azimuth sampling information corresponding to the current point cloud, and the initial prediction value corresponding to the current point cloud can be determined, so that the prediction value of the midpoint of the current point cloud can be further determined based on the initial prediction value.
[0118] It should be noted that, in the embodiment of the present application, it is possible to select to determine the initial prediction value corresponding to the current point cloud based on the azimuth sampling information and the radial distance information.
[0119] Furthermore, in an embodiment of the present application, when initializing the predicted value of the current point cloud, the azimuth sampling information corresponding to the current point cloud can be used to determine the initial predicted value, and the radial distance information corresponding to the current point cloud can also be used to determine the initial predicted value. The azimuth sampling information can be used to determine the azimuth component of the initial predicted value. The radial distance information can be used to determine the radial distance component of the initial predicted value.
[0120] It can be understood that, in the embodiment of the present application, the initial prediction value corresponding to the current point cloud may be the initialized geometric information prediction value corresponding to the current point cloud.
[0121] It is understood that in the embodiment of the present application, since the geometric information of any point in the current point cloud can be expressed as cylindrical coordinates (r, i), therefore, when initializing the predicted value of the current point cloud, the final obtained initial predicted value can also be represented by cylindrical coordinates, so the initial predicted value can also be represented by radial distance components, azimuth components, and pitch angle components.
[0122] Accordingly, in an embodiment of the present application, in the process of initializing the predicted value of the current point cloud, the azimuth sampling information corresponding to the current point cloud can be used to determine the azimuth component in the initial predicted value.
[0123] Accordingly, in an embodiment of the present application, in the process of initializing the predicted value of the current point cloud, the radial distance information corresponding to the current point cloud can be used to determine the radial distance component in the initial predicted value.
[0124] That is to say, in an embodiment of the present application, when the initialization of the prediction value corresponding to the current point cloud is performed in combination with the azimuth sampling information and radial distance information corresponding to the current point cloud, the azimuth component in the initial prediction value finally obtained is determined by the azimuth sampling information, and at the same time, the radial distance component is determined by the radial distance information.
[0125] Furthermore, in an embodiment of the present application, when determining the initial prediction value corresponding to the current point cloud based on the azimuth sampling information and the radial distance information, the initialization parameters can be first determined based on the azimuth sampling information; and then the azimuth component corresponding to the initial prediction value can be determined based on the azimuth sampling information and the initialization parameters.
[0126] It should be noted that in the real time of the present application, after determining the azimuth sampling information (such as the azimuth sampling interval), the azimuth sampling information can be used to calculate the initialization parameters. The initialization parameters can be used to adjust and control the azimuth component in the process of initializing the predicted value. Then, the azimuth sampling information and the initialization parameters can be combined to further calculate the azimuth component in the initial predicted value.
[0127] It is understandable that, in the embodiments of the present application, the initialization parameters may be determined based on the azimuth sampling information in combination with any numerical value and through any calculation method.
[0128] For example, in some embodiments, it is assumed that the azimuth sampling information is the azimuth sampling interval Then according to Calculate the initialization parameter k:
[0129] Among them, round() is a Round function, which returns a value that is rounded to a specified number of decimal places.
[0130] It is understandable that, in the embodiments of the present application, in addition to the above formula (3), other methods can also be used to determine the initialization parameters, and the present application does not limit the calculation method of the initialization parameters.
[0131] It should be noted that, in the embodiments of the present application, the azimuth component of the initial prediction value can be determined by any calculation method in combination with any numerical value based on the azimuth sampling information and the initialization parameters.
[0132] For example, in some embodiments, it is assumed that the azimuth sampling information is the azimuth sampling interval The initialization parameter is k, and the azimuth component is finally calculated
[0133] It is understandable that, in the embodiments of the present application, in addition to the above formula (4), other methods can also be used to determine the azimuth component, and the present application does not limit the calculation method of the azimuth component.
[0134] Furthermore, in an embodiment of the present application, when determining the initial prediction value corresponding to the current point cloud based on the azimuth sampling information and the radial distance information, the radial distance component corresponding to the initial prediction value can be directly determined based on the radial distance information.
[0135] For example, in some embodiments, it is assumed that the radial distance information is the minimum radial value r of the current point cloud. min, and finally the radial distance component r0 is calculated:
[0136] r0=r min (5)
[0137] It can be seen that in the embodiment of the present application, after determining the initial prediction value corresponding to the current point cloud according to the azimuth sampling information and the radial distance information, the radial distance component of the initial prediction value finally obtained is r min , the azimuth component is
[0138] It can be understood that in the embodiment of the present application, during the process of initializing the predicted value of the current point cloud, the pitch angle component of the initial predicted value can also be set to a fixed value. For example, the pitch angle component can be set to 0.
[0139] That is, in the embodiment of the present application, after completing the initialization of the prediction value of the current point cloud, the initial prediction value can be expressed as (r min , 0).
[0140] Furthermore, in an embodiment of the present application, after decoding the code stream and determining the radial distance information corresponding to the current point cloud, when determining the initial prediction value, you can also choose to determine the radial distance component of the initial prediction value based on the radial distance information, and set the azimuth component and the pitch angle component to fixed values, for example, set the azimuth component to 0, and set the pitch angle component to 0 at the same time.
[0141] That is to say, in the embodiment of the present application, a common initialization scheme can also be selected, and the final initial prediction value can be expressed as (r min , 0, 0).
[0142] It can be seen that the point cloud decoding method proposed in the embodiment of the present application can choose to determine the azimuth component of the initial prediction value based on the azimuth sampling information corresponding to the current point cloud when initializing the prediction value of the current point cloud, so that the setting of the initial prediction value is more reasonable.
[0143] Furthermore, in an embodiment of the present application, after determining the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, the prediction value of the midpoint of the current point cloud can be determined based on the initial prediction value.
[0144] It should be noted that in an embodiment of the present application, when determining the predicted value of a point in the current point cloud based on the initial predicted value, the initial predicted value can be first determined as the predicted value of the root node of the prediction tree corresponding to the current point cloud; and then based on the predicted value of the root node, the predicted values of other points in the current point cloud are determined.
[0145] Furthermore, in an embodiment of the present application, for the current point in the current point cloud, after determining the prediction value of the current point based on the initial prediction value, the code stream can be further decoded to determine the quantization parameter and the quantized prediction residual corresponding to the current point in the current point cloud; then the quantized prediction residual can be inversely quantized to determine the prediction residual corresponding to the current point; finally, the reconstruction value corresponding to the current point can be determined based on the prediction value and prediction residual corresponding to the current point.
[0146] Furthermore, in an embodiment of the present application, when performing prediction processing on the geometric information of the current point, the code stream can also be decoded to determine the mode identification information corresponding to the current point; wherein the mode identification information is used to indicate whether the prediction mode corresponding to the current point is an inter-frame mode or an intra-frame mode.
[0147] That is to say, in an embodiment of the present application, after completing the determination of the initial prediction value corresponding to the current point cloud, the mode identification information of the current point in the current point cloud can be determined by decoding the code stream, and then the intra-frame prediction mode or inter-frame prediction mode can be determined for the current point according to the mode identification information, and finally the prediction value of the current point can be determined according to the corresponding prediction mode.
[0148] It can be seen that in an embodiment of the present application, in the geometric decoding based on the prediction tree, for the current point in the current point cloud (the point to be decoded), the quantization coefficient and the prediction index (mode identification information) corresponding to the current point are first decoded, and then the corresponding prediction value is uniquely determined based on the prediction index, wherein, for the root node of the current point cloud, the initial prediction value is the geometric prediction value determined after the initialization processing; then the quantized prediction residual of the geometric information is decoded, and it is inversely quantized to obtain the prediction residual; then the geometric reconstruction information of the current point is restored based on the prediction value and the prediction residual; then the obtained reconstructed geometric information is subjected to an inverse coordinate transformation to obtain the final reconstructed geometric information.
[0149] Furthermore, in an embodiment of the present application, FIG8 is a second schematic diagram of the implementation flow of the point cloud decoding method proposed in an embodiment of the present application. As shown in FIG8 , the method for performing point cloud decoding by the decoder may further include the following steps:
[0150] Step 103: Determine initialization mode identification information.
[0151] In an embodiment of the present application, initialization identification information may also be determined. The initialization mode identification information may determine and indicate an initialization mode for the prediction value used by the current point cloud, wherein the initialization mode for the prediction value used by the current point cloud may include a first initialization mode and a second initialization mode.
[0152] That is to say, in the embodiment of the present application, based on the initialization mode identification information, it can be determined whether the initialization mode used by the current point cloud is the first initialization mode or the second initialization mode.
[0153] It should be noted that, in an embodiment of the present application, the first initialization mode may represent a mode for initializing the predicted value using the relevant information of the azimuth angle transmitted in the code stream; the second initialization mode may represent a mode for initializing the predicted value without using the relevant information of the azimuth angle transmitted in the code stream.
[0154] Furthermore, in an embodiment of the present application, when determining the initialization mode identification information, a decoding code stream may be selected to determine the initialization mode identification information.
[0155] That is to say, in the embodiment of the present application, the initialization mode identification information can be transmitted from the encoding end to the decoding end through the code stream.
[0156] Furthermore, in an embodiment of the present application, when determining the initialization mode identification information, the initialization mode identification information may be determined through a syntax table corresponding to the current point cloud.
[0157] That is to say, in an embodiment of the present application, the initialization mode identification information can be set in a syntax table corresponding to the current point cloud, such as a syntax table.
[0158] Further, in an embodiment of the present application, in an embodiment of the present application, when the value of the initialization mode identification information is a first value, it can be determined that the initialization mode identification information indicates that the current point cloud uses the first initialization mode; when the value of the initialization mode identification information is a second value, it can be determined that the initialization mode identification information indicates that the current point cloud uses the second initialization mode.
[0159] It should be noted that, in the embodiments of the present application, the first value is different from the second value, and the first value and the second value may be in parameter form or in digital form.
[0160] Exemplarily, in some embodiments, the first value may be 0, and the second value may be 1. For example, when the value of the initialization mode identification information is 0, it can be determined that the first initialization mode is used to initialize the predicted value of the current point cloud, that is, the azimuth component of the initial predicted value of the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud; when the value of the initialization mode identification information is 1, it can be determined that the second initialization mode is used to initialize the predicted value of the current point cloud, that is, the initial predicted value of the current point cloud is not determined according to the azimuth sampling information corresponding to the current point cloud, but the azimuth component of the initial predicted value of the current point cloud is directly set to a third value, for example, the third value is 0.
[0161] It should be noted that, in the embodiment of the present application, the initialization mode identification information may be a parameter written in the profile, or may be the value of a flag, which is not specifically limited here.
[0162] For example, in an embodiment of the present application, the initialization mode identification information may be used as a syntax element at the GPS level or as a syntax element at the GBH level, and the present application does not make any specific limitation thereto.
[0163] Step 104 : When the initialization mode identification information indicates that the current point cloud uses the first initialization mode, a process for determining the azimuth sampling information and the radial distance information is executed.
[0164] In an embodiment of the present application, after determining the initialization mode identification information, if the initialization mode identification information indicates that the current point cloud uses the first initialization mode, then the determination process of the azimuth sampling information and radial distance information corresponding to the current point cloud can be executed, so that the predicted value of the current point cloud can be further initialized according to the azimuth sampling information and radial distance information corresponding to the current point cloud to determine the corresponding initial predicted value.
[0165] It is understood that in the embodiment of the present application, based on the first initialization mode, when initializing the predicted value of the current point cloud, it is possible to select the azimuth component of the initial predicted value according to the azimuth sampling interval (azimuth sampling information) corresponding to the current point cloud to determine, for example, the azimuth component of the initial predicted value is determined as
[0166] Step 105 : When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, a radial distance information determination process is executed.
[0167] In an embodiment of the present application, after determining the initialization mode identification information, if the initialization mode identification information indicates that the current point cloud uses the second initialization mode, then the process of determining the radial distance information corresponding to the current point cloud can be executed, so that the predicted value of the current point cloud can be further initialized according to the radial distance information corresponding to the current point cloud to determine the corresponding initial prediction value.
[0168] It can be understood that in an embodiment of the present application, based on the second initialization mode, when performing initialization processing of the predicted value of the current point cloud, it is possible to choose to directly determine the azimuth component of the initial predicted value as a fixed value, for example, as 0.
[0169] Furthermore, in an embodiment of the present application, FIG9 is a third schematic diagram of an implementation flow of the point cloud decoding method proposed in an embodiment of the present application. As shown in FIG9 , the method for performing point cloud decoding by the decoder may further include the following steps:
[0170] Step 106: When the initialization mode identification information indicates that the current point cloud uses the first initialization mode, determine the azimuth component of the initial prediction value according to the azimuth sampling information.
[0171] In an embodiment of the present application, after determining the initialization mode identification information, if the initialization mode identification information indicates that the current point cloud uses the first initialization mode, then, based on the first initialization mode, when performing the initialization processing of the predicted value of the current point cloud, it is possible to select the azimuth component of the initial predicted value according to the azimuth sampling interval (azimuth sampling information) corresponding to the current point cloud to determine, for example, the azimuth component of the initial predicted value is determined as
[0172] Step 107: When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, the azimuth component of the initial prediction value is set to a third value.
[0173] In an embodiment of the present application, after determining the initialization mode identification information, if the initialization mode identification information indicates that the current point cloud uses the second initialization mode, then, based on the second initialization mode, when performing initialization processing on the predicted value of the current point cloud, the azimuth component of the initial predicted value can be directly determined as a third value. The third value can be any value, such as 0.
[0174] It can be seen that the azimuth component of the predicted value There are many ways to initialize the predicted value, and the specific method is indicated by the header information such as the initialization mode identification information.
[0175] For example, in some embodiments, a syntax element, such as geom_angular_phi_ini_zero, is set in the header information, such as GPS or / and GBH, and the syntax element can represent the cylindrical coordinates (r, i) Azimuth The predicted initial value of
[0176] For example, in some embodiments, when geom_angular_phi_ini_zero=1, it indicates The predicted value is initialized to 0, that is, the azimuth component of the initial predicted value is 0, that is, when the code point to be encoded (decoded) is the root node of the prediction tree, its cylindrical coordinates The predicted value is 0.
[0177] For example, in some embodiments, when geom_angular_phi_ini_zero=0, it indicates The predicted value is initialized to That is, when the code point to be encoded (decoded) is the root node of the prediction tree, its cylindrical coordinates are The predicted value is
[0178] It can be understood that in the embodiments of the present application, compared with common technologies, when the prediction value is initialized through the first initialization mode, the azimuth sampling information transmitted in the code stream (such as the azimuth sampling threshold) can be used to determine the azimuth component of the initial prediction value, instead of directly initializing the azimuth component of the initial prediction value to 0. This prediction value initialization method is more reasonable and can effectively improve the prediction effect of geometric information.
[0179] To sum up, through the decoding method proposed in steps 101 to 107, the azimuth sampling information and radial distance information corresponding to the current point cloud can be determined first, and then the predicted value of the current point cloud can be initialized in combination with the azimuth sampling information and the radial distance information. Specifically, the azimuth component of the initial predicted value can be determined according to the azimuth sampling information, and at the same time, the radial distance component of the initial predicted value can be determined according to the radial distance information.
[0180] In some embodiments, the decoding method proposed in the embodiment of the present application is experimentally verified based on the general test software TMC13V21 of G-PCC. Compared with it, the decoding method proposed in the embodiment of the present application, under lossless conditions, the performance comparison results of the prediction tree geometric coding code stream are shown in Table 1. It can be seen from Table 1 that the decoding method has some small gains in the geometric code streams of these point cloud sequences.
[0181] The embodiment of the present application discloses a point cloud decoding method, in which, at the decoding end, the code stream is decoded to determine the azimuth sampling information corresponding to the current point cloud; the initial prediction value corresponding to the current point cloud is determined based on the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined based on the initial prediction value. It can be seen that in the embodiment of the present application, in the process of initializing the prediction value of the current point cloud, the corresponding initial prediction value can be determined by the azimuth sampling information corresponding to the current point cloud, which can fully consider the actual size of the azimuth of the root node of the current point cloud and achieve more reasonable initialization processing of the prediction value. That is to say, in the embodiment of the present application, the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
[0182] Another embodiment of the present application provides a point cloud encoding method. FIG10 is a schematic diagram of a first implementation flow of the point cloud encoding method provided in the embodiment of the present application. As shown in FIG10 , the method for performing point cloud encoding processing by the encoder may include the following steps:
[0183] Step 201: Determine the azimuth sampling information corresponding to the current point cloud, and write the azimuth sampling information into the bitstream.
[0184] In an embodiment of the present application, the encoder may first determine the azimuth sampling information corresponding to the current point cloud, and at the same time may write the azimuth sampling information into the code stream and transmit it to the decoding end.
[0185] It should be noted that, in the embodiments of the present application, the point cloud coding method proposed in the embodiments of the present application can be applied to the prediction tree-based geometric coding process. Specifically, for the prediction tree-based geometric coding, the input geometric information can first be sorted, for example, using an azimuth sorting method.
[0186] It is understood that in the embodiment of the present application, when sorting the input geometric information, firstly, the cylindrical coordinates (r, θ), where r is the radial distance of the point, also known as the radius; is the azimuth of the point; θ is the pitch angle of the laser beam to which the point belongs. Then, for the point in the current point cloud, The order of r and tanθ is sorted to complete the sorting of the points in the current point cloud.
[0187] For example, in some embodiments, in a specific sorting process, first compare If the size If they are the same, then compare r. If r is the same, then compare tanθ, and finally complete the reordering of the entire point cloud.
[0188] In the azimuth-based geometric prediction coding scheme, when building the prediction tree, the encoder first converts the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates (r, θ). Each point in the input point cloud is then divided into different laser beams according to its pitch angle. Since the azimuth-based sorting method is used by default when sorting the input geometric information, the geometric information of the entire point cloud is arranged in ascending order of azimuth. For the i-th laser beam, the first point visited is the point with the smallest azimuth among all the points belonging to this laser beam. And the parent node of the points subsequently visited by the i-th beam is the first point in the same laser beam with a smaller azimuth than itself. The parent node of the first point of the i-th laser beam is the first point of the i-1-th laser beam. For the first point of the 0-th laser beam, since it has no parent node, it serves as the root node of the entire tree.
[0189] Next, predictive coding is performed on each node in the prediction tree in depth-first order. For the point to be coded, the predicted value of the geometric information is first determined using either an intra-frame prediction algorithm or an inter-frame prediction algorithm. In intra-frame prediction, a prediction list is used to predict the point to be coded. For inter-frame prediction, a prediction point is found in the previously coded frame to predict the point to be coded. Then, through rate-distortion optimization, the predicted value with the lowest bitrate is selected as the predicted value for the point to be coded (decoded). The prediction residual is then obtained by subtracting the actual value of the node's geometric information from the predicted value, and the prediction residual is quantized using a quantization parameter. Finally, the quantization parameter, the selected prediction value index, the prediction residual, and other information are encoded to generate a binary bitstream.
[0190] It should be noted that in the embodiment of the present application, when sorting the current point cloud, the available sorting methods are disordered, Morton order, azimuth order and radial distance order. For example, the selected sorting method is sorting by azimuth, that is, sorting each point according to azimuth, radial distance and pitch angle tangent value in turn. Then, a prediction tree structure is established. The encoder will first convert the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates (r, θ). Then each point in the input point cloud is divided into different laser beams according to its pitch angle. θ) can be converted to (r, i), where i represents the index of the laser beam. Since the azimuth-based sorting method is used by default when sorting the input geometric information, the geometric information of the entire point cloud is arranged in ascending order of azimuth. For the i-th laser beam, the first point accessed is the point with the smallest azimuth among all the points belonging to this laser beam. And the parent node of the points subsequently accessed by the i-th beam is the first point in the same laser beam with a smaller azimuth than itself. The parent node of the first point of the i-th laser beam is the first point of the i-1-th laser beam. For the first point of the 0th laser beam, since it has no parent node, it serves as the root node of the entire tree.
[0191] It should be noted that, in the embodiment of the present application, the azimuth sampling information corresponding to the current point cloud can determine the azimuth sampling interval corresponding to the current point cloud.
[0192] Furthermore, in an embodiment of the present application, the azimuth sampling information corresponding to the current point cloud can be represented in the form of a syntax element, that is, after the encoder encodes the azimuth sampling information and transmits the code stream to the decoding end, the decoder decodes the code stream and can obtain the syntax element representing the azimuth sampling information, thereby determining the azimuth sampling information.
[0193] It can be understood that in an embodiment of the present application, the encoder can directly write the azimuth sampling information corresponding to the current point cloud and representing the azimuth sampling interval into the code stream, or it can choose to write the relevant information used to calculate the azimuth sampling information into the code stream, so that the decoder can derive the azimuth sampling information corresponding to the current point cloud and representing the azimuth sampling interval based on the relevant information.
[0194] Furthermore, in an embodiment of the present application, the encoder can write the first azimuth parameter into the code stream and transmit it to the decoding end. Accordingly, when determining the azimuth sampling information, the decoder can decode the code stream, determine the first azimuth parameter, and then further determine the azimuth sampling information corresponding to the current point cloud based on the first azimuth parameter and the preset value.
[0195] That is, in the embodiment of the present application, the encoder may first determine the first azimuth parameter according to the azimuth sampling information and a preset value; and then write the first azimuth parameter into the bitstream.
[0196] It can be understood that, in the embodiments of the present application, the preset value can be any pre-set value, and the present application does not specifically limit it. For example, the preset value can be 1.
[0197] For example, in some embodiments, the encoder can directly send the azimuth sampling information corresponding to the current point cloud, such as the azimuth sampling interval Write code stream.
[0198] For example, in some embodiments, the encoder may also determine the first azimuth parameter geom_angular_azimuth_speed_minus1 first, and then write the first azimuth parameter into the bitstream. ) and a preset value (e.g., 1) to calculate the corresponding first azimuth parameter geom_angular_azimuth_speed_minus1. For example, formula (1).
[0199] The syntax element geom_angular_azimuth_speed_minus1 may be transmitted from the encoding end to the decoding end through a bitstream, and the geom_angular_azimuth_speed_minus1 may be a syntax element in a geometric parameter set (GPS).
[0200] Furthermore, in an embodiment of the present application, while determining the azimuth sampling information corresponding to the current point cloud, the radial distance information corresponding to the current point cloud can also be determined, and the radial distance information corresponding to the current point cloud is written into the code stream and transmitted to the decoding end.
[0201] It should be noted that, in the embodiment of the present application, the radial distance information corresponding to the current point cloud can determine the minimum radial distance corresponding to the current point cloud, that is, the minimum radius.
[0202] Furthermore, in an embodiment of the present application, the radial distance information corresponding to the current point cloud can be represented in the form of a syntax element, that is, after the encoder encodes the radial distance information, it transmits the code stream to the decoding end, and the decoder decodes the code stream to obtain the syntax element representing the radial distance information, thereby determining the radial distance information.
[0203] For example, in some embodiments, the encoder may also first determine the radial distance information r min Then the radial distance information r is transmitted through the syntax element pgeom_min_radius min , accordingly, the decoder can first determine the syntax element pgeom_min_radius representing the radial distance information when decoding the code stream, and then determine the corresponding radial distance information r through pgeom_min_radius min . For example, formula (2).
[0204] The syntax element pgeom_min_radius may be transmitted from the encoding end to the decoding end through a bitstream, and the pgeom_min_radius may be a syntax element in geometry block header (GPS) information.
[0205] It should be noted that, in the embodiment of the present application, the point cloud coding method proposed in the embodiment of the present application can be used in a geometric coding process based on a prediction tree, wherein the current point cloud can be the point cloud to be encoded.
[0206] It is understood that, in the embodiment of the present application, the geometric information of the points in the current point cloud can be represented in the form of cylindrical coordinates. For example, the geometric information of the points in the current point cloud can be represented as (r, i), where r is the radial distance of the point, also known as the radius; is the azimuth angle of the point; θ is the elevation angle of the laser beam to which the point belongs.
[0207] That is to say, in the embodiment of the present application, the geometric information of the point in the current point cloud can be represented by a radial distance component, an azimuth component, and a pitch angle component.
[0208] Step 202: Determine an initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determine a prediction value of the midpoint of the current point cloud based on the initial prediction value.
[0209] In an embodiment of the present application, after determining the azimuth sampling information corresponding to the current point cloud, the prediction value can be initialized according to the azimuth sampling information corresponding to the current point cloud, and the initial prediction value corresponding to the current point cloud can be determined, so that the prediction value of the midpoint of the current point cloud can be further determined based on the initial prediction value.
[0210] It should be noted that, in the embodiment of the present application, it is possible to select to determine the initial prediction value corresponding to the current point cloud based on the azimuth sampling information and the radial distance information.
[0211] Furthermore, in an embodiment of the present application, when initializing the predicted value of the current point cloud, the azimuth sampling information corresponding to the current point cloud can be used to determine the initial predicted value, and the radial distance information corresponding to the current point cloud can also be used to determine the initial predicted value. The azimuth sampling information can be used to determine the azimuth component of the initial predicted value. The radial distance information can be used to determine the radial distance component of the initial predicted value.
[0212] It can be understood that, in the embodiment of the present application, the initial prediction value corresponding to the current point cloud may be the initialized geometric information prediction value corresponding to the current point cloud.
[0213] It is understood that in the embodiment of the present application, since the geometric information of any point in the current point cloud can be expressed as cylindrical coordinates (r, i), therefore, when initializing the predicted value of the current point cloud, the final obtained initial predicted value can also be represented by cylindrical coordinates, so the initial predicted value can also be represented by radial distance components, azimuth components, and pitch angle components.
[0214] Accordingly, in an embodiment of the present application, in the process of initializing the predicted value of the current point cloud, the azimuth sampling information corresponding to the current point cloud can be used to determine the azimuth component in the initial predicted value.
[0215] Accordingly, in an embodiment of the present application, in the process of initializing the predicted value of the current point cloud, the radial distance information corresponding to the current point cloud can be used to determine the radial distance component in the initial predicted value.
[0216] That is to say, in an embodiment of the present application, when the initialization of the prediction value corresponding to the current point cloud is performed in combination with the azimuth sampling information and radial distance information corresponding to the current point cloud, the azimuth component in the initial prediction value finally obtained is determined by the azimuth sampling information, and at the same time, the radial distance component is determined by the radial distance information.
[0217] Furthermore, in an embodiment of the present application, when determining the initial prediction value corresponding to the current point cloud based on the azimuth sampling information and the radial distance information, the initialization parameters can be first determined based on the azimuth sampling information; and then the azimuth component corresponding to the initial prediction value can be determined based on the azimuth sampling information and the initialization parameters.
[0218] It should be noted that in the real time of the present application, after determining the azimuth sampling information (such as the azimuth sampling interval), the azimuth sampling information can be used to calculate the initialization parameters. The initialization parameters can be used to adjust and control the azimuth component in the process of initializing the predicted value. Then, the azimuth sampling information and the initialization parameters can be combined to further calculate the azimuth component in the initial predicted value.
[0219] It is understandable that, in the embodiments of the present application, the initialization parameters may be determined based on the azimuth sampling information in combination with any numerical value and through any calculation method.
[0220] For example, in some embodiments, it is assumed that the azimuth sampling information is the azimuth sampling interval Then according to The initialization parameter k is calculated as shown in formula (3).
[0221] Among them, round() is a Round function, which returns a value that is rounded to a specified number of decimal places.
[0222] It is understandable that, in the embodiments of the present application, in addition to the above formula (3), other methods can also be used to determine the initialization parameters, and the present application does not limit the calculation method of the initialization parameters.
[0223] It should be noted that, in the embodiments of the present application, the azimuth component of the initial prediction value can be determined by any calculation method in combination with any numerical value based on the azimuth sampling information and the initialization parameters.
[0224] For example, in some embodiments, it is assumed that the azimuth sampling information is the azimuth sampling interval The initialization parameter is k, and the azimuth component is finally calculated As shown in formula (4).
[0225] It is understandable that, in the embodiments of the present application, in addition to the above formula (4), other methods can also be used to determine the azimuth component, and the present application does not limit the calculation method of the azimuth component.
[0226] Furthermore, in an embodiment of the present application, when determining the initial prediction value corresponding to the current point cloud based on the azimuth sampling information and the radial distance information, the radial distance component corresponding to the initial prediction value can be directly determined based on the radial distance information.
[0227] For example, in some embodiments, it is assumed that the radial distance information is the minimum radial value r of the current point cloud. min , and finally the radial distance component r0 is calculated, as shown in formula (5).
[0228] It can be seen that in the embodiment of the present application, after determining the initial prediction value corresponding to the current point cloud according to the azimuth sampling information and the radial distance information, the radial distance component of the initial prediction value finally obtained is r min , the azimuth component is
[0229] It can be understood that in the embodiment of the present application, during the process of initializing the predicted value of the current point cloud, the pitch angle component of the initial predicted value can also be set to a fixed value. For example, the pitch angle component can be set to 0.
[0230] That is, in the embodiment of the present application, after completing the initialization of the prediction value of the current point cloud, the initial prediction value can be expressed as (r min , 0).
[0231] Furthermore, in an embodiment of the present application, after determining the radial distance information corresponding to the current point cloud, when determining the initial prediction value, you can also choose to determine the radial distance component of the initial prediction value based on the radial distance information, and set the azimuth component and the pitch angle component to fixed values respectively, for example, set the azimuth component to 0, and set the pitch angle component to 0 at the same time.
[0232] That is to say, in the embodiment of the present application, a common initialization scheme can also be selected, and the final initial prediction value can be expressed as (r min , 0, 0).
[0233] It can be seen that the point cloud encoding method proposed in the embodiment of the present application can choose to determine the azimuth component of the initial prediction value based on the azimuth sampling information corresponding to the current point cloud when initializing the prediction value of the current point cloud, so that the setting of the initial prediction value is more reasonable.
[0234] Furthermore, in an embodiment of the present application, after determining the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, the prediction value of the midpoint of the current point cloud can be determined based on the initial prediction value.
[0235] It should be noted that in an embodiment of the present application, when determining the predicted value of a point in the current point cloud based on the initial predicted value, the initial predicted value can be first determined as the predicted value of the root node of the prediction tree corresponding to the current point cloud; and then based on the predicted value of the root node, the predicted values of other points in the current point cloud are determined.
[0236] Furthermore, in an embodiment of the present application, for the current point in the current point cloud, after determining the prediction value of the current point based on the initial prediction value, the prediction residual corresponding to the current point can be further determined based on the prediction value corresponding to the current point in the current point cloud; then the prediction residual can be quantized according to the quantization parameter corresponding to the current point to determine the quantized coefficient residual corresponding to the current point.
[0237] It should be noted that in an embodiment of the present application, after the prediction residual is quantized according to the quantization parameter corresponding to the current point and the quantized coefficient residual corresponding to the current point is determined, the quantization parameter corresponding to the current point and the quantized prediction residual can be written into the bitstream.
[0238] Furthermore, in an embodiment of the present application, when performing prediction processing on the geometric information of the current point, the mode identification information corresponding to the current point can also be determined; wherein the mode identification information is used to indicate whether the prediction mode corresponding to the current point is an inter-frame mode or an intra-frame mode.
[0239] It should be noted that in an embodiment of the present application, the encoder can determine the mode identification information corresponding to the current point based on the rate-distortion algorithm, wherein, for the current point (the point to be encoded), the predicted value of the geometric information can be determined according to the intra-frame prediction algorithm or the inter-frame prediction algorithm, and then the predicted value with the minimum bit rate is selected as the predicted value of the current point through the rate-distortion optimization algorithm, and the corresponding mode identification information is determined at the same time.
[0240] Furthermore, in an embodiment of the present application, after determining the mode identification information corresponding to the current point, the encoder may also write the mode identification information corresponding to the current point into the code stream and transmit it to the decoding end.
[0241] That is to say, in an embodiment of the present application, the mode identification information corresponding to the current point in the current point cloud can also be determined by a rate-distortion algorithm, and the mode identification information can be written into the bit stream. Correspondingly, the decoder determines the mode identification information of the current point in the current point cloud by decoding the bit stream, and thus determines whether to adopt the intra-frame prediction mode or the inter-frame prediction mode for the current point according to the mode identification information, and finally determines the prediction value of the current point according to the corresponding prediction mode.
[0242] Furthermore, in an embodiment of the present application, FIG11 is a second schematic diagram of the implementation flow of the point cloud encoding method proposed in an embodiment of the present application. As shown in FIG11 , the method for performing point cloud encoding by the encoder may further include the following steps:
[0243] Step 203: Determine initialization mode identification information.
[0244] In an embodiment of the present application, initialization identification information may also be determined. The initialization mode identification information may determine and indicate an initialization mode for the prediction value used by the current point cloud, wherein the initialization mode for the prediction value used by the current point cloud may include a first initialization mode and a second initialization mode.
[0245] That is to say, in the embodiment of the present application, based on the initialization mode identification information, it can be determined whether the initialization mode used by the current point cloud is the first initialization mode or the second initialization mode.
[0246] It should be noted that, in an embodiment of the present application, the first initialization mode may represent a mode for initializing the predicted value using the relevant information of the azimuth angle transmitted in the code stream; the second initialization mode may represent a mode for initializing the predicted value without using the relevant information of the azimuth angle transmitted in the code stream.
[0247] Furthermore, in an embodiment of the present application, after determining the initialization mode identification information, the initialization mode identification information may be written into the bitstream, that is, the initialization mode identification information may be transmitted from the encoding end to the decoding end through the bitstream.
[0248] Furthermore, in an embodiment of the present application, the initialization mode identification information can be determined by the syntax table corresponding to the current point cloud. That is, in an embodiment of the present application, the initialization mode identification information can be set in the syntax table corresponding to the current point cloud, such as the syntax table.
[0249] Furthermore, in an embodiment of the present application, in an embodiment of the present application, when it is determined that the current point cloud uses the first initialization mode, the value of the initialization mode identification information can be set to the first value; when it is determined that the current point cloud uses the second initialization mode, the value of the initialization mode identification information can be set to the second value.
[0250] It should be noted that, in the embodiments of the present application, the first value is different from the second value, and the first value and the second value may be in parameter form or in digital form.
[0251] Exemplarily, in some embodiments, the first value may be 0, and the second value may be 1. For example, when the value of the initialization mode identification information is 0, it can be determined that the first initialization mode is used to initialize the predicted value of the current point cloud, that is, the azimuth component of the initial predicted value of the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud; when the value of the initialization mode identification information is 1, it can be determined that the second initialization mode is used to initialize the predicted value of the current point cloud, that is, the initial predicted value of the current point cloud is not determined according to the azimuth sampling information corresponding to the current point cloud, but the azimuth component of the initial predicted value of the current point cloud is directly set to a third value, for example, the third value is 0.
[0252] Furthermore, in an embodiment of the present application, after determining the initialization mode identification information corresponding to the current point cloud, the initialization mode identification information can be written into the code stream and transmitted to the decoding end.
[0253] It should be noted that, in the embodiment of the present application, the initialization mode identification information may be a parameter written in the profile, or may be the value of a flag, which is not specifically limited here.
[0254] For example, in an embodiment of the present application, the initialization mode identification information may be used as a syntax element at the GPS level or as a syntax element at the GBH level, and the present application does not make any specific limitation thereto.
[0255] Step 204 : When the initialization mode identification information indicates that the current point cloud uses the first initialization mode, a process for determining the azimuth sampling information and the radial distance information is executed.
[0256] In an embodiment of the present application, after determining the initialization mode identification information, if the initialization mode identification information indicates that the current point cloud uses the first initialization mode, then the determination process of the azimuth sampling information and radial distance information corresponding to the current point cloud can be executed, so that the predicted value of the current point cloud can be further initialized according to the azimuth sampling information and radial distance information corresponding to the current point cloud to determine the corresponding initial predicted value.
[0257] It is understood that in the embodiment of the present application, based on the first initialization mode, when initializing the predicted value of the current point cloud, it is possible to select the azimuth component of the initial predicted value according to the azimuth sampling interval (azimuth sampling information) corresponding to the current point cloud to determine, for example, the azimuth component of the initial predicted value is determined as
[0258] Step 205 : When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, a radial distance information determination process is executed.
[0259] In an embodiment of the present application, after determining the initialization mode identification information, if the initialization mode identification information indicates that the current point cloud uses the second initialization mode, then the process of determining the radial distance information corresponding to the current point cloud can be executed, so that the predicted value of the current point cloud can be further initialized according to the radial distance information corresponding to the current point cloud to determine the corresponding initial prediction value.
[0260] It can be understood that in an embodiment of the present application, based on the second initialization mode, when performing initialization processing of the predicted value of the current point cloud, it is possible to choose to directly determine the azimuth component of the initial predicted value as a fixed value, for example, as 0.
[0261] Furthermore, in an embodiment of the present application, FIG12 is a third schematic diagram of an implementation flow of the point cloud encoding method proposed in an embodiment of the present application. As shown in FIG12 , the method for performing point cloud encoding by the encoder may further include the following steps:
[0262] Step 206: When the initialization mode identification information indicates that the current point cloud uses the first initialization mode, determine the azimuth component of the initial prediction value according to the azimuth sampling information.
[0263] In an embodiment of the present application, after determining the initialization mode identification information, if the initialization mode identification information indicates that the current point cloud uses the first initialization mode, then, based on the first initialization mode, when performing the initialization processing of the predicted value of the current point cloud, it is possible to select the azimuth component of the initial predicted value according to the azimuth sampling interval (azimuth sampling information) corresponding to the current point cloud to determine, for example, the azimuth component of the initial predicted value is determined as
[0264] Step 207: When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, the azimuth component of the initial prediction value is set to a third value.
[0265] In an embodiment of the present application, after determining the initialization mode identification information, if the initialization mode identification information indicates that the current point cloud uses the second initialization mode, then, based on the second initialization mode, when performing initialization processing on the predicted value of the current point cloud, the azimuth component of the initial predicted value can be directly determined as a third value. The third value can be any value, such as 0.
[0266] It can be seen that the azimuth component of the predicted value There are many ways to initialize the predicted value, and the specific method is indicated by the header information such as the initialization mode identification information.
[0267] For example, in some embodiments, a syntax element is set in the header information, such as GPS and / or GBH, such as
[0268] geom_angular_phi_ini_zero, this syntax element can represent the cylindrical coordinates of the current point cloud (r, i) Azimuth The predicted initial value of
[0269] For example, in some embodiments, when geom_angular_phi_ini_zero=1, it indicates The predicted value is initialized to 0, that is, the azimuth component of the initial predicted value is 0, that is, when the code point to be encoded (decoded) is the root node of the prediction tree, its cylindrical coordinates The predicted value is 0.
[0270] For example, in some embodiments, when geom_angular_phi_ini_zero=0, it indicates The predicted value is initialized to That is, when the code point to be encoded (decoded) is the root node of the prediction tree, its cylindrical coordinates are The predicted value is
[0271] It can be understood that in the embodiments of the present application, compared with common technologies, when the prediction value is initialized through the first initialization mode, the azimuth sampling information transmitted in the code stream (such as the azimuth sampling threshold) can be used to determine the azimuth component of the initial prediction value, instead of directly initializing the azimuth component of the initial prediction value to 0. This prediction value initialization method is more reasonable and can effectively improve the prediction effect of geometric information.
[0272] To sum up, through the encoding method proposed in steps 201 to 207, the azimuth sampling information and radial distance information corresponding to the current point cloud can be determined first, and then the predicted value of the current point cloud can be initialized in combination with the azimuth sampling information and the radial distance information. Specifically, the azimuth component of the initial predicted value can be determined according to the azimuth sampling information, and at the same time, the radial distance component of the initial predicted value can be determined according to the radial distance information.
[0273] This embodiment provides an encoding method, at the encoding end, the azimuth sampling information corresponding to the current point cloud is determined, and the azimuth sampling information is written into the code stream; the initial prediction value corresponding to the current point cloud is determined based on the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined based on the initial prediction value. It can be seen that in the embodiment of the present application, in the process of initializing the prediction value of the current point cloud, the corresponding initial prediction value can be determined by the azimuth sampling information corresponding to the current point cloud, which can fully consider the actual size of the azimuth of the root node of the current point cloud and achieve more reasonable initialization processing of the prediction value. That is to say, in the embodiment of the present application, the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
[0274] In yet another embodiment of the present application, based on the same inventive concept as the aforementioned embodiment, FIG13 is a schematic diagram of a first structure of an encoder. As shown in FIG13 , the encoder 100 may include: a first determining unit 111 and an encoding unit 112; wherein,
[0275] The first determining unit 111 is configured to determine azimuth sampling information corresponding to the current point cloud;
[0276] The encoding unit 112 is configured to write the azimuth sampling information into a bitstream;
[0277] The first determining unit 111 is further configured to determine an initial prediction value corresponding to the current point cloud according to the azimuth sampling information corresponding to the current point cloud, and determine a prediction value of a midpoint of the current point cloud according to the initial prediction value.
[0278] It should be noted that, in the embodiment of the present application, the encoder 100 can also be regarded as a data processing mode (or "entropy encoder"), which is used to encode the values of the syntax elements to be encoded.
[0279] It is understood that in the embodiments of the present application, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular device. Moreover, the various components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional modules.
[0280] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, or the portion that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, server, or network device, etc.) or a processor to execute all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes various media that can store program code, such as a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0281] Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 100. The computer-readable storage medium stores a computer program, and when the computer program is executed by the first processor, it implements the encoding method described in any one of the aforementioned embodiments.
[0282] Based on the composition of the above-mentioned encoder 100 and the computer-readable storage medium, Figure 14 is a second schematic diagram of the composition structure of the encoder. As shown in Figure 14, the encoder 100 may include: a first memory 121 and a first processor 122, a first communication interface 123 and a first bus system 124. The first memory 121, the first processor 122, and the first communication interface 123 are coupled together through the first bus system 124. It can be understood that the first bus system 124 is used to realize the connection and communication between these components. In addition to the data bus, the first bus system 124 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as the first bus system 124 in Figure 10. Among them,
[0283] The first communication interface 123 is used to receive and send signals during the process of sending and receiving information between other external network elements;
[0284] The first memory 121 is used to store computer programs that can be run on the first processor;
[0285] The first processor 122 is used to determine the azimuth sampling information corresponding to the current point cloud and write the azimuth sampling information into the code stream when running the computer program; determine the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determine the prediction value of the midpoint of the current point cloud based on the initial prediction value.
[0286] It is understood that the first memory 121 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The first memory 121 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0287] The first processor 122 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits or software instructions in the first processor 122. The above-mentioned first processor 122 may be 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 devices, discrete gate or transistor logic devices, or discrete hardware components. The various methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the first memory 121 , and the first processor 122 reads the information in the first memory 121 and completes the steps of the above method in combination with its hardware.
[0288] It is to be understood that these embodiments described in the present application can be implemented with hardware, software, firmware, middleware, microcode or its combination.For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable logic device (Programmable Logic Device, PLD), field programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller, microprocessor, other electronic units for performing functions described in the present application or its combination.For software implementation, the technology described in the present application can be realized by the module (such as process, function etc.) that performs functions described in the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.
[0289] Optionally, as another embodiment, the first processor 122 is further configured to execute the method described in any one of the aforementioned embodiments when running the computer program.
[0290] This embodiment provides an encoder that determines the azimuth sampling information corresponding to the current point cloud and writes the azimuth sampling information into the code stream; determines the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determines the prediction value of the midpoint of the current point cloud based on the initial prediction value. It can be seen that in the embodiment of the present application, in the process of initializing the prediction value of the current point cloud, it is possible to choose to determine the corresponding initial prediction value through the azimuth sampling information corresponding to the current point cloud, which can fully consider the actual size of the azimuth of the root node of the current point cloud and achieve more reasonable initialization processing of the prediction value. That is to say, in the embodiment of the present application, initializing the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
[0291] In yet another embodiment of the present application, based on the same inventive concept as the above embodiment, FIG15 is a schematic diagram of a first structure of a decoder. As shown in FIG15 , the decoder 200 may include: a decoding unit 211 and a second determining unit 212; wherein,
[0292] The decoding unit 211 is configured to decode the code stream;
[0293] The second determination unit 212 is configured to determine the azimuth sampling information corresponding to the current point cloud; determine the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determine the prediction value of the midpoint of the current point cloud based on the initial prediction value.
[0294] It should be noted that, in the embodiment of the present application, the decoder 200 can also be regarded as a data processing mode (or "entropy decoder"), which is used to decode the values of the syntax elements to be decoded.
[0295] It is understood that in this embodiment, a "unit" can be a portion of a circuit, a portion of a processor, a portion of a program or software, etc., and can also be a module or a non-modular system. Furthermore, the various components in this embodiment can be integrated into a single processing unit, or each unit can exist physically separately, or two or more units can be integrated into a single unit. The aforementioned integrated units can be implemented in the form of hardware or software functional modules.
[0296] If the integrated unit is implemented as a software functional module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, this embodiment provides a computer-readable storage medium, which is applied to the decoder 200 and stores a computer program. When the computer program is executed by the second processor, it implements any of the methods in the aforementioned embodiments.
[0297] Based on the composition of the above-mentioned decoder 200 and the computer-readable storage medium, Figure 16 is a second schematic diagram of the composition structure of the decoder. As shown in Figure 16, the decoder 200 may include: a second memory 221 and a second processor 222, a second communication interface 223 and a second bus system 224. The second memory 221 and the second processor 222, and the second communication interface 223 are coupled together through the second bus system 224. It can be understood that the second bus system 224 is used to realize the connection and communication between these components. In addition to the data bus, the second bus system 224 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as the second bus system 224 in Figure 12. Among them,
[0298] The second communication interface 223 is used to receive and send signals during the process of sending and receiving information between other external network elements;
[0299] The second memory 221 is used to store computer programs that can be run on the second processor;
[0300] The second processor 222 is used to decode the code stream and determine the azimuth sampling information corresponding to the current point cloud when running the computer program; determine the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determine the prediction value of the midpoint of the current point cloud based on the initial prediction value.
[0301] It is understood that the second memory 221 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DRRAM). The second memory 221 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0302] The second processor 222 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits or software instructions in the second processor 222. The above-mentioned second processor 222 may be 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 devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the second memory 221 , and the second processor 222 reads the information in the second memory 221 and completes the steps of the above method in combination with its hardware.
[0303] It is to be understood that these embodiments described in the present application can be implemented with hardware, software, firmware, middleware, microcode or its combination.For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable logic device (Programmable Logic Device, PLD), field programmable gate array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller, microprocessor, other electronic units for performing functions described in the present application or its combination.For software implementation, the technology described in the present application can be realized by the module (such as process, function etc.) that performs functions described in the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.
[0304] Optionally, as another embodiment, the second processor 222 is further configured to execute the method described in any one of the aforementioned embodiments when running the computer program.
[0305] The present embodiment provides a decoder that decodes the code stream and determines the azimuth sampling information corresponding to the current point cloud; determines the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determines the prediction value of the midpoint of the current point cloud based on the initial prediction value. It can be seen that in the embodiment of the present application, in the process of initializing the prediction value of the current point cloud, it is possible to choose to determine the corresponding initial prediction value through the azimuth sampling information corresponding to the current point cloud, which can fully consider the actual size of the azimuth of the root node of the current point cloud and achieve more reasonable initialization processing of the prediction value. That is to say, in the embodiment of the present application, initializing the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
[0306] Furthermore, an embodiment of the present application also proposes a code stream, wherein the code stream is generated by bit encoding based on the information to be encoded; wherein the information to be encoded includes at least: initialization mode identification information, azimuth sampling information, radial distance information, quantization parameter, quantized prediction residual, and mode identification information.
[0307] It should be noted that, in this application, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or apparatus comprising the element.
[0308] The serial numbers of the above-mentioned embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
[0309] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0310] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0311] The features disclosed in the several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
[0312] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims. Industrial Applicability
[0313] The embodiment of the present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium. At the decoding end, the code stream is decoded to determine the azimuth sampling information corresponding to the current point cloud; the initial prediction value corresponding to the current point cloud is determined based on the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined based on the initial prediction value. At the encoding end, the azimuth sampling information corresponding to the current point cloud is determined, and the azimuth sampling information is written into the code stream; the initial prediction value corresponding to the current point cloud is determined based on the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined based on the initial prediction value. It can be seen that in the embodiment of the present application, in the process of initializing the prediction value of the current point cloud, the corresponding initial prediction value can be determined by the azimuth sampling information corresponding to the current point cloud, which can fully take into account the actual size of the azimuth of the root node of the current point cloud, and achieve more reasonable initialization processing of the prediction value. That is to say, in the embodiment of the present application, the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
Claims
1. A point cloud decoding method, applied to a decoder, the method comprising: Decode the code stream to determine the azimuth sampling information corresponding to the current point cloud; An initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and a prediction value of a midpoint of the current point cloud is determined according to the initial prediction value.
2. The method according to claim 1, wherein: The method further comprises: Decode the code stream to determine radial distance information corresponding to the current point cloud.
3. The method according to claim 2, wherein: The method further comprises: An initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information and the radial distance information.
4. The method according to claim 3, wherein: The method further comprises: Determine an initialization parameter according to the azimuth sampling information; The azimuth component corresponding to the initial prediction value is determined according to the azimuth sampling information and the initialization parameter.
5. The method according to any one of claims 1 to 4, wherein: The method further comprises: Decode the code stream and determine the first azimuth parameter; The azimuth sampling information is determined according to the first azimuth parameter and a preset value.
6. The method according to claim 2, wherein: The method further comprises: An initial prediction value corresponding to the current point cloud is determined according to radial distance information corresponding to the current point cloud, and a prediction value of a midpoint of the current point cloud is determined according to the initial prediction value.
7. The method according to any one of claims 2 to 6, wherein: The method further comprises: A radial distance component corresponding to the initial prediction value is determined according to the radial distance information.
8. The method according to claim 2, wherein: The method further comprises: Determine initialization mode identification information; When the initialization mode identification information indicates that the current point cloud uses the first initialization mode, a process for determining the azimuth sampling information and the radial distance information is executed.
9. The method according to claim 8, wherein: The method further comprises: When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, the radial distance information determination process is executed.
10. The method according to claim 9, wherein: The method further comprises: When the value of the initialization mode identification information is the first value, determining that the initialization mode identification information indicates that the current point cloud uses the first initialization mode; When the value of the initialization mode identification information is the second value, it is determined that the initialization mode identification information indicates that the current point cloud uses the second initialization mode.
11. The method according to any one of claims 8 to 10, wherein: The method further comprises: Decode the code stream to determine the initialization mode identification information.
12. The method according to claim 10, wherein: The method further comprises: When the initialization mode identification information indicates that the current point cloud uses the first initialization mode, determining the azimuth component of the initial prediction value according to the azimuth sampling information; When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, the azimuth component of the initial prediction value is set to a third value.
13. The method according to claim 1 or 6, wherein: The method further comprises: Determine the initial prediction value as the prediction value of the root node of the prediction tree corresponding to the current point cloud; Based on the predicted value of the root node, predicted values of other points in the current point cloud are determined.
14. The method according to claim 13, wherein: The method further comprises: Decoding the bitstream to determine a quantization parameter and a quantized prediction residual corresponding to a current point in the current point cloud; Dequantizing the quantized prediction residual to determine the prediction residual corresponding to the current point; A reconstructed value corresponding to the current point is determined according to the predicted value corresponding to the current point and the prediction residual.
15. The method according to claim 14, wherein: The method further comprises: Decode the code stream to determine the mode identification information corresponding to the current point; wherein the mode identification information is used to indicate whether the prediction mode corresponding to the current point is an inter-frame mode or an intra-frame mode.
16. A point cloud encoding method, applied to an encoder, the method comprising: Determine the azimuth sampling information corresponding to the current point cloud, and write the azimuth sampling information into the bitstream; An initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and a prediction value of a midpoint of the current point cloud is determined according to the initial prediction value.
17. The method according to claim 16, wherein: The method further comprises: Determine radial distance information corresponding to the current point cloud, and write the radial distance information corresponding to the current point cloud into a bit stream.
18. The method according to claim 17, wherein: The method further comprises: An initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information and the radial distance information.
19. The method according to claim 18, wherein: The method further comprises: Determine an initialization parameter according to the azimuth sampling information; The azimuth component corresponding to the initial prediction value is determined according to the azimuth sampling information and the initialization parameter.
20. The method according to claim 16, wherein: The method further comprises: An initial prediction value corresponding to the current point cloud is determined according to radial distance information corresponding to the current point cloud, and a prediction value of a midpoint of the current point cloud is determined according to the initial prediction value.
21. The method according to any one of claims 17 to 20, wherein: The method further comprises: A radial distance component corresponding to the initial prediction value is determined according to the radial distance information.
22. The method according to claim 17, wherein: The method further comprises: Determine initialization mode identification information; When the initialization mode identification information indicates that the current point cloud uses the first initialization mode, a process for determining the azimuth sampling information and the radial distance information is executed.
23. The method according to claim 22, wherein: The method further comprises: When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, the radial distance information determination process is executed.
24. The method according to claim 23, wherein: The method further comprises: When it is determined that the current point cloud uses the first initialization mode, setting the value of the initialization mode identification information to a first value; When it is determined that the current point cloud uses the second initialization mode, the value of the initialization mode identification information is set to a second value.
25. The method according to any one of claims 21 to 24, wherein: The method further comprises: The initialization mode identification information is written into the bit stream.
26. The method according to claim 24, wherein: The method further comprises: When the initialization mode identification information indicates that the current point cloud uses the first initialization mode, determining the azimuth component of the initial prediction value according to the azimuth sampling information; When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, the azimuth component of the initial prediction value is set to a third value.
27. The method according to claim 16 or 20, wherein: The method further comprises: Determine the initial prediction value as the prediction value of the root node of the prediction tree corresponding to the current point cloud; Based on the predicted value of the root node, predicted values of other points in the current point cloud are determined.
28. The method according to claim 27, wherein: The method further comprises: Determining a prediction residual corresponding to the current point according to a prediction value corresponding to the current point in the current point cloud; The prediction residual is quantized according to the quantization parameter corresponding to the current point to determine the quantized coefficient residual corresponding to the current point.
29. The method according to claim 28, wherein: The method further comprises: The quantization parameter corresponding to the current point and the quantized prediction residual are written into the bitstream.
30. The method of claim 29, wherein: The method further comprises: The mode identification information corresponding to the current point is determined according to a rate-distortion algorithm, and the mode identification information is written into a bitstream; wherein the mode identification information is used to indicate whether the prediction mode corresponding to the current point is an inter-frame mode or an intra-frame mode.
31. The method of claim 16, wherein: The method further comprises: Determine a first azimuth parameter according to the azimuth sampling information and a preset value; The first azimuth angle parameter is written into the bitstream.
32. A code stream, wherein The code stream is generated by bit coding according to the information to be coded; wherein the information to be coded includes at least: initialization mode identification information, azimuth sampling information, radial distance information, quantization parameter, quantized prediction residual, and mode identification information.
33. An encoder, comprising: A first determining unit and an encoding unit; wherein, The first determining unit is configured to determine azimuth sampling information corresponding to the current point cloud; The encoding unit is configured to write the azimuth sampling information into a bit stream; The first determination unit is further configured to determine an initial prediction value corresponding to the current point cloud according to azimuth sampling information corresponding to the current point cloud, and determine a prediction value of a midpoint of the current point cloud according to the initial prediction value.
34. An encoder, comprising a first memory and a first processor; wherein: The first memory is used to store a computer program that can be run on the first processor; The first processor is configured to execute the method according to any one of claims 16 to 31 when running the computer program.
35. A decoder, comprising: A decoding unit and a second determining unit; wherein, The decoding unit is configured to decode the code stream; The second determination unit is configured to determine the azimuth sampling information corresponding to the current point cloud; determine the initial prediction value corresponding to the current point cloud according to the azimuth sampling information corresponding to the current point cloud, and determine the prediction value of the midpoint of the current point cloud according to the initial prediction value.
36. A decoder, comprising a second memory and a second processor; wherein: The second memory is used to store a computer program that can be run on the second processor; The second processor is configured to execute the method according to any one of claims 1 to 15 when running the computer program.
37. A computer-readable storage medium, wherein: The computer-readable storage medium stores a computer program, and when the computer program is executed, the method according to any one of claims 1 to 15 is implemented, or the method according to any one of claims 16 to 31 is implemented.