Coding and decoding method and device, codec, code stream, equipment and storage medium
Patent Information
- Application Number
- CN202380095968.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-04-17
- Publication Date
- 2025-11-11
AI Technical Summary
The processing of point cloud data is limited by storage space and transmission bandwidth. Existing technologies are difficult to effectively compress 3D point cloud data, resulting in storage and transmission bottlenecks in applications such as virtual reality, augmented reality, and autonomous driving.
By using the prediction list in the encoding and decoding method to predict point cloud data, using geometric residuals and prediction values to generate geometric code streams, and updating the difference threshold according to the fluctuation range of cylindrical coordinates of adjacent nodes to optimize the prediction list, thereby improving Geometric prediction accuracy and coding efficiency.
It effectively saves the bit overhead of the geometry code stream, improves the storage and transmission efficiency of point cloud data, and obtains more accurate geometric reconstruction values. It is suitable for efficient storage and transmission of three-dimensional point cloud data.
Smart Images

Figure CN120937356A_ABST
Abstract
Description
Coding and decoding method and device, codec, code stream, device, storage medium Technical Field
[0001] The embodiments of the present application relate to point cloud compression technology, including but not limited to encoding and decoding methods and devices, codecs, bit streams, devices, and storage media. Background Art
[0002] With the improvement of hardware processing capabilities and the rapid development of computer vision, three-dimensional point clouds have become the next generation of immersive multimedia after audio, images, and video, and are widely used in applications such as virtual reality, augmented reality, autonomous driving, and environmental modeling.
[0003] However, as application demand grows, the processing of massive point cloud data is facing bottlenecks in storage space and transmission bandwidth. To better manage data, conserve server storage space, and reduce transmission traffic and time between servers and clients, point cloud compression has become a key issue in promoting the development of the point cloud industry.
[0004] Summary of the Invention
[0005] In view of this, the encoding and decoding method and apparatus, codec, code stream, device, and storage medium provided in the embodiments of the present application can improve the prediction accuracy of the geometric coordinates of point cloud data, thereby helping to save the bit overhead of the geometric code stream.
[0006] According to one aspect of an embodiment of the present application, a decoding method is provided, comprising: parsing a geometric code stream to obtain a geometric residual and an index value of a current node, wherein the index value is used to determine a prediction mode of the current node; determining a geometric prediction value of the current node according to the prediction mode identified by the index value in the prediction list; wherein the prediction list includes one or more prediction modes, each including a reference radius and a reference azimuth; determining a cylindrical coordinate reconstruction value of the current node according to the geometric residual and the geometric prediction value; updating a current difference threshold according to a fluctuation range of a radius component of cylindrical coordinate reconstruction values of multiple adjacent nodes; and updating the prediction list according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
[0007] According to one aspect of an embodiment of the present application, a coding method is provided, comprising: in a case where an angle mode is turned on, using a prediction list to predict the cylindrical coordinates of a current node of a prediction tree of an input point cloud to obtain one or more candidate prediction values of the current node; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth; determining a geometric prediction value of the current node based on the one or more candidate prediction values; determining a geometric residual of the current node based on the geometric prediction value and the cylindrical coordinates of the current node; generating a geometric code stream based on the geometric residual and the index value of the prediction mode in the prediction list used to determine the geometric prediction value; updating a current difference threshold based on a fluctuation range of the radius component of the cylindrical coordinates in a plurality of adjacent nodes; and updating the prediction list based on the updated difference threshold; wherein the plurality of adjacent nodes include the current node.
[0008] According to one aspect of an embodiment of the present application, a decoding device is provided, which is applied to a decoder, and the device includes: a decoding module, configured to parse a geometric code stream to obtain a geometric residual and an index value of a current node; the index value is used to determine a prediction mode of the current node of the geometric residual; a first determination module, configured to determine the geometric prediction value of the current node according to the prediction mode identified by the index value in the prediction list; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth; the first determination module is further configured to determine the cylindrical coordinate reconstruction value of the current node according to the geometric residual and the geometric prediction value; a first update module, configured to update a current difference threshold according to a fluctuation range of a radius component of a cylindrical coordinate reconstruction value in a plurality of adjacent nodes; and update the prediction list according to the updated difference threshold; wherein the plurality of adjacent nodes include the current node.
[0009] According to one aspect of an embodiment of the present application, a decoder is provided, 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; and the first processor is used to execute the decoding method described in the embodiment of the present application when running the computer program.
[0010] According to one aspect of an embodiment of the present application, there is provided an encoding device, which is applied to an encoder, and the device includes: a prediction module, configured to use a prediction list to predict the cylindrical coordinates of the current node of the prediction tree of the input point cloud when the angle mode is turned on, and obtain one or more candidate prediction values of the current node; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth; a selection module, configured to determine the geometric prediction value of the current node according to the one or more candidate prediction values; a second determination module, configured to determine the geometric residual of the current node according to the geometric prediction value and the cylindrical coordinates of the current node; an encoding module, configured to generate a geometric code stream according to the geometric residual and the index value of the prediction mode in the prediction list used to determine the geometric prediction value; wherein the device also includes a second update module, the second update module is configured to: update the current difference threshold according to the fluctuation range of the radius component of the cylindrical coordinates in multiple adjacent nodes; and update the prediction list according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
[0011] According to one aspect of an embodiment of the present application, an encoder is provided, 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; and the second processor is used to execute the encoding method as described in the embodiment of the present application when running the computer program.
[0012] According to one aspect of an embodiment of the present application, a code stream is provided, where the code stream is obtained using the encoding method described in the embodiment of the present application.
[0013] According to one aspect of an embodiment of the present application, an electronic device is provided, comprising: a processor adapted to execute a computer program; and a computer-readable storage medium storing a computer program, wherein when the computer program is executed by the processor, the encoding method as described in the embodiment of the present application is implemented, or when the computer program is executed by the processor, the decoding method as described in the embodiment of the present application is implemented.
[0014] According to one aspect of an embodiment of the present application, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, the encoding method as described in the embodiment of the present application is implemented, or when the computer program is executed, the decoding method as described in the embodiment of the present application is implemented.
[0015] It is understandable that using the same difference threshold to update the prediction list for all nodes may result in the prediction list not being updated for a long time for some points with relatively small fluctuation amplitudes, which is obviously not conducive to finding a better geometric prediction value. In view of this, in an embodiment of the present application, the prediction list is updated according to the updated difference threshold; and the update of the difference threshold is based on the fluctuation range of the radius component of the cylindrical coordinates in multiple adjacent nodes; in this way, the difference threshold can be more closely matched with the actual scene of the point cloud data, which is beneficial to the timely update of the prediction list, and further beneficial to obtaining a better and more accurate geometric prediction value. In this way, for the encoding end, it is beneficial to save the bit overhead of the geometric code stream; for the decoding end, it is beneficial to obtain a geometric reconstruction value that is closer to the true value.
[0016] It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The accompanying drawings herein are incorporated into and constitute a part of this specification. These drawings illustrate embodiments consistent with the present application and, together with the specification, serve to illustrate the technical solutions of the present application. Obviously, the drawings described below are merely some embodiments of the present application. Those skilled in the art can, without inventive effort, derive other drawings from these drawings.
[0018] The flowcharts shown in the accompanying drawings are for illustrative purposes only and do not necessarily include all contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps may be decomposed, while others may be combined or partially combined. Therefore, the actual execution order may vary depending on the actual situation.
[0019] FIG1 is a schematic diagram of a geometry-based point cloud compression (G-PCC) encoder framework provided in an embodiment of the present application;
[0020] FIG2 is a schematic diagram of converting an input point cloud from Cartesian coordinates to cylindrical coordinates according to an embodiment of the present application;
[0021] FIG3 is a schematic diagram of obtaining a prediction tree by sorting an input point cloud based on azimuth according to an embodiment of the present application;
[0022] FIG4 is a schematic diagram of a G-PCC-based decoder framework provided in an embodiment of the present application;
[0023] FIG5 is a schematic diagram of an implementation flow of the encoding method provided in an embodiment of the present application;
[0024] FIG6 is a schematic diagram of updating a prediction list provided in an embodiment of the present application;
[0025] FIG7 is a schematic diagram of updating a prediction list provided in an embodiment of the present application;
[0026] FIG8 is a schematic diagram of an implementation flow of a decoding method provided in an embodiment of the present application;
[0027] FIG9 is a schematic diagram of a laser scanning scene provided in an embodiment of the present application;
[0028] FIG10 is a schematic structural diagram of a decoding device provided in an embodiment of the present application;
[0029] FIG11 is a schematic structural diagram of an encoding device provided in an embodiment of the present application;
[0030] FIG12 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application;
[0031] FIG13 is a schematic diagram of the structure of the encoder provided in an embodiment of the present application. DETAILED DESCRIPTION
[0032] To make the purpose, technical solutions and advantages of the embodiments of the present application clearer, the specific technical solutions of the present application will be further described in detail below in conjunction with the drawings in the embodiments of the present application. The following embodiments are used to illustrate the present application but are not intended to limit the scope of the present application.
[0033] 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.
[0034] In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be 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.
[0035] It should be pointed out that the terms "first\second\third" involved in the embodiments of the present application are intended to distinguish similar or different objects, and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
[0036] The codec architecture and service scenarios described in the embodiments of this application are intended to more clearly illustrate the technical solutions of the embodiments of this application and do not constitute a limitation on the technical solutions provided by the embodiments of this application. Those skilled in the art will appreciate that, with the evolution of codec architectures and the emergence of new service scenarios, the technical solutions provided in the embodiments of this application are equally applicable to similar technical problems.
[0037] With the advancement of hardware processing capabilities and computer vision, 3D point clouds have become a new 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.
[0038] FIG1 is a schematic diagram of the geometry-based point cloud compression (G-PCC) encoder framework provided by an embodiment of the present application. As shown in FIG1 , in geometry encoding, the coordinates of the geometric information are first transformed so that all point clouds are contained in a grid consisting of two extreme (diagonal) points (0, 0, 0) and (2 d , 2 d , 2 d ) is placed in a bounding box determined by . Voxelization is then performed, which involves quantization, rounding, and duplicate point removal. Where d is an integer greater than 0, and whether duplicate points are removed is determined by encoder parameters.
[0039] In some embodiments, G-PCC geometry coding can be divided into: octree-based geometry coding and prediction tree-based geometry coding. In prediction tree-based geometry coding, depending on whether the angle mode is enabled, the coding method can be divided into azimuth-based geometry prediction coding scheme and K-dimensional space tree (KD-tree)-based geometry prediction coding scheme.
[0040] When the angle mode is turned on, the encoder first converts the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates. Among them, r is the radius of the input point cloud, is the azimuth of the input point cloud, and θ is the pitch angle of the input point cloud. Each point in the input point cloud is then divided into different laser beams according to its pitch angle. The input point cloud for each laser beam is then sorted by azimuth to form a prediction tree. When angle mode is disabled, the encoder constructs the prediction tree using a KD-tree data structure.
[0041] For example, FIG2 is a schematic diagram of converting the Cartesian coordinates of the input point cloud into cylindrical coordinates. As shown in FIG2 , OM is a laser beam, point M is the physical space point scanned by the laser beam, the coordinates of point M in Cartesian coordinates are (x, y, z), the pitch angle θ of point M is the angle between OM and the Z axis, the radius r of point M is the length of OM's projection on the XOY plane, and the azimuth angle of point M is is the angle between OM' and the X axis. In this way, the Cartesian coordinates (x, y, z) in the input point cloud are converted to cylindrical coordinates
[0042] FIG3 provides a schematic diagram of a prediction tree obtained by sorting the input point cloud based on the azimuth angle. As shown in FIG3 , dots of different depths are points scanned by different laser beams, and the points scanned by the same laser beam have the same pitch angle.
[0043] When constructing a prediction tree, for the points scanned by the same laser beam, as shown in Figure 3, they are sorted from small to large according to azimuth angle and then connected in sequence. Points with small azimuth angles can serve as parent nodes of points with large azimuth angles. For example, for the points scanned by the third laser beam in Figure 3 (the darkest dots), they are sorted from small to large according to azimuth angle. The azimuth angle of point 31 is smaller than that of point 32, and the azimuth angle of point 32 is smaller than that of point 33... Then, points 31, 32, 33... are connected in sequence, with arrows pointing to points with small azimuth angles, forming the outermost circle of point lines.
[0044] After obtaining the point connection line of each laser beam, for the points scanned by different laser beams, the first points of adjacent laser beams are connected in sequence to obtain a prediction tree.
[0045] For example, as shown in FIG3 , after obtaining the connection lines of the points scanned by the 0th laser beam, the 1st laser beam, the 2nd laser beam, and the 3rd laser beam, the first point scanned by the 0th laser beam (point 01), the first point scanned by the 1st laser beam (point 11), the first point scanned by the 2nd laser beam (point 21), and the first point scanned by the 3rd laser beam (point 31) are connected in sequence, with the arrows pointing to the points with smaller laser beam index numbers, and the prediction tree shown in FIG3 is obtained. For the first points of adjacent laser beams, the first point with a smaller laser beam index can be used as the parent node of the first point with a larger laser beam index (for example, point 11 can be used as the parent node of point 21), and the first point of the 0th laser beam (point 01) can be used as the root node of the entire prediction tree. In some embodiments, the order of the laser beams is determined according to the size of the pitch angle of the corresponding point. The smaller the laser beam index, the smaller the pitch angle of the point scanned by the laser beam.
[0046] In some embodiments, it is also possible to Sort by r, tanθ, first compare If the size If they are the same, then compare r. If r is the same, then compare tanθ. Finally, the reordering of the input point cloud is completed.
[0047] In some embodiments, after the prediction tree is constructed, the cylindrical coordinates of each node in the prediction tree can be predicted and encoded in a depth-first order. For the current node to be encoded, the cylindrical coordinate geometric prediction value of the current node can be determined according to the intra-frame prediction algorithm or the inter-frame prediction algorithm. During intra-frame prediction, if the angle mode is turned off, one of the prediction modes (1) to (4) is used to predict the cylindrical coordinates of the current node: (1) No cylindrical coordinate prediction is performed on the current node; (2) Δ prediction: The cylindrical coordinate reconstruction value of the parent node of the current node is used as the candidate prediction value of the cylindrical coordinate of the current node; (3) Linear prediction: The candidate prediction value of the cylindrical coordinate of the current node = 2 * The cylindrical coordinate reconstruction value of the parent node of the current node - The cylindrical coordinate reconstruction value of the grandparent node of the current node; (4) Parallelogram prediction: The candidate prediction value of the cylindrical coordinate of the current node = The cylindrical coordinate reconstruction value of the parent node of the current node + The cylindrical coordinate reconstruction value of the grandparent node of the current node - The cylindrical coordinate reconstruction value of the great-grandparent node of the current node. For inter-frame prediction, a prediction point is found in the previously encoded node to predict the current node. Then, through rate-distortion optimization, the prediction mode with the lowest bit rate is selected as the optimal prediction mode. Next, the prediction residual (also known as the geometric residual) is obtained by subtracting the true value of the node geometry information from the candidate prediction value corresponding to the optimal prediction mode. This prediction residual is quantized using a quantization parameter. Finally, the quantization parameter, the optimal prediction mode (or the index value of the optimal prediction mode), and / or the prediction residual are encoded to generate a binary bitstream (also known as the geometric bitstream).
[0048] Correspondingly, decoding is the reverse process of encoding. Figure 4 is a schematic diagram of a decoder framework based on G-PCC provided in an embodiment of the present application. As shown in Figure 4, in the prediction tree-based geometric decoding, for the node to be decoded, the quantization coefficient corresponding to each node and the optimal prediction mode are first decoded to obtain the corresponding geometric prediction value according to the optimal prediction mode; then the prediction residual of the geometric information (i.e., the geometric residual) is decoded and inverse quantized, and then the reconstructed geometric information of the point to be decoded is restored based on the geometric 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.
[0049] The encoding method and decoding method provided in the embodiments of the present application mainly focus on the improvement of the predictive coding module in the codec framework.
[0050] The embodiment of the present application provides an encoding method, which can be applied to an encoder. FIG5 is a schematic diagram of the implementation flow of the encoding method provided in the embodiment of the present application. As shown in FIG5 , the method can include the following steps 501 to 506:
[0051] Step 501: When the angle mode is enabled, a prediction list is used to predict cylindrical coordinates of a current node of a prediction tree of an input point cloud to obtain one or more candidate prediction values of the current node; wherein the prediction list includes one or more prediction modes, each of which includes a reference radius and a reference azimuth.
[0052] Step 502: determining a geometric prediction value of the current node based on the one or more candidate prediction values;
[0053] Step 503: determining a geometric residual of the current node based on the geometric prediction value and the cylindrical coordinates of the current node;
[0054] Step 504: Generate a geometry bitstream according to the geometry residual and the index value of the prediction mode in the prediction list used to determine the geometry prediction value;
[0055] Step 505: updating the current difference threshold value according to the fluctuation range of the radius component of the cylindrical coordinates of the plurality of adjacent nodes;
[0056] Step 506: Update the prediction list according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
[0057] In the embodiment of the present application, there is no limitation on whether steps 505 and 506 are executed before or after the cylindrical coordinates are predicted. That is to say, the order of the step numbers from step 501 to step 506 does not limit the order in which the steps are executed.
[0058] In some embodiments, the encoder can quantize and transform the difference between the geometric prediction value of the current node and the various components of the cylindrical coordinates of the current node to obtain the geometric residual of the current node; the encoder uses the same method as the decoding end to inverse transform and inverse quantize the geometric residual, and based on the residual result obtained, reconstruct the cylindrical coordinates of the current node to obtain the reconstructed value of the current node, so as to be used for the prediction of the cylindrical coordinates of the node to be encoded subsequently.
[0059] It can be understood that in an embodiment of the present application, when the angle mode is turned on, the encoder implements geometric encoding of the cylindrical coordinates of the current node based on the prediction list; and updates the current difference threshold according to the fluctuation range of the radius component of the cylindrical coordinates in multiple adjacent nodes in the point cloud; and updates the prediction list according to the updated difference threshold; in this way, the difference threshold is more in line with the actual scenario of the point cloud data, which is beneficial to the timely update of the prediction list, and then beneficial to obtaining better and more accurate geometric prediction values, saving the bit overhead of the geometric code stream.
[0060] The following describes further optional implementations and related terms of each of the above steps.
[0061] In step 501, when the angle mode is turned on, a prediction list is used to predict the cylindrical coordinates of the current node of the prediction tree of the input point cloud to obtain one or more candidate prediction values of the current node; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth.
[0062] In the embodiments of the present application, there is no limit on the number of prediction modes included in the prediction list, and the number may be one or more. The number of prediction modes may be fixed or non-fixed. The encoder may use some or all of the prediction modes in the prediction list to predict the cylindrical coordinates of the current node.
[0063] In the embodiment of the present application, there is no limitation on the initial values of the reference radius and the reference azimuth of the prediction mode in the prediction list, and the initial values of the reference radius and the reference azimuth can be set according to various setting rules.
[0064] Exemplarily, in some embodiments, the initial values of the reference radius and the reference azimuth angle of each prediction mode in the prediction list are both equal to 0.
[0065] Of course, in other embodiments, the initial value of the reference radius in at least one of the prediction modes in the prediction list is non-zero. There is no limitation on how the initial value of the reference radius is set to a non-zero value. In some embodiments, the initial value of the reference radius in at least one of the prediction modes is equal to the minimum radius in the input point cloud; in other embodiments, the reference radius in at least one of the prediction modes is equal to the maximum radius in the input point cloud.
[0066] Further, in some embodiments, the initial value of the reference radius in some prediction modes in the prediction list is equal to the minimum radius value of the input point cloud, or the initial value of the reference radius of all prediction modes in the prediction list is equal to the minimum radius value in the input point cloud.
[0067] In some other embodiments, the initial values of the reference radius in the prediction modes in the prediction list may also be different, wherein the minimum reference radius is equal to the minimum radius value in the input point cloud.
[0068] Furthermore, different initial values of the reference radius may be set as follows: the initial value of the reference radius in the prediction mode is set according to the geometric accuracy of the input point cloud and the minimum radius in the input point cloud.
[0069] Exemplarily, in some embodiments, the initial value of the reference radius of the first prediction mode in the prediction list is equal to the minimum radius in the input point cloud; the initial value of the reference radius of the nth prediction mode in the prediction list is equal to the minimum radius in the input point cloud shifted left by m bits; wherein n is greater than 1 and less than or equal to the number of prediction modes in the prediction list, and m is greater than 1 and less than the geometric accuracy of the input point cloud; the initial value of the reference radius of the n+1th prediction mode in the prediction list is equal to the minimum radius in the input point cloud shifted left by m+s bits; wherein s is a preset step size and is greater than or equal to 1, and m+s is less than the geometric accuracy of the input point cloud.
[0070] In some embodiments, m+s is less than or equal to the geometric accuracy of the input point cloud.
[0071] In some embodiments, the geometric accuracy of the input point cloud may be the geometric accuracy of the Ford sequence in the G-PCC rotating lidar dataset, for example, the geometric accuracy of the input point cloud is 18 bits.
[0072] Assume that the minimum radius in the input point cloud is R min , the prediction list includes 4 prediction modes, the geometric accuracy is 18bit, m=10, s=2, m+s<18, then among the 4 prediction modes in the prediction list, the initial value of the reference radius of the first prediction mode is R min , when the initial value of the reference radius of the second prediction mode is R min +2 10 , the initial value of the reference radius of the third prediction mode can be R min +2 10+2 ; or, m = 14, s = 2, when the initial value of the reference radius of the third prediction mode is R min +2 14 When the initial value of the reference radius of the fourth prediction mode can be R min +2 14+2Of course, in the embodiment of the present application, there is no limitation on the setting rules of the initial values of the reference radius of each prediction mode in the prediction list. In short, the initial values of the reference radius of different prediction modes in the prediction list can be the same, or the initial values of the reference radius of at least two prediction modes can be different non-zero values.
[0073] For at least one of the reference radiuses in the prediction mode being equal to the maximum radius in the input point cloud, in some embodiments, the initial values of the reference radiuses in the prediction modes in the prediction list may be the same and equal to the maximum radius in the input point cloud; or the initial values of the reference radiuses in the prediction modes in the prediction list may be different, and the maximum reference radius may be equal to the maximum radius in the input point cloud.
[0074] In some embodiments, an initial value of the reference azimuth angle in at least one of the prediction modes is equal to 0.
[0075] In some embodiments, after determining an initial value of a reference radius of at least one of the prediction modes in the prediction list, a geometric code stream may be generated according to the initial value of the reference radius of at least one of the prediction modes in the prediction list.
[0076] It can be understood that if the reference radii in the prediction list are all 0, the reference radii in the prediction list may not be used when predicting the first few nodes of the prediction tree, such as the root node, and the prediction list may not be updated in a timely manner; in an embodiment of the present application, the reference radius in at least one prediction mode is a non-zero value, for example: the reference radius in at least one prediction mode can be set to the maximum radius in the input point cloud, or it can be set to the minimum radius in the input point cloud, or it can be set to any radius value in the input point cloud. In this way, the prediction accuracy of these nodes can be improved when performing cylindrical coordinate prediction on the root node of the prediction tree, etc., which is beneficial to saving the bit overhead of the code stream.
[0077] In the embodiment of the present application, the current node can be understood as the point to be encoded or decoded in the prediction tree. Since the prediction tree has a root node, the current node may have no parent node.
[0078] The use of the prediction list is described below.
[0079] In some embodiments, the method for determining the first candidate prediction value of the current node is different for the case where the current node has no parent node and the case where the current node has a parent node. In the case where the current node has no parent node, the radius component of the first candidate prediction value of the cylindrical coordinates of the current node is equal to the minimum radius in the input point cloud, and the azimuth component of the first candidate prediction value is equal to 0, and the pitch angle component of the first candidate prediction value is equal to 0. In the case where the current node has a parent node, the first candidate prediction value is equal to the cylindrical coordinate reconstruction value of the parent node.
[0080] For example, the minimum radius of the input point cloud is r min , if the current node has no parent node, the first candidate prediction value PR1 (radius component, azimuth component, pitch angle component) is (r min , 0, 0); if the current node has a parent node, the first candidate prediction value PR1 of the current node is the cylindrical coordinate reconstruction value of its parent node.
[0081] In some embodiments, the reconstructed cylindrical coordinate value of the parent node is obtained according to the sum of the geometric residual of the parent node and the geometric prediction value of the cylindrical coordinate of the parent node.
[0082] In some embodiments, the cylindrical coordinate reconstruction value of the parent node also includes a radius component, an azimuth component and a pitch component; the radius component of the cylindrical coordinate reconstruction value of the parent node is determined based on the sum of the radius residual component of the geometric residual of the parent node and the radius component of the geometric prediction value of the cylindrical coordinates of the parent node; the azimuth component of the cylindrical coordinate reconstruction value of the parent node is determined based on the sum of the azimuth residual component of the geometric residual of the parent node and the azimuth component of the geometric prediction value of the cylindrical coordinates of the parent node; the pitch component of the cylindrical coordinate reconstruction value of the parent node is determined based on the sum of the pitch residual component of the geometric residual of the parent node and the pitch component of the geometric prediction value of the cylindrical coordinates of the parent node.
[0083] In some embodiments, the method for determining the nth candidate prediction value of the current node may be the same for the case where the current node has no parent node and the case where the current node has a parent node. That is, the radius component of the nth candidate prediction value of the cylindrical coordinates of the current node is equal to the reference radius of the nth prediction mode of the prediction list, the azimuth component of the nth candidate prediction value is equal to the sum of the reference azimuth of the nth prediction mode and k times the azimuth step size, and the pitch angle component of the nth candidate prediction value is equal to the pitch angle component of the cylindrical coordinate reconstruction value of the parent node; wherein n is greater than 1 and less than or equal to the number of prediction modes in the prediction list.
[0084] For example, the prediction list includes 4 prediction modes, with an azimuth step size of The 2-4 prediction modes (reference radius, reference azimuth) in the prediction list are and The pitch angle component of the cylindrical coordinate reconstruction value of the parent node is θ; then the second candidate prediction value (radius component, azimuth component, pitch angle component) is The third candidate prediction value is The fourth candidate prediction value is
[0085] In an embodiment of the present application, k can be a fixed value or a non-fixed value. For example, in some embodiments, the method of determining the k value required to predict the n-th candidate prediction value of the current node is different for the case where the current node has no parent node and the case where it has a parent node. In the case where the current node has no parent node, when the absolute value of the second difference between the azimuth component of the first candidate prediction value and the reference azimuth of the n-th prediction mode is less than the azimuth step, k is equal to 0; when the absolute value of the second difference between the azimuth component of the first candidate prediction value and the reference azimuth of the n-th prediction mode is greater than or equal to the azimuth step, k is equal to the second difference divided by the azimuth step and rounded down.
[0086] For example, when the current node has no parent node, the azimuth component of the first candidate prediction value is 0, and the reference azimuth of the second prediction mode is If the absolute value of the second difference Then k = 0, that is, the azimuth component of the second candidate prediction value is like but That is, the azimuth component of the second candidate prediction value is in, Express Round down.
[0087] In the case that the current node has a parent node, when the absolute value of the third difference between the azimuth component of the cylindrical coordinate reconstruction value of the parent node and the reference azimuth of the n-th prediction mode is less than the azimuth step, k is equal to 0; when the absolute value of the third difference between the azimuth component of the cylindrical coordinate reconstruction value of the parent node and the reference azimuth of the n-th prediction mode is greater than or equal to the azimuth step, k is equal to the third difference divided by the azimuth step and rounded down.
[0088] For example, the azimuth component of the cylindrical coordinate reconstruction value of the parent node is The reference azimuth of the second prediction mode is If the absolute value of the third difference k=0, that is, the azimuth component of the second candidate prediction value is like but That is, the azimuth component of the second candidate prediction value is
[0089] In step 502, a geometric prediction value of the current node is determined based on the one or more candidate prediction values.
[0090] In some embodiments, when the one or more candidate prediction values are less than N, the candidate prediction values can be filled to N according to the filling rules; for example, the reconstructed values of the cylindrical coordinates of the adjacent encoded points of the current node are used as candidate prediction values to fill to N.
[0091] In some embodiments, a candidate prediction value with the lowest bit rate may be selected from one or more candidate prediction values based on rate-distortion optimization as the geometric prediction value of the current node. Alternatively, a candidate prediction value with the lowest bit rate may be selected from N candidate prediction values based on distortion optimization as the geometric prediction value of the current node; the geometric prediction value of the current node may also be understood as the target prediction value / optimal prediction value of the current node.
[0092] In step 503, the geometric residual of the current node is determined based on the geometric prediction value and the cylindrical coordinates of the current node.
[0093] In some embodiments, the geometric residual of the current node includes a radius residual component, an azimuth residual component and a pitch angle residual component; wherein, the radius residual component can be determined according to the difference between the radius component in the cylindrical coordinates of the current node and the radius component in the geometric prediction value of the current node; the azimuth residual component can be determined according to the difference between the azimuth component in the cylindrical coordinates of the current node and the azimuth component in the geometric prediction value of the current node; the pitch angle residual component can be determined according to the difference between the pitch angle component in the cylindrical coordinates of the current node and the pitch angle component in the geometric prediction value of the current node.
[0094] In step 504, a geometry code stream is generated according to the geometry residual and the index value of the prediction mode in the prediction list used to determine the geometry prediction value.
[0095] In this way, at the decoding end, after the decoder decodes the geometric code stream to obtain the index value, and after obtaining the prediction list using the same method as the encoding end, it can obtain the prediction mode for determining the geometric prediction value of the geometric residual based on the index value, and thus recover the geometric prediction value of the current node based on the prediction mode, and then obtain the reconstructed value of the current node based on the geometric prediction value and the geometric residual.
[0096] In step 505, the current difference threshold is updated according to the fluctuation range of the radius component of the cylindrical coordinates of multiple adjacent nodes; wherein the multiple adjacent nodes include the current node.
[0097] In an embodiment of the present application, the encoder may update the current difference threshold value according to the fluctuation range of the radius component of the cylindrical coordinate reconstruction value or the cylindrical coordinate true value in the multiple adjacent nodes.
[0098] In the embodiments of the present application, the initial threshold value of the difference threshold value is not limited. In some embodiments, the initial threshold value of the difference threshold value can be a preset fixed value. In other embodiments, the encoder can determine the difference in the second radius component of the cylindrical coordinates between multiple adjacent nodes obtained by laser scanning corresponding to the first node to be encoded; and then set the initial threshold value of the difference threshold value based on the absolute value of the multiple second radius component differences. Based on this, after determining the initial threshold value, the encoder generates a geometric code stream based on the initial threshold value of the difference threshold value.
[0099] For example, in some embodiments, the encoder may set the maximum value among the absolute values of the second radius component differences as the initial threshold value of the difference threshold value.
[0100] Regarding the update of the difference threshold, in some embodiments, the encoder can respectively determine the first radius component difference of the cylindrical coordinate reconstruction value between the multiple adjacent nodes; then update the current difference threshold based on the absolute values of the multiple first radius component differences; exemplarily, the encoder can update the current difference threshold based on the maximum radius component difference among the absolute values of the multiple first radius component differences that is less than or equal to the current difference threshold.
[0101] In some embodiments, the plurality of adjacent nodes are points obtained by the same laser scan; further, the encoder may determine whether to update the current difference threshold based on the relationship between the absolute value of the maximum radius component difference and the current difference threshold when the number of the plurality of adjacent nodes is less than a node number threshold. Exemplarily, in some embodiments, the encoder may not update the current difference threshold when the absolute value of the maximum radius component difference is less than or equal to q times the current difference threshold, and then update the prediction list based on the current difference threshold; and update the current difference threshold when the absolute value of the maximum radius component difference is greater than q times the current difference threshold; wherein q is greater than 0 and less than 1.
[0102] It can be understood that multiple adjacent nodes are points obtained by the same laser scan. If the number of multiple adjacent nodes is small, it may not be accurate to determine whether to update the difference threshold based on a small number of nodes. Therefore, the encoder can determine whether to update the current difference threshold based on the relationship between the absolute value of the maximum radius component difference and the current difference threshold.
[0103] Exemplarily, assuming that the current difference threshold is represented by D and the maximum radius component difference is Dm, if |Dm| is less than or equal to q*D, the current difference threshold is not updated; if |Dm| is greater than q*D, the current difference threshold is updated.
[0104] Furthermore, for the update of the current difference threshold mentioned in the above embodiments, in some embodiments, the encoder may use the absolute value of the maximum radius component difference as the updated difference threshold, that is, the updated difference threshold is equal to the absolute value of the maximum radius component difference.
[0105] It is understandable that if a fixed difference threshold is used to predict the cylindrical coordinates of all nodes, this may result in the difference threshold being set too high for some nodes with relatively small fluctuations, causing the prediction models in the second half of the prediction list to not be updated for a long time, which is not conducive to finding the optimal prediction candidate value. In the embodiment of the present application, the difference threshold can change with the fluctuation range of the cylindrical coordinates of the node; in this way, even when the fluctuation range of the node to be predicted is large, the prediction list can be updated in a timely manner, thereby making the prediction result more accurate.
[0106] Of course, in the embodiment of the present application, the difference threshold may also be a fixed value.
[0107] In step 506, the prediction list is updated according to the updated difference threshold.
[0108] Regarding the update of the prediction list, in some embodiments, after obtaining the geometric residual of the current node, the encoder reconstructs the cylindrical coordinates of the current node based on the geometric residual to obtain the cylindrical coordinate reconstruction value of the current node; then determines the absolute value of the first difference between the radius component of the cylindrical coordinate reconstruction value of the current node and the radius component of the one or more candidate prediction values; and updates the prediction list based on the relationship between the first minimum value of the absolute value of one or more first differences and the updated difference threshold.
[0109] In some embodiments, the reconstructed value of the cylindrical coordinates may be determined based on the sum of the geometric residual and the geometric prediction value of the current node.
[0110] Furthermore, in some embodiments, the encoder may discard the last prediction mode in the prediction list when the first minimum value is greater than the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0111] It can be understood that if the first minimum value is greater than the updated difference threshold, then the absolute value of each first difference in the one or more first differences is greater than the updated difference threshold, which means that the radius component of the cylindrical coordinate reconstruction value of the current node is significantly different from the reference radius of any prediction mode in the prediction list, that is, the laser may have scanned another object with a larger radius mutation that is not stored in the prediction list; at this time, the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node need to be inserted into the head of the prediction list as the new first prediction mode of the prediction list, and the prediction can be made based on the new prediction list when the other object is scanned next time.
[0112] Regarding the update of the above-mentioned prediction list, in some embodiments, as shown in FIG6 , the index values of the remaining prediction modes in the prediction list are updated, that is, the last prediction mode in the original prediction list is discarded, and the i-th prediction mode in the original prediction list is updated to the i+1-th prediction mode.
[0113] In some embodiments, the encoder may discard the prediction mode in the prediction list used to determine the geometric prediction value of the current node when the first minimum value is less than or equal to the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0114] It can be understood that if the first minimum value is less than or equal to the updated difference threshold, it means that the radius component of the cylindrical coordinate reconstruction value of the current node is not much different from the reference radius of the prediction mode in the prediction list. Therefore, the latest cylindrical coordinate reconstruction value of the current node can be used to update the prediction mode in the prediction list to predict the next node to be encoded based on the updated prediction list.
[0115] For the update of the prediction mode in the above embodiment, exemplarily, as shown in FIG7 , the radius component and the azimuth component of the cylindrical coordinate reconstruction value of the current node are inserted into the head of the prediction list as the new first prediction mode of the prediction list, and the i-th prediction mode before the prediction mode used to determine the geometric prediction value of the current node in the original prediction list is used as the updated i+1-th prediction mode.
[0116] Regarding the update of the prediction list, in some other embodiments, the encoder may update the prediction list according to the relationship between the absolute value of the radius residual component of the geometric residual and the updated difference threshold.
[0117] Further, in some embodiments, the encoder may discard the last prediction mode in the prediction list when the absolute value of the radius residual component is greater than the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list; in other embodiments, the encoder may discard the prediction mode in the prediction list used to determine the geometric prediction value of the current node when the absolute value of the radius residual component is less than or equal to the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0118] The present application provides a decoding method, which is applied to a decoder. FIG8 is a flowchart of the decoding method provided by the present application. As shown in FIG8 , the method may include the following steps 801 to 805:
[0119] Step 801: Parse the geometry code stream to obtain the geometry residual and index value of the current node; the index value is used to determine the prediction mode of the current node;
[0120] Step 802: Determine a geometric prediction value of the current node according to the prediction mode identified by the index value in the prediction list; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth angle;
[0121] Step 803: determining a cylindrical coordinate reconstruction value of the current node according to the geometric residual and the geometric prediction value;
[0122] Step 804: updating the current difference threshold value according to the fluctuation range of the radius component of the cylindrical coordinate reconstruction value in the plurality of adjacent nodes;
[0123] Step 805: Update the prediction list according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
[0124] In the embodiment of the present application, there is no limitation on whether the decoder executes step 804 and step 805 before or after executing step 802. That is to say, the order of the step numbers from step 801 to step 805 does not limit the order in which the steps are executed.
[0125] It can be understood that in the embodiment of the present application, the decoder updates the current difference threshold based on the fluctuation range of the radius component of the cylindrical coordinates in multiple adjacent nodes in the point cloud, and updates the prediction list according to the updated difference threshold; in this way, the difference threshold is more in line with the actual scenario of the point cloud data, which is beneficial to the timely update of the prediction list, and further beneficial to the decoding end to obtain a geometric reconstruction value that is closer to the true value.
[0126] The following describes further optional implementations and related terms of one or more of the above steps.
[0127] In step 804, the current difference threshold is updated according to the fluctuation range of the radius component of the cylindrical coordinate reconstruction value in the plurality of adjacent nodes.
[0128] In some embodiments, the decoder parses the geometric code stream, obtains an initial threshold of the difference threshold based on the parsing result, and then updates the current difference threshold based on the fluctuation range of the radius component of the cylindrical coordinates in multiple adjacent nodes.
[0129] Regarding the update of the current difference threshold, in some embodiments, the decoder respectively determines the first radius component difference of the cylindrical coordinate reconstruction value between multiple adjacent nodes; and updates the current difference threshold based on the absolute values of the multiple first radius component differences.
[0130] Furthermore, the decoder may update the current difference threshold according to the absolute value of the maximum radius component difference value among the absolute values of the plurality of first radius component differences that is less than or equal to the current difference threshold value.
[0131] In some embodiments, the multiple adjacent nodes are points obtained by the same laser scan; based on this, the decoder can determine whether to update the current difference threshold based on the relationship between the absolute value of the maximum radius component difference and the current difference threshold when the number of the multiple adjacent nodes is less than the node number threshold. Exemplarily, in some embodiments, the decoder does not update the current difference threshold when the absolute value of the maximum radius component difference is less than or equal to q times the current difference threshold; the decoder updates the prediction list based on the current difference threshold, where q is greater than 0 and less than 1; and the decoder updates the current difference threshold when the absolute value of the maximum radius component difference is greater than q times the current difference threshold.
[0132] Regarding updating the current difference threshold, in some embodiments, the decoder may use the absolute value of the maximum radius component difference as the updated difference threshold, that is, the updated difference threshold is equal to the absolute value of the maximum radius component difference.
[0133] In step 805, the prediction list is updated according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
[0134] Regarding updating the prediction list, in some embodiments, the decoder parses the geometric code stream, and based on the parsing result, obtains the first minimum value of the absolute values of the first differences between the radius components of the cylindrical coordinate reconstruction value of the current node and the radius components of one or more candidate prediction values corresponding to the prediction list, and then updates the prediction list based on the relationship between the first minimum value and the updated difference threshold.
[0135] Regarding updating the prediction list based on the relationship between the first minimum value and the updated difference threshold, in some embodiments, the decoder may discard the last prediction mode in the prediction list if the first minimum value is greater than the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list; and, if the first minimum value is less than or equal to the updated difference threshold, discard the prediction mode in the prediction list used to determine the geometric prediction value of the current node, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0136] Regarding updating the prediction list, in other embodiments, the decoder may update the prediction list based on the relationship between the absolute value of the radius residual component of the geometric residual and the updated difference threshold; exemplarily, the decoder discards the last prediction mode in the prediction list when the absolute value of the radius residual component is greater than the updated difference threshold, and inserts the radius component and the azimuth component of the cylindrical coordinate reconstruction value of the current node into the head of the prediction list as the new first prediction mode of the prediction list, updates the index values of the remaining prediction modes in the prediction list, and obtains the updated prediction list; and, the decoder discards the prediction mode in the prediction list used to determine the geometric prediction value of the current node when the absolute value of the radius residual component is less than or equal to the updated difference threshold, and inserts the radius component and the azimuth component of the cylindrical coordinate reconstruction value of the current node into the head of the prediction list as the new first prediction mode of the prediction list, updates the index values of the remaining prediction modes in the prediction list, and obtains the updated prediction list.
[0137] In some embodiments, the decoder parses the geometric code stream and determines the initial value of the reference radius in the prediction mode in the prediction list based on the parsing result; wherein the geometric code stream carries the initial value information of the reference radius of at least one of the prediction modes.
[0138] In some embodiments, the code stream carries an initial value of the reference radius in a prediction mode, and based on the initial value of the prediction mode, the initial values of the reference radius of all prediction modes are determined.
[0139] In some embodiments, the initial value information may be the initial value itself, an index value of the initial value, or a residual between the initial value and a default value.
[0140] In some embodiments, an initial value of the reference radius in at least one prediction mode in the prediction list is a non-zero value.
[0141] In some embodiments, the geometry code stream carries initial value information of the reference radius of the first prediction mode in the prediction list.
[0142] In some embodiments, the initial values of the reference radius of the remaining prediction modes in the prediction list are equal to the initial value of the reference radius of the first prediction mode.
[0143] In some embodiments, the initial value of the reference radius of the nth prediction mode in the prediction list is equal to the initial value of the reference radius of the first prediction mode shifted left by m bits; wherein n is greater than 1 and less than or equal to the number of prediction modes in the prediction list; the initial value of the reference radius of the n+1th prediction mode in the prediction list is equal to the minimum radius value in the input point cloud shifted left by m+s bits; wherein s is a preset step size and is greater than or equal to 1.
[0144] In some embodiments, an initial value of the reference azimuth angle in at least one of the prediction modes is equal to 0.
[0145] It should be noted that, in the embodiment of the decoding method, undisclosed technical details may be understood by referring to the description of the embodiment of the encoding method described above.
[0146] In the laser scanning scenario shown in Figure 9, 901 and 902 form the first object, and 903 is the second object. There is a hole between 901 and 902. When scanning the first object, the laser beam may pass through the hole between 401 and 402 and scan to position P3 of the second object behind the first object. In this case, since the point at position P2 on the first object is the parent node of the point at position P3 on the second object, but positions P2 and P3 are not located on the same object, the difference in radius between the two points is significant. Therefore, if the point cloud at position P3 is predicted using Δ prediction, linear prediction, or parallelogram prediction (i.e., predicting the point at position P3 based on the point at position P2, which is not located on the same object as position P3), the prediction result may be inaccurate. In this case, the prediction list can achieve more accurate predictions than the four existing prediction modes of G-PPC.
[0147] In some embodiments, the prediction list consists of N pairs of Composition, where n = 0...N-1. n is the reference radius of the nth prediction mode in the prediction list; is the reference azimuth of the nth prediction mode in the prediction list.
[0148] In some embodiments, before using the prediction list, each pair in the prediction list is first All are initialized to (0, 0).
[0149] In some embodiments, if the current point to be coded P (an example of the current node) is the first point of the prediction tree, that is, it has no parent node, then the predictor (an example of the first candidate prediction value) PR1 = (r min ,0,0),r minIs the minimum radius of the current frame point cloud (an example of the input point cloud). The remaining predictors (an example of the nth candidate prediction value) PR n>0 =(0,0,0). When point P (an example of the current node) has a parent node, the predictor (an example of the first candidate prediction value) Among them, r0 is the radius component of the first candidate prediction value, is the azimuth component of the first candidate prediction value, and θ0 is the pitch angle component of the first candidate prediction value. in, The nth prediction mode in the prediction list, is the azimuth step size. When k=0, otherwise in, Represents round down.
[0150] In some embodiments, after encoding (decoding) the current point, the prediction list is updated as follows:
[0151] If the absolute value of the radius residual of the coded (decoded) point (an example of the absolute value of the radius residual component of the geometric residual) | r res |>th (an example of a difference threshold), which means that the laser beam has scanned a new object. Then discard the Nth prediction mode in the prediction list and convert the coded (decoded) point (r is an example of the radius component of the cylindrical coordinate reconstruction value of the current node, An example of the azimuth component of the cylindrical coordinate reconstruction value of the current node) is inserted into the head of the prediction list, that is, from n=4 to n=2, Assigned to Then set the first pair of prediction list As shown in Figure 6.
[0152] If the absolute value of the radius residual of the code point|r res |≤th (an example of a difference threshold), which means that the laser beam scans an object that already exists in the prediction list, and then the prediction index (predIdx) of the predictor of the point (an example of an index of the prediction mode for determining the geometric prediction value of the current node) is set to the value of (r predIdx is an example of a reference radius in the prediction model. is an example of a reference azimuth in the prediction mode) is moved to the head of the prediction list and the coded point Update it, that is, from n=predIdx to n=2, Assigned to Then set the first pair of prediction list As shown in FIG6 , at this time predIdx=3.
[0153] In some embodiments, the difference threshold th is fixed to 2048>>ps.geom_angular_radius_inv_scale_log2 in the encoder, where ps.geom_angular_radius_inv_scale_log2 is the quantization parameter of the radius r. Different predictors (an example of candidate prediction values) are used to predict P, and the corresponding prediction residuals are obtained. The prediction index and prediction residual corresponding to each predictor of P are subjected to rate-distortion optimization, and the predictor with the lowest bit rate is selected as the final predictor of P. In intra-frame prediction, |r res | is the absolute value of the radius residual corresponding to the selected optimal predictor (an example of the optimal candidate prediction value). When inter-frame prediction is enabled, |r res | is the absolute value of the difference between the radius of the current point P and the radius of the first predictor in the prediction list (an example of the first candidate prediction value).
[0154] In some embodiments, the purpose of the prediction list is to provide multiple predictors (an example of candidate prediction values) that are as good as possible for the point to be encoded. Since the radius of a point in a frame of point cloud cannot be zero, the prediction list is initialized with (0,0). This will result in the predictors in the prediction list not being selected when encoding the first few nodes of the prediction tree. In addition, during the update of the prediction list, the |r res The method of obtaining | is also not very reasonable. In intra-frame prediction, the obtained |r res | is the absolute value of the radius residual corresponding to the optimal predictor for the current point. Since the optimal predictor is selected based on a combination of multiple factors, such as the prediction residual and the prediction index, this may not be optimal for the radius residual. For inter-frame prediction, the radius of the previously encoded node is assumed to be closest to the radius of the current point. This may not be true in some cases, such as when the previous node happens to be a hole in a scanned object. Furthermore, using the same threshold for all laser beams can result in excessively large thresholds for certain points with smaller fluctuations. This can prevent the latter half of the prediction list from being updated for extended periods, hindering the search for optimal prediction candidates.
[0155] Based on this, the encoding method provided in the embodiment of the present application can set different initial values for the prediction list.
[0156] In some embodiments, the prediction list is initially (r min ,0), where r min is the minimum radius of the input point cloud.
[0157] In some embodiments, a staged initial value is set based on the minimum value according to the geometric accuracy of the point cloud sequence. For example, the geometric accuracy of the Ford sequence in the G-PCC standard rotating lidar dataset is 18 bits. When the capacity of the prediction list is 4, the initial value can be set to PR1 = (r min ,0) (an example of the initial value of the first candidate prediction mode); PR2=(r min +2 10 ,0) (an example of the initial value of the second candidate prediction mode); PR3=(r min +2 12 ,0) (an example of the initial value of the third candidate prediction mode); PR4=(r min +2 14 ,0)(An example of the initial value of the fourth candidate prediction mode).
[0158] In some embodiments, after encoding the current node, the current node is partially reconstructed to obtain the cylindrical coordinate reconstruction value of the current node. The absolute value of the radius of the cylindrical coordinate reconstruction value of the current point and the radius difference (an example of the first difference) of all prediction modes in the prediction list is calculated. n The radius difference with the smallest absolute value (an example of the first minimum value) is selected as the |r for judging whether the laser beam scans a new object. res |(An example of a difference threshold).
[0159] In some embodiments, the difference threshold of the prediction list can be adaptively adjusted according to the maximum fluctuation range between consecutive points among all points scanned by each laser beam.
[0160] For example, for the point cloud scanned by the jth laser beam, it is traversed and the difference (an example of the difference in the first radius component) between the radius of the current point (an example of the current node) and the radius of the previous encoded node is calculated. If the diff is not greater than the threshold of the current line (an example of the current difference threshold), the diff is stored in an array. When all the points scanned by the jth laser beam are traversed, the maximum value of all the diffs in the array is calculated as the threshold of the next line, that is, the j-1th line (an example of the updated difference threshold). j is greater than 1 and less than the number of laser beams - 1.
[0161] In addition, when the scene corresponding to the input point cloud is very open, such as the sea surface, the laser beam scanning far away may not collect any points or collect very few points. In this case, the threshold value obtained by collecting a laser beam with very few points may not be accurate. Therefore, in order to avoid the above situation, when the embodiment of the present application obtains the difference threshold value of the j-1 line, it will be compared with the difference threshold value of the j-1 line. If the threshold value of the j-1 line is smaller than half of the difference threshold value of the j-1 line, the difference threshold value of the j-1 line will not be updated, and the difference threshold value of the j-1 line will still be used, that is:
[0162] In the embodiment of the present application, the prediction list has different initial values; the threshold of the prediction list in the embodiment of the present application can be adaptively adjusted. In the embodiment of the present application, the maximum radius can be used as the initial value of the prediction list; in the embodiment of the present application, the initial threshold of the prediction list can be changed.
[0163] Based on the above embodiments, an embodiment of the present application provides a decoding device, which is applied to a decoder. FIG10 is a schematic structural diagram of the decoding device provided in an embodiment of the present application. As shown in FIG10 , the decoding device 10 includes:
[0164] The decoding module 101 is configured to parse the geometric code stream to obtain a geometric residual and an index value of a current node, wherein the index value is used to determine a prediction mode of the current node;
[0165] A first determination module 102 is configured to determine a geometric prediction value of the current node according to a prediction mode identified by the index value in the prediction list; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth angle;
[0166] The first determining module 102 is further configured to determine a cylindrical coordinate reconstruction value of the current node based on the geometric residual and the geometric prediction value;
[0167] The first updating module 103 is configured to update the current difference threshold according to the fluctuation range of the radius component of the cylindrical coordinate reconstruction value in multiple adjacent nodes; and update the prediction list according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
[0168] In some embodiments, the decoding module 101 is further configured to parse the geometry code stream, and obtain an initial threshold of the difference threshold according to the parsing result.
[0169] In some embodiments, the first determination module 102 is configured to respectively determine the first radius component difference of the cylindrical coordinate reconstruction value between multiple adjacent nodes; the first update module 103 is configured to update the current difference threshold according to the absolute values of the multiple first radius component differences.
[0170] In some embodiments, the first updating module 103 is configured to update the current difference threshold according to the absolute value of the largest radius component difference value among the absolute values of the plurality of first radius component differences that is less than or equal to the current difference threshold value.
[0171] In some embodiments, the multiple adjacent nodes are points obtained by the same laser scan; the first determination module 102 is also configured to determine whether to update the current difference threshold based on the relationship between the absolute value of the maximum radius component difference and the current difference threshold when the number of the multiple adjacent nodes is less than the node number threshold.
[0172] In some embodiments, the first update module 103 is configured not to update the current difference threshold when the absolute value of the maximum radius component difference is less than or equal to q times the current difference threshold; where q is greater than 0 and less than 1; and to update the prediction list according to the current difference threshold.
[0173] In some embodiments, the first updating module 103 is configured to update the current difference threshold when the absolute value of the maximum radius component difference is greater than q times the current difference threshold.
[0174] In some embodiments, the updated difference threshold is equal to the absolute value of the maximum radius component difference.
[0175] In some embodiments, the first update module is configured to update the prediction list based on the relationship between the first minimum value of the absolute value of the first difference between the radius component of the cylindrical coordinate reconstruction value of the current node and the radius component of one or more candidate prediction values corresponding to the prediction list and the updated difference threshold.
[0176] In some embodiments, the decoding module 101 is configured to parse the geometry code stream and obtain the first minimum value according to the parsing result.
[0177] In some embodiments, the first update module is configured to discard the last prediction mode in the prediction list when the first minimum value is greater than the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0178] In some embodiments, the first update module 103 is further configured to discard the prediction mode in the prediction list used to determine the geometric prediction value of the current node when the first minimum value is less than or equal to the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0179] In some embodiments, the first updating module 103 is configured to update the prediction list according to a relationship between an absolute value of a radius residual component of the geometric residual and an updated difference threshold.
[0180] In some embodiments, the first update module 103 is configured to discard the last prediction mode in the prediction list when the absolute value of the radius residual component is greater than the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0181] In some embodiments, the first update module 103 is further configured to discard the prediction mode in the prediction list used to determine the geometric prediction value of the current node when the absolute value of the radius residual component is less than or equal to the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0182] In some embodiments, the decoding module 101 is configured to parse the geometric code stream, and based on the parsing result; the first determination module 102 is configured to determine the initial value of the reference radius in the prediction mode in the prediction list; wherein the geometric code stream carries the initial value information of the reference radius of at least one of the prediction modes.
[0183] In some embodiments, an initial value of the reference radius in at least one prediction mode in the prediction list is a non-zero value.
[0184] In some embodiments, the geometry code stream carries initial value information of the reference radius of the first prediction mode in the prediction list.
[0185] In some embodiments, the initial values of the reference radius of the remaining prediction modes in the prediction list are equal to the initial value of the reference radius of the first prediction mode.
[0186] In some embodiments, the initial value of the reference radius of the nth prediction mode in the prediction list is equal to the initial value of the reference radius of the first prediction mode shifted left by m bits; wherein n is greater than 1 and less than or equal to the number of prediction modes in the prediction list; the initial value of the reference radius of the n+1th prediction mode in the prediction list is equal to the minimum radius value in the input point cloud shifted left by m+s bits; wherein s is a preset step size and is greater than or equal to 1.
[0187] In some embodiments, an initial value of the reference azimuth angle in at least one of the prediction modes is equal to 0.
[0188] Based on the above embodiments, an embodiment of the present application provides an encoding device, which is applied to an encoder. FIG11 is a schematic structural diagram of the encoding device provided in an embodiment of the present application. As shown in FIG11 , the encoding device 11 includes:
[0189] The prediction module 111 is configured to, when the angle mode is enabled, use a prediction list to predict cylindrical coordinates of a current node of a prediction tree of an input point cloud to obtain one or more candidate prediction values of the current node; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth;
[0190] A second determination module 112 is configured to determine a geometric prediction value of the current node based on the one or more candidate prediction values;
[0191] The second determining module 112 is further configured to determine a geometric residual of the current node based on the geometric prediction value and the cylindrical coordinates of the current node;
[0192] An encoding module 113 is configured to generate a geometry bitstream according to the geometry residual and an index value of a prediction mode in the prediction list for determining the geometry prediction value;
[0193] The second updating module 114 is configured to update the current difference threshold according to the fluctuation range of the radius component of the cylindrical coordinates in multiple adjacent nodes; and update the prediction list according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
[0194] In some embodiments, the second updating module is configured to update the current difference threshold according to the fluctuation range of the radius component of the cylindrical coordinate reconstruction value in the plurality of adjacent nodes.
[0195] In some embodiments, the second determination module 112 is configured to respectively determine the first radius component difference of the cylindrical coordinate reconstruction value between multiple adjacent nodes; the second update module 114 is configured to update the current difference threshold according to the absolute values of the multiple first radius component differences.
[0196] In some embodiments, the second updating module 114 is configured to update the current difference threshold according to the absolute value of the largest radius component difference value among the absolute values of the plurality of first radius component differences that is less than or equal to the current difference threshold value.
[0197] In some embodiments, the second determination module 112 is further configured to determine whether to update the current difference threshold based on the relationship between the absolute value of the maximum radius component difference and the current difference threshold when the number of the multiple adjacent nodes is less than the node number threshold.
[0198] In some embodiments, the second update module 114 is configured to not update the current difference threshold when the absolute value of the maximum radius component difference is less than or equal to q times the current difference threshold; where q is greater than 0 and less than 1; and to update the prediction list according to the current difference threshold.
[0199] In some embodiments, the second updating module 114 is further configured to update the current difference threshold when the absolute value of the maximum radius component difference is greater than q times the current difference threshold.
[0200] In some embodiments, the updated difference threshold is equal to the absolute value of the maximum radius component difference.
[0201] In some embodiments, the encoding device 11 also includes a setting module, a second determination module 112, which is also configured to determine the second radius component difference of the cylindrical coordinates between multiple adjacent nodes obtained by laser scanning corresponding to the first node to be encoded; the setting module is configured to set the initial threshold of the difference threshold according to the absolute value of the multiple second radius component differences.
[0202] In some embodiments, the encoding module 111 is configured to generate a geometric code stream according to an initial threshold of the difference threshold.
[0203] In some embodiments, the encoding device also includes a reconstruction module, which is configured to reconstruct the cylindrical coordinates of the current node based on the geometric residual to obtain the cylindrical coordinate reconstruction value of the current node; the second determination module 112 is configured to determine the absolute value of the first difference between the radius component of the cylindrical coordinate reconstruction value of the current node and the radius component of the one or more candidate prediction values; the second update module 114 is configured to update the prediction list based on the relationship between the first minimum value of the absolute value of one or more first differences and the updated difference threshold.
[0204] In some embodiments, the second update module 114 is configured to discard the last prediction mode in the prediction list when the first minimum value is greater than the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0205] In some embodiments, the second update module 114 is further configured to discard the prediction mode in the prediction list used to determine the geometric prediction value of the current node when the first minimum value is less than or equal to the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0206] In some embodiments, the second updating module 114 is configured to update the prediction list according to a relationship between an absolute value of a radius residual component of the geometric residual and an updated difference threshold.
[0207] In some embodiments, the second update module 114 is configured to discard the last prediction mode in the prediction list when the absolute value of the radius residual component is greater than the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0208] In some embodiments, the second update module 114 is further configured to discard the prediction mode in the prediction list used to determine the geometric prediction value of the current node when the absolute value of the radius residual component is less than or equal to the updated difference threshold, and insert the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node as the new first prediction mode of the prediction list into the head of the prediction list, update the index values of the remaining prediction modes in the prediction list, and obtain an updated prediction list.
[0209] In some embodiments, an initial value of the reference radius in at least one of the prediction modes is a non-zero value.
[0210] In some embodiments, an initial value of a reference radius in at least one of the prediction modes is equal to a minimum radius in the input point cloud.
[0211] In some embodiments, the initial values of the reference radii in the prediction modes in the prediction list are all equal to the minimum radius in the input point cloud.
[0212] In some embodiments, initial values of reference radii in prediction modes in the prediction list are different, and a minimum reference radius is equal to a minimum radius in the input point cloud.
[0213] In some embodiments, the setting module is configured to set an initial value of the reference radius in the prediction mode according to the geometric accuracy of the input point cloud and the minimum radius in the input point cloud.
[0214] In some embodiments, the initial value of the reference radius of the first prediction mode in the prediction list is equal to the minimum radius in the input point cloud; the initial value of the reference radius of the nth prediction mode in the prediction list is equal to the minimum radius in the input point cloud shifted left by m bits; wherein n is greater than 1 and less than or equal to the number of prediction modes in the prediction list, and m is greater than 1 and less than the geometric accuracy of the input point cloud; the initial value of the reference radius of the n+1th prediction mode in the prediction list is equal to the minimum radius in the input point cloud shifted left by m+s bits; wherein s is a preset step size and is greater than or equal to 1, and m+s is less than the geometric accuracy of the input point cloud.
[0215] In some embodiments, a reference radius in at least one of the prediction modes is equal to a maximum radius in the input point cloud.
[0216] In some embodiments, the initial values of the reference radii in the prediction modes in the prediction list are all equal to the maximum radius in the input point cloud.
[0217] In some embodiments, initial values of reference radii in prediction modes in the prediction list are different, and a maximum reference radius is equal to a maximum radius in the input point cloud.
[0218] In some embodiments, an initial value of the reference azimuth angle in at least one of the prediction modes is equal to 0.
[0219] In some embodiments, the encoding module 111 is configured to generate the geometric code stream according to an initial value of a reference radius of at least one of the prediction modes in the prediction list.
[0220] In some embodiments, when the current node has no parent node, the radius component of the first candidate prediction value of the cylindrical coordinates of the current node is equal to the minimum radius in the input point cloud, and the azimuth component of the first candidate prediction value is equal to 0, and the pitch component of the first candidate prediction value is equal to 0.
[0221] In some embodiments, when the current node has a parent node, the first candidate prediction value is equal to the cylindrical coordinate reconstruction value of the parent node.
[0222] In some embodiments, the radius component of the nth candidate prediction value of the cylindrical coordinates of the current node is equal to the reference radius of the nth prediction mode of the prediction list, the azimuth component of the nth candidate prediction value is equal to the sum of the reference azimuth of the nth prediction mode and k times the azimuth step size, and the pitch angle component of the nth candidate prediction value is equal to the pitch angle component of the cylindrical coordinate reconstruction value of the parent node; wherein n is greater than 1 and less than or equal to the number of prediction modes in the prediction list.
[0223] In some embodiments, when the current node has no parent node, when the absolute value of the second difference between the azimuth component of the first candidate prediction value and the reference azimuth of the n-th prediction mode is less than the azimuth step size, k is equal to 0;
[0224] In the case that the current node has a parent node, when the absolute value of the third difference between the azimuth component of the cylindrical coordinate reconstruction value of the parent node and the reference azimuth of the nth prediction mode is less than the azimuth step size, k is equal to 0.
[0225] In some embodiments, when the current node has no parent node, when the absolute value of the second difference between the azimuth component of the first candidate prediction value and the reference azimuth of the n-th prediction mode is greater than or equal to the azimuth step size, k is equal to the second difference divided by the azimuth step size, rounded down;
[0226] In the case that the current node has a parent node, when the absolute value of the third difference between the azimuth component of the cylindrical coordinate reconstruction value of the parent node and the reference azimuth of the nth prediction mode is greater than or equal to the azimuth step, k is equal to the third difference divided by the azimuth step and rounded down.
[0227] The description of the above encoding / decoding device embodiment is similar to the description of the above encoding / decoding method embodiment, and has similar beneficial effects as the encoding / decoding method embodiment. For technical details not disclosed in the decoding device embodiment of this application, please refer to the description of the encoding / decoding method embodiment of this application for understanding.
[0228] It should be noted that the division of modules in the encoding / decoding device described in the embodiments of the present application is schematic and is merely a logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units. They may also be implemented in a combination of software and hardware.
[0229] It should be noted that, in the embodiment of the present application, if the above method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the relevant technology can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling an electronic device to execute all or part of the method described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a magnetic disk or an optical disk. In this way, the embodiment of the present application is not limited to any specific combination of hardware and software.
[0230] An embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, the encoding method or the decoding method as described in the embodiment of the present application is implemented.
[0231] The present application provides a decoder, as shown in FIG12 , the decoder 12 includes: a first communication interface 121, a first memory 122, and a first processor 123; each component is coupled together via a first bus system 124. It is understood that the first bus system 124 is used to achieve 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, in FIG12 , various buses are labeled as the first bus system 124. Among them,
[0232] The first communication interface 121 is used for sending and receiving signals during the process of sending and receiving information between other external network elements;
[0233] The first memory 122 is used to store computer programs that can be run on the first processor 123;
[0234] The first processor 123 is configured to execute the decoding method described in the embodiment of the present application when running the computer program.
[0235] It is understood that the first memory 122 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 122 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0236] The first processor 123 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 123. The above-mentioned first processor 123 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 122 , and the first processor 123 reads the information in the first memory 122 and completes the steps of the above method in combination with its hardware.
[0237] An embodiment of the present application provides an encoder, as shown in FIG13 , the encoder 13 includes: a second communication interface 131, a second memory 132, and a second processor 133; each component is coupled together via a second bus system 134. It is understood that the second bus system 134 is used to implement connection and communication between these components. In addition to the data bus, the second bus system 134 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, in FIG13 , various buses are labeled as the second bus system 134. Among them,
[0238] The second communication interface 131 is used for receiving and sending signals during the process of sending and receiving information between other external network elements;
[0239] The second memory 132 is used to store computer programs that can be run on the second processor 133;
[0240] The second processor 133 is configured to execute the encoding method described in the embodiment of the present application when running the computer program.
[0241] The embodiment of the present application further provides a code stream, which is obtained by using the aforementioned encoding method.
[0242] It is understood that the hardware functions of the second memory 132 and the first memory 122 are similar, and the hardware functions of the second processor 133 and the first processor 123 are similar; they will not be described in detail here. It is understood that the embodiments described in this application can be implemented using hardware, software, firmware, middleware, microcode, or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application, or a combination thereof. For software implementation, the technology described in this application can be implemented by modules (such as procedures, functions, etc.) that perform the functions described in this application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or external to the processor. An embodiment of the present application provides an electronic device, comprising: a processor adapted to execute a computer program; and a computer-readable storage medium storing the computer program, wherein when the computer program is executed by the processor, the encoding method and / or decoding method described in the embodiment of the present application are implemented. The electronic device can be any type of device capable of video encoding and / or video decoding, such as a mobile phone, tablet computer, laptop computer, personal computer, television, projection device, or monitoring device.
[0243] It should be noted that the description of the above storage medium and device embodiments is similar to the description of the above method embodiments and has similar beneficial effects as the method embodiments. For technical details not disclosed in the storage medium, storage medium, and device embodiments of this application, please refer to the description of the method embodiments of this application for understanding.
[0244] An embodiment of the present application provides an electronic device, comprising: a processor adapted to execute a computer program; and a computer-readable storage medium storing the computer program, wherein when the computer program is executed by the processor, the encoding method and / or decoding method described in the embodiment of the present application are implemented. The electronic device can be any type of device capable of video encoding and / or video decoding, such as a mobile phone, tablet computer, laptop computer, personal computer, television, projection device, or monitoring device.
[0245] It should be noted that the description of the above storage medium and device embodiments is similar to the description of the above method embodiments and has similar beneficial effects as the method embodiments. For technical details not disclosed in the storage medium, storage medium, and device embodiments of this application, please refer to the description of the method embodiments of this application for understanding.
[0246] It should be understood that “one embodiment” or “an embodiment” or “some embodiments” mentioned throughout the specification means that specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, “in one embodiment” or “in an embodiment” or “in some embodiments” appearing throughout the specification do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in the various embodiments of the present application, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application. The above-mentioned serial numbers of the embodiments of the present application are for description only and do not represent the advantages and disadvantages of the embodiments.
[0247] It should be noted that, in this document, 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.
[0248] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The embodiments of the touch screen system described above are merely schematic. For example, the division of the modules is merely a logical function division. In actual implementation, there may be other division methods, such as: multiple modules or components can be combined, or can be integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of devices or modules can be electrical, mechanical or other forms.
[0249] The modules described above as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules; they may be located in one place or distributed across multiple network units; some or all of the modules may be selected according to actual needs to achieve the purpose of this embodiment.
[0250] In addition, all functional modules in the embodiments of the present application can be integrated into one processing unit, or each module can be a separate unit, or two or more modules can be integrated into one unit; the above-mentioned integrated modules can be implemented in the form of hardware or in the form of hardware plus software functional units.
[0251] Those skilled in the art will understand that all or part of the steps of implementing the above-mentioned method embodiments can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above-mentioned method embodiments; and the aforementioned storage medium includes: mobile storage devices, ROM, disks or optical disks, and other media that can store program codes.
[0252] Alternatively, if the above-mentioned integrated unit of the present application is implemented in the form of a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application, or the part that contributes to the relevant technology, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a number of instructions for enabling an electronic device to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROMs, magnetic disks or optical disks.
[0253] The methods disclosed in the several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0254] The features disclosed in the several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0255] 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.
[0256] The above is merely an 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.
Claims
1. A decoding method, the decoding method being applied to a decoder, the method comprising: Parse the geometry code stream to obtain the geometry residual and index value of the current node; The index value is used to determine the prediction mode of the current node; Determine the geometric prediction value of the current node according to the prediction mode identified by the index value in the prediction list; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth; Determining a cylindrical coordinate reconstruction value of the current node according to the geometric residual and the geometric prediction value; The current difference threshold is updated according to the fluctuation range of the radius component of the cylindrical coordinate reconstruction value in multiple adjacent nodes; and the prediction list is updated according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
2. The method according to claim 1, wherein: The method further comprises: The geometric code stream is parsed, and an initial threshold of the difference threshold is obtained according to the parsing result.
3. The method according to claim 1, wherein: The updating of the current difference threshold according to the fluctuation range of the radius component of the cylindrical coordinate reconstruction value in the plurality of adjacent nodes includes: respectively determining first radius component differences of cylindrical coordinate reconstruction values between a plurality of adjacent nodes; The current difference threshold is updated according to the absolute values of the differences of the plurality of first radius components.
4. The method according to claim 3, wherein: The updating of the current difference threshold according to the absolute values of the differences of the plurality of first radius components comprises: The current difference threshold is updated according to the absolute value of the maximum radius component difference value among the absolute values of the plurality of first radius component differences which is less than or equal to the current difference threshold value.
5. The method according to claim 4, wherein: The multiple adjacent nodes are points obtained by the same laser scanning; When the number of the plurality of adjacent nodes is less than the node number threshold, it is determined whether to update the current difference threshold according to the relationship between the absolute value of the maximum radius component difference and the current difference threshold.
6. The method according to claim 5, wherein: When the absolute value of the maximum radius component difference is less than or equal to q times the current difference threshold, the current difference threshold is not updated; wherein q is greater than 0 and less than 1; Accordingly, the method further includes: updating the prediction list according to the current difference threshold.
7. The method according to claim 5, wherein: When the absolute value of the maximum radius component difference is greater than q times the current difference threshold, the current difference threshold is updated.
8. The method according to claim 4, wherein: The updated difference threshold is equal to the absolute value of the maximum radius component difference.
9. The method according to any one of claims 1 to 8, wherein: The updating of the prediction list according to the updated difference threshold value includes: The prediction list is updated according to the relationship between the first minimum value of the absolute values of the first differences between the radius components of the cylindrical coordinate reconstruction value of the current node and the radius components of one or more candidate prediction values corresponding to the prediction list and the updated difference threshold.
10. The method according to claim 9, wherein: The method further comprises: The geometric code stream is parsed, and the first minimum value is obtained according to the parsing result.
11. The method according to claim 9, wherein: Updating the prediction list according to the relationship between the first minimum value and the updated difference threshold value includes: When the first minimum value is greater than the updated difference threshold, the last prediction mode in the prediction list is discarded, and the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node are inserted into the head of the prediction list as the new first prediction mode of the prediction list, and the index values of the remaining prediction modes in the prediction list are updated to obtain an updated prediction list.
12. The method according to claim 9, wherein: Updating the prediction list according to the relationship between the first minimum value and the updated difference threshold value includes: When the first minimum value is less than or equal to the updated difference threshold, the prediction mode in the prediction list used to determine the geometric prediction value of the current node is discarded, and the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node are inserted into the head of the prediction list as the new first prediction mode of the prediction list, and the index values of the remaining prediction modes in the prediction list are updated to obtain an updated prediction list.
13. The method according to any one of claims 1 to 8, wherein: The updating of the prediction list according to the updated difference threshold value includes: The prediction list is updated according to the relationship between the absolute value of the radius residual component of the geometric residual and the updated difference threshold.
14. The method according to claim 13, wherein: The updating of the prediction list according to the relationship between the absolute value of the radius residual component of the geometric residual and the updated difference threshold value comprises: When the absolute value of the radius residual component is greater than the updated difference threshold, the last prediction mode in the prediction list is discarded, and the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node are inserted into the head of the prediction list as the new first prediction mode of the prediction list, and the index values of the remaining prediction modes in the prediction list are updated to obtain an updated prediction list.
15. The method according to claim 13, wherein: The updating of the prediction list according to the relationship between the absolute value of the radius residual component of the geometric residual and the updated difference threshold value comprises: When the absolute value of the radius residual component is less than or equal to the updated difference threshold, the prediction mode in the prediction list used to determine the geometric prediction value of the current node is discarded, and the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node are inserted into the head of the prediction list as the new first prediction mode of the prediction list, and the index values of the remaining prediction modes in the prediction list are updated to obtain an updated prediction list.
16. The method according to claim 1, wherein: Parse the geometric code stream, and determine the initial value of the reference radius in the prediction mode in the prediction list according to the parsing result; wherein the geometric code stream carries the initial value information of the reference radius of at least one of the prediction modes.
17. The method according to claim 16, wherein: An initial value of a reference radius in at least one prediction mode in the prediction list is a non-zero value.
18. The method according to claim 16, wherein: The geometry code stream carries initial value information of the reference radius of the first prediction mode in the prediction list.
19. The method according to claim 18, wherein: The initial values of the reference radius of the remaining prediction modes in the prediction list are equal to the initial value of the reference radius of the first prediction mode.
20. The method according to claim 18, wherein: The initial value of the reference radius of the nth prediction mode in the prediction list is equal to the initial value of the reference radius of the first prediction mode shifted left by m bits; wherein n is greater than 1 and less than or equal to the number of prediction modes in the prediction list; The initial value of the reference radius of the n+1th prediction mode in the prediction list is equal to the minimum radius in the input point cloud shifted left by m+s bits; where s is a preset step size and is greater than or equal to 1.
21. The method according to claim 1, wherein: An initial value of the reference azimuth angle in at least one of the prediction modes is equal to zero.
22. A coding method, the coding method being applied to an encoder, the method comprising: When the angle mode is turned on, a prediction list is used to predict the cylindrical coordinates of a current node of a prediction tree of an input point cloud to obtain one or more candidate prediction values of the current node; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth; Determining a geometric prediction value of the current node according to the one or more candidate prediction values; Determining a geometric residual of the current node according to the geometric prediction value and the cylindrical coordinates of the current node; Generate a geometry bitstream according to the geometry residual and an index value of a prediction mode in the prediction list used to determine the geometry prediction value; The current difference threshold is updated according to the fluctuation range of the radius component of the cylindrical coordinates in multiple adjacent nodes; and the prediction list is updated according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
23. The method according to claim 22, wherein: The updating of the current difference threshold according to the fluctuation range of the radius component of the cylindrical coordinates in the plurality of adjacent nodes includes: The current difference threshold is updated according to the fluctuation range of the radius component of the cylindrical coordinate reconstruction value in the plurality of adjacent nodes.
24. The method according to claim 23, wherein: The method further comprises: respectively determining first radius component differences of cylindrical coordinate reconstruction values between a plurality of adjacent nodes; The current difference threshold is updated according to the absolute values of the differences of the plurality of first radius components.
25. The method according to claim 24, wherein: The updating of the current difference threshold according to the absolute values of the differences of the plurality of first radius components comprises: According to the maximum radius component difference which is less than or equal to the current difference threshold value among the absolute values of the plurality of first radius component differences, The absolute value of the value is used to update the current difference threshold.
26. The method according to claim 25, wherein: The multiple adjacent nodes are points obtained by the same laser scanning; When the number of the plurality of adjacent nodes is less than the node number threshold, it is determined whether to update the current difference threshold according to the relationship between the absolute value of the maximum radius component difference and the current difference threshold.
27. The method according to claim 26, wherein: When the absolute value of the maximum radius component difference is less than or equal to q times the current difference threshold, the current difference threshold is not updated; wherein q is greater than 0 and less than 1; Accordingly, the method further includes: updating the prediction list according to the current difference threshold.
28. The method according to claim 26, wherein: When the absolute value of the maximum radius component difference is greater than q times the current difference threshold, the current difference threshold is updated.
29. The method according to claim 25, wherein: The updated difference threshold is equal to the absolute value of the maximum radius component difference.
30. The method of claim 23, wherein: The method further comprises: Determine the difference of the second radius component of the cylindrical coordinates between a plurality of adjacent nodes obtained by laser scanning corresponding to the first node to be encoded; An initial threshold of the difference threshold is set according to the absolute values of the differences of the plurality of second radius components.
31. The method according to claim 23 or 30, wherein: The geometric code stream is generated according to an initial threshold of the difference threshold.
32. A method according to any one of claims 23 to 31, wherein: The updating of the prediction list according to the updated difference threshold value includes: Reconstructing the cylindrical coordinates of the current node according to the geometric residual to obtain a reconstructed cylindrical coordinate value of the current node; Determine the absolute value of the first difference between the radius component of the cylindrical coordinate reconstruction value of the current node and the radius component of the one or more candidate prediction values; The prediction list is updated according to a relationship between a first minimum value among the absolute values of one or more of the first differences and the updated difference threshold.
33. The method of claim 32, wherein: The updating of the prediction list according to the relationship between the first minimum value among the absolute values of the one or more first difference values and the updated difference threshold value comprises: When the first minimum value is greater than the updated difference threshold, the last prediction mode in the prediction list is discarded, and the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node are inserted into the head of the prediction list as the new first prediction mode of the prediction list, and the index values of the remaining prediction modes in the prediction list are updated to obtain an updated prediction list.
34. The method of claim 32, wherein: The updating of the prediction list according to the relationship between the first minimum value among the absolute values of the one or more first difference values and the updated difference threshold value comprises: When the first minimum value is less than or equal to the updated difference threshold, the prediction mode in the prediction list used to determine the geometric prediction value of the current node is discarded, and the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node are inserted into the head of the prediction list as the new first prediction mode of the prediction list, and the index values of the remaining prediction modes in the prediction list are updated to obtain an updated prediction list.
35. A method according to any one of claims 23 to 31, wherein: The updating of the prediction list according to the updated difference threshold value includes: The prediction list is updated according to the relationship between the absolute value of the radius residual component of the geometric residual and the updated difference threshold.
36. The method of claim 35, wherein: The updating of the prediction list according to the relationship between the absolute value of the radius residual component of the geometric residual and the updated difference threshold value comprises: When the absolute value of the radius residual component is greater than the updated difference threshold, the last prediction mode in the prediction list is discarded, and the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node are inserted into the head of the prediction list as the new first prediction mode of the prediction list, and the index values of the remaining prediction modes in the prediction list are updated to obtain an updated prediction list.
37. The method of claim 35, wherein: The updating of the prediction list according to the relationship between the absolute value of the radius residual component of the geometric residual and the updated difference threshold value comprises: If the absolute value of the radius residual component is less than or equal to the updated difference threshold, the prediction list is discarded. The prediction mode used to determine the geometric prediction value of the current node, and the radius component and azimuth component of the cylindrical coordinate reconstruction value of the current node are inserted into the head of the prediction list as the new first prediction mode of the prediction list, and the index values of the remaining prediction modes in the prediction list are updated to obtain an updated prediction list.
38. The method of claim 23, wherein: An initial value of the reference radius in at least one of the prediction modes is a non-zero value.
39. The method of claim 38, wherein: An initial value of a reference radius in at least one of the prediction modes is equal to a minimum radius in the input point cloud.
40. The method of claim 39, wherein: The initial values of the reference radii in the prediction modes in the prediction list are all equal to the minimum radius in the input point cloud.
41. The method of claim 39, wherein: The initial values of the reference radii in the prediction modes in the prediction list are different, and the minimum reference radius is equal to the minimum radius in the input point cloud.
42. The method of claim 39, wherein: The method further comprises: An initial value of a reference radius in the prediction mode is set according to the geometric accuracy of the input point cloud and a minimum radius in the input point cloud.
43. The method of claim 42, wherein: An initial value of a reference radius of a first prediction mode in the prediction list is equal to a minimum radius in the input point cloud; The initial value of the reference radius of the nth prediction mode in the prediction list is equal to the minimum radius in the input point cloud shifted left by m bits; wherein n is greater than 1 and less than or equal to the number of prediction modes in the prediction list, and m is greater than 1 and less than the geometric accuracy of the input point cloud; The initial value of the reference radius of the n+1th prediction mode in the prediction list is equal to the minimum radius in the input point cloud shifted left by m+s bits; wherein s is a preset step size and is greater than or equal to 1, and m+s is less than the geometric accuracy of the input point cloud.
44. The method of claim 38, wherein: A reference radius in at least one of the prediction modes is equal to a maximum radius in the input point cloud.
45. The method of claim 44, wherein: The initial values of the reference radii in the prediction modes in the prediction list are all equal to the maximum value of the radius in the input point cloud.
46. The method of claim 45, wherein: The initial values of the reference radii in the prediction modes in the prediction list are different, and the maximum reference radius is equal to the maximum radius in the input point cloud.
47. The method of claim 23, wherein: An initial value of the reference azimuth angle in at least one of the prediction modes is equal to zero.
48. A method according to any one of claims 38 to 46, wherein: The method further comprises: The geometric code stream is generated according to an initial value of a reference radius of at least one of the prediction modes in the prediction list.
49. A method according to any one of claims 23 to 47, wherein: When the current node has no parent node, the radius component of the first candidate prediction value of the cylindrical coordinates of the current node is equal to the minimum radius in the input point cloud, and the azimuth component of the first candidate prediction value is equal to 0, and the pitch angle component of the first candidate prediction value is equal to 0.
50. A method according to any one of claims 23 to 47, wherein: The method further comprises: In the case where the current node has a parent node, the first candidate prediction value is equal to the cylindrical coordinate reconstruction value of the parent node.
51. The method of claim 49 or 50, wherein: The radius component of the nth candidate prediction value of the cylindrical coordinates of the current node is equal to the reference radius of the nth prediction mode of the prediction list, the azimuth component of the nth candidate prediction value is equal to the sum of the reference azimuth of the nth prediction mode and k times the azimuth step size, and the pitch angle component of the nth candidate prediction value is equal to the pitch angle component of the cylindrical coordinate reconstruction value of the parent node; wherein n is greater than 1 and less than or equal to the number of prediction modes in the prediction list.
52. The method of claim 51, wherein: In the case where the current node has no parent node, when the absolute value of the second difference between the azimuth component of the first candidate prediction value and the reference azimuth of the nth prediction mode is less than the azimuth step size, k is equal to 0; In the case where the current node has a parent node, k is equal to 0 when the absolute value of the third difference between the azimuth component of the cylindrical coordinate reconstruction value of the parent node and the reference azimuth of the nth prediction mode is less than the azimuth step size.
53. The method of claim 51, wherein: In the case where the current node has no parent node, when the absolute value of the second difference between the azimuth component of the first candidate prediction value and the reference azimuth of the nth prediction mode is greater than or equal to the azimuth step size, k is equal to the second difference divided by the The azimuth step size is rounded down; When the current node has a parent node, and the absolute value of the third difference between the azimuth component of the cylindrical coordinate reconstruction value of the parent node and the reference azimuth of the nth prediction mode is greater than or equal to the azimuth step, k is equal to the third difference divided by the azimuth step and rounded down.
54. A decoding device, applied to a decoder, the device comprising: The decoding module is configured to parse the geometry code stream to obtain the geometry residual and index value of the current node; The index value is used to determine the prediction mode of the current node; A first determination module is configured to determine a geometric prediction value of the current node according to a prediction mode identified by the index value in the prediction list; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth; The first determination module is further configured to determine a cylindrical coordinate reconstruction value of the current node according to the geometric residual and the geometric prediction value; The first update module is configured to update the current difference threshold according to the fluctuation range of the radius component of the cylindrical coordinate reconstruction value in multiple adjacent nodes; and update the prediction list according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
55. A decoder 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 1 to 21 when running the computer program.
56. An encoding device, applied to an encoder, the device comprising: A prediction module is configured to predict the cylindrical coordinates of a current node of a prediction tree of an input point cloud using a prediction list when the angle mode is turned on, to obtain one or more candidate prediction values of the current node; wherein the prediction list includes one or more prediction modes, and the prediction mode includes a reference radius and a reference azimuth; A second determination module, configured to determine a geometric prediction value of the current node based on the one or more candidate prediction values; The second determination module is further configured to determine a geometric residual of the current node based on the geometric prediction value and the cylindrical coordinates of the current node; An encoding module configured to generate a geometry bitstream according to the geometry residual and an index value of a prediction mode in the prediction list for determining the geometry prediction value; The second updating module is configured to update the current difference threshold according to the fluctuation range of the radius component of the cylindrical coordinates in multiple adjacent nodes; and update the prediction list according to the updated difference threshold; wherein the multiple adjacent nodes include the current node.
57. An encoder 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 22 to 53 when running the computer program.
58. A code stream obtained by using the encoding method according to any one of claims 22 to 53.
59. An electronic device comprising: a processor adapted to execute a computer program; A computer-readable storage medium having a computer program stored therein, wherein when the computer program is executed by the processor, the method according to any one of claims 1 to 21 is implemented, or when the computer program is executed by the processor, the method according to any one of claims 22 to 53 is implemented.
60. A computer-readable storage medium, wherein: The computer-readable storage medium stores a computer program, which implements the method according to any one of claims 1 to 21 when executed, or implements the method according to any one of claims 22 to 53 when executed.
Citation Information
Patent Citations
Point cloud coding method, point cloud decoding method and point cloud coding device
CN115474059A
Method and apparatus of encoding / decoding point cloud geometry data captured by a spinning sensors head
WO2022213569A1
Point cloud encoding and decoding methods, encoder, decoder and storage medium
WO2023024840A1