WO2025010541A1 - Encoding method, decoding method, code stream, encoder, decoder, and storage medium - Google Patents
Encoding method, decoding method, code stream, encoder, decoder, and storage medium Download PDFInfo
- Publication number
- WO2025010541A1 WO2025010541A1 PCT/CN2023/106342 CN2023106342W WO2025010541A1 WO 2025010541 A1 WO2025010541 A1 WO 2025010541A1 CN 2023106342 W CN2023106342 W CN 2023106342W WO 2025010541 A1 WO2025010541 A1 WO 2025010541A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- value
- azimuth
- parameter
- azimuth parameter
- reconstructed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Definitions
- the embodiments of the present application relate to the field of video coding and decoding technology, and in particular, to a coding and decoding method, a bit stream, an encoder, a decoder, and a storage medium.
- 3D point cloud has become a new generation of immersive multimedia after audio, image and video, and is widely used in applications such as virtual reality, augmented reality, autonomous driving and environmental modeling.
- point cloud usually has a large amount of data, which is not conducive to its transmission and storage, so it is necessary to efficiently encode and decode the point cloud.
- the quantization of azimuth angle may cause boundary overflow of the reconstructed azimuth angle in certain ranges, thus reducing the coding and decoding performance.
- the embodiments of the present application provide a coding and decoding method, a bit stream, an encoder, a decoder and a storage medium, which can improve the accuracy of azimuth reconstruction, improve coding and decoding efficiency, and thus improve coding and decoding performance.
- an embodiment of the present application provides a decoding method, which is applied to a decoder, and the method includes:
- the prediction residual of the azimuth parameter of the current point is determined
- an embodiment of the present application provides an encoding method, which is applied to an encoder, and the method includes:
- the reconstructed value of the azimuth parameter is corrected to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
- an embodiment of the present application provides a code stream, which is generated by bit encoding according to information to be encoded; wherein the information to be encoded includes at least one of the following:
- an encoder comprising a first determining unit and a first correcting unit, wherein:
- a first determination unit is configured to determine a prediction residual of an azimuth parameter of a current point in a current point cloud; and determine a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter;
- the first correction unit is configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
- an encoder comprising a first memory and a first processor, wherein:
- a first memory for storing a computer program that can be run on the first processor
- the first processor is used to execute the method described in the second aspect when running a computer program.
- an embodiment of the present application provides a decoder, the decoder comprising a decoding unit, a second determining unit, and a second correcting unit, wherein:
- a decoding unit configured to decode a bit stream, an azimuth factor of a current point in a current point cloud
- a second determination unit is configured to determine a prediction residual of an azimuth parameter of a current point according to the azimuth factor; and determine a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter;
- the second correction unit is configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
- an embodiment of the present application provides a decoder, the decoder comprising a second memory and a second processor, wherein:
- a second memory for storing a computer program that can be run on a second processor
- the second processor is used to execute the method described in the first aspect when running a computer program.
- an embodiment of the present application provides a computer-readable storage medium, which stores a computer program.
- the computer program When executed, it implements the method as described in the first aspect, or implements the method as described in the second aspect.
- the embodiment of the present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium.
- the reconstruction value of the azimuth parameter is determined according to the prediction residual of the azimuth parameter; the reconstruction value of the azimuth parameter is corrected to determine the corrected reconstruction value of the azimuth parameter.
- the decoding end specifically the decoding code stream is determined, the azimuth factor of the current point in the current point cloud is determined; the prediction residual of the azimuth parameter of the current point is determined according to the azimuth factor.
- the corrected reconstruction value of the azimuth parameter can meet the preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving coding and decoding efficiency, and further improving coding and decoding performance.
- FIG1 is a schematic diagram of a network architecture for point cloud encoding and decoding
- FIG. 2 is a schematic diagram of a composition framework of a G-PCC encoder
- FIG3 is a schematic diagram of a composition framework of a G-PCC decoder
- FIG4 is a schematic diagram of a flow chart of geometric coding
- FIG5 is a schematic diagram of a flow chart of geometric decoding
- FIG6 is a schematic diagram of an arrangement of geometric information
- FIG7 is a flowchart diagram 1 of a decoding method provided in an embodiment of the present application.
- FIG8 is a second flow chart of a decoding method provided in an embodiment of the present application.
- FIG9 is a schematic diagram of a flow chart of an encoding method provided in an embodiment of the present application.
- FIG10 is a schematic diagram of the structure of an encoder provided in an embodiment of the present application.
- FIG11 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application.
- FIG12 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application.
- FIG13 is a schematic diagram of a specific hardware structure of a decoder provided in an embodiment of the present application.
- FIG. 14 is a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application.
- first ⁇ second ⁇ third involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that “first ⁇ second ⁇ third” can be interchanged in 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.
- PCC Point Cloud Compression
- G-PCC Geometry-based Point Cloud Compression
- V-PCC Video-based Point Cloud Compression
- LOD Level of Detail
- GPS Geometry Parameter Set
- GH Geometry Block Head
- RAHT Region Adaptive Hierarchal Transform
- Point cloud is a three-dimensional representation of the surface of an object.
- Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
- the point cloud refers to a collection of massive three-dimensional points, and the points in the point cloud can include the location information of the points and the attribute information of the points.
- the location information of the point can be the three-dimensional coordinate information of the point.
- the location information of the point can also be called the geometric information of the point.
- the attribute information of the point may include color information and/or reflectivity, etc.
- the color information can be information on any color space.
- the color information can be RGB information. Among them, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B).
- the color information can be brightness and chromaticity (YCbCr, YUV) information. Among them, Y represents brightness, Cb (U) represents blue chromaticity, and Cr (V) represents red chromaticity.
- the points in the point cloud may include the three-dimensional coordinate information of the points and the laser reflection intensity (reflectance) of the points.
- the points in the point cloud may include the three-dimensional coordinate information of the points and the color information of the points.
- the points in the point cloud may include the three-dimensional coordinate information of the points, the laser reflection intensity (reflectance) of the points, and the color information of the points.
- the point cloud can be divided into the following according to the acquisition method:
- the first type of static point cloud the object is stationary, and the device that obtains the point cloud is also stationary;
- the second type of dynamic point cloud the object is moving, but the device that obtains the point cloud is stationary;
- the third type of dynamic point cloud acquisition the device that acquires the point cloud is moving.
- point clouds can be divided into two categories according to their usage:
- Category 1 Machine perception point cloud, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, disaster relief robots, etc.
- Category 2 Point cloud perceived by the human eye, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
- point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of point clouds at the network layer without compression. Therefore, point clouds need to be compressed.
- 3D point cloud has become a new generation of immersive multimedia after audio, image and video, and is widely used in applications such as virtual reality, augmented reality, autonomous driving and environmental modeling.
- point cloud usually has a large amount of data, which is not conducive to its transmission and storage, so it is necessary to efficiently encode and decode the point cloud.
- the point cloud coding framework that can compress the point cloud can be the G-PCC codec framework or the V-PCC codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS).
- MPEG Moving Picture Experts Group
- AVS-PCC codec framework provided by the Audio Video Standard (AVS).
- the G-PCC codec framework can be used to compress the first type of static point cloud and the third type of dynamically acquired point cloud
- the V-PCC codec framework can be used to compress the second type of dynamic point cloud.
- the G-PCC codec framework is mainly described here.
- the embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method, as shown in FIG1 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01.
- the electronic device can be various types of devices with point cloud encoding and decoding functions, for example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., without limitation.
- the electronic device here has a point cloud encoding and decoding function, and generally can include a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
- a point cloud encoder ie, encoder
- a point cloud decoder ie, decoder
- the point cloud data is first divided into multiple slices by slice division.
- the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately.
- FIG2 shows a schematic diagram of the composition framework of a G-PCC encoder.
- the geometric information is transformed so that all point clouds are contained in a bounding box, and then quantized.
- This step of quantization mainly plays a role in scaling. Due to the quantization rounding, the geometric information of a part of the point cloud is the same, so whether to remove duplicate points is determined based on parameters.
- the process of quantization and removal of duplicate points is also called voxelization.
- the bounding box is divided into octrees or a prediction tree is constructed.
- arithmetic coding is performed on the points in the leaf nodes of the division to generate a binary geometric bit stream; or, arithmetic coding is performed on the intersection points (Vertex) generated by the division (surface fitting is performed based on the intersection points) to generate a binary geometric bit stream.
- color conversion is required first to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the uncoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is mainly performed on color information.
- FIG3 shows a schematic diagram of the composition framework of a G-PCC decoder.
- the geometric bit stream and the attribute bit stream in the binary bit stream are first decoded independently.
- the geometric information of the point cloud is obtained through arithmetic decoding-reconstruction of the octree/reconstruction of the prediction tree-reconstruction of the geometry-coordinate inverse conversion;
- the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD partitioning/RAHT-color inverse conversion, and the point cloud data to be encoded (i.e., the output point cloud) is restored based on the geometric information and attribute information.
- a flow chart of G-PCC geometric encoding and a flow chart of G-PCC geometric decoding are also provided here. It should be noted that the flow chart of G-PCC geometric encoding and the flow chart of G-PCC geometric decoding described here are only for more clearly illustrating the technical solution of the embodiment of the present application, and do not constitute a limitation on the technical solution provided by the embodiment of the present application. Those skilled in the art will know that with the evolution of point cloud compression technology and the emergence of new business scenarios, the technical solution provided by the embodiment of the present application is also applicable to point cloud encoding and decoding architectures similar to G-PCC, and no specific limitation is made here.
- FIG4 is a schematic diagram of a flow chart of G-PCC geometric coding. As shown in FIG4, the block diagram is applied to the encoder.
- the point cloud data For the point cloud data to be encoded, the point cloud data is first divided into multiple slices by slice division. In each slice, the geometric information and attribute information of the point cloud are encoded separately.
- the geometric information is transformed so that all the point clouds are contained in a bounding box determined by two extreme points (0, 0, 0) and (2d, 2d, 2d). Then voxelization is performed, that is, quantization, rounding, removal of duplicate points and other operations. Among them, quantization mainly plays a role in scaling.
- the geometric information of a part of the point cloud is the same; in addition, whether to remove duplicate points is determined according to the encoder parameters.
- octree partitioning and surface fitting processing can be performed, or prediction tree construction and prediction coding can be performed, and then a binary geometric bit stream, that is, a geometric code stream, is generated by arithmetic coding.
- the geometric coding of G-PCC can be divided into octree-based geometric coding and prediction tree-based geometric coding.
- the input geometric information is first sorted.
- Common sorting methods include unordered, Morton order, azimuth order, and radial distance order.
- the default sorting method of the current G-PCC standard test condition is based on azimuth, that is, the points are sorted according to the azimuth, radial distance, and pitch angle tangent value.
- the cylindrical coordinates of the input point cloud are calculated based on the Cartesian coordinates (x, y, z) Where r is the radial distance of the point, which can also be called the radius; is the azimuth angle of the point; ⁇ is the elevation angle of the laser beam to which the point belongs. Then according to Sort by r, tan ⁇ .
- the prediction tree geometry coding can be divided into an azimuth-based geometry prediction coding scheme and a KD-tree-based geometry prediction coding scheme.
- the encoder when building the prediction tree, the encoder first converts the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates Then each point in the input point cloud is divided into different laser beams according to its pitch angle. Can be converted to Where i represents the index of the laser beam. Since the azimuth-based sorting method is used by default when sorting the input geometric information, the geometric information of the entire point cloud is arranged in ascending order of azimuth. For the i-th laser beam, the first point visited is the point with the smallest azimuth among all the points belonging to the laser beam.
- the parent node of the points subsequently visited by the i-th beam is the first point in the same laser beam with a smaller azimuth than itself.
- the parent node of the first point of the i-th laser beam is the first point of the i-1-th laser beam.
- the predicted value of the geometric information is first determined according to the intra-frame prediction algorithm or the inter-frame prediction algorithm.
- intra-frame prediction a prediction list is used to predict the point to be coded.
- inter-frame prediction the prediction point is found in the previous coded frame to predict the point to be coded.
- the prediction value with the minimum bit rate is selected as the prediction value of the code point to be coded (decoded) through rate-distortion optimization.
- the prediction residual is obtained by subtracting the actual value of the node geometry information from the predicted value, and the prediction residual is quantized using the quantization parameter.
- the quantization parameter, the selected prediction value index, the prediction residual and other information are encoded to generate a binary code stream.
- FIG5 is a schematic diagram of a flow chart of G-PCC geometric decoding.
- the block diagram is applied to the decoder.
- Decoding is the reverse process of encoding.
- the decoder obtains a binary code stream and performs arithmetic decoding on the geometric bit stream (i.e., the geometric code stream) in the binary code stream.
- the octree can be reconstructed and the surface can be estimated, or prediction decoding based on the prediction tree can be performed, and then the geometric information of the point cloud can be restored by reconstructing the geometry and inverse coordinate transformation.
- the original point cloud is first reordered to build the prediction tree more efficiently.
- the available sorting methods are unordered, Morton order, azimuth order, and radial distance order.
- the default sorting method is sorting by azimuth, that is, sorting each point according to azimuth, radial distance, and tangent value of the pitch angle in turn.
- the encoder first converts the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates Then each point in the input point cloud is divided into different laser beams according to its pitch angle. Can be converted to Where i represents the index of the laser beam. Since the default sorting method based on azimuth is used when sorting the input geometric information, the geometric information of the entire point cloud is arranged in ascending order of azimuth.
- FIG6 is a schematic diagram of an arrangement of geometric information.
- the first point visited is the point with the smallest azimuth angle among all the points belonging to the laser beam.
- the parent nodes of the points subsequently visited by the i-th beam are all the first points in the same laser beam with a smaller azimuth angle than itself.
- the parent node of the first point of the i-th laser beam is the first point of the i-1-th laser beam.
- For the first point of the 0-th laser beam since it has no parent node, it serves as the root node of the entire tree.
- the encoding method of the embodiment of the present application is mainly applied to the predictive encoding and arithmetic encoding processes in the geometric information encoding process of G-PCC as shown in Figure 4;
- the decoding method of the embodiment of the present application is mainly applied to the arithmetic decoding and predictive decoding processes of the geometric information decoding process of G-PCC as shown in Figure 5.
- the embodiment of the present application can be applied to both the encoder and the decoder, and can even be applied to both the encoder and the decoder at the same time, but this is not specifically limited.
- the azimuth quantization in the related art in the geometric encoding and decoding process based on the prediction tree, the azimuth The uniform quantization of makes the maximum error in the Cartesian space depend on the radius of the current point, which affects the compression efficiency. Therefore, considering the distance between the point and the LiDAR head, a non-uniform adaptive azimuth quantization method is proposed using the reconstructed value of the radius of the point (rrec), and its quantization step size is in, The non-uniform quantization in the azimuth domain can provide uniform quantization of the arc, making the maximum reconstruction residual of the Cartesian coordinates brought by the azimuth quantization more uniform.
- the prediction residual of the azimuth in, for For example, Quantization of the original azimuth will result in and
- the reconstructed azimuth of the input point may exceed (- ⁇ , ⁇ ].
- the relevant technology is to obtain the reconstructed value of the current point in the cylindrical coordinate system.
- the reconstructed value of the azimuth For example, we can make a conditional judgment, that is, because Very small, such as the Ford sequence in the G-PCC standard rotation lidar dataset
- the boundary overflow only occurs when the azimuth of the input point is very close to or equal to - ⁇ / ⁇ . Therefore, the above processing of the overflow is unreasonable and reduces the accuracy of azimuth reconstruction.
- An embodiment of the present application also provides a decoding method, decoding a bitstream, determining the azimuth factor of the current point in the current point cloud; determining the prediction residual of the azimuth parameter of the current point based on the azimuth factor; determining the reconstructed value of the azimuth parameter based on the prediction residual of the azimuth parameter; and performing correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
- the corrected reconstructed value of the azimuth parameter can meet the preset range, which not only avoids the boundary overflow of the azimuth parameter and limits it to a preset range, but also improves the accuracy of azimuth reconstruction, improves encoding and decoding efficiency, and thus improves encoding and decoding performance.
- FIG7 a schematic flow chart of a decoding method provided by an embodiment of the present application is shown. As shown in FIG7 , the method may include:
- S701 Decode the code stream and determine the azimuth factor of the current point in the current point cloud.
- the decoding method of the embodiment of the present application is applied to a point cloud decoder (hereinafter referred to as a "decoder").
- the method may refer to a point cloud decoding method, specifically a point cloud azimuth decoding method, and more specifically, an azimuth decoding method of point cloud geometric information.
- the reconstruction of the azimuth parameters is mainly optimized to be limited within a preset range, thereby improving the encoding and decoding performance.
- a point in the current point cloud, can be all points in the current point cloud, or some points in the current point cloud, and these points are relatively concentrated in space.
- the current point can refer to the node to be decoded in the current point cloud.
- the cylindrical coordinates corresponding to the current point can include depth parameters, azimuth parameters, and pitch angle parameters. Indicates.
- r is used to indicate the radial distance of the current point, which can also be called the radius; It is used to indicate the azimuth angle of the current point; ⁇ is used to indicate the elevation angle of the laser beam to which the current point belongs.
- the current point cloud is converted from Cartesian coordinates (x, y, z) to cylindrical coordinates Then each point in the current point cloud is divided into different laser beams according to its pitch angle. Can also be converted to Where i represents the index number of the laser beam.
- the current point cloud can be sorted based on the azimuth, specifically according to The order of r, tan ⁇ is sorted. First, If the size If they are the same, then compare r. If r is the same, then compare tan ⁇ , and finally complete the reordering of the entire point cloud.
- S702 Determine the prediction residual of the azimuth parameter of the current point according to the azimuth factor.
- the azimuth factor here may include a first factor and a second factor.
- determining the prediction residual of the azimuth parameter of the current point according to the azimuth factor may include: determining the sampling interval of the azimuth parameter; determining the first residual value of the azimuth parameter according to the first factor and the sampling interval; performing inverse quantization processing on the second factor to determine the second residual value of the azimuth parameter; determining the prediction residual of the azimuth parameter according to the first residual value and the second residual value of the azimuth parameter.
- the prediction residual of the azimuth parameter of the current point can be determined by decoding the bitstream.
- the encoding end can write the first factor and the second factor into the bitstream, and the decoding end determines the azimuth factor (first factor and second factor) of the current point by decoding the bitstream, and then determines the prediction residual of the azimuth parameter of the current point according to the azimuth factor.
- the prediction residual of the azimuth parameter of the current point can be determined by the first factor and the second factor obtained by decoding.
- the first residual value of the azimuth parameter is determined according to the first factor and the sampling interval. Specifically, the product of the first factor and the sampling interval can be used as the first residual value of the azimuth parameter.
- Indicates; the second factor is inversely quantized, where IQ(.) represents the inverse quantization function, then the second residual value of the azimuth parameter can be used In this way, the prediction residual of the azimuth parameter can be expressed as follows:
- determining the sampling interval of the azimuth parameter when determining the sampling interval of the azimuth parameter, it may include: determining a value of the second syntax element; and determining the sampling interval of the azimuth parameter according to the value of the second syntax element and a fourth numerical value.
- the second syntax element can be represented by geom_angular_azimuth_speed_minus1.
- the sampling interval of the azimuth parameter can be determined according to the value of geom_angular_azimuth_speed_minus1.
- the fourth value is an integer, which can be set to 1. That is,
- the code stream may be decoded to directly determine the sampling interval of the azimuth parameter.
- the encoder may write the sampling interval of the azimuth parameter into the code stream.
- the code stream may be decoded to determine the value of the second syntax element, and then the sampling interval of the azimuth parameter is determined according to the value of the second syntax element and the fourth value.
- the encoder writes the value of the second syntax element into the code stream.
- the code stream may be decoded to determine the geometry parameter set; from the geometry parameter set, the value of the second syntax element may be determined; and then the sampling interval of the azimuth parameter may be determined based on the value of the second syntax element and the fourth value.
- the encoding end writes the geometry parameter set into the code stream
- the second syntax element is a syntax element in the geometry parameter set (Geometry Parameter Set, GPS).
- the second syntax element may also be a syntax element in the geometry block header information (Geometry Block Head, GBH), and the value of the second syntax element may be obtained from the GBH by decoding the code stream.
- the prediction residual of the azimuth parameter due to is known, then when writing the azimuth prediction residual into the bitstream, it can be converted into n and the quantized (Right now ) is written into the bitstream, thereby saving bit rate and improving encoding and decoding efficiency.
- S703 determining a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter; and performing correction processing on the reconstructed value of the azimuth parameter to determine a corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
- determining the reconstructed value of the azimuth parameter based on the prediction residual of the azimuth parameter can include: determining the predicted value of the azimuth parameter; determining the reconstructed value of the azimuth parameter based on the predicted value and the prediction residual.
- the current point may be predicted using a preset mode to determine the predicted value of the azimuth parameter of the current point in the cylindrical coordinate system.
- the preset mode may be: a first prediction mode (expressed by Mode0), a second prediction mode (expressed by Mode1), a third prediction mode (expressed by Mode2), and a fourth prediction mode (expressed by Mode3).
- Mode0 means no prediction
- Mode1 means Delta prediction, i.e. p0
- Mode2 means Linear prediction, i.e. 2p0-p1
- Mode3 means Parallelogram prediction, i.e. p0+p1-p2.
- p0, p1, and p2 are the positions of the parent node, grandparent node, and great-grandparent node of the current node respectively.
- the predicted value of the azimuth parameter in the corresponding cylindrical coordinate system is the preset value ( ); if the current point has no parent node, then If the current node is not a root node and the preset mode is Mode1, the azimuth parameter of the current point is obtained by the azimuth parameter of its parent node. The prediction can be made to obtain the predicted value of the azimuth parameter of the current point If the current node is not the root node and the preset mode is Mode2 or Mode3, the current node is predicted by the corresponding prediction method to obtain the predicted value of the azimuth parameter of the current point.
- the predicted value and the predicted residual can be summed to determine the reconstructed value of the azimuth parameter, and the reconstructed value of the azimuth parameter can be used. Indicated by.
- the azimuth parameter The value range is (- ⁇ , ⁇ ], but considering the encoding and decoding process is a fixed-point number with a certain precision, and its value range needs to be limited. That is to say, in the embodiment of the present application, the reconstructed value of the azimuth parameter is corrected so as to be limited to a preset range.
- the corrected reconstructed value of the azimuth parameter satisfies a preset range, which may include: the corrected reconstructed value of the azimuth parameter is greater than a first threshold value and less than or equal to a second threshold value, wherein the first threshold value and the second threshold value are both integers.
- the method further includes: performing an integer operation on the first value to determine the first threshold value; performing an integer operation on the second value to determine the second threshold value.
- the first numerical value may be a ratio of - ⁇ to the first precision
- the second numerical value may be a ratio of ⁇ to the first precision.
- ⁇ , - ⁇ and the first precision are all integer representations, that is, there is no floating point operation at this time.
- ⁇ , - ⁇ and the first precision are all floating point numbers, then they need to be firstly integerized so that ⁇ , - ⁇ and the first precision are integerized.
- the integerization operation may be a rounding function, a floor function and a ceiling function, etc., which are not specifically limited.
- the preset range is Among them, round(.) represents the rounding function, represents the first precision, and N is an integer greater than or equal to 0.
- round(.) is specifically a rounding function.
- the rounding function For example, one possible implementation is: and In other words, the sum of the first value and 1/2 may be calculated, and the sum may be rounded down to determine the first threshold value.
- the rounding function For example, one possible implementation is: and In other words, the sum of the second value and 1/2 may be calculated, the sum may be rounded down, and the second threshold may be determined.
- this value is equivalent to -2 N-1 ; if As a whole, this value is equal to 2 N-1 .
- the integerization operation such as round(.)
- the preset range is (-2 N-1 ,2 N-1 ]; wherein N is an integer greater than or equal to 0.
- the first threshold value it can be Or it can be -2 N-1 ; for the second threshold value, it can be Or it may be 2 N-1 .
- the method may further include: determining a value of a first syntax element; and determining a value of N according to the value of the first syntax element and a third numerical value.
- the first syntax element can be represented by geom_angular_azimuth_scale_log2.
- the value of N can be determined according to the value of geom_angular_azimuth_scale_log2.
- the code stream may be decoded to directly determine the value of N.
- the encoder may write the value of N into the code stream.
- the code stream may be decoded to determine the value of the first syntax element, and then the value of N is determined according to the value of the first syntax element and the third value.
- the encoder writes the value of the first syntax element into the code stream.
- the code stream may be decoded to determine a geometry parameter set; the value of the first syntax element may be determined from the geometry parameter set; and the value of N may be determined based on the value of the first syntax element and the third value.
- the encoder writes the geometry parameter set into the code stream, and the first syntax element is a syntax element in the geometry parameter set (GPS).
- the first syntax element may also be a syntax element in the geometry block header (Geometry Block Head, GBH), and in this case, the value of the first syntax element may be obtained from the GBH by decoding the bitstream.
- the first threshold value and the second threshold value can be determined, and then the preset range that the corrected reconstructed value of the azimuth parameter needs to satisfy can be determined.
- the method when determining the corrected reconstruction value of the azimuth parameter, referring to FIG8 , the method may include:
- S801 Determine a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter.
- the first threshold value and the second threshold value are both integers. If the reconstructed value of the azimuth parameter is less than or equal to the first threshold value, then the corrected reconstructed value of the azimuth parameter can be set to the sum of the first threshold value and the fifth value; if the reconstructed value of the azimuth parameter is greater than the second threshold value, then the corrected reconstructed value of the azimuth parameter can be set to the second threshold value.
- the fifth value is also an integer, which can be set to 1 here, but is not specifically limited.
- the first threshold value can be The second threshold value can be The specific integer calculation method is the same as above. Then the first threshold value may be -2 N-1 , and the second threshold value may be 2 N-1 .
- performing correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter may include:
- the method may further include: when the reconstructed value of the azimuth parameter is greater than the first threshold value and less than or equal to the second threshold value, determining the reconstructed value of the azimuth parameter as the corrected reconstructed value of the azimuth parameter. That is, in the embodiment of the present application, if At this time
- the related art corrects it to near ⁇ , specifically:
- the related technology is to correct it to near - ⁇ , specifically:
- the technical solution is to correct it to near - ⁇ , specifically:
- this technical solution is to correct it to near ⁇ , specifically:
- This embodiment provides a decoding method, which decodes a code stream, determines the azimuth factor of a current point in a current point cloud; determines the prediction residual of the azimuth parameter of the current point according to the azimuth factor; determines the reconstruction value of the azimuth parameter according to the prediction residual of the azimuth parameter; and performs correction processing on the reconstruction value of the azimuth parameter to determine the corrected reconstruction value of the azimuth parameter, wherein the corrected reconstruction value of the azimuth parameter satisfies a preset range.
- the corrected reconstruction value of the azimuth parameter can be made to meet the preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving the encoding and decoding efficiency, and further improving the encoding and decoding performance.
- FIG9 a schematic diagram of a flow chart of an encoding method provided by an embodiment of the present application is shown. As shown in FIG9 , the method may include:
- S901 Determine the prediction residual of the azimuth parameter of the current point in the current point cloud.
- the encoding method of the embodiment of the present application is applied to a point cloud encoder (hereinafter referred to as an "encoder"). It may refer to a point cloud coding method, specifically a point cloud azimuth coding method, and more specifically, an azimuth coding method of point cloud geometric information.
- the reconstruction of the azimuth parameter is mainly optimized to be limited to a preset range, thereby improving the encoding and decoding performance.
- a point in the current point cloud, a point may be all points in the current point cloud, or may be part of the points in the current point cloud, and these points are relatively concentrated in space.
- the current point may refer to the node to be encoded in the current point cloud.
- the cylindrical coordinates corresponding to the current point may include depth parameters, azimuth parameters, and pitch angle parameters. Indicates.
- r is used to indicate the radial distance of the current point, which can also be called the radius; It is used to indicate the azimuth angle of the current point; ⁇ is used to indicate the elevation angle of the laser beam to which the current point belongs.
- the current point cloud is converted from Cartesian coordinates (x, y, z) to cylindrical coordinates Then each point in the current point cloud is divided into different laser beams according to its pitch angle. Can also be converted to Where i represents the index number of the laser beam.
- the current point cloud can be sorted based on the azimuth, specifically according to The order of r, tan ⁇ is sorted. First, If the size If they are the same, then compare r. If r is the same, then compare tan ⁇ , and finally complete the reordering of the entire point cloud.
- determining the predicted residual of the azimuth parameter of the current point in the current point cloud when determining the predicted residual of the azimuth parameter of the current point in the current point cloud, it can include: determining the predicted value of the azimuth parameter; determining the predicted residual of the azimuth parameter based on the original value and the predicted value of the azimuth parameter.
- the current point can be predicted using a preset mode to determine the predicted value of the azimuth parameter of the current point in the cylindrical coordinate system.
- the preset mode can be: a first prediction mode (represented by Mode0), a second prediction mode (represented by Mode1), a third prediction mode (represented by Mode2), and a fourth prediction mode (represented by Mode3).
- Mode0 means no prediction
- Mode1 means differential prediction (Delta prediction), i.e. p0
- Mode2 means linear prediction (Linear prediction), i.e. 2p0-p1
- Mode3 means parallelogram prediction (Parallelogram prediction), i.e. p0+p1-p2.
- p0, p1, and p2 are the positions of the parent node, grandparent node, and great-grandparent node of the current node, respectively.
- the predicted value of the azimuth parameter in the corresponding cylindrical coordinate system is the preset value ( ); if the current point has no parent node, then If the current node is not a root node and the preset mode is Mode1, the azimuth parameter of the current point is obtained by the azimuth parameter of its parent node. The prediction can be made to obtain the predicted value of the azimuth parameter of the current point If the current node is not the root node and the preset mode is Mode2 or Mode3, the current node is predicted by the corresponding prediction method to obtain the predicted value of the azimuth parameter of the current point.
- the original value of the azimuth parameter and the predicted value can be subtracted to obtain the predicted residual of the azimuth parameter.
- the predicted residual of the azimuth parameter can be expressed as Indicates that the original value of the azimuth parameter can be expressed as
- the predicted value of the azimuth parameter can be expressed as Indicates that the specific calculation formula is:
- the method may also include: encoding the prediction residual of the azimuth parameter, and writing the obtained coded bits into the bitstream.
- the encoder can write the prediction residual of the azimuth parameter into the bitstream, which is transmitted from the encoder to the decoder, so that the decoder can determine the prediction residual of the azimuth parameter by decoding the bitstream.
- the encoding end can first determine the azimuth factor of the current point, and then write the azimuth factor into the bitstream. Specifically, the azimuth factor of the current point is determined according to the prediction residual of the azimuth parameter; the azimuth factor is encoded, and the obtained encoding bits are written into the bitstream.
- the azimuth factor may include a first factor and a second factor.
- determining the azimuth factor of the current point according to the prediction residual of the azimuth parameter it may include: determining the sampling interval of the azimuth parameter; determining the first factor according to the prediction residual and the sampling interval; determining a preset compensation value according to the product of the prediction residual and the first factor and the sampling interval; and quantizing the preset compensation value to determine the second factor.
- the first factor represents the number of repeated points corresponding to the azimuth parameter, which can be represented by n; the second factor represents the quantized compensation value corresponding to the azimuth parameter, which can be represented by
- the preset compensation value can be expressed as Indicates that Can be regarded as a preset compensation value It is quantized. Assume that the prediction residual of the azimuth parameter is The sampling interval is expressed as Indicates that at this time The value of can satisfy:
- the ratio between the prediction residual and the sampling interval is determined, and then the ratio is integerized.
- the integerization can be achieved by rounding the ratio by the round(.) function, so as to obtain the first factor n.
- the preset compensation value is in, and The relationship between the needs to meet:
- the second factor it can be regarded as the quantified Right now
- the prediction residual for the azimuth parameter is For example, in coding When it is converted into the coded n and quantized That is Then n and Write to the code stream.
- the method may also include: determining a value of a second syntax element based on the sampling interval of the azimuth parameter and a fourth numerical value; encoding the value of the second syntax element, and writing the obtained coded bits into a bitstream.
- the second syntax element can be represented by geom_angular_azimuth_speed_minus1.
- the sampling interval of the azimuth parameter is It can be provided by the value of geom_angular_azimuth_speed_minus1.
- the fourth value is an integer, which can be set to 1.
- the sampling interval of the azimuth parameter may be encoded, and the obtained encoded bits may be written into the bitstream.
- the encoding end may write the sampling interval of the azimuth parameter into the bitstream, so that the decoding end may obtain the sampling interval of the azimuth parameter by decoding the bitstream.
- the value of the second syntax element may be encoded, and the obtained encoded bits may be written into the bitstream.
- the encoding end writes the value of the second syntax element into the bitstream, so that after the decoding end obtains the value of the second syntax element by decoding the bitstream, it determines the sampling interval of the azimuth parameter according to the value of the second syntax element and the fourth value.
- the value of the second syntax element may be written into a geometry parameter set; the geometry parameter set is encoded, and the obtained coded bits are written into the bitstream.
- the encoding end writes the geometry parameter set into the bitstream
- the second syntax element is a syntax element in the geometry parameter set (GPS).
- the decoding end obtains the geometry parameter set by decoding the bitstream, it can obtain the value of the second syntax element from the GPS, and then determine the sampling interval of the azimuth parameter based on the value of the second syntax element and the fourth value.
- the second syntax element may also be a syntax element in the geometry block header information (Geometry Block Head, GBH).
- GBH Geometry Block Head
- the prediction residual of the azimuth parameter due to is known, then when writing the azimuth prediction residual into the bitstream, it can be converted into n and the quantized (Right now ) is written into the bitstream, thereby saving bit rate and improving encoding and decoding efficiency.
- S902 Determine a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter.
- determining the reconstructed value of the azimuth parameter based on the prediction residual of the azimuth parameter can include: determining the predicted value of the azimuth parameter; determining the reconstructed value of the azimuth parameter based on the predicted value and the prediction residual.
- a preset mode may be used to predict the current point and determine the predicted value of the azimuth parameter of the current point in the cylindrical coordinate system.
- the preset mode may be: a first prediction mode (expressed by Mode0), a second prediction mode (expressed by Mode1), a third prediction mode (expressed by Mode2), and a fourth prediction mode (expressed by Mode3).
- Mode0 means no prediction
- Mode1 means differential prediction (Delta prediction), i.e., p0
- Mode2 means linear prediction (Linear prediction), i.e., 2p0-p1
- Mode3 means parallelogram prediction (Parallelogram prediction), i.e., p0+p1-p2.
- p0, p1, and p2 are the positions of the parent node, grandparent node, and great-grandparent node of the current node, respectively.
- the predicted value of the azimuth parameter in the corresponding cylindrical coordinate system is the preset value ( ); if the current point has no parent node, then If the current node is not a root node and the preset mode is Mode1, the azimuth parameter of the current point is obtained by the azimuth parameter of its parent node. The prediction can be made to obtain the predicted value of the azimuth parameter of the current point If the current node is not the root node and the preset mode is Mode2 or Mode3, the current node is predicted by the corresponding prediction method to obtain the predicted value of the azimuth parameter of the current point.
- the predicted value and the predicted residual can be summed to determine the reconstructed value of the azimuth parameter, and the reconstructed value of the azimuth parameter can be used. Indicated by.
- the azimuth parameter The value range is (- ⁇ , ⁇ ], but considering the encoding and decoding process is a fixed-point number with a certain precision, and its value range needs to be limited. That is to say, in the embodiment of the present application, the reconstructed value of the azimuth parameter is corrected so as to be limited to a preset range.
- S903 Correct the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
- the corrected reconstructed value of the azimuth parameter satisfies the preset range, which may include: the corrected reconstructed value of the azimuth parameter is greater than the first threshold value and less than or equal to the second threshold value, wherein the first threshold value and the second threshold value are both integers.
- the method further includes: performing an integer operation on the first value to determine the first threshold value; performing an integer operation on the second value to determine the second threshold value.
- the first value may be the ratio of - ⁇ to the first precision
- the second value may be the ratio of ⁇ to the first precision.
- ⁇ , - ⁇ and the first precision are all integer representations, that is, there is no floating point operation at this time.
- ⁇ , - ⁇ and the first precision are all floating point numbers, they need to be integerized first so that ⁇ , - ⁇ and the first precision are integer representations.
- the integer conversion operation may be a rounding function, a floor function, a ceiling function, etc., and no specific limitation is given to this.
- the preset range is Among them, round(.) represents the rounding function, represents the first precision, and N is an integer greater than or equal to 0.
- round(.) is specifically a rounding function.
- the rounding function For example, one possible implementation is: and In other words, the sum of the first value and 1/2 may be calculated, and the sum may be rounded down to determine the first threshold value.
- the rounding function For example, one possible implementation is: and In other words, the sum of the second value and 1/2 may be calculated, the sum may be rounded down, and the second threshold may be determined.
- this value is equivalent to -2 N-1 ; if As a whole, this value is equal to 2 N-1 .
- the integerization operation such as round(.)
- the preset range is (-2 N-1 ,2 N-1 ]; wherein N is an integer greater than or equal to 0.
- the first threshold value can be Or it can be -2 N-1 ; for the second threshold value, it can be Or it may be 2 N-1 .
- the method may further include: determining the value of the first syntax element according to the value of N and a third numerical value; encoding the value of the first syntax element, and writing the obtained coded bits into the bitstream.
- the first syntax element can be represented by geom_angular_azimuth_scale_log2.
- the value of N can be determined according to the value of geom_angular_azimuth_scale_log2.
- the value of N may be encoded and the obtained encoded bits may be written into a bitstream.
- the encoding end may write the value of N into the bitstream so that the decoding end may obtain the value of N by decoding the bitstream.
- the value of the first syntax element may be encoded, and the obtained encoded bits may be written into the bitstream.
- the encoding end writes the value of the first syntax element into the bitstream, so that after the decoding end obtains the value of the first syntax element by decoding the bitstream, the value of N is determined according to the value of the first syntax element and the third value.
- the value of the first syntax element may be written into a geometry parameter set; the geometry parameter set is encoded, and the obtained coded bits are written into the bitstream.
- the encoding end writes the geometry parameter set into the bitstream
- the first syntax element is a syntax element in the geometry parameter set (GPS). So that after the decoding end obtains the geometry parameter set by decoding the bitstream, it can obtain the value of the first syntax element from the GPS; then, according to the value of the first syntax element and the third value, determine the value of N.
- the first syntax element may also be a syntax element in the geometry block header information (Geometry Block Head, GBH).
- GBH Geometry Block Head
- the first threshold value and the second threshold value can be determined, and then the preset range that the corrected reconstructed value of the azimuth parameter needs to satisfy can be determined.
- the method may further include:
- a corrected reconstructed value of the azimuth parameter is determined according to the second threshold value.
- the first threshold value and the second threshold value are both integers. If the reconstructed value of the azimuth parameter is less than or equal to the first threshold value, then the corrected reconstructed value of the azimuth parameter can be set to the sum of the first threshold value and the fifth value; if the reconstructed value of the azimuth parameter is greater than the second threshold value, then the corrected reconstructed value of the azimuth parameter can be set to the second threshold value.
- the fifth value is also an integer, which can be set to 1 here, but is not specifically limited.
- the first threshold value can be The second threshold value can be The specific integer calculation method is the same as above. Then the first threshold value may also be -2 N-1 , and the second threshold value may also be 2 N-1 .
- performing correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter may include:
- the method may further include: when the reconstructed value of the azimuth parameter is greater than the first threshold value and less than or equal to the second threshold value, determining the reconstructed value of the azimuth parameter as the corrected reconstructed value of the azimuth parameter. That is, in the embodiment of the present application, if At this time
- the related art corrects it to near ⁇ , specifically:
- the related technology is to correct it to near - ⁇ , specifically:
- the technical solution is to correct it to near - ⁇ , specifically:
- this technical solution is to correct it to near ⁇ , specifically:
- an embodiment of the present application also provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following: an azimuth factor of a current point in a current point cloud, a value of a first syntax element, and a value of a second syntax element; wherein the azimuth factor includes a first factor and a second factor, and the first syntax element and the second syntax element are two syntax elements in a geometric parameter set.
- the first syntax element can be represented by geom_angular_azimuth_scale_log2
- the second syntax element can be represented by geom_angular_azimuth_speed_minus1.
- This embodiment provides a coding method, which determines the prediction residual of the azimuth parameter of the current point in the current point cloud; determines the reconstruction value of the azimuth parameter according to the prediction residual of the azimuth parameter; and performs correction processing on the reconstruction value of the azimuth parameter to determine the corrected reconstruction value of the azimuth parameter, wherein the corrected reconstruction value of the azimuth parameter satisfies a preset range.
- the corrected reconstruction value of the azimuth parameter can be made to meet the preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving the encoding and decoding efficiency, and further improving the encoding and decoding performance.
- the prediction residual of the azimuth in is the predicted value of the azimuth;
- the sampling interval of the azimuth angle is provided by geom_angular_azimuth_speed_minus1 in GPS; because is known, coded Can be converted to coded n and quantized That is Reconstructed values of azimuth parameters For dequantization
- a processing method for reconstructing the azimuth angle is proposed here.
- the encoding and decoding ends are the same.
- the azimuth The value range is (- ⁇ , ⁇ ].
- the encoder/decoder obtains the reconstructed value of the current point in cylindrical coordinates.
- the reconstructed value of the azimuth angle r rec is as follows:
- the sampling interval of the azimuth angle can be provided by geom_angular_azimuth_speed_minus1 in GPS;
- the specific implementation of the aforementioned embodiments is elaborated in detail through the above embodiments. It can be seen that according to the technical scheme of the aforementioned embodiments, by correcting the reconstructed value of the azimuth parameter, the corrected reconstructed value of the azimuth parameter can meet the preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving the encoding and decoding efficiency, and further improving the encoding and decoding performance.
- the encoder 100 may include a first determining unit 1001 and a first correcting unit 1002, wherein:
- the first determining unit 1001 is configured to determine a prediction residual of an azimuth parameter of a current point in a current point cloud; and determine a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter;
- the first correction unit 1002 is configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
- the corrected reconstructed value of the azimuth parameter satisfies a preset range, including: the corrected reconstructed value of the azimuth parameter is greater than a first threshold value and less than or equal to a second threshold value, wherein the first threshold value and the second threshold value are both integers.
- the first determination unit 1001 is further configured to perform an integer operation on the first numerical value to determine a first threshold value; perform an integer operation on the second numerical value to determine a second threshold value; wherein the first numerical value is the ratio of - ⁇ to the first precision, and the second numerical value is the ratio of ⁇ to the first precision.
- the first precision is related to a value of a first syntax element in the geometry parameter set.
- the preset range is Among them, round(.) represents the rounding function, represents the first precision, and N is an integer greater than or equal to 0.
- the preset range is (-2 N-1 ,2 N-1 ]; wherein N is an integer greater than or equal to 0.
- the encoder 100 may further include an encoding unit 1003, wherein:
- the first determining unit 1001 is further configured to determine a value of the first syntax element according to the value of N and the third value;
- the encoding unit 1003 is configured to perform encoding processing on the value of the first syntax element and write the obtained encoding bits into the bitstream.
- the encoding unit 1003 is further configured to write the value of the first syntax element into a geometric parameter set; perform encoding processing on the geometric parameter set, and write the obtained coded bits into a bitstream.
- the first determination unit 1001 is further configured to determine a predicted value of the azimuth parameter; and determine a prediction residual of the azimuth parameter based on the original value and the predicted value of the azimuth parameter.
- the encoding unit 1003 is further configured to perform encoding processing on the prediction residual of the azimuth parameter, and write the obtained encoding bits into the bitstream.
- the first determining unit 1001 is further configured to determine the azimuth factor of the current point according to the prediction residual of the azimuth parameter;
- the encoding unit 1003 is further configured to perform encoding processing on the azimuth factor and write the obtained encoding bits into the bit stream.
- the azimuth factor includes a first factor and a second factor; the first determination unit 1001 is further configured to determine a sampling interval of the azimuth parameter; determine the first factor based on the prediction residual and the sampling interval; determine a preset compensation value based on the prediction residual and the product of the first factor and the sampling interval; and quantize the preset compensation value to determine the second factor.
- the first determining unit 1001 is further configured to determine a value of the second syntax element according to the sampling interval of the azimuth parameter and the fourth value;
- the encoding unit 1003 is further configured to perform encoding processing on the value of the second syntax element and write the obtained encoding bits into the bitstream.
- the encoding unit 1003 is further configured to write the value of the second syntax element into a geometric parameter set; perform encoding processing on the geometric parameter set, and write the obtained encoding bits into the bitstream.
- the first determination unit 1001 is further configured to determine a predicted value of the azimuth parameter; and determine a reconstructed value of the azimuth parameter based on the predicted value and the prediction residual.
- the first correction unit 1002 is further configured to determine the corrected reconstruction value of the azimuth parameter based on the first threshold value and the fifth value when the reconstructed value of the azimuth parameter is less than or equal to the first threshold value; and to determine the corrected reconstruction value of the azimuth parameter based on the second threshold value when the reconstructed value of the azimuth parameter is greater than the second threshold value; wherein the first threshold value and the second threshold value are both integers.
- the first correction unit 1002 is further configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, including:
- the first correction unit 1002 is further configured to determine the reconstructed value of the azimuth parameter as the corrected reconstructed value of the azimuth parameter when the reconstructed value of the azimuth parameter is greater than the first threshold value and less than or equal to the second threshold value.
- a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course, it may be a module, or it may be non-modular.
- the components in the present embodiment may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above-mentioned integrated unit may be implemented in the form of hardware or in the form of a software functional module.
- the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium.
- the technical solution of this embodiment is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product.
- the computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server, or network device, etc.) or a processor to perform all or part of the steps of the method described in this embodiment.
- the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc., various media that can store program codes.
- an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 100.
- the computer-readable storage medium stores a computer program, and when the computer program is executed by the first processor, the method described in any one of the aforementioned embodiments is implemented.
- the encoder 100 may include: a first communication interface 1101, a first memory 1102 and a first processor 1103; each component is coupled together through a first bus system 1104. It can be understood that the first bus system 1104 is used to realize the connection communication between these components.
- the first bus system 1104 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as the first bus system 1104 in Figure 11. in:
- the first communication interface 1101 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
- a first memory 1102 used to store a computer program that can be run on the first processor 1103;
- the first processor 1103 is configured to, when running the computer program, execute:
- the reconstructed value of the azimuth parameter is corrected to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
- the first memory 1102 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.
- 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.
- RAM static RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDRSDRAM double data rate synchronous DRAM
- ESDRAM enhanced synchronous DRAM
- SLDRAM synchronous link DRAM
- DRRAM direct RAM bus RAM
- the first processor 1103 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the first processor 1103.
- the above-mentioned first processor 1103 can be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application-specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.
- DSP Digital Signal Processor
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- the methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed.
- the general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc.
- the steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to execute, or the hardware and software modules in the decoding processor can be executed.
- the software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc.
- the storage medium is located in the first memory 1102, and the first processor 1103 reads the information in the first memory 1102 and completes the steps of the above method in combination with its hardware.
- the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.
- ASIC Application Specific Integrated Circuits
- DSP Digital Signal Processing
- DSP Device digital signal processing devices
- PLD programmable logic devices
- FPGA field programmable gate array
- general processors controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.
- the technology described in this application can be implemented by a module (such as a process, function, etc.) that performs 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 outside the processor.
- the first processor 1103 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.
- the present embodiment provides an encoder in which the reconstructed value of the azimuth parameter is corrected so that the corrected reconstructed value of the azimuth parameter meets a preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving encoding and decoding efficiency, and further improving encoding and decoding performance.
- the decoder 120 may include a decoding unit 1201, a second determining unit 1202, and a second correcting unit 1203, wherein:
- a decoding unit 1201 is configured to decode a bit stream, an azimuth factor of a current point in a current point cloud;
- the second determining unit 1202 is configured to determine the prediction residual of the azimuth parameter of the current point according to the azimuth factor; and determine the reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter;
- the second correction unit 1203 is configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
- the corrected reconstructed value of the azimuth parameter satisfies a preset range, including: the corrected reconstructed value of the azimuth parameter is greater than a first threshold value and less than or equal to a second threshold value, wherein the first threshold value and the second threshold value are both integers.
- the second determination unit 1202 is further configured to perform an integer operation on the first numerical value to determine a first threshold value; perform an integer operation on the second numerical value to determine a second threshold value; wherein the first numerical value is the ratio of - ⁇ to the first precision, and the second numerical value is the ratio of ⁇ to the first precision.
- the first precision is related to a value of a first syntax element in the geometry parameter set.
- the preset range is Among them, round(.) represents the rounding function, represents the first precision, and N is an integer greater than or equal to 0.
- the preset range is (-2 N-1 ,2 N-1 ]; wherein N is an integer greater than or equal to 0.
- the second determining unit 1202 is further configured to determine a value of the first syntax element; and determine a value of N according to the value of the first syntax element and the third numerical value.
- the decoding unit 1201 is further configured to decode the bitstream and determine the geometry parameter set
- the second determination unit 1202 is further configured to determine a value of the first syntax element from the geometry parameter set.
- the azimuth factor includes a first factor and a second factor; the second determination unit 1202 is further configured to determine a sampling interval of the azimuth parameter; determine a first residual value of the azimuth parameter based on the first factor and the sampling interval; perform inverse quantization on the second factor to determine a second residual value of the azimuth parameter; determine a predicted residual of the azimuth parameter based on the first residual value and the second residual value of the azimuth parameter.
- the second determining unit 1202 is further configured to determine a value of a second syntax element; and determine a sampling interval of the azimuth parameter according to the value of the second syntax element and a fourth numerical value.
- the decoding unit 1201 is further configured to decode the bitstream and determine the geometry parameter set
- the second determination unit 1202 is further configured to determine a value of a second syntax element from a geometric parameter set.
- the second determination unit 1202 is further configured to determine a predicted value of the azimuth parameter; and determine a reconstructed value of the azimuth parameter based on the predicted value and the prediction residual.
- the second correction unit 1203 is further configured to determine the corrected reconstruction value of the azimuth parameter based on the first threshold value and the fifth value when the reconstructed value of the azimuth parameter is less than or equal to the first threshold value; and to determine the corrected reconstruction value of the azimuth parameter based on the second threshold value when the reconstructed value of the azimuth parameter is greater than the second threshold value; wherein the first threshold value and the second threshold value are both integers.
- the second correction unit 1203 is further configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, including:
- the second correction unit 1203 is further configured to determine the reconstructed value of the azimuth parameter as the corrected reconstructed value of the azimuth parameter when the reconstructed value of the azimuth parameter is greater than the first threshold value and less than or equal to the second threshold value.
- a "unit" can be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course it can also be a module, or it can be non-modular.
- the components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
- the above-mentioned integrated unit can be implemented in the form of hardware or in the form of a software functional module.
- the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium.
- this embodiment provides a computer-readable storage medium, which is applied to the decoder 120, and the computer-readable storage medium stores a computer program. When the computer program is executed by the second processor, the method described in any one of the above embodiments is implemented.
- the decoder 120 may include: a second communication interface 1301, a second memory 1302 and a second processor 1303; each component is coupled together through a second bus system 1304.
- the second bus system 1304 is used to realize the connection and communication between these components.
- the second bus system 1304 also includes a power bus, a control bus and a status signal bus.
- various buses are marked as the second bus system 1304 in Figure 13. Among them,
- the second communication interface 1301 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
- the second memory 1302 is used to store a computer program that can be run on the second processor 1303;
- the second processor 1303 is configured to, when running the computer program, execute:
- the prediction residual of the azimuth parameter of the current point is determined
- the second processor 1303 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.
- the present embodiment provides a decoder in which the reconstructed value of the azimuth parameter is corrected so that the corrected reconstructed value of the azimuth parameter meets a preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving encoding and decoding efficiency, and further improving encoding and decoding performance.
- the coding and decoding system 140 may include an encoder 1401 and a decoder 1402 .
- the encoder 1401 may be the encoder described in any one of the aforementioned embodiments
- the decoder 1402 may be the decoder described in any one of the aforementioned embodiments.
- the reconstructed value of the azimuth parameter is determined according to the prediction residual of the azimuth parameter; the reconstructed value of the azimuth parameter is corrected to determine the corrected reconstructed value of the azimuth parameter.
- the decoded code stream is determined to determine the azimuth factor of the current point in the current point cloud; the prediction residual of the azimuth parameter of the current point is determined according to the azimuth factor.
- the corrected reconstructed value of the azimuth parameter can meet the preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving the encoding and decoding efficiency, and further improving the encoding and decoding performance.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本申请实施例涉及视频编解码技术领域,尤其涉及一种编解码方法、码流、编码器、解码器以及存储介质。The embodiments of the present application relate to the field of video coding and decoding technology, and in particular, to a coding and decoding method, a bit stream, an encoder, a decoder, and a storage medium.
随着硬件处理能力的提升和计算机视觉的飞速发展,三维点云成为继音频、图像和视频之后的新一代沉浸式多媒体,被广泛的应用于虚拟现实、增强现实、自动驾驶和环境建模等应用中。然而点云通常具有较大的数据量,十分不利于其传输及存储,因此需要对点云进行高效的编解码。With the improvement of hardware processing power and the rapid development of computer vision, 3D point cloud has become a new generation of immersive multimedia after audio, image and video, and is widely used in applications such as virtual reality, augmented reality, autonomous driving and environmental modeling. However, point cloud usually has a large amount of data, which is not conducive to its transmission and storage, so it is necessary to efficiently encode and decode the point cloud.
在基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC)编解码框架中,对于方位角的几何预测编码方案来说,方位角的量化可能会导致某些范围内的重建方位角发生边界溢出情况,降低了编解码性能。In the geometry-based Point Cloud Compression (G-PCC) coding and decoding framework, for the geometric prediction coding scheme of azimuth angle, the quantization of azimuth angle may cause boundary overflow of the reconstructed azimuth angle in certain ranges, thus reducing the coding and decoding performance.
发明内容Summary of the invention
本申请实施例提供一种编解码方法、码流、编码器、解码器以及存储介质,可以提高方位角重建的准确度,提升编解码效率,进而提升编解码性能。The embodiments of the present application provide a coding and decoding method, a bit stream, an encoder, a decoder and a storage medium, which can improve the accuracy of azimuth reconstruction, improve coding and decoding efficiency, and thus improve coding and decoding performance.
本申请实施例的技术方案可以如下实现:The technical solution of the embodiment of the present application can be implemented as follows:
第一方面,本申请实施例提供了一种解码方法,应用于解码器,该方法包括:In a first aspect, an embodiment of the present application provides a decoding method, which is applied to a decoder, and the method includes:
解码码流,确定当前点云中当前点的方位角因子;Decode the code stream and determine the azimuth factor of the current point in the current point cloud;
根据方位角因子,确定当前点的方位角参数的预测残差;According to the azimuth factor, the prediction residual of the azimuth parameter of the current point is determined;
根据方位角参数的预测残差,确定方位角参数的重建值;以及对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。Determine a reconstructed value of the azimuth parameter according to a prediction residual of the azimuth parameter; and perform correction processing on the reconstructed value of the azimuth parameter to determine a corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
第二方面,本申请实施例提供了一种编码方法,应用于编码器,该方法包括:In a second aspect, an embodiment of the present application provides an encoding method, which is applied to an encoder, and the method includes:
确定当前点云中当前点的方位角参数的预测残差;Determine the prediction residual of the azimuth parameter of the current point in the current point cloud;
根据方位角参数的预测残差,确定方位角参数的重建值;Determine the reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter;
对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。The reconstructed value of the azimuth parameter is corrected to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
第三方面,本申请实施例提供了一种码流,该码流是根据待编码信息进行比特编码生成的;其中,待编码信息包括下述至少一项:In a third aspect, an embodiment of the present application provides a code stream, which is generated by bit encoding according to information to be encoded; wherein the information to be encoded includes at least one of the following:
当前点云中当前点的方位角因子、第一语法元素的取值和第二语法元素的取值;其中,方位角因子包括第一因子和第二因子,第一语法元素和第二语法元素属于几何参数集中的两个语法元素。The azimuth factor of the current point in the current point cloud, the value of the first syntax element and the value of the second syntax element; wherein the azimuth factor includes the first factor and the second factor, and the first syntax element and the second syntax element are two syntax elements in a geometric parameter set.
第四方面,本申请实施例提供了一种编码器,该编码器包括第一确定单元和第一修正单元,其中:In a fourth aspect, an embodiment of the present application provides an encoder, the encoder comprising a first determining unit and a first correcting unit, wherein:
第一确定单元,配置为确定当前点云中当前点的方位角参数的预测残差;以及根据方位角参数的预测残差,确定方位角参数的重建值;A first determination unit is configured to determine a prediction residual of an azimuth parameter of a current point in a current point cloud; and determine a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter;
第一修正单元,配置为对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。The first correction unit is configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
第五方面,本申请实施例提供了一种编码器,该编码器包括第一存储器和第一处理器,其中:In a fifth aspect, an embodiment of the present application provides an encoder, the encoder comprising a first memory and a first processor, wherein:
第一存储器,用于存储能够在第一处理器上运行的计算机程序;A first memory, for storing a computer program that can be run on the first processor;
第一处理器,用于在运行计算机程序时,执行如第二方面所述的方法。The first processor is used to execute the method described in the second aspect when running a computer program.
第六方面,本申请实施例提供了一种解码器,该解码器包括解码单元、第二确定单元和第二修正单元,其中:In a sixth aspect, an embodiment of the present application provides a decoder, the decoder comprising a decoding unit, a second determining unit, and a second correcting unit, wherein:
解码单元,配置为解码码流,当前点云中当前点的方位角因子;A decoding unit, configured to decode a bit stream, an azimuth factor of a current point in a current point cloud;
第二确定单元,配置为根据方位角因子,确定当前点的方位角参数的预测残差;根据方位角参数的预测残差,确定方位角参数的重建值;A second determination unit is configured to determine a prediction residual of an azimuth parameter of a current point according to the azimuth factor; and determine a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter;
第二修正单元,配置为对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。 The second correction unit is configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
第七方面,本申请实施例提供了一种解码器,该解码器包括第二存储器和第二处理器,其中:In a seventh aspect, an embodiment of the present application provides a decoder, the decoder comprising a second memory and a second processor, wherein:
第二存储器,用于存储能够在第二处理器上运行的计算机程序;A second memory for storing a computer program that can be run on a second processor;
第二处理器,用于在运行计算机程序时,执行如第一方面所述的方法。The second processor is used to execute the method described in the first aspect when running a computer program.
第八方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如第一方面所述的方法、或者实现如第二方面所述的方法。In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed, it implements the method as described in the first aspect, or implements the method as described in the second aspect.
本申请实施例提供了一种编解码方法、码流、编码器、解码器以及存储介质,无论是在编码端还是解码端,在确定当前点云中当前点的方位角参数的预测残差之后,根据方位角参数的预测残差,确定方位角参数的重建值;对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值。其中,在解码端,具体是解码码流,确定当前点云中当前点的方位角因子;根据方位角因子来确定当前点的方位角参数的预测残差。这样,通过对方位角参数的重建值进行修正处理,可以使得方位角参数的修正重建值满足预设范围,从而不仅能够避免方位角参数的边界溢出情况,使其限定在一个预设范围内,同时还能够提高方位角重建的准确度,提升编解码效率,进而还能够提升编解码性能。The embodiment of the present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium. No matter at the coding end or the decoding end, after determining the prediction residual of the azimuth parameter of the current point in the current point cloud, the reconstruction value of the azimuth parameter is determined according to the prediction residual of the azimuth parameter; the reconstruction value of the azimuth parameter is corrected to determine the corrected reconstruction value of the azimuth parameter. Among them, at the decoding end, specifically the decoding code stream is determined, the azimuth factor of the current point in the current point cloud is determined; the prediction residual of the azimuth parameter of the current point is determined according to the azimuth factor. In this way, by correcting the reconstruction value of the azimuth parameter, the corrected reconstruction value of the azimuth parameter can meet the preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving coding and decoding efficiency, and further improving coding and decoding performance.
图1为一种点云编解码的网络架构示意图;FIG1 is a schematic diagram of a network architecture for point cloud encoding and decoding;
图2为一种G-PCC编码器的组成框架示意图;FIG. 2 is a schematic diagram of a composition framework of a G-PCC encoder;
图3为一种G-PCC解码器的组成框架示意图;FIG3 is a schematic diagram of a composition framework of a G-PCC decoder;
图4为一种几何编码的流程框图示意图;FIG4 is a schematic diagram of a flow chart of geometric coding;
图5为一种几何解码的流程框图示意图;FIG5 is a schematic diagram of a flow chart of geometric decoding;
图6为一种几何信息的排列方式示意图;FIG6 is a schematic diagram of an arrangement of geometric information;
图7为本申请实施例提供的一种解码方法的流程示意图一;FIG7 is a flowchart diagram 1 of a decoding method provided in an embodiment of the present application;
图8为本申请实施例提供的一种解码方法的流程示意图二;FIG8 is a second flow chart of a decoding method provided in an embodiment of the present application;
图9为本申请实施例提供的一种编码方法的流程示意图;FIG9 is a schematic diagram of a flow chart of an encoding method provided in an embodiment of the present application;
图10为本申请实施例提供的一种编码器的组成结构示意图;FIG10 is a schematic diagram of the structure of an encoder provided in an embodiment of the present application;
图11为本申请实施例提供的一种编码器的具体硬件结构示意图;FIG11 is a schematic diagram of a specific hardware structure of an encoder provided in an embodiment of the present application;
图12为本申请实施例提供的一种解码器的组成结构示意图;FIG12 is a schematic diagram of the structure of a decoder provided in an embodiment of the present application;
图13为本申请实施例提供的一种解码器的具体硬件结构示意图;FIG13 is a schematic diagram of a specific hardware structure of a decoder provided in an embodiment of the present application;
图14为本申请实施例提供的一种编解码系统的组成结构示意图。FIG. 14 is a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application.
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below in conjunction with the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application and are not intended to limit this application.
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。In the following description, reference is made to “some embodiments”, which describe 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.
还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged in 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.
对本申请实施例进行进一步详细说明之前,先对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释:Before further describing the embodiments of the present application in detail, the nouns and terms involved in the embodiments of the present application are described first. The nouns and terms involved in the embodiments of the present application are subject to the following interpretations:
点云压缩(Point Cloud Compression,PCC);Point Cloud Compression (PCC);
基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC或GPCC);Geometry-based Point Cloud Compression (G-PCC or GPCC);
基于视频的点云压缩(Video-based Point Cloud Compression,V-PCC或VPCC);Video-based Point Cloud Compression (V-PCC or VPCC);
八叉树(Octree);Octree;
红绿蓝(Red-Green-Blue,RGB);Red-Green-Blue (RGB);
亮度色度(Luminance-Chrominance,YUV);Luminance-Chrominance (YUV);
细节层次(Level of Detail,LOD);Level of Detail (LOD);
几何参数集(Geometry Parameter Set,GPS);Geometry Parameter Set (GPS);
几何头信息(Geometry Block Head,GBH); Geometry Block Head (GBH);
区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT)。Region Adaptive Hierarchal Transform (RAHT).
可以理解,点云(Point Cloud)是物体表面的三维表现形式,通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云(数据)。It can be understood that point cloud is a three-dimensional representation of the surface of an object. Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
其中,点云是指海量三维点的集合,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息和/或反射率等等。例如,颜色信息可以是任意一种色彩空间上的信息。例如,颜色信息可以是RGB信息。其中,R表示红色(Red,R),G表示绿色(Green,G),B表示蓝色(Blue,B)。再如,颜色信息可以是亮度色度(YCbCr,YUV)信息。其中,Y表示明亮度,Cb(U)表示蓝色色度,Cr(V)表示红色色度。Among them, the point cloud refers to a collection of massive three-dimensional points, and the points in the point cloud can include the location information of the points and the attribute information of the points. For example, the location information of the point can be the three-dimensional coordinate information of the point. The location information of the point can also be called the geometric information of the point. For example, the attribute information of the point may include color information and/or reflectivity, etc. For example, the color information can be information on any color space. For example, the color information can be RGB information. Among them, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, the color information can be brightness and chromaticity (YCbCr, YUV) information. Among them, Y represents brightness, Cb (U) represents blue chromaticity, and Cr (V) represents red chromaticity.
根据激光测量原理得到的点云,点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。这里,点云可以按获取的途径分为:According to the point cloud obtained by the laser measurement principle, the points in the point cloud may include the three-dimensional coordinate information of the points and the laser reflection intensity (reflectance) of the points. For another example, according to the point cloud obtained by the photogrammetry principle, the points in the point cloud may include the three-dimensional coordinate information of the points and the color information of the points. For another example, by combining the laser measurement and photogrammetry principles to obtain the point cloud, the points in the point cloud may include the three-dimensional coordinate information of the points, the laser reflection intensity (reflectance) of the points, and the color information of the points. Here, the point cloud can be divided into the following according to the acquisition method:
第一类静态点云:即物体是静止的,获取点云的设备也是静止的;The first type of static point cloud: the object is stationary, and the device that obtains the point cloud is also stationary;
第二类动态点云:物体是运动的,但获取点云的设备是静止的;The second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is stationary;
第三类动态获取点云:获取点云的设备是运动的。The third type of dynamic point cloud acquisition: the device that acquires the point cloud is moving.
例如,按点云的用途分为两大类:For example, point clouds can be divided into two categories according to their usage:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;Category 1: Machine perception point cloud, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, disaster relief robots, etc.
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。Category 2: Point cloud perceived by the human eye, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
由于点云是海量点的集合,存储点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此,需要对点云进行压缩。Since point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of point clouds at the network layer without compression. Therefore, point clouds need to be compressed.
简单来说,随着硬件处理能力的提升和计算机视觉的飞速发展,三维点云成为继音频、图像和视频之后的新一代沉浸式多媒体,被广泛的应用于虚拟现实、增强现实、自动驾驶和环境建模等应用中。然而点云通常具有较大的数据量,十分不利于其传输及存储,因此需要对点云进行高效的编解码。In short, with the improvement of hardware processing power and the rapid development of computer vision, 3D point cloud has become a new generation of immersive multimedia after audio, image and video, and is widely used in applications such as virtual reality, augmented reality, autonomous driving and environmental modeling. However, point cloud usually has a large amount of data, which is not conducive to its transmission and storage, so it is necessary to efficiently encode and decode the point cloud.
截止目前,可对点云进行压缩的点云编码框架可以是运动图像专家组(Moving Picture Experts Group,MPEG)提供的G-PCC编解码框架或V-PCC编解码框架,也可以是音视频编码标准(Audio Video Standard,AVS)提供的AVS-PCC编解码框架。其中,G-PCC编解码框架可用于针对第一类静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。在本申请的实施例中,这里主要是针对G-PCC编解码框架进行描述。Up to now, the point cloud coding framework that can compress the point cloud can be the G-PCC codec framework or the V-PCC codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS). Among them, the G-PCC codec framework can be used to compress the first type of static point cloud and the third type of dynamically acquired point cloud, and the V-PCC codec framework can be used to compress the second type of dynamic point cloud. In the embodiments of the present application, the G-PCC codec framework is mainly described here.
本申请实施例提供了一种包含解码方法和编码方法的点云编解码系统的网络架构,如图1所示,该网络架构包括一个或多个电子设备13至1N和通信网络01,其中,电子设备13至1N可以通过通信网络01进行视频交互。电子设备在实施的过程中可以为各种类型的具有点云编解码功能的设备,例如,所述电子设备可以包括手机、平板电脑、个人计算机、个人数字助理、导航仪、数字电话、视频电话、电视机、传感设备、服务器等,对此不作限定。The embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method, as shown in FIG1 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions, for example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., without limitation.
在本申请实施例中,这里的电子设备具有点云编解码功能,一般可以包括点云编码器(即编码器)和点云解码器(即解码器)。In the embodiment of the present application, the electronic device here has a point cloud encoding and decoding function, and generally can include a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
下面以G-PCC编解码框架为例进行相关技术的说明。The following uses the G-PCC codec framework as an example to illustrate the relevant technology.
可以理解,在点云G-PCC编解码框架中,针对待编码的点云数据,首先通过片(slice)划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的。It can be understood that in the point cloud G-PCC encoding and decoding framework, for the point cloud data to be encoded, the point cloud data is first divided into multiple slices by slice division. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately.
图2示出了一种G-PCC编码器的组成框架示意图。如图2所示,在几何编码过程中,对几何信息进行坐标转换,使点云全都包含在一个包围盒(Bounding Box)中,然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点云的几何信息相同,于是再基于参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。接着对包围盒进行八叉树划分或者预测树构建。在该过程中,针对划分的叶子结点中的点进行算术编码,生成二进制的几何比特流;或者,针对划分产生的交点(Vertex)进行算术编码(基于交点进行表面拟合),生成二进制的几何比特流。在属性编码过程中,几何编码完成,对几何信息进行重建后,需要先进行颜色转换,将颜色信息(即属性信息)从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。属性编码主要针对颜色信息进行,在颜色信息编码过程中,主要有两种变换方法,一是依赖于LOD划分的基于距离的提升变换,二是直接进行RAHT变换,这两种方法都 会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化,再对量化系数进行算术编码,可以生成二进制的属性比特流。FIG2 shows a schematic diagram of the composition framework of a G-PCC encoder. As shown in FIG2, in the geometric encoding process, the geometric information is transformed so that all point clouds are contained in a bounding box, and then quantized. This step of quantization mainly plays a role in scaling. Due to the quantization rounding, the geometric information of a part of the point cloud is the same, so whether to remove duplicate points is determined based on parameters. The process of quantization and removal of duplicate points is also called voxelization. Then, the bounding box is divided into octrees or a prediction tree is constructed. In this process, arithmetic coding is performed on the points in the leaf nodes of the division to generate a binary geometric bit stream; or, arithmetic coding is performed on the intersection points (Vertex) generated by the division (surface fitting is performed based on the intersection points) to generate a binary geometric bit stream. In the attribute encoding process, after the geometric encoding is completed and the geometric information is reconstructed, color conversion is required first to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the uncoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is mainly performed on color information. In the process of color information encoding, there are two main transformation methods: one is distance-based lifting transformation based on LOD division, and the other is direct RAHT transformation. Both methods are The color information is converted from the spatial domain to the frequency domain, and high-frequency coefficients and low-frequency coefficients are obtained through transformation. Finally, the coefficients are quantized and arithmetic coding is performed on the quantized coefficients to generate a binary attribute bit stream.
图3示出了一种G-PCC解码器的组成框架示意图。如图3所示,针对所获取的二进制比特流,首先对二进制比特流中的几何比特流和属性比特流分别进行独立解码。在对几何比特流的解码时,通过算术解码-重构八叉树/重构预测树-重建几何-坐标逆转换,得到点云的几何信息;在对属性比特流的解码时,通过算术解码-反量化-LOD划分/RAHT-颜色逆转换,得到点云的属性信息,基于几何信息和属性信息还原待编码的点云数据(即输出点云)。FIG3 shows a schematic diagram of the composition framework of a G-PCC decoder. As shown in FIG3, for the acquired binary bit stream, the geometric bit stream and the attribute bit stream in the binary bit stream are first decoded independently. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-reconstruction of the octree/reconstruction of the prediction tree-reconstruction of the geometry-coordinate inverse conversion; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD partitioning/RAHT-color inverse conversion, and the point cloud data to be encoded (i.e., the output point cloud) is restored based on the geometric information and attribute information.
为了便于对本申请实施例所提供的技术方案的理解,这里还提供一种G-PCC几何编码的流程框图和G-PCC几何解码的流程框图。需要说明的是,这里描述的G-PCC几何编码的流程框图和G-PCC几何解码的流程框图仅是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。本领域技术人员可知,随着点云压缩技术的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似G-PCC的点云编解码架构同样适用,这里不作具体限定。In order to facilitate the understanding of the technical solution provided by the embodiment of the present application, a flow chart of G-PCC geometric encoding and a flow chart of G-PCC geometric decoding are also provided here. It should be noted that the flow chart of G-PCC geometric encoding and the flow chart of G-PCC geometric decoding described here are only for more clearly illustrating the technical solution of the embodiment of the present application, and do not constitute a limitation on the technical solution provided by the embodiment of the present application. Those skilled in the art will know that with the evolution of point cloud compression technology and the emergence of new business scenarios, the technical solution provided by the embodiment of the present application is also applicable to point cloud encoding and decoding architectures similar to G-PCC, and no specific limitation is made here.
图4为一种G-PCC几何编码的流程框图示意图。如图4所示,该框图应用于编码器。针对待编码的点云数据,先通过slice划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和属性信息是分开进行编码的。在几何编码过程中,对几何信息进行坐标转换,使点云全都包含在一个由两个极值点(0,0,0)和(2d,2d,2d)决定的包围盒(bounding box)中。然后再进行体素化,即:量化、取整、移除重复点等操作,其中,量化主要起到缩放的作用,由于量化取整,使得一部分点云的几何信息相同;另外是否移除重复点是根据编码器参数来决定的。接下来,可以进行八叉树划分和表面拟合处理,或者也可以进行预测树的构建和预测编码,然后通过算术编码生成二进制的几何比特流,即几何码流。目前G-PCC的几何编码可分为基于八叉树的几何编码和基于预测树的几何编码。FIG4 is a schematic diagram of a flow chart of G-PCC geometric coding. As shown in FIG4, the block diagram is applied to the encoder. For the point cloud data to be encoded, the point cloud data is first divided into multiple slices by slice division. In each slice, the geometric information and attribute information of the point cloud are encoded separately. In the geometric encoding process, the geometric information is transformed so that all the point clouds are contained in a bounding box determined by two extreme points (0, 0, 0) and (2d, 2d, 2d). Then voxelization is performed, that is, quantization, rounding, removal of duplicate points and other operations. Among them, quantization mainly plays a role in scaling. Due to quantization rounding, the geometric information of a part of the point cloud is the same; in addition, whether to remove duplicate points is determined according to the encoder parameters. Next, octree partitioning and surface fitting processing can be performed, or prediction tree construction and prediction coding can be performed, and then a binary geometric bit stream, that is, a geometric code stream, is generated by arithmetic coding. Currently, the geometric coding of G-PCC can be divided into octree-based geometric coding and prediction tree-based geometric coding.
在基于预测树的几何编码中,首先对输入的几何信息进行排序。常见的排序方法有无序、莫顿序、方位角序和径向距离序等,目前G-PCC的标准测试条件默认的排序方式是基于方位角进行排序,也即依次根据方位角、径向距离和俯仰角正切值对各点进行排序。首先根据输入点云的笛卡尔坐标(x,y,z)计算其柱面坐标其中r是点的径向距离,也可称之为半径;是点的方位角;θ是点所属的激光束的俯仰角。然后按照r,tanθ的顺序进行排序。首先比较的大小,如果相同,则比较r,如果r相同,则比较tanθ。最终完成整个点云的重新排序。根据是否开启角度模式,预测树几何编码可以分为基于方位角的几何预测编码方案和基于KD-tree的几何预测编码方案。In the prediction tree-based geometric coding, the input geometric information is first sorted. Common sorting methods include unordered, Morton order, azimuth order, and radial distance order. The default sorting method of the current G-PCC standard test condition is based on azimuth, that is, the points are sorted according to the azimuth, radial distance, and pitch angle tangent value. First, the cylindrical coordinates of the input point cloud are calculated based on the Cartesian coordinates (x, y, z) Where r is the radial distance of the point, which can also be called the radius; is the azimuth angle of the point; θ is the elevation angle of the laser beam to which the point belongs. Then according to Sort by r, tanθ. First compare If the size If they are the same, then compare r. If r is the same, then compare tanθ. Finally, the entire point cloud is reordered. Depending on whether the angle mode is turned on, the prediction tree geometry coding can be divided into an azimuth-based geometry prediction coding scheme and a KD-tree-based geometry prediction coding scheme.
在基于方位角的几何预测编码方案中,在构建预测树时,编码器会先将输入点云从笛卡尔坐标(x,y,z)转换到柱面坐标然后将输入点云中的每个点依照其俯仰角划分到不同的激光束上,此时可以转换为其中i表示激光束的索引。由于在对输入的几何信息进行排序时,默认采用基于方位角的排序方式,因此整个点云的几何信息是按照方位角从小到大的顺序排列的。对于第i束激光,其被访问到的第一个点是属于该束激光的所有点中方位角最小的点。且第i束后续被访问到的点的父节点均是同一束激光中比自身方位角小的第一个点。第i束激光的第一个点的父节点为第i-1束激光的第一个点。对于第0束激光的第一个点,由于其没有父节点,因此作为整棵树的根节点。In the azimuth-based geometric prediction coding scheme, when building the prediction tree, the encoder first converts the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates Then each point in the input point cloud is divided into different laser beams according to its pitch angle. Can be converted to Where i represents the index of the laser beam. Since the azimuth-based sorting method is used by default when sorting the input geometric information, the geometric information of the entire point cloud is arranged in ascending order of azimuth. For the i-th laser beam, the first point visited is the point with the smallest azimuth among all the points belonging to the laser beam. And the parent node of the points subsequently visited by the i-th beam is the first point in the same laser beam with a smaller azimuth than itself. The parent node of the first point of the i-th laser beam is the first point of the i-1-th laser beam. For the first point of the 0th laser beam, since it has no parent node, it serves as the root node of the entire tree.
接下来按照深度优先的顺序对预测树中的每个节点进行预测编码。对于待编码点,首先根据帧内预测算法或帧间预测算法确定几何信息的预测值。其中在帧内预测中,采用预测列表对待编码点进行预测。而对于帧间预测,则在前一已编码帧中寻找预测点对待编码点进行预测。然后通过率失真优化选取码率最小的预测值作为待编(解)码点的预测值。接着利用节点几何信息的真实值与预测值做差得到预测残差,并利用量化参数对预测残差进行量化。最后对量化参数、选取的预测值索引、预测残差等信息进行编码,生成二进制码流。Next, predictive coding is performed on each node in the prediction tree in a depth-first order. For the point to be coded, the predicted value of the geometric information is first determined according to the intra-frame prediction algorithm or the inter-frame prediction algorithm. In intra-frame prediction, a prediction list is used to predict the point to be coded. For inter-frame prediction, the prediction point is found in the previous coded frame to predict the point to be coded. Then, the prediction value with the minimum bit rate is selected as the prediction value of the code point to be coded (decoded) through rate-distortion optimization. Then, the prediction residual is obtained by subtracting the actual value of the node geometry information from the predicted value, and the prediction residual is quantized using the quantization parameter. Finally, the quantization parameter, the selected prediction value index, the prediction residual and other information are encoded to generate a binary code stream.
相应地,图5为一种G-PCC几何解码的流程框图示意图。如图5所示,该框图应用于解码器。解码是编码的反过程,解码器获取二进制码流,针对二进制码流中的几何比特流(即几何码流)进行算术解码。接下来,可以进行重构八叉树和重构表面估计,或者也可以进行基于预测树的预测解码,然后通过重建几何以及坐标反变换处理,最终可以恢复点云的几何信息。Accordingly, FIG5 is a schematic diagram of a flow chart of G-PCC geometric decoding. As shown in FIG5, the block diagram is applied to the decoder. Decoding is the reverse process of encoding. The decoder obtains a binary code stream and performs arithmetic decoding on the geometric bit stream (i.e., the geometric code stream) in the binary code stream. Next, the octree can be reconstructed and the surface can be estimated, or prediction decoding based on the prediction tree can be performed, and then the geometric information of the point cloud can be restored by reconstructing the geometry and inverse coordinate transformation.
需要说明的是,在基于预测树的几何解码中,对于待解码点,首先解码得到每个节点对应的量化系数以及预测索引,根据预测索引唯一确定对应的预测值;然后解码几何信息的预测残差,并对其进行反量化;接着根据预测值和预测残差恢复得到待解码点的几何重构信息;然后对得到的重建几何信息进行坐标反变换,得到最终的重建几何信息。基于每个节点的重建几何信息,能够重建恢复原来的点云数据。It should be noted that in the prediction tree-based geometric decoding, for the point to be decoded, the quantization coefficient and prediction index corresponding to each node are first decoded, and the corresponding prediction value is uniquely determined according to the prediction index; then the prediction residual of the geometric information is decoded and dequantized; then the geometric reconstruction information of the point to be decoded is restored according to the prediction value and the prediction residual; then the coordinates of the obtained reconstructed geometric information are inversely transformed to obtain the final reconstructed geometric information. Based on the reconstructed geometric information of each node, the original point cloud data can be reconstructed and restored.
还需要说明的是,在基于方位角构建预测树时,首先对原始点云进行重排序以更高效地构建预测树,可用的排序方法有无序、莫顿序、方位角序和径向距离序,目前,默认的排序方法是按方位角排序,即依次根据方位角、径向距离和俯仰角正切值对各点进行排序。It should also be noted that when building a prediction tree based on azimuth, the original point cloud is first reordered to build the prediction tree more efficiently. The available sorting methods are unordered, Morton order, azimuth order, and radial distance order. Currently, the default sorting method is sorting by azimuth, that is, sorting each point according to azimuth, radial distance, and tangent value of the pitch angle in turn.
然后,建立预测树结构。编码器会先将输入点云从笛卡尔坐标(x,y,z)转换到柱面坐标 然后将输入点云中的每个点依照其俯仰角划分到不同的激光束上,此时可以转换为其中i表示激光束的索引。由于在对输入的几何信息进行排序时,默认采用基于方位角的排序方式,因此整个点云的几何信息是按照方位角从小到大的顺序排列的。Then, the prediction tree structure is established. The encoder first converts the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates Then each point in the input point cloud is divided into different laser beams according to its pitch angle. Can be converted to Where i represents the index of the laser beam. Since the default sorting method based on azimuth is used when sorting the input geometric information, the geometric information of the entire point cloud is arranged in ascending order of azimuth.
示例性地,图6为一种几何信息的排列方式示意图。如图6所示,对于第i束激光,其被访问到的第一个点是属于该束激光的所有点中方位角最小的点。且第i束后续被访问到的点的父节点均是同一束激光中比自身方位角小的第一个点。第i束激光的第一个点的父节点为第i-1束激光的第一个点。对于第0束激光的第一个点,由于其没有父节点,因此作为整棵树的根节点。Exemplarily, FIG6 is a schematic diagram of an arrangement of geometric information. As shown in FIG6, for the i-th laser beam, the first point visited is the point with the smallest azimuth angle among all the points belonging to the laser beam. And the parent nodes of the points subsequently visited by the i-th beam are all the first points in the same laser beam with a smaller azimuth angle than itself. The parent node of the first point of the i-th laser beam is the first point of the i-1-th laser beam. For the first point of the 0-th laser beam, since it has no parent node, it serves as the root node of the entire tree.
接下来,首先从根节点开始遍历预测树中的每个节点,通过选取不同的预测值对节点的几何信息进行预测,得到相应的预测残差并进行量化。最后对量化参数、选取的预测值索引、预测残差等信息进行编码,生成二进制码流。Next, we first traverse each node in the prediction tree starting from the root node, predict the geometric information of the node by selecting different prediction values, obtain the corresponding prediction residual and quantize it. Finally, we encode the quantization parameter, the selected prediction value index, the prediction residual and other information to generate a binary code stream.
可以理解的是,本申请实施例的编码方法主要应用于如图4所示的G-PCC的几何信息编码流程中的预测编码和算术编码过程;本申请实施例的解码方法主要应用于如图5所示的G-PCC的几何信息解码流程的算术解码和预测解码过程。也就是说,本申请实施例既可以应用于编码器,也可以应用于解码器,甚至还可以同时应用于编码器和解码器,但是对此不作具体限定。It can be understood that the encoding method of the embodiment of the present application is mainly applied to the predictive encoding and arithmetic encoding processes in the geometric information encoding process of G-PCC as shown in Figure 4; the decoding method of the embodiment of the present application is mainly applied to the arithmetic decoding and predictive decoding processes of the geometric information decoding process of G-PCC as shown in Figure 5. In other words, the embodiment of the present application can be applied to both the encoder and the decoder, and can even be applied to both the encoder and the decoder at the same time, but this is not specifically limited.
还需要说明的是,对于相关技术中的方位角量化,基于预测树的几何编解码过程中,方位角的均匀量化使得由其带来的笛卡尔空间的最大误差依赖于当前点的半径,影响压缩效率。因此,考虑到点和LiDAR头之间的距离,利用点的半径的重建值(rrec)提出了一种非均匀自适应的方位角量化方法,其量化步长为其中,为弧长。方位角域的不均匀量化能够提供圆弧的均匀量化,使得方位角量化带来的笛卡尔坐标的最大重构残差更加均匀。It should also be noted that, for the azimuth quantization in the related art, in the geometric encoding and decoding process based on the prediction tree, the azimuth The uniform quantization of makes the maximum error in the Cartesian space depend on the radius of the current point, which affects the compression efficiency. Therefore, considering the distance between the point and the LiDAR head, a non-uniform adaptive azimuth quantization method is proposed using the reconstructed value of the radius of the point (rrec), and its quantization step size is in, The non-uniform quantization in the azimuth domain can provide uniform quantization of the arc, making the maximum reconstruction residual of the Cartesian coordinates brought by the azimuth quantization more uniform.
在编解码过程中,方位角的预测残差其中, 对于来说,的量化会导致原始方位角在和的输入点的重建方位角有可能超出(-π,π]。为了处理这种边界溢出情况,相关技术是在得到当前点在柱面坐标系下的重建值之后,对方位角的重建值来说,可以进行一个条件判断,即由于非常小,例如G-PCC标准旋转激光雷达数据集中的Ford序列的是0.09°,边界溢出情况只会在输入点的方位角非常接近或者等于-π/π时出现。因此上述对于溢出情况的处理是不合理的,降低了方位角重建的准确度。During the encoding and decoding process, the prediction residual of the azimuth in, for For example, Quantization of the original azimuth will result in and The reconstructed azimuth of the input point may exceed (-π,π]. In order to deal with this boundary overflow, the relevant technology is to obtain the reconstructed value of the current point in the cylindrical coordinate system. Afterwards, the reconstructed value of the azimuth For example, we can make a conditional judgment, that is, because Very small, such as the Ford sequence in the G-PCC standard rotation lidar dataset The boundary overflow only occurs when the azimuth of the input point is very close to or equal to -π/π. Therefore, the above processing of the overflow is unreasonable and reduces the accuracy of azimuth reconstruction.
基于此,本申请实施例提供了一种编码方法,确定当前点云中当前点的方位角参数的预测残差;根据方位角参数的预测残差,确定方位角参数的重建值;对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。本申请实施例还提供了一种解码方法,解码码流,确定当前点云中当前点的方位角因子;根据方位角因子,确定当前点的方位角参数的预测残差;根据方位角参数的预测残差,确定方位角参数的重建值;以及对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。Based on this, an embodiment of the present application provides an encoding method, determining the prediction residual of the azimuth parameter of the current point in the current point cloud; determining the reconstructed value of the azimuth parameter based on the prediction residual of the azimuth parameter; performing correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range. An embodiment of the present application also provides a decoding method, decoding a bitstream, determining the azimuth factor of the current point in the current point cloud; determining the prediction residual of the azimuth parameter of the current point based on the azimuth factor; determining the reconstructed value of the azimuth parameter based on the prediction residual of the azimuth parameter; and performing correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
这样,通过对方位角参数的重建值进行修正处理,可以使得方位角参数的修正重建值满足预设范围,从而不仅能够避免方位角参数的边界溢出情况,使其限定在一个预设范围内,同时还能够提高方位角重建的准确度,提升编解码效率,进而还能够提升编解码性能。In this way, by correcting the reconstructed value of the azimuth parameter, the corrected reconstructed value of the azimuth parameter can meet the preset range, which not only avoids the boundary overflow of the azimuth parameter and limits it to a preset range, but also improves the accuracy of azimuth reconstruction, improves encoding and decoding efficiency, and thus improves encoding and decoding performance.
下面将结合附图对本申请各实施例进行详细说明。The embodiments of the present application will be described in detail below with reference to the accompanying drawings.
在本申请的一实施例中,参见图7,其示出了本申请实施例提供的一种解码方法的流程示意图。如图7所示,该方法可以包括:In one embodiment of the present application, referring to FIG7 , a schematic flow chart of a decoding method provided by an embodiment of the present application is shown. As shown in FIG7 , the method may include:
S701:解码码流,确定当前点云中当前点的方位角因子。S701: Decode the code stream and determine the azimuth factor of the current point in the current point cloud.
需要说明的是,本申请实施例的解码方法应用于点云解码器(可简称为“解码器”)。其中,该方法可以是指点云解码方法,具体是一种点云方位角解码方法,更具体地,可以是一种点云几何信息的方位角解码方法。在这里,主要是针对方位角参数的重建进行优化,使其限定在一个预设范围内,从而可以提升编解码性能。It should be noted that the decoding method of the embodiment of the present application is applied to a point cloud decoder (hereinafter referred to as a "decoder"). The method may refer to a point cloud decoding method, specifically a point cloud azimuth decoding method, and more specifically, an azimuth decoding method of point cloud geometric information. Here, the reconstruction of the azimuth parameters is mainly optimized to be limited within a preset range, thereby improving the encoding and decoding performance.
还需要说明的是,在本申请实施例中,在当前点云中,点可以是当前点云中的所有点,也可以是当前点云中的部分点,这些点在空间上相对集中。其中,当前点可以是指当前点云中待解码的节点。对于当前点来说,当前点对应的柱面坐标可以包括深度参数、方位角参数和俯仰角参数,用表示。其中,r用于指示当前点的径向距离,也可以称为半径;用于指示当前点的方位角;θ用于指示当前点所属的激光束的俯仰角。 It should also be noted that in the embodiment of the present application, in the current point cloud, a point can be all points in the current point cloud, or some points in the current point cloud, and these points are relatively concentrated in space. Among them, the current point can refer to the node to be decoded in the current point cloud. For the current point, the cylindrical coordinates corresponding to the current point can include depth parameters, azimuth parameters, and pitch angle parameters. Indicates. Among them, r is used to indicate the radial distance of the current point, which can also be called the radius; It is used to indicate the azimuth angle of the current point; θ is used to indicate the elevation angle of the laser beam to which the current point belongs.
还需要说明的是,在本申请实施例中,当前点云从笛卡尔坐标(x,y,z)转换到柱面坐标然后将当前点云中的每个点依照其俯仰角划分到不同的激光束上,此时还可以转换为其中i表示激光束的索引序号。It should also be noted that in the embodiment of the present application, the current point cloud is converted from Cartesian coordinates (x, y, z) to cylindrical coordinates Then each point in the current point cloud is divided into different laser beams according to its pitch angle. Can also be converted to Where i represents the index number of the laser beam.
另外,在本申请实施例中,当前点云可以基于方位角进行排序,具体可以按照r,tanθ的顺序进行排序。其中,首先比较的大小,如果相同,则比较r,如果r相同,则比较tanθ,最终完成整个点云的重新排序。In addition, in the embodiment of the present application, the current point cloud can be sorted based on the azimuth, specifically according to The order of r, tanθ is sorted. First, If the size If they are the same, then compare r. If r is the same, then compare tanθ, and finally complete the reordering of the entire point cloud.
S702:根据方位角因子,确定当前点的方位角参数的预测残差。S702: Determine the prediction residual of the azimuth parameter of the current point according to the azimuth factor.
需要说明的是,在本申请实施例中,对于当前点的方位角参数来说,这里的方位角因子可以包括第一因子和第二因子。其中,根据方位角因子,确定当前点的方位角参数的预测残差,可以包括:确定方位角参数的采样间隔;根据第一因子和采样间隔,确定方位角参数的第一残差值;对第二因子进行反量化处理,确定方位角参数的第二残差值;根据方位角参数的第一残差值和第二残差值,确定方位角参数的预测残差。It should be noted that, in the embodiment of the present application, for the azimuth parameter of the current point, the azimuth factor here may include a first factor and a second factor. Wherein, determining the prediction residual of the azimuth parameter of the current point according to the azimuth factor may include: determining the sampling interval of the azimuth parameter; determining the first residual value of the azimuth parameter according to the first factor and the sampling interval; performing inverse quantization processing on the second factor to determine the second residual value of the azimuth parameter; determining the prediction residual of the azimuth parameter according to the first residual value and the second residual value of the azimuth parameter.
还需要说明的是,在本申请实施例中,可以通过解码码流,确定当前点的方位角参数的预测残差。在实际应用中,由于方位角参数的预测残差可以转换为第一因子和第二因子,这样为了提高编码效率,编码端可以将第一因子和第二因子写入码流,此时解码端通过解码码流,确定当前点的方位角因子(第一因子和第二因子),然后根据方位角因子来确定当前点的方位角参数的预测残差。It should also be noted that, in the embodiment of the present application, the prediction residual of the azimuth parameter of the current point can be determined by decoding the bitstream. In practical applications, since the prediction residual of the azimuth parameter can be converted into a first factor and a second factor, in order to improve the coding efficiency, the encoding end can write the first factor and the second factor into the bitstream, and the decoding end determines the azimuth factor (first factor and second factor) of the current point by decoding the bitstream, and then determines the prediction residual of the azimuth parameter of the current point according to the azimuth factor.
在本申请实施例中,第一因子表示方位角参数对应的重复点数,可以用n表示;第二因子表示方位角参数对应的量化补偿值,可以用表示。其中,可以看作是对进行量化得到的。假定采样间隔用表示,此时的取值可以满足: In the embodiment of the present application, the first factor represents the number of repeated points corresponding to the azimuth parameter, which can be represented by n; the second factor represents the quantized compensation value corresponding to the azimuth parameter, which can be represented by Indicates. Among them, Can be regarded as Assume that the sampling interval is Indicates that at this time The value of can satisfy:
在本申请实施例中,可以由解码得到的第一因子和第二因子确定当前点的方位角参数的预测残差。其中,根据第一因子和采样间隔,确定方位角参数的第一残差值,具体可以是将第一因子与采样间隔的乘积作为方位角参数的第一残差值,用表示;对第二因子进行反量化处理,其中IQ(.)表示反量化函数,那么方位角参数的第二残差值可以用表示。如此,方位角参数的预测残差可以用下式表示:
In the embodiment of the present application, the prediction residual of the azimuth parameter of the current point can be determined by the first factor and the second factor obtained by decoding. The first residual value of the azimuth parameter is determined according to the first factor and the sampling interval. Specifically, the product of the first factor and the sampling interval can be used as the first residual value of the azimuth parameter. Indicates; the second factor is inversely quantized, where IQ(.) represents the inverse quantization function, then the second residual value of the azimuth parameter can be used In this way, the prediction residual of the azimuth parameter can be expressed as follows:
进一步地,在一些实施例中,在确定方位角参数的采样间隔时,可以包括:确定第二语法元素的取值;根据第二语法元素的取值与第四数值,确定方位角参数的采样间隔。Further, in some embodiments, when determining the sampling interval of the azimuth parameter, it may include: determining a value of the second syntax element; and determining the sampling interval of the azimuth parameter according to the value of the second syntax element and a fourth numerical value.
还需要说明的是,在本申请实施例中,第二语法元素可以用geom_angular_azimuth_speed_minus1表示。根据geom_angular_azimuth_speed_minus1的取值可以确定出方位角参数的采样间隔其中,第四数值为整数,这里可以设置为1。也就是说, It should also be noted that in the embodiment of the present application, the second syntax element can be represented by geom_angular_azimuth_speed_minus1. The sampling interval of the azimuth parameter can be determined according to the value of geom_angular_azimuth_speed_minus1. The fourth value is an integer, which can be set to 1. That is,
在一种可能的实现方式中,可以是解码码流,直接确定方位角参数的采样间隔。这种情况下,编码端可以是将方位角参数的采样间隔写入码流。In a possible implementation, the code stream may be decoded to directly determine the sampling interval of the azimuth parameter. In this case, the encoder may write the sampling interval of the azimuth parameter into the code stream.
在另一种可能的实现方式中,可以是解码码流,确定第二语法元素的取值;然后根据第二语法元素的取值与第四数值,确定方位角参数的采样间隔。这种情况下,编码端是将第二语法元素的取值写入码流。In another possible implementation, the code stream may be decoded to determine the value of the second syntax element, and then the sampling interval of the azimuth parameter is determined according to the value of the second syntax element and the fourth value. In this case, the encoder writes the value of the second syntax element into the code stream.
在又一种可能的实现方式中,可以是解码码流,确定几何参数集;从几何参数集中,确定第二语法元素的取值;然后根据第二语法元素的取值与第四数值,确定方位角参数的采样间隔。这种情况下,编码端是将几何参数集写入码流,此时第二语法元素为几何参数集(Geometry Parameter Set,GPS)中的一个语法元素。需要注意的是,在本申请实施例中,第二语法元素也可以为几何块头信息(Geometry Block Head,GBH)中的一个语法元素,此时可以通过解码码流,从GBH中来获得第二语法元素的取值。In another possible implementation, the code stream may be decoded to determine the geometry parameter set; from the geometry parameter set, the value of the second syntax element may be determined; and then the sampling interval of the azimuth parameter may be determined based on the value of the second syntax element and the fourth value. In this case, the encoding end writes the geometry parameter set into the code stream, and the second syntax element is a syntax element in the geometry parameter set (Geometry Parameter Set, GPS). It should be noted that in the embodiment of the present application, the second syntax element may also be a syntax element in the geometry block header information (Geometry Block Head, GBH), and the value of the second syntax element may be obtained from the GBH by decoding the code stream.
这样,对于方位角参数的预测残差来说,由于是已知的,那么在将方位角的预测残差写入码流时,可以转换为将n和量化后的(即)写入码流,从而能够节省码率,提高编解码效率。Thus, for the prediction residual of the azimuth parameter, due to is known, then when writing the azimuth prediction residual into the bitstream, it can be converted into n and the quantized (Right now ) is written into the bitstream, thereby saving bit rate and improving encoding and decoding efficiency.
S703:根据方位角参数的预测残差,确定方位角参数的重建值;以及对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。S703: determining a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter; and performing correction processing on the reconstructed value of the azimuth parameter to determine a corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
需要说明的是,在本申请实施例中,确定出方位角参数的预测残差之后,进一步可以确定方位角参数的重建值。在一些实施例中,根据方位角参数的预测残差,确定方位角参数的重建值,可以包括:确定方位角参数的预测值;根据预测值与预测残差,确定方位角参数的重建值。It should be noted that, in the embodiment of the present application, after determining the prediction residual of the azimuth parameter, the reconstructed value of the azimuth parameter can be further determined. In some embodiments, determining the reconstructed value of the azimuth parameter based on the prediction residual of the azimuth parameter can include: determining the predicted value of the azimuth parameter; determining the reconstructed value of the azimuth parameter based on the predicted value and the prediction residual.
还需要说明的是,在本申请实施例中,可以是利用预设模式对当前点进行预测处理,确定当前点在柱面坐标系下方位角参数的预测值。在这里,预设模式可以为:第一预测模式(用Mode0表示)、第二预测模式(用Mode1表示)、第三预测模式(用Mode2表示)和第四预测模式(用Mode3表示)。其中, Mode0表示无预测,Mode1表示差分预测(Delta prediction),即p0;Mode2表示线性预测(Linear prediction),即2p0-p1;Mode3表示平行四边形预测(Parallelogram prediction),即p0+p1-p2。其中,p0、p1、p2分别为当前节点的父节点、祖父节点、曾祖父节点的位置。It should also be noted that, in the embodiment of the present application, the current point may be predicted using a preset mode to determine the predicted value of the azimuth parameter of the current point in the cylindrical coordinate system. Here, the preset mode may be: a first prediction mode (expressed by Mode0), a second prediction mode (expressed by Mode1), a third prediction mode (expressed by Mode2), and a fourth prediction mode (expressed by Mode3). Mode0 means no prediction, Mode1 means Delta prediction, i.e. p0; Mode2 means Linear prediction, i.e. 2p0-p1; Mode3 means Parallelogram prediction, i.e. p0+p1-p2. Among them, p0, p1, and p2 are the positions of the parent node, grandparent node, and great-grandparent node of the current node respectively.
示例性地,如果当前点为根节点,且预设模式选择Mode0,即当前点的柱面坐标无预测,这时候对应的柱面坐标系下方位角参数的预测值为预设值();其中,如果当前点没有父节点,那么置为0,否则为父节点的方位角参数值。如果当前节点不是根节点,且预设模式选择Mode1时,那么当前点的方位角参数通过其父节点的进行预测可得当前点的方位角参数的预测值如果当前节点不是根节点,且预设模式选择Mode2或Mode3时,那么当前节点通过对应的预测方式进行预测,可得当前点的方位角参数的预测值 For example, if the current point is a root node and the preset mode is Mode0, that is, the cylindrical coordinates of the current point are not predicted, then the predicted value of the azimuth parameter in the corresponding cylindrical coordinate system is the preset value ( ); if the current point has no parent node, then If the current node is not a root node and the preset mode is Mode1, the azimuth parameter of the current point is obtained by the azimuth parameter of its parent node. The prediction can be made to obtain the predicted value of the azimuth parameter of the current point If the current node is not the root node and the preset mode is Mode2 or Mode3, the current node is predicted by the corresponding prediction method to obtain the predicted value of the azimuth parameter of the current point.
还需要说明的是,在本申请实施例中,可以是对预测值与预测残差进行求和运算,确定方位角参数的重建值,方位角参数的重建值可以用表示。其中,方位角参数的取值范围是(-π,π],但是考虑到编解码过程中为一定精度的定点数,此时需要限定其取值范围。也就是说,在本申请实施例中,对方位角参数的重建值进行修正处理,以使其限定在一个预设范围。It should also be noted that in the embodiment of the present application, the predicted value and the predicted residual can be summed to determine the reconstructed value of the azimuth parameter, and the reconstructed value of the azimuth parameter can be used. Indicated by. Among them, the azimuth parameter The value range is (-π,π], but considering the encoding and decoding process is a fixed-point number with a certain precision, and its value range needs to be limited. That is to say, in the embodiment of the present application, the reconstructed value of the azimuth parameter is corrected so as to be limited to a preset range.
在一些实施例中,方位角参数的修正重建值满足预设范围,可以包括:方位角参数的修正重建值大于第一门限值且小于或等于第二门限值,其中,第一门限值与第二门限值均为整数。In some embodiments, the corrected reconstructed value of the azimuth parameter satisfies a preset range, which may include: the corrected reconstructed value of the azimuth parameter is greater than a first threshold value and less than or equal to a second threshold value, wherein the first threshold value and the second threshold value are both integers.
在本申请实施例中,对于第一门限值和第二门限值来说,第一门限值小于或等于第二门限值。在一些实施例中,该方法还包括:对第一数值进行整数化操作,确定第一门限值;对第二数值进行整数化操作,确定第二门限值。In the embodiment of the present application, for the first threshold value and the second threshold value, the first threshold value is less than or equal to the second threshold value. In some embodiments, the method further includes: performing an integer operation on the first value to determine the first threshold value; performing an integer operation on the second value to determine the second threshold value.
需要说明的是,在一种具体的实施例中,第一数值可以为-π与第一精度的比值,第二数值可以为π与第一精度的比值。其中,π、-π以及第一精度均为整数化表示,即此时不存在浮点操作。或者,如果π、-π以及第一精度均为浮点数,那么需要先对其进行整数化操作,以使π、-π以及第一精度为整数化表示。在这里,整数化操作可以为四舍五入取整函数、向下取整函数和向上取整函数等,对此不作具体限定。It should be noted that, in a specific embodiment, the first numerical value may be a ratio of -π to the first precision, and the second numerical value may be a ratio of π to the first precision. Among them, π, -π and the first precision are all integer representations, that is, there is no floating point operation at this time. Alternatively, if π, -π and the first precision are all floating point numbers, then they need to be firstly integerized so that π, -π and the first precision are integerized. Here, the integerization operation may be a rounding function, a floor function and a ceiling function, etc., which are not specifically limited.
还需要说明的是,在一种具体的实施例中,预设范围为其中,round(.)表示取整函数,表示第一精度,且N为大于或等于0的整数。It should also be noted that, in a specific embodiment, the preset range is Among them, round(.) represents the rounding function, represents the first precision, and N is an integer greater than or equal to 0.
在本申请实施例中,round(.)具体为四舍五入取整函数。示例性地,对于四舍五入取整函数,以为例,一种可能的实现方式为:计算与的比值,对该比值进行向下取整操作,确定第一门限值。换句话说,可以是计算第一数值与1/2的和值,对该和值进行向下取整操作,确定第一门限值。In the embodiment of the present application, round(.) is specifically a rounding function. For example, for the rounding function, For example, one possible implementation is: and In other words, the sum of the first value and 1/2 may be calculated, and the sum may be rounded down to determine the first threshold value.
示例性地,对于四舍五入取整函数,以为例,一种可能的实现方式为:计算与的比值,对该比值进行向下取整操作,确定第二门限值。换句话说,可以是计算第二数值与1/2的和值,对该和值进行向下取整操作,确定第二门限值。For example, for the rounding function, For example, one possible implementation is: and In other words, the sum of the second value and 1/2 may be calculated, the sum may be rounded down, and the second threshold may be determined.
在本申请实施例中,由于那么若作为一个整体,则该值等同于-2N-1;若作为一个整体,则该值等同于2N-1。在这种情况下,由于和均为整数,此时还可以省略整数化操作,例如round(.)。换句话说,在一些实施例中,预设范围为(-2N-1,2N-1];其中,N为大于或等于0的整数。In the embodiment of the present application, due to Then if As a whole, this value is equivalent to -2 N-1 ; if As a whole, this value is equal to 2 N-1 . In this case, since and are all integers, and the integerization operation, such as round(.), can be omitted. In other words, in some embodiments, the preset range is (-2 N-1 ,2 N-1 ]; wherein N is an integer greater than or equal to 0.
也就是说,在本申请实施例中,对于第一门限值来说,可以为或者也可以为-2N-1;对于第二门限值来说,可以为或者也可以为2N-1。That is to say, in the embodiment of the present application, for the first threshold value, it can be Or it can be -2 N-1 ; for the second threshold value, it can be Or it may be 2 N-1 .
在一些实施例中,该方法还可以包括:确定第一语法元素的取值;根据第一语法元素的取值与第三数值,确定N的取值。In some embodiments, the method may further include: determining a value of a first syntax element; and determining a value of N according to the value of the first syntax element and a third numerical value.
需要说明的是,在本申请实施例中,第一语法元素可以用geom_angular_azimuth_scale_log2表示。根据geom_angular_azimuth_scale_log2的取值可以确定出N的取值。另外,第三数值为整数,这里可以设置为12。也就是说。N=geom_angular_azimuth_scale_log2+12。It should be noted that, in the embodiment of the present application, the first syntax element can be represented by geom_angular_azimuth_scale_log2. The value of N can be determined according to the value of geom_angular_azimuth_scale_log2. In addition, the third value is an integer, which can be set to 12 here. That is, N=geom_angular_azimuth_scale_log2+12.
在一种可能的实现方式中,可以是解码码流,直接确定N的取值。这种情况下,编码端可以是将N的取值写入码流。In a possible implementation, the code stream may be decoded to directly determine the value of N. In this case, the encoder may write the value of N into the code stream.
在另一种可能的实现方式中,可以是解码码流,确定第一语法元素的取值;然后根据第一语法元素的取值与第三数值,确定N的取值。这种情况下,编码端是将第一语法元素的取值写入码流。In another possible implementation, the code stream may be decoded to determine the value of the first syntax element, and then the value of N is determined according to the value of the first syntax element and the third value. In this case, the encoder writes the value of the first syntax element into the code stream.
在又一种可能的实现方式中,可以是解码码流,确定几何参数集;从几何参数集中,确定第一语法元素的取值;然后根据第一语法元素的取值与第三数值,确定N的取值。这种情况下,编码端是将几何参数集写入码流,此时第一语法元素为几何参数集(Geometry Parameter Set,GPS)中的一个语法元 素。需要注意的是,在本申请实施例中,第一语法元素也可以为几何块头信息(Geometry Block Head,GBH)中的一个语法元素,此时可以通过解码码流,从GBH中来获得第一语法元素的取值。In another possible implementation, the code stream may be decoded to determine a geometry parameter set; the value of the first syntax element may be determined from the geometry parameter set; and the value of N may be determined based on the value of the first syntax element and the third value. In this case, the encoder writes the geometry parameter set into the code stream, and the first syntax element is a syntax element in the geometry parameter set (GPS). It should be noted that, in the embodiment of the present application, the first syntax element may also be a syntax element in the geometry block header (Geometry Block Head, GBH), and in this case, the value of the first syntax element may be obtained from the GBH by decoding the bitstream.
这样,在确定出N的取值之后,可以确定第一门限值和第二门限值,进而可以确定方位角参数的修正重建值所需满足的预设范围。In this way, after determining the value of N, the first threshold value and the second threshold value can be determined, and then the preset range that the corrected reconstructed value of the azimuth parameter needs to satisfy can be determined.
在一些实施例中,在确定方位角参数的修正重建值时,参见图8,该方法可以包括:In some embodiments, when determining the corrected reconstruction value of the azimuth parameter, referring to FIG8 , the method may include:
S801:根据方位角参数的预测残差,确定方位角参数的重建值。S801: Determine a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter.
S802:在方位角参数的重建值小于或等于第一门限值时,根据第一门限值与第五数值,确定方位角参数的修正重建值。S802: When the reconstructed value of the azimuth parameter is less than or equal to the first threshold value, determine a corrected reconstructed value of the azimuth parameter according to the first threshold value and a fifth value.
S803:在方位角参数的重建值大于第二门限值时,根据第二门限值,确定方位角参数的修正重建值。S803: When the reconstructed value of the azimuth parameter is greater than a second threshold value, determine a corrected reconstructed value of the azimuth parameter according to the second threshold value.
需要说明的是,在本申请实施例中,第一门限值与第二门限值均为整数。如果方位角参数的重建值小于或等于第一门限值,那么可以将方位角参数的修正重建值设置为第一门限值与第五数值的和值;如果方位角参数的重建值大于第二门限值,那么可以将方位角参数的修正重建值设置为第二门限值。其中,第五数值也为整数,这里可以设置为1,但不作具体限定。It should be noted that in the embodiment of the present application, the first threshold value and the second threshold value are both integers. If the reconstructed value of the azimuth parameter is less than or equal to the first threshold value, then the corrected reconstructed value of the azimuth parameter can be set to the sum of the first threshold value and the fifth value; if the reconstructed value of the azimuth parameter is greater than the second threshold value, then the corrected reconstructed value of the azimuth parameter can be set to the second threshold value. Among them, the fifth value is also an integer, which can be set to 1 here, but is not specifically limited.
还需要说明的是,在本申请实施例中,第一门限值可以为第二门限值可以为具体的整数化计算方式同上。其中,如果那么第一门限值可以为-2N-1,第二门限值可以为2N-1。It should also be noted that in the embodiment of the present application, the first threshold value can be The second threshold value can be The specific integer calculation method is the same as above. Then the first threshold value may be -2 N-1 , and the second threshold value may be 2 N-1 .
在一种具体的实施例中,对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,可以包括:In a specific embodiment, performing correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter may include:
(2) (2)
其中,表示方位角参数的重建值,表示方位角参数的修正重建值;round(.)表示取整函数,表示第一精度,且N为整数。in, represents the reconstructed value of the azimuth parameter, Indicates the corrected reconstructed value of the azimuth parameter; round(.) indicates the rounding function, represents the first precision, and N is an integer.
进一步地,在一些实施例中,该方法还可以包括:在方位角参数的重建值大于第一门限值且小于或等于第二门限值时,将方位角参数的重建值确定为方位角参数的修正重建值。也就是说,在本申请实施例中,如果这时候 Furthermore, in some embodiments, the method may further include: when the reconstructed value of the azimuth parameter is greater than the first threshold value and less than or equal to the second threshold value, determining the reconstructed value of the azimuth parameter as the corrected reconstructed value of the azimuth parameter. That is, in the embodiment of the present application, if At this time
还需要说明的是,在本申请实施例中,对于相关技术中的边界溢出情况,此时在当前点的方位角参数非常接近或者等于-π/π时出现。虽然相关技术已经提出了一种条件判断方式,具体如下:
It should also be noted that, in the embodiment of the present application, for the boundary overflow in the related art, it occurs when the azimuth parameter of the current point is very close to or equal to -π/π. Although the related art has proposed a conditional judgment method, which is as follows:
但是在相关技术中,针对溢出边界的-π附近的方位角参数的重建值,相关技术是将其修正到π附近,具体为针对溢出边界的π附近的方位角参数的重建值,相关技术是将其修正到-π附近,具体为虽然对于当前点来说,方位角参数的重建值没有问题,但是针对当前点的下一点来说不太友好。基于此,本申请实施例提出了一种具有良好效果的修正方式,针对溢出边界的-π附近的方位角参数的重建值,本技术方案是将其修正到-π附近,具体为针对溢出边界的π附近的方位角参数的重建值,本技术方案是将其修正到π附近,具体为 However, in the related art, for the reconstructed value of the azimuth parameter near -π that overflows the boundary, the related art corrects it to near π, specifically: For the reconstructed value of the azimuth parameter near π that overflows the boundary, the related technology is to correct it to near -π, specifically: Although the reconstructed value of the azimuth parameter is fine for the current point, it is not very friendly for the next point of the current point. Based on this, the embodiment of the present application proposes a correction method with good effect. For the reconstructed value of the azimuth parameter near -π that overflows the boundary, the technical solution is to correct it to near -π, specifically: For the reconstructed value of the azimuth parameter near π that overflows the boundary, this technical solution is to correct it to near π, specifically:
本实施例提供了一种解码方法,解码码流,确定当前点云中当前点的方位角因子;根据方位角因子,确定当前点的方位角参数的预测残差;根据方位角参数的预测残差,确定方位角参数的重建值;以及对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。这样,通过对方位角参数的重建值进行修正处理,可以使得方位角参数的修正重建值满足预设范围,从而不仅能够避免方位角参数的边界溢出情况,使其限定在一个预设范围内,同时还能够提高方位角重建的准确度,提升编解码效率,进而还能够提升编解码性能。This embodiment provides a decoding method, which decodes a code stream, determines the azimuth factor of a current point in a current point cloud; determines the prediction residual of the azimuth parameter of the current point according to the azimuth factor; determines the reconstruction value of the azimuth parameter according to the prediction residual of the azimuth parameter; and performs correction processing on the reconstruction value of the azimuth parameter to determine the corrected reconstruction value of the azimuth parameter, wherein the corrected reconstruction value of the azimuth parameter satisfies a preset range. In this way, by performing correction processing on the reconstruction value of the azimuth parameter, the corrected reconstruction value of the azimuth parameter can be made to meet the preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving the encoding and decoding efficiency, and further improving the encoding and decoding performance.
在本申请的另一实施例中,参见图9,其示出了本申请实施例提供的一种编码方法的流程示意图。如图9所示,该方法可以包括:In another embodiment of the present application, referring to FIG9 , a schematic diagram of a flow chart of an encoding method provided by an embodiment of the present application is shown. As shown in FIG9 , the method may include:
S901:确定当前点云中当前点的方位角参数的预测残差。S901: Determine the prediction residual of the azimuth parameter of the current point in the current point cloud.
需要说明的是,本申请实施例的编码方法应用于点云编码器(可简称为“编码器”)。其中,该方法 可以是指点云编码方法,具体是一种点云方位角编码方法,更具体地,可以是一种点云几何信息的方位角编码方法。在这里,主要是针对方位角参数的重建进行优化,使其限定在一个预设范围内,从而可以提升编解码性能。It should be noted that the encoding method of the embodiment of the present application is applied to a point cloud encoder (hereinafter referred to as an "encoder"). It may refer to a point cloud coding method, specifically a point cloud azimuth coding method, and more specifically, an azimuth coding method of point cloud geometric information. Here, the reconstruction of the azimuth parameter is mainly optimized to be limited to a preset range, thereby improving the encoding and decoding performance.
还需要说明的是,在本申请实施例中,在当前点云中,点可以是当前点云中的所有点,也可以是当前点云中的部分点,这些点在空间上相对集中。其中,当前点可以是指当前点云中待编码的节点。对于当前点来说,当前点对应的柱面坐标可以包括深度参数、方位角参数和俯仰角参数,用表示。其中,r用于指示当前点的径向距离,也可以称为半径;用于指示当前点的方位角;θ用于指示当前点所属的激光束的俯仰角。It should also be noted that in the embodiment of the present application, in the current point cloud, a point may be all points in the current point cloud, or may be part of the points in the current point cloud, and these points are relatively concentrated in space. Among them, the current point may refer to the node to be encoded in the current point cloud. For the current point, the cylindrical coordinates corresponding to the current point may include depth parameters, azimuth parameters, and pitch angle parameters. Indicates. Among them, r is used to indicate the radial distance of the current point, which can also be called the radius; It is used to indicate the azimuth angle of the current point; θ is used to indicate the elevation angle of the laser beam to which the current point belongs.
还需要说明的是,在本申请实施例中,当前点云从笛卡尔坐标(x,y,z)转换到柱面坐标然后将当前点云中的每个点依照其俯仰角划分到不同的激光束上,此时还可以转换为其中i表示激光束的索引序号。It should also be noted that in the embodiment of the present application, the current point cloud is converted from Cartesian coordinates (x, y, z) to cylindrical coordinates Then each point in the current point cloud is divided into different laser beams according to its pitch angle. Can also be converted to Where i represents the index number of the laser beam.
另外,在本申请实施例中,当前点云可以基于方位角进行排序,具体可以按照r,tanθ的顺序进行排序。其中,首先比较的大小,如果相同,则比较r,如果r相同,则比较tanθ,最终完成整个点云的重新排序。In addition, in the embodiment of the present application, the current point cloud can be sorted based on the azimuth, specifically according to The order of r, tanθ is sorted. First, If the size If they are the same, then compare r. If r is the same, then compare tanθ, and finally complete the reordering of the entire point cloud.
可以理解地,在本申请实施例中,在确定当前点云中当前点的方位角参数的预测残差时,可以包括:确定方位角参数的预测值;根据方位角参数的原始值与预测值,确定所述方位角参数的预测残差。It can be understood that in an embodiment of the present application, when determining the predicted residual of the azimuth parameter of the current point in the current point cloud, it can include: determining the predicted value of the azimuth parameter; determining the predicted residual of the azimuth parameter based on the original value and the predicted value of the azimuth parameter.
需要说明的是,在本申请实施例中,可以是利用预设模式对当前点进行预测处理,确定当前点在柱面坐标系下方位角参数的预测值。在这里,预设模式可以为:第一预测模式(用Mode0表示)、第二预测模式(用Mode1表示)、第三预测模式(用Mode2表示)和第四预测模式(用Mode3表示)。其中,Mode0表示无预测,Mode1表示差分预测(Delta prediction),即p0;Mode2表示线性预测(Linear prediction),即2p0-p1;Mode3表示平行四边形预测(Parallelogram prediction),即p0+p1-p2。其中,p0、p1、p2分别为当前节点的父节点、祖父节点、曾祖父节点的位置。It should be noted that in the embodiment of the present application, the current point can be predicted using a preset mode to determine the predicted value of the azimuth parameter of the current point in the cylindrical coordinate system. Here, the preset mode can be: a first prediction mode (represented by Mode0), a second prediction mode (represented by Mode1), a third prediction mode (represented by Mode2), and a fourth prediction mode (represented by Mode3). Among them, Mode0 means no prediction, Mode1 means differential prediction (Delta prediction), i.e. p0; Mode2 means linear prediction (Linear prediction), i.e. 2p0-p1; Mode3 means parallelogram prediction (Parallelogram prediction), i.e. p0+p1-p2. Among them, p0, p1, and p2 are the positions of the parent node, grandparent node, and great-grandparent node of the current node, respectively.
示例性地,如果当前点为根节点,且预设模式选择Mode0,即当前点的柱面坐标无预测,这时候对应的柱面坐标系下方位角参数的预测值为预设值();其中,如果当前点没有父节点,那么置为0,否则为父节点的方位角参数值。如果当前节点不是根节点,且预设模式选择Mode1时,那么当前点的方位角参数通过其父节点的进行预测可得当前点的方位角参数的预测值如果当前节点不是根节点,且预设模式选择Mode2或Mode3时,那么当前节点通过对应的预测方式进行预测,可得当前点的方位角参数的预测值 For example, if the current point is a root node and the preset mode is Mode0, that is, the cylindrical coordinates of the current point are not predicted, then the predicted value of the azimuth parameter in the corresponding cylindrical coordinate system is the preset value ( ); if the current point has no parent node, then If the current node is not a root node and the preset mode is Mode1, the azimuth parameter of the current point is obtained by the azimuth parameter of its parent node. The prediction can be made to obtain the predicted value of the azimuth parameter of the current point If the current node is not the root node and the preset mode is Mode2 or Mode3, the current node is predicted by the corresponding prediction method to obtain the predicted value of the azimuth parameter of the current point.
还需要说明的是,在本申请实施例中,可以对方位角参数的原始值与预测值进行减法计算,得到方位角参数的预测残差。其中,方位角参数的预测残差可以用表示,方位角参数的原始值可以用表示,方位角参数的预测值可以用表示,那么具体计算公式为:
It should also be noted that, in the embodiment of the present application, the original value of the azimuth parameter and the predicted value can be subtracted to obtain the predicted residual of the azimuth parameter. The predicted residual of the azimuth parameter can be expressed as Indicates that the original value of the azimuth parameter can be expressed as The predicted value of the azimuth parameter can be expressed as Indicates that the specific calculation formula is:
进一步地,该方法还可以包括:对方位角参数的预测残差进行编码处理,将所得到的编码比特写入码流。如此,编码端可以将方位角参数的预测残差写入码流,由编码端传输到解码端,以便解码端可以通过解码码流来确定方位角参数的预测残差。Furthermore, the method may also include: encoding the prediction residual of the azimuth parameter, and writing the obtained coded bits into the bitstream. In this way, the encoder can write the prediction residual of the azimuth parameter into the bitstream, which is transmitted from the encoder to the decoder, so that the decoder can determine the prediction residual of the azimuth parameter by decoding the bitstream.
在实际应用中,由于方位角参数的预测残差可以转换为方位角因子,这样为了提高编码效率,编码端可以先确定当前点的方位角因子,然后将方位角因子写入码流。具体为:根据方位角参数的预测残差,确定当前点的方位角因子;对方位角因子进行编码处理,将所得到的编码比特写入码流。In practical applications, since the prediction residual of the azimuth parameter can be converted into the azimuth factor, in order to improve the coding efficiency, the encoding end can first determine the azimuth factor of the current point, and then write the azimuth factor into the bitstream. Specifically, the azimuth factor of the current point is determined according to the prediction residual of the azimuth parameter; the azimuth factor is encoded, and the obtained encoding bits are written into the bitstream.
在一些实施例中,方位角因子可以包括第一因子和第二因子。在根据方位角参数的预测残差,确定当前点方位角因子时,可以包括:确定方位角参数的采样间隔;根据预测残差和采样间隔,确定第一因子;根据预测残差和第一因子与采样间隔的乘积,确定预设补偿值;对预设补偿值进行量化处理,确定第二因子。In some embodiments, the azimuth factor may include a first factor and a second factor. When determining the azimuth factor of the current point according to the prediction residual of the azimuth parameter, it may include: determining the sampling interval of the azimuth parameter; determining the first factor according to the prediction residual and the sampling interval; determining a preset compensation value according to the product of the prediction residual and the first factor and the sampling interval; and quantizing the preset compensation value to determine the second factor.
在本申请实施例中,第一因子表示方位角参数对应的重复点数,可以用n表示;第二因子表示方位角参数对应的量化补偿值,可以用表示。其中,预设补偿值可以用表示,则可以看作是对预设补偿值进行量化得到的。假定方位角参数的预测残差用表示,采样间隔用表示,此时的取值可以满足: In the embodiment of the present application, the first factor represents the number of repeated points corresponding to the azimuth parameter, which can be represented by n; the second factor represents the quantized compensation value corresponding to the azimuth parameter, which can be represented by In which, the preset compensation value can be expressed as Indicates that Can be regarded as a preset compensation value It is quantized. Assume that the prediction residual of the azimuth parameter is The sampling interval is expressed as Indicates that at this time The value of can satisfy:
在本申请实施例中,对于方位角参数的预测残差来说,确定预测残差和采样间隔之间的比值,然后对该比值进行整数化操作,具体可以是通过round(.)函数进行四舍五入操作来实现整数化表示,从而得到可以得到第一因子n,这时候的预设补偿值其中,与之间的关系需要满足:另外,对于第二因子来说,可以看作量化后的即 In the embodiment of the present application, for the prediction residual of the azimuth parameter, the ratio between the prediction residual and the sampling interval is determined, and then the ratio is integerized. Specifically, the integerization can be achieved by rounding the ratio by the round(.) function, so as to obtain the first factor n. At this time, the preset compensation value is in, and The relationship between the needs to meet: In addition, for the second factor, it can be regarded as the quantified Right now
也就是说,在本申请实施例中,由于是已知的,那么对于方位角参数的预测残差来说,在 编码时,可以转换为编码n和量化后的也即然后将n和写入码流中。That is to say, in the embodiment of the present application, due to is known, then the prediction residual for the azimuth parameter is For example, in coding When it is converted into the coded n and quantized That is Then n and Write to the code stream.
进一步地,在一些实施例中,在确定方位角参数的采样间隔之后,该方法还可以包括:根据方位角参数的采样间隔与第四数值,确定第二语法元素的取值;对第二语法元素的取值进行编码处理,将所得到的编码比特写入码流。Furthermore, in some embodiments, after determining the sampling interval of the azimuth parameter, the method may also include: determining a value of a second syntax element based on the sampling interval of the azimuth parameter and a fourth numerical value; encoding the value of the second syntax element, and writing the obtained coded bits into a bitstream.
还需要说明的是,在本申请实施例中,第二语法元素可以用geom_angular_azimuth_speed_minus1表示。具体地,方位角参数的采样间隔可以是由geom_angular_azimuth_speed_minus1的取值来提供。其中,第四数值为整数,这里可以设置为1。也就是说 It should also be noted that, in the embodiment of the present application, the second syntax element can be represented by geom_angular_azimuth_speed_minus1. Specifically, the sampling interval of the azimuth parameter is It can be provided by the value of geom_angular_azimuth_speed_minus1. The fourth value is an integer, which can be set to 1.
在一种可能的实现方式中,可以是对方位角参数的采样间隔进行编码处理,将所得到的编码比特写入码流。这种情况下,编码端可以是将方位角参数的采样间隔写入码流,以使得解码端通过解码码流就可以获得方位角参数的采样间隔。In a possible implementation, the sampling interval of the azimuth parameter may be encoded, and the obtained encoded bits may be written into the bitstream. In this case, the encoding end may write the sampling interval of the azimuth parameter into the bitstream, so that the decoding end may obtain the sampling interval of the azimuth parameter by decoding the bitstream.
在另一种可能的实现方式中,可以是对第二语法元素的取值进行编码处理,将所得到的编码比特写入码流。这种情况下,编码端是将第二语法元素的取值写入码流,以使得解码端通过解码码流获得第二语法元素的取值之后,根据第二语法元素的取值与第四数值,确定方位角参数的采样间隔。In another possible implementation, the value of the second syntax element may be encoded, and the obtained encoded bits may be written into the bitstream. In this case, the encoding end writes the value of the second syntax element into the bitstream, so that after the decoding end obtains the value of the second syntax element by decoding the bitstream, it determines the sampling interval of the azimuth parameter according to the value of the second syntax element and the fourth value.
在又一种可能的实现方式中,可以是将第二语法元素的取值写入几何参数集;对几何参数集进行编码处理,将所得到的编码比特写入码流。这种情况下,编码端是将几何参数集写入码流,此时第二语法元素为几何参数集(Geometry Parameter Set,GPS)中的一个语法元素。以使得解码端通过解码码流获得几何参数集之后,从GPS中就可以获得第二语法元素的取值,然后根据第二语法元素的取值与第四数值,确定方位角参数的采样间隔。需要注意的是,在本申请实施例中,第二语法元素也可以为几何块头信息(Geometry Block Head,GBH)中的一个语法元素,此时可以是将第二语法元素的取值写入几何块头信息,然后对几何块头信息进行编码处理,将所得到的编码比特写入码流。In another possible implementation, the value of the second syntax element may be written into a geometry parameter set; the geometry parameter set is encoded, and the obtained coded bits are written into the bitstream. In this case, the encoding end writes the geometry parameter set into the bitstream, and the second syntax element is a syntax element in the geometry parameter set (GPS). After the decoding end obtains the geometry parameter set by decoding the bitstream, it can obtain the value of the second syntax element from the GPS, and then determine the sampling interval of the azimuth parameter based on the value of the second syntax element and the fourth value. It should be noted that in the embodiment of the present application, the second syntax element may also be a syntax element in the geometry block header information (Geometry Block Head, GBH). In this case, the value of the second syntax element may be written into the geometry block header information, and then the geometry block header information may be encoded, and the obtained coded bits may be written into the bitstream.
这样,对于方位角参数的预测残差来说,由于是已知的,那么在将方位角的预测残差写入码流时,可以转换为将n和量化后的(即)写入码流,从而能够节省码率,提高编解码效率。Thus, for the prediction residual of the azimuth parameter, due to is known, then when writing the azimuth prediction residual into the bitstream, it can be converted into n and the quantized (Right now ) is written into the bitstream, thereby saving bit rate and improving encoding and decoding efficiency.
S902:根据方位角参数的预测残差,确定方位角参数的重建值。S902: Determine a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter.
需要说明的是,在本申请实施例中,确定出方位角参数的预测残差之后,进一步可以确定方位角参数的重建值。在一些实施例中,根据方位角参数的预测残差,确定方位角参数的重建值,可以包括:确定方位角参数的预测值;根据预测值与预测残差,确定方位角参数的重建值。It should be noted that, in the embodiment of the present application, after determining the prediction residual of the azimuth parameter, the reconstructed value of the azimuth parameter can be further determined. In some embodiments, determining the reconstructed value of the azimuth parameter based on the prediction residual of the azimuth parameter can include: determining the predicted value of the azimuth parameter; determining the reconstructed value of the azimuth parameter based on the predicted value and the prediction residual.
还需要说明的是,在本申请实施例中,可以是利用预设模式对当前点进行预测处理,确定当前点在柱面坐标系下方位角参数的预测值。在这里,预设模式可以为:第一预测模式(用Mode0表示)、第二预测模式(用Mode1表示)、第三预测模式(用Mode2表示)和第四预测模式(用Mode3表示)。其中,Mode0表示无预测,Mode1表示差分预测(Delta prediction),即p0;Mode2表示线性预测(Linear prediction),即2p0-p1;Mode3表示平行四边形预测(Parallelogram prediction),即p0+p1-p2。其中,p0、p1、p2分别为当前节点的父节点、祖父节点、曾祖父节点的位置。It should also be noted that, in an embodiment of the present application, a preset mode may be used to predict the current point and determine the predicted value of the azimuth parameter of the current point in the cylindrical coordinate system. Here, the preset mode may be: a first prediction mode (expressed by Mode0), a second prediction mode (expressed by Mode1), a third prediction mode (expressed by Mode2), and a fourth prediction mode (expressed by Mode3). Among them, Mode0 means no prediction, Mode1 means differential prediction (Delta prediction), i.e., p0; Mode2 means linear prediction (Linear prediction), i.e., 2p0-p1; Mode3 means parallelogram prediction (Parallelogram prediction), i.e., p0+p1-p2. Among them, p0, p1, and p2 are the positions of the parent node, grandparent node, and great-grandparent node of the current node, respectively.
示例性地,如果当前点为根节点,且预设模式选择Mode0,即当前点的柱面坐标无预测,这时候对应的柱面坐标系下方位角参数的预测值为预设值();其中,如果当前点没有父节点,那么置为0,否则为父节点的方位角参数值。如果当前节点不是根节点,且预设模式选择Mode1时,那么当前点的方位角参数通过其父节点的进行预测可得当前点的方位角参数的预测值如果当前节点不是根节点,且预设模式选择Mode2或Mode3时,那么当前节点通过对应的预测方式进行预测,可得当前点的方位角参数的预测值 For example, if the current point is a root node and the preset mode is Mode0, that is, the cylindrical coordinates of the current point are not predicted, then the predicted value of the azimuth parameter in the corresponding cylindrical coordinate system is the preset value ( ); if the current point has no parent node, then If the current node is not a root node and the preset mode is Mode1, the azimuth parameter of the current point is obtained by the azimuth parameter of its parent node. The prediction can be made to obtain the predicted value of the azimuth parameter of the current point If the current node is not the root node and the preset mode is Mode2 or Mode3, the current node is predicted by the corresponding prediction method to obtain the predicted value of the azimuth parameter of the current point.
还需要说明的是,在本申请实施例中,可以是对预测值与预测残差进行求和运算,确定方位角参数的重建值,方位角参数的重建值可以用表示。其中,方位角参数的取值范围是(-π,π],但是考虑到编解码过程中为一定精度的定点数,此时需要限定其取值范围。也就是说,在本申请实施例中,对方位角参数的重建值进行修正处理,以使其限定在一个预设范围。It should also be noted that in the embodiment of the present application, the predicted value and the predicted residual can be summed to determine the reconstructed value of the azimuth parameter, and the reconstructed value of the azimuth parameter can be used. Indicated by. Among them, the azimuth parameter The value range is (-π,π], but considering the encoding and decoding process is a fixed-point number with a certain precision, and its value range needs to be limited. That is to say, in the embodiment of the present application, the reconstructed value of the azimuth parameter is corrected so as to be limited to a preset range.
S903:对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。S903: Correct the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
需要说明的是,在本申请实施例中,方位角参数的修正重建值满足预设范围,可以包括:方位角参数的修正重建值大于第一门限值且小于或等于第二门限值,其中,第一门限值与第二门限值均为整数。It should be noted that, in the embodiment of the present application, the corrected reconstructed value of the azimuth parameter satisfies the preset range, which may include: the corrected reconstructed value of the azimuth parameter is greater than the first threshold value and less than or equal to the second threshold value, wherein the first threshold value and the second threshold value are both integers.
在本申请实施例中,对于第一门限值和第二门限值来说,第一门限值小于或等于第二门限值。在一些实施例中,该方法还包括:对第一数值进行整数化操作,确定第一门限值;对第二数值进行整数化操作,确定第二门限值。In the embodiment of the present application, for the first threshold value and the second threshold value, the first threshold value is less than or equal to the second threshold value. In some embodiments, the method further includes: performing an integer operation on the first value to determine the first threshold value; performing an integer operation on the second value to determine the second threshold value.
需要说明的是,在一种具体的实施例中,第一数值可以为-π与第一精度的比值,第二数值可以为π与第一精度的比值。其中,π、-π以及第一精度均为整数化表示,即此时不存在浮点操作。或者,如果π、-π以及第一精度均为浮点数,那么需要先对其进行整数化操作,以使π、-π以及第一精度为整数化表示。在 这里,整数化操作可以为四舍五入取整函数、向下取整函数和向上取整函数等,对此不作具体限定。It should be noted that, in a specific embodiment, the first value may be the ratio of -π to the first precision, and the second value may be the ratio of π to the first precision. Among them, π, -π and the first precision are all integer representations, that is, there is no floating point operation at this time. Alternatively, if π, -π and the first precision are all floating point numbers, they need to be integerized first so that π, -π and the first precision are integer representations. Here, the integer conversion operation may be a rounding function, a floor function, a ceiling function, etc., and no specific limitation is given to this.
还需要说明的是,在一种具体的实施例中,预设范围为其中,round(.)表示取整函数,表示第一精度,且N为大于或等于0的整数。It should also be noted that, in a specific embodiment, the preset range is Among them, round(.) represents the rounding function, represents the first precision, and N is an integer greater than or equal to 0.
在本申请实施例中,round(.)具体为四舍五入取整函数。示例性地,对于四舍五入取整函数,以为例,一种可能的实现方式为:计算与的比值,对该比值进行向下取整操作,确定第一门限值。换句话说,可以是计算第一数值与1/2的和值,对该和值进行向下取整操作,确定第一门限值。In the embodiment of the present application, round(.) is specifically a rounding function. For example, for the rounding function, For example, one possible implementation is: and In other words, the sum of the first value and 1/2 may be calculated, and the sum may be rounded down to determine the first threshold value.
示例性地,对于四舍五入取整函数,以为例,一种可能的实现方式为:计算与的比值,对该比值进行向下取整操作,确定第二门限值。换句话说,可以是计算第二数值与1/2的和值,对该和值进行向下取整操作,确定第二门限值。For example, for the rounding function, For example, one possible implementation is: and In other words, the sum of the second value and 1/2 may be calculated, the sum may be rounded down, and the second threshold may be determined.
在本申请实施例中,由于那么若作为一个整体,则该值等同于-2N-1;若作为一个整体,则该值等同于2N-1。在这种情况下,由于和均为整数,此时还可以省略整数化操作,例如round(.)。换句话说,在一些实施例中,预设范围为(-2N-1,2N-1];其中,N为大于或等于0的整数。In the embodiment of the present application, due to Then if As a whole, this value is equivalent to -2 N-1 ; if As a whole, this value is equal to 2 N-1 . In this case, since and are all integers, and the integerization operation, such as round(.), can be omitted. In other words, in some embodiments, the preset range is (-2 N-1 ,2 N-1 ]; wherein N is an integer greater than or equal to 0.
也就是说,在本申请实施例中,对于第一门限值来说,可以为或者也可以为-2N-1;对于第二门限值来说,可以为或者也可以为2N-1。That is to say, in the embodiment of the present application, the first threshold value can be Or it can be -2 N-1 ; for the second threshold value, it can be Or it may be 2 N-1 .
在一些实施例中,在根据第一精度确定N的取值之后,该方法还可以包括:根据N的取值与第三数值,确定第一语法元素的取值;对第一语法元素的取值进行编码处理,将所得到的编码比特写入码流。In some embodiments, after determining the value of N according to the first precision, the method may further include: determining the value of the first syntax element according to the value of N and a third numerical value; encoding the value of the first syntax element, and writing the obtained coded bits into the bitstream.
需要说明的是,在本申请实施例中,第一语法元素可以用geom_angular_azimuth_scale_log2表示。根据geom_angular_azimuth_scale_log2的取值可以确定出N的取值。另外,第三数值为整数,这里可以设置为12。也就是说。N=geom_angular_azimuth_scale_log2+12。It should be noted that, in the embodiment of the present application, the first syntax element can be represented by geom_angular_azimuth_scale_log2. The value of N can be determined according to the value of geom_angular_azimuth_scale_log2. In addition, the third value is an integer, which can be set to 12 here. That is, N=geom_angular_azimuth_scale_log2+12.
在一种可能的实现方式中,可以是对N的取值进行编码处理,将所得到的编码比特写入码流。这种情况下,编码端可以是将N的取值写入码流,以使得解码端通过解码码流就可以获得N的取值。In a possible implementation, the value of N may be encoded and the obtained encoded bits may be written into a bitstream. In this case, the encoding end may write the value of N into the bitstream so that the decoding end may obtain the value of N by decoding the bitstream.
在另一种可能的实现方式中,可以是对第一语法元素的取值进行编码处理,将所得到的编码比特写入码流。这种情况下,编码端是将第一语法元素的取值写入码流,以使得解码端通过解码码流获得第一语法元素的取值之后,然后根据第一语法元素的取值与第三数值,确定N的取值。In another possible implementation, the value of the first syntax element may be encoded, and the obtained encoded bits may be written into the bitstream. In this case, the encoding end writes the value of the first syntax element into the bitstream, so that after the decoding end obtains the value of the first syntax element by decoding the bitstream, the value of N is determined according to the value of the first syntax element and the third value.
在又一种可能的实现方式中,可以是将第一语法元素的取值写入几何参数集;对几何参数集进行编码处理,将所得到的编码比特写入码流。这种情况下,编码端是将几何参数集写入码流,此时第一语法元素为几何参数集(Geometry Parameter Set,GPS)中的一个语法元素。以使得解码端通过解码码流获得几何参数集之后,从GPS中就可以获得第一语法元素的取值;然后根据第一语法元素的取值与第三数值,确定N的取值。需要注意的是,在本申请实施例中,第一语法元素也可以为几何块头信息(Geometry Block Head,GBH)中的一个语法元素,此时可以将第一语法元素的取值写入几何块头信息,然后对几何块头信息进行编码处理,将所得到的编码比特写入码流。In another possible implementation, the value of the first syntax element may be written into a geometry parameter set; the geometry parameter set is encoded, and the obtained coded bits are written into the bitstream. In this case, the encoding end writes the geometry parameter set into the bitstream, and the first syntax element is a syntax element in the geometry parameter set (GPS). So that after the decoding end obtains the geometry parameter set by decoding the bitstream, it can obtain the value of the first syntax element from the GPS; then, according to the value of the first syntax element and the third value, determine the value of N. It should be noted that in the embodiment of the present application, the first syntax element may also be a syntax element in the geometry block header information (Geometry Block Head, GBH). In this case, the value of the first syntax element may be written into the geometry block header information, and then the geometry block header information may be encoded, and the obtained coded bits may be written into the bitstream.
这样,在确定出N的取值之后,可以确定第一门限值和第二门限值,进而可以确定方位角参数的修正重建值所需满足的预设范围。In this way, after determining the value of N, the first threshold value and the second threshold value can be determined, and then the preset range that the corrected reconstructed value of the azimuth parameter needs to satisfy can be determined.
在一些实施例中,在确定方位角参数的修正重建值时,该方法还可以包括:In some embodiments, when determining the corrected reconstruction value of the azimuth parameter, the method may further include:
在方位角参数的重建值小于或等于第一门限值时,根据第一门限值与第五数值,确定方位角参数的修正重建值;When the reconstructed value of the azimuth parameter is less than or equal to the first threshold value, determining a corrected reconstructed value of the azimuth parameter according to the first threshold value and the fifth value;
在方位角参数的重建值大于第二门限值时,根据第二门限值,确定方位角参数的修正重建值。When the reconstructed value of the azimuth parameter is greater than the second threshold value, a corrected reconstructed value of the azimuth parameter is determined according to the second threshold value.
需要说明的是,在本申请实施例中,第一门限值与第二门限值均为整数。如果方位角参数的重建值小于或等于第一门限值,那么可以将方位角参数的修正重建值设置为第一门限值与第五数值的和值;如果方位角参数的重建值大于第二门限值,那么可以将方位角参数的修正重建值设置为第二门限值。其中,第五数值也为整数,这里可以设置为1,但不作具体限定。It should be noted that in the embodiment of the present application, the first threshold value and the second threshold value are both integers. If the reconstructed value of the azimuth parameter is less than or equal to the first threshold value, then the corrected reconstructed value of the azimuth parameter can be set to the sum of the first threshold value and the fifth value; if the reconstructed value of the azimuth parameter is greater than the second threshold value, then the corrected reconstructed value of the azimuth parameter can be set to the second threshold value. Among them, the fifth value is also an integer, which can be set to 1 here, but is not specifically limited.
还需要说明的是,在本申请实施例中,第一门限值可以为第二门限值可以为具体的整数化计算方式同上。其中,如果那么第一门限值也可以为-2N-1,第二门限值也可以为2N-1。It should also be noted that in the embodiment of the present application, the first threshold value can be The second threshold value can be The specific integer calculation method is the same as above. Then the first threshold value may also be -2 N-1 , and the second threshold value may also be 2 N-1 .
在一种具体的实施例中,对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,可以包括:
In a specific embodiment, performing correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter may include:
其中,表示方位角参数的重建值,表示方位角参数的修正重建值;round(.)表示取整函数,表示第一精度,且N为整数。in, represents the reconstructed value of the azimuth parameter, represents the corrected reconstructed value of the azimuth parameter; round(.) represents the rounding function, represents the first precision, and N is an integer.
进一步地,在一些实施例中,该方法还可以包括:在方位角参数的重建值大于第一门限值且小于或等于第二门限值时,将方位角参数的重建值确定为方位角参数的修正重建值。也就是说,在本申请实施例中,如果这时候 Furthermore, in some embodiments, the method may further include: when the reconstructed value of the azimuth parameter is greater than the first threshold value and less than or equal to the second threshold value, determining the reconstructed value of the azimuth parameter as the corrected reconstructed value of the azimuth parameter. That is, in the embodiment of the present application, if At this time
还需要说明的是,在本申请实施例中,对于相关技术中的边界溢出情况,此时在当前点的方位角参数非常接近或者等于-π/π时出现。虽然相关技术已经提出了一种条件判断方式,具体如下:
It should also be noted that, in the embodiment of the present application, for the boundary overflow in the related art, it occurs when the azimuth parameter of the current point is very close to or equal to -π/π. Although the related art has proposed a conditional judgment method, which is as follows:
但是在相关技术中,针对溢出边界的-π附近的方位角参数的重建值,相关技术是将其修正到π附近,具体为针对溢出边界的π附近的方位角参数的重建值,相关技术是将其修正到-π附近,具体为虽然对于当前点来说,方位角参数的重建值没有问题,但是针对当前点的下一点来说不太友好。基于此,本申请实施例提出了一种具有良好效果的修正方式,针对溢出边界的-π附近的方位角参数的重建值,本技术方案是将其修正到-π附近,具体为针对溢出边界的π附近的方位角参数的重建值,本技术方案是将其修正到π附近,具体为 However, in the related art, for the reconstructed value of the azimuth parameter near -π that overflows the boundary, the related art corrects it to near π, specifically: For the reconstructed value of the azimuth parameter near π that overflows the boundary, the related technology is to correct it to near -π, specifically: Although the reconstructed value of the azimuth parameter is fine for the current point, it is not very friendly for the next point of the current point. Based on this, the embodiment of the present application proposes a correction method with good effect. For the reconstructed value of the azimuth parameter near -π that overflows the boundary, the technical solution is to correct it to near -π, specifically: For the reconstructed value of the azimuth parameter near π that overflows the boundary, this technical solution is to correct it to near π, specifically:
进一步地,本申请实施例还提供了一种码流,该码流是根据待编码信息进行比特编码生成的;其中,待编码信息包括下述至少一项:当前点云中当前点的方位角因子、第一语法元素的取值和第二语法元素的取值;其中,方位角因子包括第一因子和第二因子,第一语法元素和第二语法元素属于几何参数集中的两个语法元素。Furthermore, an embodiment of the present application also provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least one of the following: an azimuth factor of a current point in a current point cloud, a value of a first syntax element, and a value of a second syntax element; wherein the azimuth factor includes a first factor and a second factor, and the first syntax element and the second syntax element are two syntax elements in a geometric parameter set.
在本申请实施例中,第一语法元素可以用geom_angular_azimuth_scale_log2表示,第二语法元素可以用geom_angular_azimuth_speed_minus1表示。In the embodiment of the present application, the first syntax element can be represented by geom_angular_azimuth_scale_log2, and the second syntax element can be represented by geom_angular_azimuth_speed_minus1.
本实施例提供了一种编码方法,确定当前点云中当前点的方位角参数的预测残差;根据方位角参数的预测残差,确定方位角参数的重建值;以及对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。这样,通过对方位角参数的重建值进行修正处理,可以使得方位角参数的修正重建值满足预设范围,从而不仅能够避免方位角参数的边界溢出情况,使其限定在一个预设范围内,同时还能够提高方位角重建的准确度,提升编解码效率,进而还能够提升编解码性能。This embodiment provides a coding method, which determines the prediction residual of the azimuth parameter of the current point in the current point cloud; determines the reconstruction value of the azimuth parameter according to the prediction residual of the azimuth parameter; and performs correction processing on the reconstruction value of the azimuth parameter to determine the corrected reconstruction value of the azimuth parameter, wherein the corrected reconstruction value of the azimuth parameter satisfies a preset range. In this way, by performing correction processing on the reconstruction value of the azimuth parameter, the corrected reconstruction value of the azimuth parameter can be made to meet the preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving the encoding and decoding efficiency, and further improving the encoding and decoding performance.
在本申请的又一实施例中,在G-PCC框架的具体实现中,方位角参数其中,round(.)是四舍五入到最近的整数值函数,atan2(.)是求y/x的反正切函数;是的内部精度;N由几何参数集中的geom_angular_azimuth_scale_log2提供。In another embodiment of the present application, in the specific implementation of the G-PCC framework, the azimuth parameter Among them, round(.) is a function that rounds to the nearest integer value, and atan2(.) is a function that finds the inverse tangent of y/x; yes The internal precision of ; N is provided by geom_angular_azimuth_scale_log2 in the geometry parameter set.
进一步地,方位角的预测残差其中,为方位角的预测值;为方位角的采样间隔,通过GPS中的geom_angular_azimuth_speed_minus1提供; 由于是已知的,编码可以转换为编码n和量化后的也即方位角参数的重建值为反量化的 Furthermore, the prediction residual of the azimuth in, is the predicted value of the azimuth; The sampling interval of the azimuth angle is provided by geom_angular_azimuth_speed_minus1 in GPS; because is known, coded Can be converted to coded n and quantized That is Reconstructed values of azimuth parameters For dequantization
需要说明的是,由于的量化会导致原始方位角在和的输入点的重建方位角有可能超出(-π,π]。为了处理这种边界溢出情况,一种可能的实现方式是在得到当前点在柱面坐标下的重建值之后,对方位角的重建值进行一个条件判断,即 由于非常小,例如G-PCC标准旋转激光雷达数据集中的Ford序列的是0.09°,边界溢出情况只会在输入点的方位角非常接近或者等于-π/π时出现。因此这种实现方式对于溢出情况的处理是不合理的。It should be noted that due to Quantization of the original azimuth will result in and The reconstructed azimuth of the input point may exceed (-π,π]. In order to deal with this boundary overflow, a possible implementation method is to obtain the reconstructed value of the current point in cylindrical coordinates. Afterwards, the reconstructed value of the azimuth Make a conditional judgment, that is because Very small, such as the Ford sequence in the G-PCC standard rotation lidar dataset The value is 0.09°, and the boundary overflow will only occur when the azimuth of the input point is very close to or equal to -π/π. Therefore, this implementation is not reasonable for handling overflow.
在另一种可能的实现方式中,基于前述实施例的编解码方法,这里提出了一种方位角重建值的处理 方式,编码端和解码端相同。In another possible implementation, based on the encoding and decoding method of the above embodiment, a processing method for reconstructing the azimuth angle is proposed here. The encoding and decoding ends are the same.
其中,方位角的取值范围是(-π,π]。编解码过程中为一定精度的定点数,其取值范围为其中,round(.)是四舍五入取整操作;与的整数化精度相关,N=geom_angular_azimuth_scale_log2+12,geom_angular_azimuth_scale_log2为几何参数集(GPS)中的语法元素。Among them, the azimuth The value range is (-π,π]. During the encoding and decoding process is a fixed-point number with a certain precision, and its value range is Among them, round(.) is a rounding operation; and It is related to the integer precision, N=geom_angular_azimuth_scale_log2+12, geom_angular_azimuth_scale_log2 is a syntax element in the geometry parameter set (GPS).
这样,编码器/解码器经过一系列编解码操作后,得到当前点在柱面坐标下的重建值如方位角的重建值rrec,具体如下:
In this way, after a series of encoding and decoding operations, the encoder/decoder obtains the reconstructed value of the current point in cylindrical coordinates. For example, the reconstructed value of the azimuth angle r rec is as follows:
其中,为方位角的预测值;为方位角的采样间隔,可以通过GPS中的geom_angular_azimuth_speed_minus1提供; 为反量化的 in, is the predicted value of the azimuth; The sampling interval of the azimuth angle can be provided by geom_angular_azimuth_speed_minus1 in GPS; For dequantization
针对方位角的重建值可以使其限定在范围内。示例性地,如下所示:
Reconstructed values for azimuth It can be limited to For example, as follows:
示例性地,以表1中的点云测试序列为例,以G-PCC的通用测试软件TMC13V21为基础,与相关技术相比,本技术在无损条件下,预测树的几何编码码流性能对比结果如表1所示。Exemplarily, taking the point cloud test sequence in Table 1 as an example, based on the general test software TMC13V21 of G-PCC, compared with the related technology, the geometric coding bitstream performance comparison results of the prediction tree under lossless conditions are shown in Table 1.
表1
Table 1
根据表1可以看出,本技术在这些点云测试序列的几何码流均具有一些增益,提高了编解码性能。It can be seen from Table 1 that the technology has some gains in the geometric code streams of these point cloud test sequences, improving the encoding and decoding performance.
在本申请实施例中,通过上述实施例对前述实施例的具体实现进行详细阐述,从中可以看出,根据前述实施例的技术方案,通过对方位角参数的重建值进行修正处理,可以使得方位角参数的修正重建值满足预设范围,从而不仅能够避免方位角参数的边界溢出情况,使其限定在一个预设范围内,同时还能够提高方位角重建的准确度,提升编解码效率,进而还能够提升编解码性能。In the embodiments of the present application, the specific implementation of the aforementioned embodiments is elaborated in detail through the above embodiments. It can be seen that according to the technical scheme of the aforementioned embodiments, by correcting the reconstructed value of the azimuth parameter, the corrected reconstructed value of the azimuth parameter can meet the preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving the encoding and decoding efficiency, and further improving the encoding and decoding performance.
在本申请的再一实施例中,基于前述实施例相同的发明构思,参见图10,其示出了本申请实施例提供的一种编码器的组成结构示意图。如图10所示,该编码器100可以包括第一确定单元1001和第一修正单元1002,其中:In another embodiment of the present application, based on the same inventive concept as the above-mentioned embodiment, referring to FIG10 , a schematic diagram of the composition structure of an encoder provided in an embodiment of the present application is shown. As shown in FIG10 , the encoder 100 may include a first determining unit 1001 and a first correcting unit 1002, wherein:
第一确定单元1001,配置为确定当前点云中当前点的方位角参数的预测残差;以及根据方位角参数的预测残差,确定方位角参数的重建值;The first determining unit 1001 is configured to determine a prediction residual of an azimuth parameter of a current point in a current point cloud; and determine a reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter;
第一修正单元1002,配置为对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。The first correction unit 1002 is configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
在一些实施例中,方位角参数的修正重建值满足预设范围,包括:方位角参数的修正重建值大于第一门限值且小于或等于第二门限值,其中,第一门限值与第二门限值均为整数。In some embodiments, the corrected reconstructed value of the azimuth parameter satisfies a preset range, including: the corrected reconstructed value of the azimuth parameter is greater than a first threshold value and less than or equal to a second threshold value, wherein the first threshold value and the second threshold value are both integers.
在一些实施例中,第一确定单元1001,还配置为对第一数值进行整数化操作,确定第一门限值;对第二数值进行整数化操作,确定第二门限值;其中,第一数值为-π与第一精度的比值,第二数值为π与第一精度的比值。In some embodiments, the first determination unit 1001 is further configured to perform an integer operation on the first numerical value to determine a first threshold value; perform an integer operation on the second numerical value to determine a second threshold value; wherein the first numerical value is the ratio of -π to the first precision, and the second numerical value is the ratio of π to the first precision.
在一些实施例中,第一精度与几何参数集中的第一语法元素的取值相关。In some embodiments, the first precision is related to a value of a first syntax element in the geometry parameter set.
在一些实施例中,预设范围为其中,round(.)表示取整函数,表示第一精度,且N为大于或等于0的整数。In some embodiments, the preset range is Among them, round(.) represents the rounding function, represents the first precision, and N is an integer greater than or equal to 0.
在一些实施例中,预设范围为(-2N-1,2N-1];其中,N为大于或等于0的整数。 In some embodiments, the preset range is (-2 N-1 ,2 N-1 ]; wherein N is an integer greater than or equal to 0.
在一些实施例中,参见图10,编码器100还可以包括编码单元1003,其中:In some embodiments, referring to FIG. 10 , the encoder 100 may further include an encoding unit 1003, wherein:
第一确定单元1001,还配置为根据N的取值与第三数值,确定第一语法元素的取值;The first determining unit 1001 is further configured to determine a value of the first syntax element according to the value of N and the third value;
编码单元1003,配置为对第一语法元素的取值进行编码处理,将所得到的编码比特写入码流。The encoding unit 1003 is configured to perform encoding processing on the value of the first syntax element and write the obtained encoding bits into the bitstream.
在一些实施例中,编码单元1003,还配置为将第一语法元素的取值写入几何参数集;对几何参数集进行编码处理,将所得到的编码比特写入码流。In some embodiments, the encoding unit 1003 is further configured to write the value of the first syntax element into a geometric parameter set; perform encoding processing on the geometric parameter set, and write the obtained coded bits into a bitstream.
在一些实施例中,第一确定单元1001,还配置为确定方位角参数的预测值;以及根据方位角参数的原始值与预测值,确定方位角参数的预测残差。In some embodiments, the first determination unit 1001 is further configured to determine a predicted value of the azimuth parameter; and determine a prediction residual of the azimuth parameter based on the original value and the predicted value of the azimuth parameter.
在一些实施例中,编码单元1003,还配置为对方位角参数的预测残差进行编码处理,将所得到的编码比特写入码流。In some embodiments, the encoding unit 1003 is further configured to perform encoding processing on the prediction residual of the azimuth parameter, and write the obtained encoding bits into the bitstream.
在一些实施例中,第一确定单元1001,还配置为根据方位角参数的预测残差,确定当前点的方位角因子;In some embodiments, the first determining unit 1001 is further configured to determine the azimuth factor of the current point according to the prediction residual of the azimuth parameter;
编码单元1003,还配置为对方位角因子进行编码处理,将所得到的编码比特写入码流。The encoding unit 1003 is further configured to perform encoding processing on the azimuth factor and write the obtained encoding bits into the bit stream.
在一些实施例中,方位角因子包括第一因子和第二因子;第一确定单元1001,还配置为确定方位角参数的采样间隔;根据预测残差和采样间隔,确定第一因子;根据预测残差和第一因子与采样间隔的乘积,确定预设补偿值;以及对预设补偿值进行量化处理,确定第二因子。In some embodiments, the azimuth factor includes a first factor and a second factor; the first determination unit 1001 is further configured to determine a sampling interval of the azimuth parameter; determine the first factor based on the prediction residual and the sampling interval; determine a preset compensation value based on the prediction residual and the product of the first factor and the sampling interval; and quantize the preset compensation value to determine the second factor.
在一些实施例中,第一确定单元1001,还配置为根据方位角参数的采样间隔与第四数值,确定第二语法元素的取值;In some embodiments, the first determining unit 1001 is further configured to determine a value of the second syntax element according to the sampling interval of the azimuth parameter and the fourth value;
编码单元1003,还配置为对第二语法元素的取值进行编码处理,将所得到的编码比特写入码流。The encoding unit 1003 is further configured to perform encoding processing on the value of the second syntax element and write the obtained encoding bits into the bitstream.
在一些实施例中,编码单元1003,还配置为将第二语法元素的取值写入几何参数集;对几何参数集进行编码处理,将所得到的编码比特写入码流。In some embodiments, the encoding unit 1003 is further configured to write the value of the second syntax element into a geometric parameter set; perform encoding processing on the geometric parameter set, and write the obtained encoding bits into the bitstream.
在一些实施例中,第一确定单元1001,还配置为确定方位角参数的预测值;以及根据预测值与预测残差,确定方位角参数的重建值。In some embodiments, the first determination unit 1001 is further configured to determine a predicted value of the azimuth parameter; and determine a reconstructed value of the azimuth parameter based on the predicted value and the prediction residual.
在一些实施例中,第一修正单元1002,还配置为在方位角参数的重建值小于或等于第一门限值时,根据第一门限值与第五数值,确定方位角参数的修正重建值;在方位角参数的重建值大于第二门限值时,根据第二门限值,确定方位角参数的修正重建值;其中,第一门限值与第二门限值均为整数。In some embodiments, the first correction unit 1002 is further configured to determine the corrected reconstruction value of the azimuth parameter based on the first threshold value and the fifth value when the reconstructed value of the azimuth parameter is less than or equal to the first threshold value; and to determine the corrected reconstruction value of the azimuth parameter based on the second threshold value when the reconstructed value of the azimuth parameter is greater than the second threshold value; wherein the first threshold value and the second threshold value are both integers.
在一些实施例中,第一修正单元1002,还配置为对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,包括:
In some embodiments, the first correction unit 1002 is further configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, including:
其中,表示方位角参数的重建值,表示方位角参数的修正重建值;round(.)表示取整函数,表示第一精度,且N为整数。in, represents the reconstructed value of the azimuth parameter, represents the corrected reconstructed value of the azimuth parameter; round(.) represents the rounding function, represents the first precision, and N is an integer.
在一些实施例中,第一修正单元1002,还配置为在方位角参数的重建值大于第一门限值且小于或等于第二门限值时,将方位角参数的重建值确定为方位角参数的修正重建值。In some embodiments, the first correction unit 1002 is further configured to determine the reconstructed value of the azimuth parameter as the corrected reconstructed value of the azimuth parameter when the reconstructed value of the azimuth parameter is greater than the first threshold value and less than or equal to the second threshold value.
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。It is understandable that in the embodiments of the present application, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course, it may be a module, or it may be non-modular. Moreover, the components in the present embodiment may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of a software functional module.
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server, or network device, etc.) or a processor to perform all or part of the steps of the method described in this embodiment. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc., various media that can store program codes.
因此,本申请实施例提供了一种计算机可读存储介质,应用于编码器100,该计算机可读存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现前述实施例中任一项所述的方法。Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the encoder 100. The computer-readable storage medium stores a computer program, and when the computer program is executed by the first processor, the method described in any one of the aforementioned embodiments is implemented.
基于上述编码器100的组成以及计算机可读存储介质,参见图11,其示出了本申请实施例提供的编码器100的具体硬件结构示意图。如图11所示,编码器100可以包括:第一通信接口1101、第一存储器1102和第一处理器1103;各个组件通过第一总线系统1104耦合在一起。可理解,第一总线系统1104用于实现这些组件之间的连接通信。第一总线系统1104除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为第一总线系统1104。 其中:Based on the composition of the above-mentioned encoder 100 and the computer-readable storage medium, see Figure 11, which shows a specific hardware structure diagram of the encoder 100 provided in an embodiment of the present application. As shown in Figure 11, the encoder 100 may include: a first communication interface 1101, a first memory 1102 and a first processor 1103; each component is coupled together through a first bus system 1104. It can be understood that the first bus system 1104 is used to realize the connection communication between these components. In addition to the data bus, the first bus system 1104 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as the first bus system 1104 in Figure 11. in:
第一通信接口1101,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;The first communication interface 1101 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
第一存储器1102,用于存储能够在第一处理器1103上运行的计算机程序;A first memory 1102, used to store a computer program that can be run on the first processor 1103;
第一处理器1103,用于在运行所述计算机程序时,执行:The first processor 1103 is configured to, when running the computer program, execute:
确定当前点云中当前点的方位角参数的预测残差;Determine the prediction residual of the azimuth parameter of the current point in the current point cloud;
根据方位角参数的预测残差,确定方位角参数的重建值;Determine the reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter;
对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。The reconstructed value of the azimuth parameter is corrected to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
可以理解,本申请实施例中的第一存储器1102可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的第一存储器1102旨在包括但不限于这些和任意其它适合类型的存储器。It can be understood that the first memory 1102 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 RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDRSDRAM), enhanced synchronous DRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (DRRAM). The first memory 1102 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
而第一处理器1103可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器1103中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器1103可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器1102,第一处理器1103读取第一存储器1102中的信息,结合其硬件完成上述方法的步骤。The first processor 1103 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit or software instructions in the first processor 1103. The above-mentioned first processor 1103 can be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application-specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to execute, or the hardware and software modules in the decoding processor can be executed. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the first memory 1102, and the first processor 1103 reads the information in the first memory 1102 and completes the steps of the above method in combination with its hardware.
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。It is understood that the embodiments described in this application can be implemented in 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 (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general 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 a module (such as a process, function, etc.) that performs 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 outside the processor.
可选地,作为另一个实施例,第一处理器1103还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。Optionally, as another embodiment, the first processor 1103 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.
本实施例提供了一种编码器,在该编码器中,通过对方位角参数的重建值进行修正处理,可以使得方位角参数的修正重建值满足预设范围,从而不仅能够避免方位角参数的边界溢出情况,使其限定在一个预设范围内,同时还能够提高方位角重建的准确度,提升编解码效率,进而还能够提升编解码性能。The present embodiment provides an encoder in which the reconstructed value of the azimuth parameter is corrected so that the corrected reconstructed value of the azimuth parameter meets a preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving encoding and decoding efficiency, and further improving encoding and decoding performance.
在本申请的再一实施例中,基于前述实施例相同的发明构思,参见图12,其示出了本申请实施例提供的一种解码器的组成结构示意图。如图12所示,该解码器120可以包括解码单元1201、第二确定单元1202和第二修正单元1203,其中:In another embodiment of the present application, based on the same inventive concept as the above-mentioned embodiment, refer to FIG12 , which shows a schematic diagram of the composition structure of a decoder provided in an embodiment of the present application. As shown in FIG12 , the decoder 120 may include a decoding unit 1201, a second determining unit 1202, and a second correcting unit 1203, wherein:
解码单元1201,配置为解码码流,当前点云中当前点的方位角因子;A decoding unit 1201 is configured to decode a bit stream, an azimuth factor of a current point in a current point cloud;
第二确定单元1202,配置为根据方位角因子,确定当前点的方位角参数的预测残差;根据方位角参数的预测残差,确定方位角参数的重建值;The second determining unit 1202 is configured to determine the prediction residual of the azimuth parameter of the current point according to the azimuth factor; and determine the reconstructed value of the azimuth parameter according to the prediction residual of the azimuth parameter;
第二修正单元1203,配置为对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。The second correction unit 1203 is configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
在一些实施例中,方位角参数的修正重建值满足预设范围,包括:方位角参数的修正重建值大于第一门限值且小于或等于第二门限值,其中,第一门限值与第二门限值均为整数。 In some embodiments, the corrected reconstructed value of the azimuth parameter satisfies a preset range, including: the corrected reconstructed value of the azimuth parameter is greater than a first threshold value and less than or equal to a second threshold value, wherein the first threshold value and the second threshold value are both integers.
在一些实施例中,第二确定单元1202,还配置为对第一数值进行整数化操作,确定第一门限值;对第二数值进行整数化操作,确定第二门限值;其中,第一数值为-π与第一精度的比值,第二数值为π与第一精度的比值。In some embodiments, the second determination unit 1202 is further configured to perform an integer operation on the first numerical value to determine a first threshold value; perform an integer operation on the second numerical value to determine a second threshold value; wherein the first numerical value is the ratio of -π to the first precision, and the second numerical value is the ratio of π to the first precision.
在一些实施例中,第一精度与几何参数集中的第一语法元素的取值相关。In some embodiments, the first precision is related to a value of a first syntax element in the geometry parameter set.
在一些实施例中,预设范围为其中,round(.)表示取整函数,表示第一精度,且N为大于或等于0的整数。In some embodiments, the preset range is Among them, round(.) represents the rounding function, represents the first precision, and N is an integer greater than or equal to 0.
在一些实施例中,预设范围为(-2N-1,2N-1];其中,N为大于或等于0的整数。In some embodiments, the preset range is (-2 N-1 ,2 N-1 ]; wherein N is an integer greater than or equal to 0.
在一些实施例中,第二确定单元1202,还配置为确定第一语法元素的取值;以及根据第一语法元素的取值与第三数值,确定N的取值。In some embodiments, the second determining unit 1202 is further configured to determine a value of the first syntax element; and determine a value of N according to the value of the first syntax element and the third numerical value.
在一些实施例中,解码单元1201,还配置为解码码流,确定几何参数集;In some embodiments, the decoding unit 1201 is further configured to decode the bitstream and determine the geometry parameter set;
第二确定单元1202,还配置为从几何参数集中,确定第一语法元素的取值。The second determination unit 1202 is further configured to determine a value of the first syntax element from the geometry parameter set.
在一些实施例中,方位角因子包括第一因子和第二因子;第二确定单元1202,还配置为确定方位角参数的采样间隔;根据第一因子和采样间隔,确定方位角参数的第一残差值;对第二因子进行反量化处理,确定方位角参数的第二残差值;根据方位角参数的第一残差值和第二残差值,确定方位角参数的预测残差。In some embodiments, the azimuth factor includes a first factor and a second factor; the second determination unit 1202 is further configured to determine a sampling interval of the azimuth parameter; determine a first residual value of the azimuth parameter based on the first factor and the sampling interval; perform inverse quantization on the second factor to determine a second residual value of the azimuth parameter; determine a predicted residual of the azimuth parameter based on the first residual value and the second residual value of the azimuth parameter.
在一些实施例中,第二确定单元1202,还配置为确定第二语法元素的取值;根据第二语法元素的取值与第四数值,确定方位角参数的采样间隔。In some embodiments, the second determining unit 1202 is further configured to determine a value of a second syntax element; and determine a sampling interval of the azimuth parameter according to the value of the second syntax element and a fourth numerical value.
在一些实施例中,解码单元1201,还配置为解码码流,确定几何参数集;In some embodiments, the decoding unit 1201 is further configured to decode the bitstream and determine the geometry parameter set;
第二确定单元1202,还配置为从几何参数集中,确定第二语法元素的取值。The second determination unit 1202 is further configured to determine a value of a second syntax element from a geometric parameter set.
在一些实施例中,第二确定单元1202,还配置为确定方位角参数的预测值;以及根据预测值与预测残差,确定方位角参数的重建值。In some embodiments, the second determination unit 1202 is further configured to determine a predicted value of the azimuth parameter; and determine a reconstructed value of the azimuth parameter based on the predicted value and the prediction residual.
在一些实施例中,第二修正单元1203,还配置为在方位角参数的重建值小于或等于第一门限值时,根据第一门限值与第五数值,确定方位角参数的修正重建值;在方位角参数的重建值大于第二门限值时,根据第二门限值,确定方位角参数的修正重建值;其中,第一门限值与第二门限值均为整数。In some embodiments, the second correction unit 1203 is further configured to determine the corrected reconstruction value of the azimuth parameter based on the first threshold value and the fifth value when the reconstructed value of the azimuth parameter is less than or equal to the first threshold value; and to determine the corrected reconstruction value of the azimuth parameter based on the second threshold value when the reconstructed value of the azimuth parameter is greater than the second threshold value; wherein the first threshold value and the second threshold value are both integers.
在一些实施例中,第二修正单元1203,还配置为对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,包括:
In some embodiments, the second correction unit 1203 is further configured to perform correction processing on the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter, including:
其中,表示方位角参数的重建值,表示方位角参数的修正重建值;round(.)表示取整函数,表示第一精度,且N为整数。in, represents the reconstructed value of the azimuth parameter, Indicates the corrected reconstructed value of the azimuth parameter; round(.) indicates the rounding function, represents the first precision, and N is an integer.
在一些实施例中,第二修正单元1203,还配置为在方位角参数的重建值大于第一门限值且小于或等于第二门限值时,将方位角参数的重建值确定为方位角参数的修正重建值。In some embodiments, the second correction unit 1203 is further configured to determine the reconstructed value of the azimuth parameter as the corrected reconstructed value of the azimuth parameter when the reconstructed value of the azimuth parameter is greater than the first threshold value and less than or equal to the second threshold value.
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。It can be understood that in this embodiment, a "unit" can be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course it can also be a module, or it can be non-modular. Moreover, the components in this embodiment can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of a software functional module.
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例提供了一种计算机可读存储介质,应用于解码器120,该计算机可读存储介质存储有计算机程序,所述计算机程序被第二处理器执行时实现前述实施例中任一项所述的方法。If the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, this embodiment provides a computer-readable storage medium, which is applied to the decoder 120, and the computer-readable storage medium stores a computer program. When the computer program is executed by the second processor, the method described in any one of the above embodiments is implemented.
基于上述解码器120的组成以及计算机可读存储介质,参见图13,其示出了本申请实施例提供的解码器120的具体硬件结构示意图。如图13所示,解码器120可以包括:第二通信接口1301、第二存储器1302和第二处理器1303;各个组件通过第二总线系统1304耦合在一起。可理解,第二总线系统1304用于实现这些组件之间的连接通信。第二总线系统1304除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图13中将各种总线都标为第二总线系统1304。其中,Based on the composition of the above-mentioned decoder 120 and the computer-readable storage medium, refer to Figure 13, which shows a specific hardware structure diagram of the decoder 120 provided in an embodiment of the present application. As shown in Figure 13, the decoder 120 may include: a second communication interface 1301, a second memory 1302 and a second processor 1303; each component is coupled together through a second bus system 1304. It can be understood that the second bus system 1304 is used to realize the connection and communication between these components. In addition to the data bus, the second bus system 1304 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as the second bus system 1304 in Figure 13. Among them,
第二通信接口1301,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;The second communication interface 1301 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
第二存储器1302,用于存储能够在第二处理器1303上运行的计算机程序;The second memory 1302 is used to store a computer program that can be run on the second processor 1303;
第二处理器1303,用于在运行所述计算机程序时,执行:The second processor 1303 is configured to, when running the computer program, execute:
解码码流,确定当前点云中当前点的方位角因子; Decode the code stream and determine the azimuth factor of the current point in the current point cloud;
根据方位角因子,确定当前点的方位角参数的预测残差;According to the azimuth factor, the prediction residual of the azimuth parameter of the current point is determined;
根据方位角参数的预测残差,确定方位角参数的重建值;以及对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值,其中,方位角参数的修正重建值满足预设范围。Determine a reconstructed value of the azimuth parameter according to a prediction residual of the azimuth parameter; and perform correction processing on the reconstructed value of the azimuth parameter to determine a corrected reconstructed value of the azimuth parameter, wherein the corrected reconstructed value of the azimuth parameter satisfies a preset range.
可选地,作为另一个实施例,第二处理器1303还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。Optionally, as another embodiment, the second processor 1303 is further configured to execute any one of the methods described in the foregoing embodiments when running the computer program.
可以理解,第二存储器1302与第一存储器1102的硬件功能类似,第二处理器1303与第一处理器1103的硬件功能类似;这里不再详述。It can be understood that the hardware functions of the second memory 1302 and the first memory 1102 are similar, and the hardware functions of the second processor 1303 and the first processor 1103 are similar; they will not be described in detail here.
本实施例提供了一种解码器,在该解码器中,通过对方位角参数的重建值进行修正处理,可以使得方位角参数的修正重建值满足预设范围,从而不仅能够避免方位角参数的边界溢出情况,使其限定在一个预设范围内,同时还能够提高方位角重建的准确度,提升编解码效率,进而还能够提升编解码性能。The present embodiment provides a decoder in which the reconstructed value of the azimuth parameter is corrected so that the corrected reconstructed value of the azimuth parameter meets a preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving encoding and decoding efficiency, and further improving encoding and decoding performance.
在本申请的再一实施例中,参见图14,其示出了本申请实施例提供的一种编解码系统的组成结构示意图。如图14所示,编解码系统140可以包括编码器1401和解码器1402。In yet another embodiment of the present application, referring to FIG14 , a schematic diagram of the composition structure of a coding and decoding system provided in an embodiment of the present application is shown. As shown in FIG14 , the coding and decoding system 140 may include an encoder 1401 and a decoder 1402 .
在本申请实施例中,编码器1401可以为前述实施例中任一项所述的编码器,解码器1402可以为前述实施例中任一项所述的解码器。In the embodiment of the present application, the encoder 1401 may be the encoder described in any one of the aforementioned embodiments, and the decoder 1402 may be the decoder described in any one of the aforementioned embodiments.
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。It should be noted that, in this application, the terms "include", "comprises" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "includes a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。The serial numbers of the above-mentioned embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。The methods disclosed in several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。The features disclosed in several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。The features disclosed in several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.
本申请实施例中,无论是在编码端还是解码端,在确定当前点云中当前点的方位角参数的预测残差之后,根据方位角参数的预测残差,确定方位角参数的重建值;对方位角参数的重建值进行修正处理,确定方位角参数的修正重建值。其中,在解码端,具体是解码码流,确定当前点云中当前点的方位角因子;根据方位角因子来确定当前点的方位角参数的预测残差。这样,通过对方位角参数的重建值进行修正处理,可以使得方位角参数的修正重建值满足预设范围,从而不仅能够避免方位角参数的边界溢出情况,使其限定在一个预设范围内,同时还能够提高方位角重建的准确度,提升编解码效率,进而还能够提升编解码性能。 In an embodiment of the present application, whether at the encoding end or the decoding end, after determining the prediction residual of the azimuth parameter of the current point in the current point cloud, the reconstructed value of the azimuth parameter is determined according to the prediction residual of the azimuth parameter; the reconstructed value of the azimuth parameter is corrected to determine the corrected reconstructed value of the azimuth parameter. Among them, at the decoding end, specifically the decoded code stream is determined to determine the azimuth factor of the current point in the current point cloud; the prediction residual of the azimuth parameter of the current point is determined according to the azimuth factor. In this way, by correcting the reconstructed value of the azimuth parameter, the corrected reconstructed value of the azimuth parameter can meet the preset range, thereby not only avoiding the boundary overflow of the azimuth parameter and limiting it to a preset range, but also improving the accuracy of azimuth reconstruction, improving the encoding and decoding efficiency, and further improving the encoding and decoding performance.
Claims (39)
The method according to claim 13, wherein the correcting the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter comprises:
The method according to claim 31, wherein the correcting the reconstructed value of the azimuth parameter to determine the corrected reconstructed value of the azimuth parameter comprises:
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202380097487.7A CN121058248A (en) | 2023-07-07 | 2023-07-07 | Encoding/decoding method, code stream, encoder, decoder, and storage medium |
| PCT/CN2023/106342 WO2025010541A1 (en) | 2023-07-07 | 2023-07-07 | Encoding method, decoding method, code stream, encoder, decoder, and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/106342 WO2025010541A1 (en) | 2023-07-07 | 2023-07-07 | Encoding method, decoding method, code stream, encoder, decoder, and storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025010541A1 true WO2025010541A1 (en) | 2025-01-16 |
Family
ID=94214540
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/106342 Pending WO2025010541A1 (en) | 2023-07-07 | 2023-07-07 | Encoding method, decoding method, code stream, encoder, decoder, and storage medium |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN121058248A (en) |
| WO (1) | WO2025010541A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2022213570A1 (en) * | 2021-04-08 | 2022-10-13 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head |
| CN115412717A (en) * | 2021-05-26 | 2022-11-29 | 荣耀终端有限公司 | A method and device for predictive encoding and decoding of point cloud azimuth information |
| CN115702441A (en) * | 2020-06-26 | 2023-02-14 | 高通股份有限公司 | Ordered laser angles for geometry-based point cloud compression (G-PCC) |
-
2023
- 2023-07-07 CN CN202380097487.7A patent/CN121058248A/en active Pending
- 2023-07-07 WO PCT/CN2023/106342 patent/WO2025010541A1/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115702441A (en) * | 2020-06-26 | 2023-02-14 | 高通股份有限公司 | Ordered laser angles for geometry-based point cloud compression (G-PCC) |
| WO2022213570A1 (en) * | 2021-04-08 | 2022-10-13 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head |
| CN115412717A (en) * | 2021-05-26 | 2022-11-29 | 荣耀终端有限公司 | A method and device for predictive encoding and decoding of point cloud azimuth information |
Also Published As
| Publication number | Publication date |
|---|---|
| CN121058248A (en) | 2025-12-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN115474041B (en) | Point cloud attribute prediction method, device and related equipment | |
| WO2021062772A1 (en) | Prediction method, encoder, decoder, and computer storage medium | |
| WO2022141461A1 (en) | Point cloud encoding and decoding method, encoder, decoder and computer storage medium | |
| CN114598883A (en) | Point cloud attribute prediction method, encoder, decoder and storage medium | |
| CN117793372A (en) | Prediction method, encoder, decoder, and computer storage medium | |
| WO2022188582A1 (en) | Method and apparatus for selecting neighbor point in point cloud, and codec | |
| WO2021062771A1 (en) | Color component prediction method, encoder, decoder, and computer storage medium | |
| WO2025185626A1 (en) | Point cloud attribute encoding method and apparatus, point cloud attribute decoding method and apparatus, device, storage medium, and program product | |
| CN117321991A (en) | Prediction method, device and codec for point cloud attributes | |
| CN116325732A (en) | Decoding and encoding method, decoder, encoder and encoding and decoding system of point cloud | |
| KR20230124673A (en) | Encoding method, decoding method, encoder and decoder of point cloud | |
| WO2025010541A1 (en) | Encoding method, decoding method, code stream, encoder, decoder, and storage medium | |
| WO2024159534A1 (en) | Encoding method, decoding method, bitstream, encoder, decoder and storage medium | |
| WO2024174086A1 (en) | Decoding method, encoding method, decoders and encoders | |
| WO2023123471A1 (en) | Encoding and decoding method, code stream, encoder, decoder, and storage medium | |
| WO2022170511A1 (en) | Point cloud decoding method, decoder, and computer storage medium | |
| WO2025007353A1 (en) | Encoding and decoding methods, code stream, encoder, decoder, and storage medium | |
| WO2022170521A1 (en) | Geometry reconstruction method, decoder and computer storage medium | |
| WO2025217849A1 (en) | Encoding/decoding method, point cloud encoder, point cloud decoder, and storage medium | |
| WO2024082127A1 (en) | Coding method, decoding method, code stream, coder, decoder, and storage medium | |
| WO2024082153A1 (en) | Encoding method, decoding method, code stream, encoder, decoder and storage medium | |
| WO2024148491A1 (en) | Encoding method, decoding method, code stream, encoder, decoder and storage medium | |
| WO2024082135A1 (en) | Encoding and decoding methods, encoder, decoder, code stream, and computer storage medium | |
| WO2024182978A1 (en) | Coding method, decoding method, code stream, coder, decoder and storage medium | |
| WO2023201450A1 (en) | Encoding method, decoding method, code stream, encoder, decoder, and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23944564 Country of ref document: EP Kind code of ref document: A1 |