WO2025007353A9 - 编解码方法、码流、编码器、解码器以及存储介质 - Google Patents
编解码方法、码流、编码器、解码器以及存储介质 Download PDFInfo
- Publication number
- WO2025007353A9 WO2025007353A9 PCT/CN2023/106176 CN2023106176W WO2025007353A9 WO 2025007353 A9 WO2025007353 A9 WO 2025007353A9 CN 2023106176 W CN2023106176 W CN 2023106176W WO 2025007353 A9 WO2025007353 A9 WO 2025007353A9
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point cloud
- current point
- azimuth
- prediction value
- value
- 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/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
Definitions
- the embodiments of the present application relate to the field of point cloud encoding and decoding technology, and in particular, to an encoding and decoding method, a bit stream, an encoder, a decoder, and a storage medium.
- the geometry information of the point cloud and the attribute information corresponding to the points in the point cloud are encoded separately.
- the coding and decoding of the geometry information can include octree-based geometry coding and decoding and prediction tree-based geometry coding and decoding.
- 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 the prediction effect, thereby improving the point cloud compression performance.
- an embodiment of the present application provides a decoding method, which is applied to a decoder, and the method includes:
- An initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and a prediction value of a midpoint of the current point cloud is determined according to the initial prediction value.
- an embodiment of the present application provides an encoding method, which is applied to an encoder, and the method includes:
- An initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and a prediction value of a midpoint of the current point cloud is determined according to the initial prediction value.
- 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:
- Initialize mode identification information azimuth sampling information, radial distance information, quantization parameters, quantized prediction residual, and mode identification information.
- an embodiment of the present application provides an encoder, the encoder comprising: a first determining unit and an encoding unit; wherein,
- the first determining unit is configured to determine azimuth sampling information corresponding to the current point cloud
- the encoding unit is configured to write the azimuth sampling information into a bit stream
- the first determination unit is further configured to determine an initial prediction value corresponding to the current point cloud according to azimuth sampling information corresponding to the current point cloud, and determine a prediction value of a midpoint of the current point cloud according to the initial prediction value.
- an embodiment of the present application provides an encoder, the encoder comprising a first memory and a first processor; wherein,
- the first memory is used to store a computer program that can be run on the first processor
- the first processor is used to execute the encoding method as described above when running the computer program.
- an embodiment of the present application provides a decoder, the decoder comprising: a decoding unit and a second determining unit; wherein:
- the decoding unit is configured to decode the code stream
- the second determination unit is configured to determine the azimuth sampling information corresponding to the current point cloud; determine the initial prediction value corresponding to the current point cloud according to the azimuth sampling information corresponding to the current point cloud, and determine the prediction value of the midpoint of the current point cloud according to the initial prediction value.
- an embodiment of the present application provides a decoder, the decoder comprising a second memory and a second processor; wherein:
- the second memory is used to store a computer program that can be run on the second processor
- the second processor is used to execute the decoding method as described above when running the 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 decoding method as described in the first aspect, or implements the encoding 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 code stream is decoded to determine the azimuth sampling information corresponding to the current point cloud; the initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined according to the initial prediction value.
- the azimuth sampling information corresponding to the current point cloud is determined, and the azimuth sampling information is written into the code stream; the initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined according to the initial prediction value.
- the corresponding initial prediction value can be determined by the azimuth sampling information corresponding to the current point cloud, which can fully consider the actual size of the azimuth of the root node of the current point cloud, and realize more reasonable initialization processing of the prediction value. That is to say, in the embodiment of the present application, the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
- FIG1 is a schematic diagram of a network architecture of point cloud encoding and decoding provided in an embodiment of the present application
- 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 geometric coding
- FIG5 is a schematic diagram of geometric decoding
- FIG6 is a schematic diagram of an arrangement of geometric information
- FIG. 7 is a schematic diagram of a first implementation flow of a point cloud decoding method proposed in an embodiment of the present application.
- FIG8 is a second schematic diagram of the implementation flow of the point cloud decoding method proposed in an embodiment of the present application.
- FIG9 is a third schematic diagram of the implementation flow of the point cloud decoding method proposed in an embodiment of the present application.
- FIG10 is a schematic diagram of a first implementation flow of a point cloud encoding method proposed in an embodiment of the present application.
- FIG. 11 is a second schematic diagram of the implementation flow of the point cloud encoding method proposed in an embodiment of the present application.
- FIG. 12 is a third schematic diagram of the implementation flow of the point cloud encoding method proposed in the embodiment of the present application.
- FIG13 is a schematic diagram of the structure of the encoder
- FIG14 is a second schematic diagram of the structure of the encoder
- FIG15 is a schematic diagram of the structure of a decoder
- FIG. 16 is a second schematic diagram of the structure of the decoder.
- PCC Point Cloud Compression
- G-PCC Geometry-based Point Cloud Compression
- V-PCC Video-based Point Cloud Compression
- LOD Level of Detail
- RAHT Region Adaptive Hierarchal Transform
- CABAC Context-based Adaptive Binary Arithmetic Coding
- CABAC Context-based Adaptive Binary Arithmetic Coding
- 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.
- a point cloud refers to a collection of massive three-dimensional points
- the points in the point cloud may include the location information of the points and the attribute information of the points.
- the location information of the points may be the three-dimensional coordinate information of the points.
- the location information of the points may also be referred to as the geometric information of the points.
- the attribute information of the points may include color information and/or reflectivity, etc.
- the color information may be information on any color space.
- the color information may be RGB information. Among them, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B).
- the color information may 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.
- a point cloud obtained by combining the principles of laser measurement and photogrammetry 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.
- Point clouds can be divided into the following categories according to the way they are obtained:
- 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.
- FIG1 is a schematic diagram of a network architecture of a point cloud encoding and decoding provided by the embodiment of the present application.
- 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.
- the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application.
- the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.
- the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
- 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.
- FIG4 is a schematic diagram of geometric coding.
- the geometric information is firstly transformed so that all 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, and removal of duplicate points, wherein whether to remove duplicate points is determined according to the encoder parameters.
- 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.
- the default sorting method of the current G-PCC standard test conditions is based on azimuth.
- the cylindrical coordinates (r, y, z) of the input point cloud are calculated based on the Cartesian coordinates (x, y, z). ⁇ ), where r is the radial distance of the point, also known as the radius; is the azimuth angle of the point; ⁇ is the elevation angle of the laser beam to which the point belongs.
- tan ⁇ are sorted in order. 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.
- 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 (r, ⁇ ). Each point in the input point cloud is then divided into different laser beams according to its pitch angle. Since the azimuth-based sorting method is used by default when sorting the input geometric information, the geometric information of the entire point cloud is arranged in ascending order of azimuth. For the i-th laser beam, the first point visited is the point with the smallest azimuth among all the points belonging to 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.
- 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 geometric decoding.
- decoding is the reverse process of encoding.
- 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 inversely quantized; then the geometric reconstruction information of the point to be decoded is restored according to the prediction value and the prediction residual; then the coordinate inverse transformation of the obtained reconstructed geometric information is performed to obtain the final reconstructed geometric information.
- the original point cloud is reordered to build the prediction tree more efficiently.
- the available sorting methods are unordered, Morton order, azimuth order, and radial distance order.
- the default sorting method is to sort by azimuth, that is, to sort the points according to azimuth, radial distance, and tangent value of pitch angle in turn.
- the encoder first converts the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates (r, ⁇ ). Then each point in the input point cloud is divided into different laser beams according to its pitch angle. ⁇ ) can be converted to (r, i), where i represents the index of the laser beam. Since the default sorting method based on azimuth 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 the 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 node of the points subsequently visited by the i-th laser beam is the first point with a smaller azimuth angle than itself in the same laser beam.
- 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 cylindrical coordinates of the input point cloud (r, i) is initialized to (r min , 0, 0).
- the code point to be encoded (decoded) is the root node of the prediction tree
- its cylindrical coordinates (r, i) is (r min , 0, 0)
- r min is the minimum radius of the current input point cloud, which is obtained by traversing at the encoder and transmitted to the decoder through pgeom_min_radius. Since the azimuth is in the range of (- ⁇ , ⁇ ], considering that the geometric information of the input point cloud is arranged in ascending order of azimuth, the azimuth of the root node is very close to - ⁇ . It is unreasonable to use 0 as the predicted value of the root node azimuth.
- the code stream is decoded to determine the azimuth sampling information corresponding to the current point cloud; the initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined according to the initial prediction value.
- the azimuth sampling information corresponding to the current point cloud is determined, and the azimuth sampling information is written into the code stream; the initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined according to the initial prediction value.
- the corresponding initial prediction value in the process of initializing the prediction value of the current point cloud, can be determined by the azimuth sampling information corresponding to the current point cloud, which can fully consider the actual size of the azimuth of the root node of the current point cloud, and realize more reasonable initialization processing of the prediction value. That is to say, in the embodiment of the present application, the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
- the point cloud encoding method in the embodiment of the present application can be applied to the predictive encoding and arithmetic encoding parts as shown in Figure 4.
- the point cloud decoding method in the embodiment of the present application can also be applied to the predictive decoding and arithmetic decoding parts as shown in Figure 5.
- the point cloud encoding and decoding method in 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 the embodiment of the present application does not make specific limitations.
- FIG. 7 is a schematic diagram of a first implementation flow of the point cloud decoding method proposed in the embodiment of the present application.
- the method for the decoder to perform point cloud decoding processing may include the following steps:
- Step 101 Decode the code stream to determine the azimuth sampling information corresponding to the current point cloud.
- the decoder may first decode the code stream, thereby determining the azimuth sampling information corresponding to the current point cloud.
- the azimuth sampling information corresponding to the current point cloud can determine the azimuth sampling interval corresponding to the current point cloud.
- the azimuth sampling information corresponding to the current point cloud can be represented in the form of syntax elements, that is, the decoder decodes the code stream to obtain the syntax elements representing the azimuth sampling information, thereby determining the azimuth sampling information.
- the azimuth sampling information corresponding to the current point cloud and representing the azimuth sampling interval can be directly obtained, and the relevant information used to calculate the azimuth sampling information can also be obtained, and then the azimuth sampling information corresponding to the current point cloud and representing the azimuth sampling interval can be derived based on the relevant information.
- the code stream when determining the azimuth sampling information, can also be decoded to determine the first azimuth parameter, and then the azimuth sampling information corresponding to the current point cloud can be further determined based on the first azimuth parameter and a preset value.
- the preset value can be any preset value, and the present application does not specifically limit it.
- the preset value can be 1.
- the azimuth sampling information corresponding to the current point cloud can be directly determined by decoding the bit stream, that is, the azimuth sampling interval
- the first azimuth parameter geom_angular_azimuth_speed_minus1 can be determined by decoding the bit stream, and then the corresponding azimuth sampling information, that is, the azimuth sampling interval, is calculated by the first azimuth parameter geom_angular_azimuth_speed_minus1 and a preset value (such as 1). For example, formula (1):
- the syntax element geom_angular_azimuth_speed_minus1 can be transmitted from the encoding end to the decoding end through the bit stream, and the geom_angular_azimuth_speed_minus1 can be a syntax element in a geometric parameter set (GPS).
- GPS geometric parameter set
- the code stream while decoding the code stream to determine the azimuth sampling information corresponding to the current point cloud, the code stream can also be decoded to determine the radial distance information corresponding to the current point cloud.
- the radial distance information corresponding to the current point cloud can determine the minimum radial distance corresponding to the current point cloud, that is, the minimum radius.
- the radial distance information corresponding to the current point cloud can be represented in the form of a syntax element, that is, the decoder decodes the code stream to obtain the syntax element representing the radial distance information, thereby determining the radial distance information.
- the syntax element pgeom_min_radius representing the radial distance information may be determined by decoding the bitstream, and then the corresponding radial distance information r min may be determined by pgeom_min_radius.
- the syntax element pgeom_min_radius can be transmitted from the encoding end to the decoding end through the bit stream, and the pgeom_min_radius can be a syntax element in the geometry block header (GPS) information.
- GPS geometry block header
- the point cloud decoding method proposed in the embodiment of the present application can be used in the geometric decoding process based on the prediction tree, wherein the current point cloud can be the point cloud to be decoded.
- the geometric information of the point in the current point cloud can be expressed in the form of cylindrical coordinates.
- the geometric information of the point in the current point cloud can be expressed as (r, i), where r is the radial distance of the point, also known as the radius; is the azimuth angle of the point; ⁇ is the elevation angle of the laser beam to which the point belongs.
- the geometric information of the point in the current point cloud can be represented by a radial distance component, an azimuth component, and a pitch angle component.
- Step 102 determine an initial prediction value corresponding to the current point cloud according to the azimuth sampling information corresponding to the current point cloud, and determine a prediction value of a midpoint of the current point cloud according to the initial prediction value.
- the prediction value after decoding the code stream and determining the azimuth sampling information corresponding to the current point cloud, the prediction value can be initialized according to the azimuth sampling information corresponding to the current point cloud, and the initial prediction value corresponding to the current point cloud can be determined, so that the prediction value of the midpoint of the current point cloud can be further determined based on the initial prediction value.
- the azimuth sampling information corresponding to the current point cloud can be used to determine the initial prediction value, and the radial distance information corresponding to the current point cloud can also be used to determine the initial prediction value.
- the azimuth sampling information can be used to determine the azimuth component of the initial prediction value.
- the radial distance information can be used to determine the radial distance component of the initial prediction value.
- the initial prediction value corresponding to the current point cloud may be the initialized geometric information prediction value corresponding to the current point cloud.
- the geometric information of any point in the current point cloud can be expressed as cylindrical coordinates (r, i), therefore, when initializing the prediction value of the current point cloud, the final obtained initial prediction value can also be represented by cylindrical coordinates, so the initial prediction value can also be represented by radial distance components, azimuth components, and pitch angle components.
- the azimuth sampling information corresponding to the current point cloud can be used to determine the azimuth component in the initial predicted value.
- the radial distance information corresponding to the current point cloud can be used to determine the radial distance component in the initial predicted value.
- the azimuth component in the initial prediction value finally obtained is determined by the azimuth sampling information, and at the same time, the radial distance component is determined by the radial distance information.
- the initialization parameters when determining the initial prediction value corresponding to the current point cloud based on the azimuth sampling information and the radial distance information, can be first determined based on the azimuth sampling information; and then the azimuth component corresponding to the initial prediction value can be determined based on the azimuth sampling information and the initialization parameters.
- the azimuth sampling information can be used to calculate the initialization parameters, and the initialization parameters can be used to adjust and control the azimuth component in the process of initializing the predicted value. Then, the azimuth sampling information and the initialization parameters can be combined to further calculate the azimuth component in the initial predicted value.
- the initialization parameters may be determined based on the azimuth sampling information in combination with any numerical value and by any calculation method.
- the azimuth sampling information is the azimuth sampling interval Then according to Calculate the initialization parameter k:
- round() is a Round function, which means returning a value that is the result of rounding to a specified number of decimal places.
- the azimuth component of the initial prediction value may be determined by any calculation method in combination with any numerical value based on the azimuth sampling information and the initialization parameters.
- the azimuth sampling information is the azimuth sampling interval
- the initialization parameter is k, and the azimuth component is finally calculated.
- the radial distance component corresponding to the initial prediction value can be directly determined based on the radial distance information.
- the radial distance information is the minimum radial value r min of the current point cloud, and the radial distance component r 0 is finally calculated:
- the radial distance component of the initial prediction value finally obtained is r min
- the azimuth component is
- the initial prediction value can be expressed as (r min , 0).
- the initial prediction value after decoding the code stream and determining the radial distance information corresponding to the current point cloud, when determining the initial prediction value, you can also choose to determine the radial distance component of the initial prediction value based on the radial distance information, and set the azimuth component and the pitch angle component to fixed values, for example, set the azimuth component to 0, and set the pitch angle component to 0 at the same time.
- a common initialization scheme may also be selected, and the initial prediction value finally obtained may be expressed as (r min , 0, 0).
- the point cloud decoding method proposed in the embodiment of the present application when initializing the prediction value of the current point cloud, can choose to determine the azimuth component of the initial prediction value according to the azimuth sampling information corresponding to the current point cloud, so that the setting of the initial prediction value is more reasonable.
- the prediction value of the midpoint of the current point cloud can be determined according to the initial prediction value.
- the initial prediction value when determining the prediction value of a point in the current point cloud based on the initial prediction value, can be first determined as the prediction value of the root node of the prediction tree corresponding to the current point cloud; and then based on the prediction value of the root node, the prediction values of other points in the current point cloud are determined.
- the code stream can be further decoded to determine the quantization parameter and the quantized prediction residual corresponding to the current point in the current point cloud; then the quantized prediction residual can be inverse quantized to determine the prediction residual corresponding to the current point; finally, the reconstruction value corresponding to the current point can be determined based on the prediction value and prediction residual corresponding to the current point.
- the code stream when performing prediction processing on the geometric information of the current point, can also be decoded to determine the mode identification information corresponding to the current point; wherein the mode identification information is used to indicate whether the prediction mode corresponding to the current point is an inter-frame mode or an intra-frame mode.
- the mode identification information of the current point in the current point cloud can be determined by decoding the code stream, thereby determining whether to adopt an intra-frame prediction mode or an inter-frame prediction mode for the current point according to the mode identification information, and finally determining the prediction value of the current point according to the corresponding prediction mode.
- the quantization coefficient and the prediction index (mode identification information) corresponding to the current point are first decoded, and then the corresponding prediction value is uniquely determined according to the prediction index, wherein, for the root node of the current point cloud, the initial prediction value is the geometric prediction value determined after the initialization processing; then, the quantized prediction residual of the geometric information is decoded, and dequantized to obtain the prediction residual; then, the geometric reconstruction information of the current point is restored based on the prediction value and the prediction residual; then, the obtained reconstructed geometric information is subjected to a coordinate inverse transformation to obtain the final reconstructed geometric information.
- FIG8 is a second schematic diagram of the implementation flow of the point cloud decoding method proposed in an embodiment of the present application.
- the method for the decoder to perform point cloud decoding may further include the following steps:
- Step 103 Determine initialization mode identification information.
- initialization identification information may also be determined.
- the initialization mode identification information may determine and indicate an initialization mode of a prediction value used by the current point cloud, wherein the initialization mode of a prediction value used by the current point cloud may include a first initialization mode and a second initialization mode.
- the initialization mode used by the current point cloud is the first initialization mode or the second initialization mode.
- the first initialization mode may represent a mode for initializing the prediction value using the azimuth angle related information transmitted in the code stream; the second initialization mode may represent a mode for initializing the prediction value without using the azimuth angle related information transmitted in the code stream.
- a decoding code stream may be selected to determine the initialization mode identification information.
- the initialization mode identification information can be transmitted from the encoding end to the decoding end through the code stream.
- the initialization mode identification information when determining the initialization mode identification information, it is possible to choose to determine the initialization mode identification information through a syntax table corresponding to the current point cloud.
- the initialization mode identification information can be set in the syntax table corresponding to the current point cloud, such as the syntax table.
- the initialization mode identification information when the value of the initialization mode identification information is a first value, it can be determined that the initialization mode identification information indicates that the current point cloud uses the first initialization mode; when the value of the initialization mode identification information is a second value, it can be determined that the initialization mode identification information indicates that the current point cloud uses the second initialization mode.
- the first value is different from the second value, and the first value and the second value may be in parameter form or in digital form.
- the first value may be 0, and the second value may be 1.
- the value of the initialization mode identification information when the value of the initialization mode identification information is 0, it can be determined that the first initialization mode is used to initialize the prediction value of the current point cloud, that is, the azimuth component of the initial prediction value of the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud; when the value of the initialization mode identification information is 1, it can be determined that the second initialization mode is used to initialize the prediction value of the current point cloud, that is, the initial prediction value of the current point cloud is not determined according to the azimuth sampling information corresponding to the current point cloud, but the azimuth component of the initial prediction value of the current point cloud is directly set to a third value, for example, the third value is 0.
- the initialization mode identification information may be a parameter written in a profile, or may be a value of a flag, which is not specifically limited here.
- the initialization mode identification information may be used as a syntax element at the GPS level or as a syntax element at the GBH level, and the present application does not make any specific limitation thereto.
- Step 104 When the initialization mode identification information indicates that the current point cloud uses the first initialization mode, a process for determining the azimuth sampling information and the radial distance information is executed.
- the process of determining the azimuth sampling information and radial distance information corresponding to the current point cloud can be executed, so that the predicted value of the current point cloud can be further initialized according to the azimuth sampling information and radial distance information corresponding to the current point cloud to determine the corresponding initial prediction value.
- the azimuth component of the initial predicted value is determined according to the azimuth sampling interval (azimuth sampling information) corresponding to the current point cloud, for example, the azimuth component of the initial predicted value is determined as
- Step 105 When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, a radial distance information determination process is executed.
- the process of determining the radial distance information corresponding to the current point cloud can be executed, so that the predicted value of the current point cloud can be further initialized according to the radial distance information corresponding to the current point cloud to determine the corresponding initial prediction value.
- FIG. 9 is a schematic diagram of a third implementation flow of the point cloud decoding method proposed in an embodiment of the present application.
- the method for performing point cloud decoding by the decoder may further include the following steps:
- Step 106 When the initialization mode identification information indicates that the current point cloud uses the first initialization mode, determine the azimuth component of the initial prediction value according to the azimuth sampling information.
- the initialization mode identification information indicates that the current point cloud uses the first initialization mode
- Step 107 When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, the azimuth component of the initial prediction value is set to a third value.
- the azimuth component of the initial predicted value can be directly determined as the third value.
- the third value can be any value, such as 0.
- the azimuth component of the predicted value There are many ways to initialize the predicted value, and the specific method is indicated by the header information such as the initialization mode identification information.
- a syntax element such as geom_angular_phi_ini_zero
- the header information such as GPS or/and GBH
- the syntax element can represent the cylindrical coordinates (r, i) Azimuth
- the azimuth sampling information (such as the azimuth sampling threshold) transmitted in the code stream can be used to determine the azimuth component of the initial prediction value, instead of directly initializing the azimuth component of the initial prediction value to 0.
- This prediction value initialization method is more reasonable and can effectively improve the prediction effect of geometric information.
- the azimuth sampling information and radial distance information corresponding to the current point cloud can be determined first, and then the predicted value of the current point cloud can be initialized in combination with the azimuth sampling information and the radial distance information.
- the azimuth component of the initial predicted value can be determined according to the azimuth sampling information, and at the same time, the radial distance component of the initial predicted value can be determined according to the radial distance information.
- the decoding method proposed in the embodiment of the present application is experimentally verified based on the general test software TMC13V21 of G-PCC. Compared with it, the decoding method proposed in the embodiment of the present application is compared with the prediction tree geometry coding code stream performance under lossless conditions as shown in Table 1. It can be seen from Table 1 that the decoding method has some small gains in the geometry code streams of these point cloud sequences.
- the embodiment of the present application discloses a point cloud decoding method, at the decoding end, the code stream is decoded to determine the azimuth sampling information corresponding to the current point cloud; the initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined according to the initial prediction value.
- the corresponding initial prediction value can be determined by the azimuth sampling information corresponding to the current point cloud, which can fully consider the actual size of the azimuth of the root node of the current point cloud, and realize more reasonable initialization processing of the prediction value.
- the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
- FIG. 10 is a schematic diagram of a first implementation flow of the point cloud encoding method provided in the embodiment of the present application.
- the method for the encoder to perform point cloud encoding processing may include the following steps:
- Step 201 Determine the azimuth sampling information corresponding to the current point cloud, and write the azimuth sampling information into the bitstream.
- the encoder may first determine the azimuth sampling information corresponding to the current point cloud, and may write the azimuth sampling information into a bit stream and transmit it to a decoding end.
- the point cloud coding method proposed in the embodiment of the present application can be applied to the geometric coding process based on the prediction tree.
- the input geometric information can be sorted first, for example, by sorting in the azimuth angle.
- the encoder when building the prediction tree, the encoder first converts the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates (r, ⁇ ). Each point in the input point cloud is then divided into different laser beams according to its pitch angle. Since the azimuth-based sorting method is used by default when sorting the input geometric information, the geometric information of the entire point cloud is arranged in ascending order of azimuth. For the i-th laser beam, the first point visited is the point with the smallest azimuth among all the points belonging to 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.
- 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.
- the available sorting methods are unordered, Morton order, azimuth order and radial distance order.
- the selected sorting method is sorting by azimuth, that is, sorting each point according to azimuth, radial distance and pitch tangent value in turn.
- a prediction tree structure is established.
- the encoder will first convert the input point cloud from Cartesian coordinates (x, y, z) to cylindrical coordinates (r, ⁇ ). Then each point in the input point cloud is divided into different laser beams according to its pitch angle. ⁇ ) can be converted to (r, i), where i represents the index of the laser beam.
- the geometric information of the entire point cloud is arranged in ascending order of azimuth.
- 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 first point of the 0th laser beam since it has no parent node, it serves as the root node of the entire tree.
- the azimuth sampling information corresponding to the current point cloud can determine the azimuth sampling interval corresponding to the current point cloud.
- the azimuth sampling information corresponding to the current point cloud can be represented in the form of syntax elements, that is, after the encoder encodes the azimuth sampling information and transmits the code stream to the decoding end, the decoder decodes the code stream and obtains the syntax elements representing the azimuth sampling information, thereby determining the azimuth sampling information.
- the encoder can directly write the azimuth sampling information corresponding to the current point cloud and representing the azimuth sampling interval into the bitstream, or it can choose to write the relevant information used to calculate the azimuth sampling information into the bitstream, so that the decoder can derive the azimuth sampling information corresponding to the current point cloud and representing the azimuth sampling interval based on the relevant information.
- the encoder may write the first azimuth parameter into a code stream for transmission to a decoding end. Accordingly, when determining the azimuth sampling information, the decoder may decode the code stream, determine the first azimuth parameter, and then further determine the azimuth sampling information corresponding to the current point cloud based on the first azimuth parameter and a preset value.
- the encoder may first determine the first azimuth parameter according to the azimuth sampling information and the preset value; and then write the first azimuth parameter into the bitstream.
- the preset value can be any preset value, and the present application does not specifically limit it.
- the preset value can be 1.
- the encoder may directly send the azimuth sampling information corresponding to the current point cloud, such as the azimuth sampling interval Write code stream.
- the encoder may first determine the first azimuth parameter geom_angular_azimuth_speed_minus1, and then write the first azimuth parameter into the bitstream. ) and a preset value (eg, 1) to calculate the corresponding first azimuth parameter geom_angular_azimuth_speed_minus1. For example, formula (1).
- the syntax element geom_angular_azimuth_speed_minus1 can be transmitted from the encoding end to the decoding end through the bit stream, and the geom_angular_azimuth_speed_minus1 can be a syntax element in a geometric parameter set (GPS).
- GPS geometric parameter set
- the radial distance information corresponding to the current point cloud can also be determined, and the radial distance information corresponding to the current point cloud can be written into the code stream and transmitted to the decoding end.
- the radial distance information corresponding to the current point cloud can determine the minimum radial distance corresponding to the current point cloud, that is, the minimum radius.
- the radial distance information corresponding to the current point cloud can be represented in the form of a syntax element, that is, after the encoder encodes the radial distance information and transmits the code stream to the decoding end, the decoder decodes the code stream to obtain the syntax element representing the radial distance information, thereby determining the radial distance information.
- the encoder may first determine the radial distance information r min , and then transmit the radial distance information r min through the syntax element pgeom_min_radius.
- the decoder may first determine the syntax element pgeom_min_radius representing the radial distance information when decoding the bitstream, and then determine the corresponding radial distance information r min through pgeom_min_radius. For example, formula (2).
- the syntax element pgeom_min_radius can be transmitted from the encoding end to the decoding end through the bit stream, and the pgeom_min_radius can be a syntax element in the geometry block header (GPS) information.
- GPS geometry block header
- the point cloud encoding method proposed in the embodiment of the present application can be used in the geometric encoding processing based on the prediction tree, wherein the current point cloud can be the point cloud to be encoded.
- the geometric information of the point in the current point cloud can be expressed in the form of cylindrical coordinates.
- the geometric information of the point in the current point cloud can be expressed as (r, i), where r is the radial distance of the point, also known as the radius; is the azimuth angle of the point; ⁇ is the elevation angle of the laser beam to which the point belongs.
- the geometric information of the point in the current point cloud can be represented by a radial distance component, an azimuth component, and a pitch angle component.
- Step 202 determine an initial prediction value corresponding to the current point cloud according to the azimuth sampling information corresponding to the current point cloud, and determine a prediction value of a midpoint of the current point cloud according to the initial prediction value.
- the prediction value after determining the azimuth sampling information corresponding to the current point cloud, the prediction value can be initialized according to the azimuth sampling information corresponding to the current point cloud, and the initial prediction value corresponding to the current point cloud can be determined, so that the prediction value of the midpoint of the current point cloud can be further determined based on the initial prediction value.
- the azimuth sampling information corresponding to the current point cloud can be used to determine the initial prediction value, and the radial distance information corresponding to the current point cloud can also be used to determine the initial prediction value.
- the azimuth sampling information can be used to determine the azimuth component of the initial prediction value.
- the radial distance information can be used to determine the radial distance component of the initial prediction value.
- the initial prediction value corresponding to the current point cloud may be the initialized geometric information prediction value corresponding to the current point cloud.
- the azimuth sampling information corresponding to the current point cloud can be used to determine the azimuth component in the initial predicted value.
- the azimuth sampling information can be used to calculate the initialization parameters, and the initialization parameters can be used to adjust and control the azimuth component in the process of initializing the predicted value. Then, the azimuth sampling information and the initialization parameters can be combined to further calculate the azimuth component in the initial predicted value.
- round() is a Round function, which means returning a value that is the result of rounding to a specified number of decimal places.
- the azimuth component of the initial prediction value may be determined by any calculation method in combination with any numerical value based on the azimuth sampling information and the initialization parameters.
- the azimuth sampling information is the azimuth sampling interval
- the initialization parameter is k
- the azimuth component is finally calculated. As shown in formula (4).
- the radial distance component corresponding to the initial prediction value can be directly determined based on the radial distance information.
- the radial distance information is the minimum radial value r min of the current point cloud, and the radial distance component r 0 is finally calculated, as shown in formula (5).
- the radial distance component of the initial prediction value finally obtained is r min
- the azimuth component is
- the pitch angle component of the initial predicted value can also be set to a fixed value, for example, the pitch angle component can be set to 0.
- the initial prediction value can be expressed as (r min , 0).
- a common initialization scheme may also be selected, and the initial prediction value finally obtained may be expressed as (r min , 0, 0).
- the point cloud encoding method proposed in the embodiment of the present application when initializing the prediction value of the current point cloud, can choose to determine the azimuth component of the initial prediction value according to the azimuth sampling information corresponding to the current point cloud, so that the setting of the initial prediction value is more reasonable.
- the prediction value of the midpoint of the current point cloud can be determined according to the initial prediction value.
- the initial prediction value when determining the prediction value of a point in the current point cloud based on the initial prediction value, can be first determined as the prediction value of the root node of the prediction tree corresponding to the current point cloud; and then based on the prediction value of the root node, the prediction values of other points in the current point cloud are determined.
- the prediction residual corresponding to the current point can be further determined based on the prediction value corresponding to the current point in the current point cloud; then the prediction residual can be quantized according to the quantization parameter corresponding to the current point to determine the quantized coefficient residual corresponding to the current point.
- the mode identification information corresponding to the current point when performing prediction processing on the geometric information of the current point, can also be determined; wherein the mode identification information is used to indicate whether the prediction mode corresponding to the current point is an inter-frame mode or an intra-frame mode.
- the encoder can determine the mode identification information corresponding to the current point based on the rate-distortion algorithm, wherein, for the current point (the point to be encoded), the prediction value of the geometric information can be determined according to the intra-frame prediction algorithm or the inter-frame prediction algorithm, and then the prediction value with the smallest bit rate is selected as the prediction value of the current point through the rate-distortion optimization algorithm, and the corresponding mode identification information is determined at the same time.
- the encoder may also write the mode identification information corresponding to the current point into the code stream and transmit it to the decoding end.
- the mode identification information corresponding to the current point in the current point cloud can also be determined by a rate-distortion algorithm, and the mode identification information can be written into the bit stream.
- the decoder determines the mode identification information of the current point in the current point cloud by decoding the bit stream, and thus determines whether to adopt an intra-frame prediction mode or an inter-frame prediction mode for the current point according to the mode identification information, and finally determines the prediction value of the current point according to the corresponding prediction mode.
- FIG. 11 is a second schematic diagram of the implementation flow of the point cloud encoding method proposed in an embodiment of the present application.
- the method for performing point cloud encoding by the encoder may further include the following steps:
- Step 203 Determine initialization mode identification information.
- initialization identification information may also be determined.
- the initialization mode identification information may determine and indicate an initialization mode of a prediction value used by the current point cloud, wherein the initialization mode of a prediction value used by the current point cloud may include a first initialization mode and a second initialization mode.
- the first initialization mode may represent a mode for initializing the prediction value using the azimuth angle related information transmitted in the code stream; the second initialization mode may represent a mode for initializing the prediction value without using the azimuth angle related information transmitted in the code stream.
- the initialization mode identification information can be determined by the syntax table corresponding to the current point cloud. That is, in an embodiment of the present application, the initialization mode identification information can be set in the syntax table corresponding to the current point cloud, such as syntax table.
- the value of the initialization mode identification information when it is determined that the current point cloud uses the first initialization mode, can be set to a first value; when it is determined that the current point cloud uses the second initialization mode, the value of the initialization mode identification information can be set to a second value.
- the first value may be 0, and the second value may be 1.
- the value of the initialization mode identification information when the value of the initialization mode identification information is 0, it can be determined that the first initialization mode is used to initialize the prediction value of the current point cloud, that is, the azimuth component of the initial prediction value of the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud; when the value of the initialization mode identification information is 1, it can be determined that the second initialization mode is used to initialize the prediction value of the current point cloud, that is, the initial prediction value of the current point cloud is not determined according to the azimuth sampling information corresponding to the current point cloud, but the azimuth component of the initial prediction value of the current point cloud is directly set to a third value, for example, the third value is 0.
- the process of determining the azimuth sampling information and radial distance information corresponding to the current point cloud can be executed, so that the predicted value of the current point cloud can be further initialized according to the azimuth sampling information and radial distance information corresponding to the current point cloud to determine the corresponding initial prediction value.
- the azimuth component of the initial predicted value is determined according to the azimuth sampling interval (azimuth sampling information) corresponding to the current point cloud, for example, the azimuth component of the initial predicted value is determined as
- the initialization mode identification information indicates that the current point cloud uses the first initialization mode
- Step 207 When the initialization mode identification information indicates that the current point cloud uses the second initialization mode, the azimuth component of the initial prediction value is set to a third value.
- a syntax element is set in the header information, such as GPS and/or GBH, such as
- this syntax element can represent the cylindrical coordinates of the current point cloud (r, i) Azimuth The predicted initial value of
- the azimuth sampling information (such as the azimuth sampling threshold) transmitted in the code stream can be used to determine the azimuth component of the initial prediction value, instead of directly initializing the azimuth component of the initial prediction value to 0.
- This prediction value initialization method is more reasonable and can effectively improve the prediction effect of geometric information.
- the azimuth sampling information and radial distance information corresponding to the current point cloud can be determined first, and then the predicted value of the current point cloud can be initialized in combination with the azimuth sampling information and the radial distance information.
- the azimuth component of the initial predicted value can be determined according to the azimuth sampling information, and at the same time, the radial distance component of the initial predicted value can be determined according to the radial distance information.
- This embodiment provides an encoding method, at the encoding end, determining the azimuth sampling information corresponding to the current point cloud, and writing the azimuth sampling information into the bitstream; determining the initial prediction value corresponding to the current point cloud according to the azimuth sampling information corresponding to the current point cloud, and determining the prediction value of the midpoint of the current point cloud according to the initial prediction value. It can be seen that in the embodiment of the present application, in the process of initializing the prediction value of the current point cloud, it is possible to choose to determine the corresponding initial prediction value through the azimuth sampling information corresponding to the current point cloud, which can fully consider the actual size of the azimuth of the root node of the current point cloud, and achieve more reasonable initialization processing of the prediction value. In other words, in the embodiment of the present application, initializing the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
- the first determining unit 111 is configured to determine the azimuth sampling information corresponding to the current point cloud
- the encoding unit 112 is configured to write the azimuth sampling information into a bit stream
- the first determination unit 111 is further configured to determine an initial prediction value corresponding to the current point cloud according to the azimuth sampling information corresponding to the current point cloud, and determine a prediction value of a midpoint of the current point cloud according to the initial prediction value.
- the encoder 100 can also be regarded as a data processing mode (or “entropy encoder”), which is used to encode the values of the grammatical elements to be encoded.
- entropy encoder a data processing mode
- 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.
- the computer program When the computer program is executed by the first processor, it implements the encoding method described in any one of the aforementioned embodiments.
- Figure 14 is a second schematic diagram of the composition structure of the encoder.
- the encoder 100 may include: a first memory 121 and a first processor 122, a first communication interface 123 and a first bus system 124.
- the first memory 121, the first processor 122, and the first communication interface 123 are coupled together through the first bus system 124.
- the first bus system 124 is used to achieve connection and communication between these components.
- the first bus system 124 also includes a power bus, a control bus, and a status signal bus.
- various buses are labeled as the first bus system 124 in Figure 10. Among them,
- the first communication interface 123 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
- the first processor 122 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 122.
- the above-mentioned first processor 122 may 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 various 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 121, and the first processor 122 reads the information in the first memory 121 and completes the steps of the above method in combination with its hardware.
- 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 present embodiment provides an encoder that determines the azimuth sampling information corresponding to the current point cloud and writes the azimuth sampling information into the bitstream; determines the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determines the prediction value of the midpoint of the current point cloud based on the initial prediction value. It can be seen that in the embodiment of the present application, in the process of initializing the prediction value of the current point cloud, it is possible to choose to determine the corresponding initial prediction value through the azimuth sampling information corresponding to the current point cloud, which can fully consider the actual size of the azimuth of the root node of the current point cloud, and achieve more reasonable initialization processing of the prediction value. In other words, in the embodiment of the present application, the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
- FIG. 15 is a schematic diagram of a structure of a decoder.
- the decoder 200 may include: a decoding unit 211 and a second determining unit 212; wherein,
- the decoding unit 211 is configured to decode the code stream
- the second determination unit 212 is configured to determine the azimuth sampling information corresponding to the current point cloud; determine the initial prediction value corresponding to the current point cloud according to the azimuth sampling information corresponding to the current point cloud, and determine the prediction value of the midpoint of the current point cloud according to the initial prediction value.
- the decoder 200 can also be regarded as a data processing mode (or “entropy decoder”), which is used to decode the values of the syntax elements to be decoded.
- entropy decoder a data processing mode
- 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 200, 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.
- Figure 16 is a second schematic diagram of the composition structure of the decoder.
- the decoder 200 may include: a second memory 221 and a second processor 222, a second communication interface 223 and a second bus system 224.
- the second memory 221 and the second processor 222, and the second communication interface 223 are coupled together through the second bus system 224.
- the second bus system 224 is used to realize the connection and communication between these components.
- the second bus system 224 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are marked as the second bus system 224 in Figure 12. Among them,
- the second communication interface 223 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
- the second memory 221 is used to store a computer program that can be run on the second processor
- the second processor 222 is used to decode the code stream and determine the azimuth sampling information corresponding to the current point cloud when running the computer program; determine the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determine the prediction value of the midpoint of the current point cloud based on the initial prediction value.
- the second memory 221 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories.
- 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 second processor 222 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 second processor 222.
- the above-mentioned second processor 222 can be a general 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 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 second memory 221, and the second processor 222 reads the information in the second memory 221 and completes the steps of the above method in combination with its hardware.
- 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 second processor 222 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 that decodes a code stream to determine the azimuth sampling information corresponding to the current point cloud; determines the initial prediction value corresponding to the current point cloud based on the azimuth sampling information corresponding to the current point cloud, and determines the prediction value of the midpoint of the current point cloud based on the initial prediction value.
- the azimuth sampling information corresponding to the current point cloud in the process of initializing the prediction value of the current point cloud, can be used to determine the corresponding initial prediction value, which can fully consider the actual size of the azimuth of the root node of the current point cloud, and achieve more reasonable initialization processing of the prediction value.
- the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
- an embodiment of the present application also proposes a code stream, wherein the code stream is generated by bit encoding based on the information to be encoded; wherein the information to be encoded includes at least: initialization mode identification information, azimuth sampling information, radial distance information, quantization parameters, quantized prediction residual, and mode identification information.
- the embodiment of the present application provides a coding and decoding method, a code stream, an encoder, a decoder and a storage medium.
- the code stream is decoded to determine the azimuth sampling information corresponding to the current point cloud; the initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined according to the initial prediction value.
- the azimuth sampling information corresponding to the current point cloud is determined, and the azimuth sampling information is written into the code stream; the initial prediction value corresponding to the current point cloud is determined according to the azimuth sampling information corresponding to the current point cloud, and the prediction value of the midpoint of the current point cloud is determined according to the initial prediction value.
- the corresponding initial prediction value can be determined by the azimuth sampling information corresponding to the current point cloud, which can fully consider the actual size of the azimuth of the root node of the current point cloud, and realize more reasonable initialization processing of the prediction value. That is to say, in the embodiment of the present application, the initialization of the prediction value in combination with the azimuth sampling information can improve the accuracy of the prediction effect, thereby improving the point cloud compression performance.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了一种编解码方法、码流、编码器、解码器以及存储介质,在解码端,解码码流,确定当前点云对应的方位角采样信息;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。在编码端,确定当前点云对应的方位角采样信息,并将方位角采样信息写入码流;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。
Description
本申请实施例涉及点云编解码技术领域,尤其涉及一种编解码方法、码流、编码器、解码器以及存储介质。
在基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC)编解码框架中,点云的几何信息和点云中的点所对应的属性信息是分开进行编码的。其中,对于G-PCC编解码框架而言,几何信息的编解码可以包括基于八叉树的几何编解码和基于预测树的几何编解码。
在基于预测树的几何编解码的过程中,相关技术虽然实现了对预测值的初始化,但是初始化后的预测值并不合理,降低了预测效果的准确性,进而影响了点云压缩性能。
发明内容
本申请实施例提供一种编解码方法、码流、编码器、解码器以及存储介质,能够提高预测效果的准确性,从而提升了点云压缩性能。
本申请实施例的技术方案可以如下实现:
第一方面,本申请实施例提供了一种解码方法,应用于解码器,该方法包括:
解码码流,确定当前点云对应的方位角采样信息;
根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
第二方面,本申请实施例提供了一种编码方法,应用于编码器,该方法包括:
确定当前点云对应的方位角采样信息,并将所述方位角采样信息写入码流;
根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
第三方面,本申请实施例提供了一种码流,码流是根据待编码信息进行比特编码生成的;其中,待编码信息至少包括:
初始化模式标识信息,方位角采样信息,径向距离信息,量化参数,量化后的预测残差,模式标识信息。
第四方面,本申请实施例提供了一种编码器,编码器包括:第一确定单元和编码单元;其中,
所述第一确定单元,配置为确定所述当前点云对应的方位角采样信息;
所述编码单元,配置为将所述方位角采样信息写入码流;
所述第一确定单元,还配置为根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
第五方面,本申请实施例提供了一种编码器,编码器包括第一存储器和第一处理器;其中,
所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;
所述第一处理器,用于在运行所述计算机程序时,执行如上所述的编码方法。
第六方面,本申请实施例提供了一种解码器,解码器包括:解码单元和第二确定单元;其中,
所述解码单元,配置为解码码流;
所述第二确定单元,配置为确定所述当前点云对应的方位角采样信息;根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
第七方面,本申请实施例提供了一种解码器,解码器包括第二存储器和第二处理器;其中,
所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;
所述第二处理器,用于在运行所述计算机程序时,执行如上所述的解码方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如第一方面所述的解码方法、或者实现如第二方面所述的编码方法。
本申请实施例提供了一种编解码方法、码流、编码器、解码器以及存储介质,在解码端,解码码流,确定当前点云对应的方位角采样信息;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。在编码端,确定当前点云对应的方位角采样信息,并将方位角采样信息写入码流;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。由此可见,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以选择通过当前点云对应的方位角采样信息来确定对应的初始预测值,能够充分考虑到当前点云的根节点的方位角的实际大小,实现更为合理的预测值的初始化处理。也就是说,在本申请的实施例中,结合方位角采样信息进行预测值的初始化,能够提高预测效果的准确性,从而提升了点云压缩性能。
图1为本申请实施例提供的一种点云编解码的网络架构示意图;
图2为一种G-PCC编码器的组成框架示意图;
图3为一种G-PCC解码器的组成框架示意图;
图4为几何编码的示意图;
图5为几何解码的示意图;
图6为几何信息的排列方式示意图;
图7为本申请实施例提出的点云解码方法的实现流程示意图一;
图8为本申请实施例提出的点云解码方法的实现流程示意图二;
图9为本申请实施例提出的点云解码方法的实现流程示意图三;
图10为本申请实施例提出的点云编码方法的实现流程示意图一;
图11为本申请实施例提出的点云编码方法的实现流程示意图二;
图12为本申请实施例提出的点云编码方法的实现流程示意图三;
图13为编码器的组成结构示意图一;
图14为编码器的组成结构示意图二;
图15为解码器的组成结构示意图一;
图16为解码器的组成结构示意图二。
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
对本申请实施例进行进一步详细说明之前,先对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释:
点云压缩(Point Cloud Compression,PCC);
基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC或GPCC);
基于视频的点云压缩(Video-based Point Cloud Compression,V-PCC或VPCC);
八叉树(Octree);
帧内预测(Intra Prediction);
查找表(Look Up Table,LUT);
红绿蓝(Red-Green-Blue,RGB);
亮度色度(Luminance-Chrominance,YUV);
细节层次(Level of Detail,LOD);
预测变换(Predicting Transform);
提升变换(Lifting Transform);
区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT);
基于上下文模型的自适应二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)。
可以理解,点云(Point Cloud)是物体表面的三维表现形式,通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云(数据)。
另外,点云是指海量三维点的集合,点云中的点可以包括点的位置信息和点的属性信息。例如,点的位置信息可以是点的三维坐标信息。点的位置信息也可称为点的几何信息。例如,点的属性信息可包括颜色信息和/或反射率等等。例如,颜色信息可以是任意一种色彩空间上的信息。例如,颜色信息可以是RGB信息。其中,R表示红色(Red,R),G表示绿色(Green,G),B表示蓝色(Blue,B)。再如,颜色信息可以是亮度色度(YCbCr,YUV)信息。其中,Y表示明亮度,Cb(U)表示蓝色色度,Cr(V)表示红色色度。
根据激光测量原理得到的点云,点云中的点可以包括点的三维坐标信息和点的激光反射强度(reflectance)。再如,根据摄影测量原理得到的点云,点云中的点可以可包括点的三维坐标信息和点的颜色信息。再如,结合激光测量和摄影测量原理得到点云,点云中的点可以可包括点的三维坐标信息、点的激光反射强度(reflectance)和点的颜色信息。
点云可以按获取的途径分为:
第一类静态点云:即物体是静止的,获取点云的设备也是静止的;
第二类动态点云:物体是运动的,但获取点云的设备是静止的;
第三类动态获取点云:获取点云的设备是运动的。
例如,按点云的用途分为两大类:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
由于点云是海量点的集合,存储点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此,需要对点云进行压缩。
也就说,随着硬件处理能力的提升和计算机视觉的飞速发展,三维点云成为继音频、图像和视频之后的新一代沉浸式多媒体,被广泛的应用于虚拟现实、增强现实、自动驾驶和环境建模等应用中。然而点云通常具有较大的数据量,十分不利于其传输及存储,因此需要对点云进行高效的编解码。
截止目前,可对点云进行压缩的点云编码框架可以是运动图像专家组(Moving Picture Experts Group,MPEG)提供的G-PCC编解码框架或V-PCC编解码框架,也可以是音视频编码标准(Audio Video Standard,AVS)提供的AVS-PCC编解码框架。其中,G-PCC编解码框架可用于针对第一类静态点云和第三类动态获取点云进行压缩,V-PCC编解码框架可用于针对第二类动态点云进行压缩。在本申请的实施例中,这里主要是针对G-PCC编解码框架进行描述。
本申请实施例提供了一种包含解码方法和编码方法的点云编解码系统的网络架构,图1为本申请实施例提供的一种点云编解码的网络架构示意图。如图1所示,该网络架构包括一个或多个电子设备13至1N和通信网络01,其中,电子设备13至1N可以通过通信网络01进行视频交互。电子设备在实施的过程中可以为各种类型的具有点云编解码功能的设备,例如,所述电子设备可以包括手机、平板电脑、个人计算机、个人数字助理、导航仪、数字电话、视频电话、电视机、传感设备、服务器等,本申请实施例不作限制。其中,本申请实施例中的解码器或编码器就可以为上述电子设备。
其中,本申请实施例中的电子设备具有点云编解码功能,一般包括点云编码器(即编码器)和点云解码器(即解码器)。
下面以G-PCC编解码框架为例进行相关技术的说明。
可以理解,在点云G-PCC编解码框架中,针对待编码的点云数据,首先通过片(slice)划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的。
图2示出了一种G-PCC编码器的组成框架示意图。如图2所示,在几何编码过程中,对几何信息进行坐标转换,使点云全都包含在一个包围盒(Bounding Box)中,然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点云的几何信息相同,于是再基于参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。接着对Bounding Box进行八叉树划分或者预测树构建。在该过程中,针对划分的叶子结点中的点进行算术编码,生成二进制的几何比特流;或者,针对划分产生的交点(Vertex)进行算术编码(基于交点进行表面拟合),生成二进制的几何比特流。在属性编码过程中,几何编码完成,对几何信息进行重建后,需要先进行颜色转换,将颜色信息(即属性信息)从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。属性编码主要针对颜色信息进行,在颜色信息编码过程中,主要有两种变换方法,一是依赖于LOD划分的基于距离的提升变换,二是直接进行RAHT变换,这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化,再对量化系数进行算术编码,可以生成二进制的属性比特流。
图3示出了一种G-PCC解码器的组成框架示意图。如图3所示,针对所获取的二进制比特流,首先对二进制比特流中的几何比特流和属性比特流分别进行独立解码。在对几何比特流的解码时,通过算术解码-重构八叉树/重构预测树-重建几何-坐标逆转换,得到点云的几何信息;在对属性比特流的解码时,通过算术解码-反量化-LOD划分/RAHT-颜色逆转换,得到点云的属性信息,基于几何信息和属性信息还原待编码的点云数据(即输出点云)。
需要说明的是,图4为几何编码的示意图,如图4所示,对于几何编码过程,首先对几何信息进行坐标转换,使点云全都包含在一个由两个极值点(0,0,0)和(2d,2d,2d)决定的包围盒(bounding box)中。然后进行体素化,即:量化、取整、移除重复点,其中是否移除重复点是根据编码器参数来决定的。目前G-PCC的几何编码可分为:基于八叉树的几何编码和基于预测树的几何编码。
在基于预测树的几何编码中,首先对输入的几何信息进行排序。目前G-PCC的标准测试条件默认的排序方式是基于方位角进行排序。首先根据输入点云的笛卡尔坐标(x,y,z)计算其柱面坐标(r,θ),其中r是点的径向距离,也可称之为半径;是点的方位角;θ是点所属的激光束的俯仰角。然后按照r,tanθ的顺序进行排序。首先比较的大小,如果相同,则比较r,如果r相同,则比较tanθ。最终完成整个点云的重新排序。根据是否开启角度模式,预测树几何编码可以分为基于方位角的几何预测编码方案和基于KD-tree的几何预测编码方案。
在基于方位角的几何预测编码方案中,在构建预测树时,编码器会先将输入点云从笛卡尔坐标(x,y,z)转换到柱面坐标(r,θ)。然后将输入点云中的每个点依照其俯仰角划分到不同的激光束上。由于在对输入的几何信息进行排序时,默认采用基于方位角的排序方式,因此整个点云的几何信息是按照方位角从小到大的顺序排列的。对于第i束激光,其被访问到的第一个点是属于该束激光的所有点中方位角最小的点。且第i束后续被访问到的点的父节点均是同一束激光中比自身方位角小的第一个点。第i束激光的第一个点的父节点为第i-1束激光的第一个点。对于第0束激光的第一个点,由于其没有父节点,因此作为整棵树的根节点。
接下来按照深度优先的顺序对预测树中的每个节点进行预测编码。对于待编码点,首先根据帧内预测算法或帧间预测算法确定几何信息的预测值。其中在帧内预测中,采用预测列表对待编码点进行预测。而对于帧间预测,则在前一已编码帧中寻找预测点对待编码点进行预测。然后通过率失真优化选取码率最小的预测值作为待编(解)码点的预测值。接着利用节点几何信息的真实值与预测值做差得到预测残差,并利用量化参数对预测残差进行量化。最后对量化参数、选取的预测值索引、预测残差等信息进行编码,生成二进制码流。
相应的,图5为几何解码的示意图,如图5所示,对于几何解码过程,解码是编码的反过程。在基于预测树的几何解码中,对于待解码点,首先解码得到每个节点对应的量化系数以及预测索引,根据预测索引唯一确定对应的预测值;然后解码几何信息的预测残差,并对其进行反量化;接着根据预测值和预测残差恢复得到待解码点的几何重构信息;然后对得到的重建几何信息进行坐标反变换,得到最终的重建几何信息。
需要说明的是,在基于方位角构建预测树时,首先,对原始点云进行重排序以更高效地构建预测树,可用的排序方法有无序、莫顿序、方位角序和径向距离序,目前,默认的排序方法是按方位角排序,即依次根据方位角、径向距离和俯仰角正切值对各点进行排序。
然后,建立预测树结构。编码器会先将输入点云从笛卡尔坐标(x,y,z)转换到柱面坐标(r,θ)。然后将输入点云中的每个点依照其俯仰角划分到不同的激光束上,此时(r,θ)可以转换为(r,i),其中i表示激光束的索引。由于在对输入的几何信息进行排序时,默认采用基于方位角的排序方式,因此整个点云的几何信息是按照方位角从小到大的顺序排列的。
图6为几何信息的排列方式示意图,如图6所示,对于第i束激光,其被访问到的第一个点是属于该束激光的所有点中方位角最小的点。且第i束后续被访问到的点的父节点均是同一束激光中比自身方位角小的第一个点。第i束激光的第一个点的父节点为第i-1束激光的第一个点。对于第0束激光的第一个点,由于其没有父节点,因此作为整棵树的根节点。
接下来,首先从根节点开始遍历预测树中的每个节点,通过选取不同的预测值对节点的几何信息进行预测,得到相应的预测残差并进行量化。最后对量化参数、选取的预测值索引、预测残差等信息进行编码,生成二进制码流。
一般情况下,输入点云的柱面坐标(r,i)的预测值初始化为(rmin,0,0)。当待编(解)码点是预测树的根节点时,其柱面坐标(r,i)的预测值为(rmin,0,0),其中rmin是当前输入点云的半径最小值,在编码端遍历得到,通过pgeom_min_radius传送到解码端。由于方位角在(-π,π]的范围内,考虑到输入点云的几何信息是按照方位角从小到大的顺序排列的,因此根节点的方位角非常接近-π。用0作为根节点方位角的预测值是不合理的。
由此可见,常见的点云编解码技术,虽然实现了对预测值的初始化,但是初始化后的预测值并不合理,降低了预测效果的准确性,进而影响了点云压缩性能。
为了解决上述问题,在本申请的实施例中,在解码端,解码码流,确定当前点云对应的方位角采样信息;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。在编码端,确定当前点云对应的方位角采样信息,并将方位角采样信息写入码流;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。由此可见,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以选择通过当前点云对应的方位角采样信息来确定对应的初始预测值,能够充分考虑到当前点云的根节点的方位角的实际大小,实现更为合理的预测值的初始化处理。也就是说,在本申请的实施例中,结合方位角采样信息进行预测值的初始化,能够提高预测效果的准确性,从而提升了点云压缩性能。
本申请实施例中的点云编码方法,可以应用在如图4所示的预测编码和算术编码部分。另外,本申请实施例中的点云解码方法,还可以应用在如图5所示的预测解码和算术解码部分。也就是说,本申请实施例中的点云编解码方法,既可以应用于编码器,也可以应用于解码器,甚至还可以同时应用于编码器和解码器,但是本申请实施例不作具体限定。
下面将结合附图对本申请各实施例进行详细说明。
本申请实施例提出的了一种点云解码方法,图7为本申请实施例提出的点云解码方法的实现流程示意图一,如图7所示,解码器进行点云解码处理的方法可以包括以下步骤:
步骤101、解码码流,确定当前点云对应的方位角采样信息。
在本申请的实施例中,解码器可以先解码码流,从而可以确定当前点云对应的方位角采样信息。
需要说明的是,在本申请的实施例中,当前点云对应的方位角采样信息可以对当前点云对应的方位角采样间隔进行确定。
进一步地,在本申请的实施例中,当前点云对应的方位角采样信息可以通过语法元素的形式进行表示,即解码器解码码流,获得表示方位角采样信息的语法元素,从而确定方位角采样信息。
可以理解的是,在本申请的实施例中,通过解码码流,可以直接获得当前点云对应的、表征方位角采样间隔的方位角采样信息,也可以获得用于计算方位角采样信息的相关信息,进而根据该相关信息推导出当前点云对应的、表征方位角采样间隔的方位角采样信息。
进一步地,在本申请的实施例中,在进行方位角采样信息的确定时,还可以解码码流,确定第一方位角参数,然后根据第一方位角参数和预设数值,进一步确定出当前点云对应的方位角采样信息。
可以理解的是,在本申请的实施例中,预设数值可以预先设置的任意数值,本申请不进行具体限定,例如,预设数值可以为1。
示例性的,在一些实施例中,通过解码码流可以直接确定当前点云对应的方位角采样信息,即方位角采样间隔
示例性的,在一些实施例中,通过解码码流可以先确定第一方位角参数geom_angular_azimuth_speed_minus1,然后再通过第一方位角参数geom_angular_azimuth_speed_minus1与预设数值(例如1)计算获得对应的方位角采样信息,即方位角采样间隔例如公式(1):
其中,语法元素geom_angular_azimuth_speed_minus1可以通过码流从编码端传输至解码端,该geom_angular_azimuth_speed_minus1可以为几何参数集(Geometric parameter set,GPS)中的语法元素。
进一步地,在本申请的实施例中,在解码码流,确定当前点云对应的方位角采样信息的同时,还可以解码码流,确定当前点云对应的径向距离信息。
需要说明的是,在本申请的实施例中,当前点云对应的径向距离信息可以对当前点云对应的径向距离最小值,即半径最小值进行确定。
进一步地,在本申请的实施例中,当前点云对应的径向距离信息可以通过语法元素的形式进行表示,即解码器解码码流,获得表示径向距离信息的语法元素,从而确定径向距离信息。
示例性的,在一些实施例中,通过解码码流可以先确定表示径向距离信息的语法元素pgeom_min_radius,然后再通过pgeom_min_radius确定对应的径向距离信息rmin。例如公式(2):
rmin=pgeom_min_radius (2)
其中,语法元素pgeom_min_radius可以通过码流从编码端传输至解码端,该pgeom_min_radius可以为几何块头部(Geometry block header,GPS)信息中的语法元素。
需要说明的是,在本申请的实施例中,本申请实施例提出的点云解码方法,可以用于基于基于预测树的几何解码处理过程中。其中,当前点云可以为待解码的点云。
可以理解的是,在本申请的实施例中,当前点云中的点的几何信息可以使用柱面坐标的形式进行表示,例如,当前点云中的点的几何信息可以表示为(r,i),其中r是点的径向距离,也可称之为半径;是点的方位角;θ是点所属的激光束的俯仰角。
也就是说,在本申请的实施例中,当前点云中的点的几何信息可以通过径向距离分量、方位角分量以及俯仰角分量进行表示。
步骤102、根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。
在本申请的实施例中,在解码码流,确定当前点云对应的方位角采样信息之后,可以根据当前点云对应的方位角采样信息完成对预测值的初始化,确定出当前点云对应的初始预测值,从而可以进一步根据初始预测值确定出当前点云中点的预测值。
需要说明的是,在本申请的实施例中,可以选择根据方位角采样信息和径向距离信息确定当前点云对应的初始预测值。
进一步地,在本申请的实施例中,在进行当前点云的预测值的初始化时,可以使用当前点云对应的方位角采样信息来实现初始预测值的确定,同时还可以使用当前点云对应的径向距离信息来实现初始预测值的确定。其中,该方位角采样信息可以用于对初始预测值的方位角分量进行确定。该径向距离信息可以用于对初始预测值的径向距离分量进行确定。
可以理解的是,在本申请的实施例中,当前点云对应的初始预测值可以为当前点云对应的初始化后的几何信息预测值。
可以理解的是,在本申请的实施例中,由于当前点云中任意点的几何信息可以表示为柱面坐标(r,i),因此在对当前点云的预测值进行初始化时,最终获得的初始预测值也可以通过柱面坐标进行表示,因此初始预测值也可以通过径向距离分量、方位角分量以及俯仰角分量进行表示。
相应的,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以使用当前点云对应的方位角采样信息对初始预测值中的方位角分量进行确定。
相应的,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以使用当前点云对应的径向距离信息对初始预测值中的径向距离分量进行确定。
也就是说,在本申请的实施例中,结合当前点云对应的方位角采样信息和径向距离信息进行当前点云对应的预测值的初始时,最终获得的初始预测值中的方位角分量由方位角采样信息确定,同时,径向距离分量由径向距离信息确定。
进一步地,在本申请的实施例中,在根据方位角采样信息和径向距离信息确定当前点云对应的初始预测值时,可以先根据根据方位角采样信息确定初始化参数;然后再根据方位角采样信息和初始化参数,确定初始预测值对应的方位角分量。
需要说明的是,在本申请的实时中,在确定方位角采样信息(如方位角采样间隔)之后,便可以先利用方位角采样信息计算获得初始化参数,该初始化参数可以用于在初始化预测值的过程中对方位角分量进行调整和控制,接着便可以结合方位角采样信息和初始化参数,进一步计算获得初始预测值中的方位角分量。
可以理解的是,在本申请的实施例中,可以在方位角采样信息的基础上,结合任意的数值,通过任意的计算方式来进行初始化参数的确定。
示例性的,在一些实施例中,假设方位角采样信息为方位角采样间隔那么可以根据计算获得初始化参数k:
其中,round()为Round函数,是指返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。
可以理解的是,在本申请的实施例中,除了上述公式(3)以外,也可以采用其他方式确定初始化参数,本申请对初始化参数的计算方式不进行限制。
需要说明的是,在本申请的实施例中,可以在方位角采样信息和初始化参数的基础上,结合任意的数值,通过任意的计算方式来进行初始预测值的方位角分量的确定。
示例性的,在一些实施例中,假设方位角采样信息为方位角采样间隔初始化参数为k,最终计算获得方位角分量
可以理解的是,在本申请的实施例中,除了上述公式(4)以外,也可以采用其他方式确定方位角分量,本申请对方位角分量的计算方式不进行限制。
进一步地,在本申请的实施例中,在根据方位角采样信息和径向距离信息确定当前点云对应的初始预测值时,可以直接根据径向距离信息确定初始预测值对应的径向距离分量。
示例性的,在一些实施例中,假设径向距离信息为当前点云的最小径向值rmin,最终计算获得径向距离分量r0:
r0=rmin (5)
由此可见,在本申请的实施例中,在根据方位角采样信息和径向距离信息确定当前点云对应的初始预测值之后,最终获得的初始预测值的径向距离分量为rmin,方位角分量为
可以理解的是,在本申请的实施例中,在进行当前点云的预测值的初始化过程中,同时可以将初始预测值的俯仰角分量设置为一个固定的数值,例如,可以将俯仰角分量设置为0。
也就是说,在本申请的实施例中,在完成对当前点云的预测值的初始化之后,初始预测值可以表示为(rmin,0)。
进一步地,在本申请的实施例中,在解码码流,确定当前点云对应的径向距离信息之后,当进行初始预测值的确定时,还可以选择根据径向距离信息确定初始预测值的径向距离分量,同时将方位角分量和俯仰角分量分别设置为固定的数值,例如,将方位角分量设置为0,同时将俯仰角分量设置为0。
也就是说,在本申请的实施例中,还可以选择采用常见的初始化方案,最终获得的初始预测值可以表示为(rmin,0,0)。
由此可见,本申请实施例提出的点云解码方法,在对当前点云的预测值进行初始化时,可以选择根据当前点云对应的方位角采样信息对初始预测值的方位角分量进行确定,使得初始预测值的设置更为合理。
进一步地,在本申请的实施例中,在根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值之后,可以根据初始预测值确定当前点云中点的预测值。
需要说明的是,在本申请的实施例中,在根据初始预测值确定当前点云中点的预测值时,可以先将初始预测值确定为当前点云对应的预测树的根节点的预测值;然后再基于根节点的预测值,确定当前点云中的其他点的预测值。
进一步地,在本申请的实施例中,对于当前点云中的当前点,在基于初始预测值确定出当前点的预测值之后,可以进一步解码码流,确定当前点云中当前点对应的量化参数和量化后的预测残差;然后可以对量化后的预测残差进行反量化,确定当前点对应的预测残差;最终便可以根据当前点对应的预测值和预测残差,确定当前点对应的重建值。
进一步地,在本申请的实施例中,在对当前点进行几何信息的预测处理时,还可以解码码流,确定当前点对应的模式标识信息;其中,模式标识信息用于指示当前点对应的预测模式为帧间模式或帧内模式。
也就是说,在本申请的实施例中,在完成对当前点云对应的初始预测值的确定之后,可以通过解码码流确定当前点云中的当前点的模式标识信息,从而根据模式标识信息确定对当前点采用帧内预测模式或者帧间预测模式,最终便可以根据对应的预测模式确定出当前点的预测值。
由此可见,在本申请的实施例中,在基于预测树的几何解码中,对于当前点云中的当前点(待解码点),首先解码得到当前点对应的量化系数以及预测索引(模式标识信息),然后根据预测索引唯一确定对应的预测值,其中,对于当前点云的根节点来说,初始预测值即为进行初始化处理后确定的几何预测值;然后解码几何信息的量化后的预测残差,并对其进行反量化,获得预测残差;接着根据预测值和预测残差恢复得到当前点的几何重构信息;然后对得到的重建几何信息进行坐标反变换,得到最终的重建几何信息。
进一步地,在本申请的实施例中,图8为本申请实施例提出的点云解码方法的实现流程示意图二,如图8所示,解码器进行点云解码的方法还可以包括以下步骤:
步骤103、确定初始化模式标识信息。
在本申请的实施例中,还可以确定初始化标识信息。其中,初始化模式标识信息可以对当前点云所使用的预测值的初始化模式进行确定和指示,其中,当前点云所使用的预测值的初始化模式可以包括第一初始化模式和第二初始化模式。
也就是说,在本申请的实施例中,基于初始化模式标识信息,可以确定当前点云所使用的初始化模式为第一初始化模式或第二初始化模式。
需要说明的是,在本申请的实施例中,第一初始化模式可以表征使用码流中传输的方位角的相关信息来进行预测值的初始化的模式;第二初始化模式可以表征不使用码流中传输的方位角的相关信息来进行预测值的初始化的模式。
进一步地,在本申请的实施例中,在进行初始化模式标识信息的确定时,可以选择解码码流,确定初始化模式标识信息。
也就是说,在本申请的实施例中,初始化模式标识信息可以通过码流从编码端传输至解码端。
进一步地,在本申请的实施例中,在进行初始化模式标识信息的确定时,可以选择通过当前点云对应的语法表确定初始化模式标识信息。
也就是说,在本申请的实施例中,初始化模式标识信息可以设置在当前点云对应的语法表,如syntax table中。
进一步地,在本申请的实施例中,在本申请实施例中,在初始化模式标识信息的取值为第一值的情况下,可以确定初始化模式标识信息指示当前点云使用第一初始化模式;在初始化模式标识信息的取值为第二值的情况下,可以确定初始化模式标识信息指示当前点云使用第二初始化模式。
需要说明的是,在本申请的实施例中,第一值与第二值不同,而且第一值和第二值可以是参数形式,也可以是数字形式。
示例性的,在一些实施例中,第一值可以为0,第二值可以为1。例如,当初始化模式标识信息的取值为0时,可以确定对当前点云使用第一初始化模式进行预测值的初始化处理,即根据当前点云对应的方位角采样信息确定当前点云的初始预测值的方位角分量;当初始化模式标识信息的取值为1时,可以确定对当前点云使用第二初始化模式进行预测值的初始化处理,即不根据当前点云对应的方位角采样信息确定当前点云的初始预测值,而是直接将当前点云的初始预测值的方位角分量设置为第三值,例如第三值为0。
需要说明的是,在本申请的实施例中,初始化模式标识信息可以是写入在概述(profile)中的参数,也可以是一个标志(flag)的取值,这里对此不作具体限定。
示例性的,在本申请的实施例中,初始化模式标识信息可以作为GPS级别的语法元素,也可以作为GBH级别的语法元素,本申请不进行具体限定。
步骤104、在初始化模式标识信息指示当前点云使用第一初始化模式的情况下,执行方位角采样信息和径向距离信息的确定流程。
在本申请的实施例中,在确定初始化模式标识信息之后,如果初始化模式标识信息指示当前点云使用第一初始化模式,那么便可以执行当前点云对应的方位角采样信息和径向距离信息的确定流程,从而可以进一步根据当前点云对应的方位角采样信息和径向距离信息对当前点云的预测值进行初始化处理,确定对应的初始预测值。
可以理解的是,在本申请的实施例中,基于第一初始化模式,在进行当前点云的预测值的初始化处理时,可以选择根据当前点云对应的方位角采样间隔(方位角采样信息)来进行初始预测值的方位角分量的确定,例如将初始预测值的方位角分量确定为
步骤105、在初始化模式标识信息指示当前点云使用第二初始化模式的情况下,执行径向距离信息的确定流程。
在本申请的实施例中,在确定初始化模式标识信息之后,如果初始化模式标识信息指示当前点云使用第二初始化模式,那么便可以执行当前点云对应的径向距离信息的确定流程,从而可以进一步根据当前点云对应的径向距离信息对当前点云的预测值进行初始化处理,确定对应的初始预测值。
可以理解的是,在本申请的实施例中,基于第二初始化模式,在进行当前点云的预测值的初始化处理时,可以选择直接将初始预测值的方位角分量的确定为固定的数值,例如确定为0。
进一步地,在本申请的实施例中,图9为本申请实施例提出的点云解码方法的实现流程示意图三,如图9所示,解码器进行点云解码的方法还可以包括以下步骤:
步骤106、在初始化模式标识信息指示当前点云使用第一初始化模式的情况下,根据方位角采样信息确定初始预测值的方位角分量。
在本申请的实施例中,在确定初始化模式标识信息之后,如果初始化模式标识信息指示当前点云使用第一初始化模式,那么,基于第一初始化模式,在进行当前点云的预测值的初始化处理时,可以选择根据当前点云对应的方位角采样间隔(方位角采样信息)来进行初始预测值的方位角分量的确定,例如将初始预测值的方位角分量确定为
步骤107、在初始化模式标识信息指示当前点云使用第二初始化模式的情况下,将初始预测值的方位角分量设置为第三值。
在本申请的实施例中,在确定初始化模式标识信息之后,如果初始化模式标识信息指示当前点云使用第二初始化模式,那么,基于第二初始化模式,在进行当前点云的预测值的初始化处理时,可以选择直接将初始预测值的方位角分量的确定为第三值。其中,第三值可以为任意数值,例如0。
由此可见,预测值的方位角分量的预测值初始化方式可以采用多种方式,具体采用哪种方式由如初始化模式标识信息的头信息表示。
示例性的,在一些实施例中,在头信息,如GPS或/和GBH中设置一个语法元素,如geom_angular_phi_ini_zero,该语法元素可以表示当前点云的柱面坐标(r,i)中方位角的预测初始值
示例性的,在一些实施例中,当geom_angular_phi_ini_zero=1时,表示的预测值初始化为0,即初始预测值的方位角分量为0,也就是说,当待编(解)码点是预测树的根节点时,其柱面坐标的预测值为0。
示例性的,在一些实施例中,当geom_angular_phi_ini_zero=0时,表示的预测值初始化为也就是说,当待编(解)码点是预测树的根节点时,其柱面坐标的预测值为
可以理解的是,在本申请的实施例中,与常见技术相比,通过第一初始化模式进行预测值的初始化时,可以利用码流中传输的方位角采样信息(如方位角采样阈值)对初始预测值的方位角分量进行确定,而不再直接将初始预测值的方位角分量初始化为0,这样的预测值初始化方式更为合理,可以有效提升几何信息的预测效果。
综上所述,通过步骤101至步骤107所提出的解码方法,可以先确定当前点云对应的方位角采样信息和径向距离信息,然后再结合方位角采样信息和径向距离信息进行当前点云的预测值的初始化处理,具体地,可以根据方位角采样信息对初始预测值的方位角分量进行确定,同时,根据径向距离信息对初始预测值的径向距离分量进行确定。
在一些实施例中,对本申请实施例提出的解码方法进行实验验证,以G-PCC的通用测试软件TMC13V21为基础,与其相比,本申请实施例提出的解码方法在无损条件下,预测树几何编码码流性能对比结果如表1所示,从表1可以看出,该解码方法在这些点云序列的几何码流有一些较小的增益。
本申请实施例公开了一种点云解码方法,在解码端,解码码流,确定当前点云对应的方位角采样信息;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。由此可见,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以选择通过当前点云对应的方位角采样信息来确定对应的初始预测值,能够充分考虑到当前点云的根节点的方位角的实际大小,实现更为合理的预测值的初始化处理。也就是说,在本申请的实施例中,结合方位角采样信息进行预测值的初始化,能够提高预测效果的准确性,从而提升了点云压缩性能。
本申请的再一实施例提出一种点云编码方法,图10为本申请实施例提出的点云编码方法的实现流程示意图一,如图10所示,编码器进行点云编码处理的方法可以包括以下步骤:
步骤201、确定当前点云对应的方位角采样信息,并将方位角采样信息写入码流。
在本申请的实施例中,编码器可以先确定当前点云对应的方位角采样信息,同时可以将该方位角采样信息写入码流,传输至解码端。
需要说明的是,在本申请的实施例中,本申请实施例提出的点云编码方法,可以应用于基于预测树的几何编码过程中。其中,针对基于预测树的几何编码,首先可以对输入的几何信息进行排序,例如,采用方位角的排序方式进行排序。
可以理解的是,在本申请的实施例中,在对输入的几何信息进行排序进行排序时,首先根据输入点云(当前点云)的笛卡尔坐标(x,y,z)计算其柱面坐标(r,θ),其中,r是点的径向距离,也可称之为半径;是点的方位角;θ是点所属的激光束的俯仰角。然后对当前点云中的点按照r,tanθ的顺序进行排序,已完成对当前点云中的点的排序。
示例性的,在一些实施例中,在具体的排序过程中,首先比较的大小,如果相同,则比较r,如果r相同,则比较tanθ,最终完成整个点云的重新排序。
在基于方位角的几何预测编码方案中,在构建预测树时,编码器会先将输入点云从笛卡尔坐标(x,y,z)转换到柱面坐标(r,θ)。然后将输入点云中的每个点依照其俯仰角划分到不同的激光束上。由于在对输入的几何信息进行排序时,默认采用基于方位角的排序方式,因此整个点云的几何信息是按照方位角从小到大的顺序排列的。对于第i束激光,其被访问到的第一个点是属于该束激光的所有点中方位角最小的点。且第i束后续被访问到的点的父节点均是同一束激光中比自身方位角小的第一个点。第i束激光的第一个点的父节点为第i-1束激光的第一个点。对于第0束激光的第一个点,由于其没有父节点,因此作为整棵树的根节点。
接下来按照深度优先的顺序对预测树中的每个节点进行预测编码。对于待编码点,首先根据帧内预测算法或帧间预测算法确定几何信息的预测值。其中在帧内预测中,采用预测列表对待编码点进行预测。而对于帧间预测,则在前一已编码帧中寻找预测点对待编码点进行预测。然后通过率失真优化选取码率最小的预测值作为待编(解)码点的预测值。接着利用节点几何信息的真实值与预测值做差得到预测残差,并利用量化参数对预测残差进行量化。最后对量化参数、选取的预测值索引、预测残差等信息进行编码,生成二进制码流。
需要说明的是,在本申请的实施例中,在对当前点云进行排序时,可用的排序方法有无序、莫顿序、方位角序和径向距离序,例如,选择的排序方法是按方位角排序,即依次根据方位角、径向距离和俯仰角正切值对各点进行排序。然后,建立预测树结构。编码器会先将输入点云从笛卡尔坐标(x,y,z)转换到柱面坐标(r,θ)。然后将输入点云中的每个点依照其俯仰角划分到不同的激光束上,此时(r,θ)可以转换为(r,i),其中i表示激光束的索引。由于在对输入的几何信息进行排序时,默认采用基于方位角的排序方式,因此整个点云的几何信息是按照方位角从小到大的顺序排列的。对于第i束激光,其被访问到的第一个点是属于该束激光的所有点中方位角最小的点。且第i束后续被访问到的点的父节点均是同一束激光中比自身方位角小的第一个点。第i束激光的第一个点的父节点为第i-1束激光的第一个点。对于第0束激光的第一个点,由于其没有父节点,因此作为整棵树的根节点。
需要说明的是,在本申请的实施例中,当前点云对应的方位角采样信息可以对当前点云对应的方位角采样间隔进行确定。
进一步地,在本申请的实施例中,当前点云对应的方位角采样信息可以通过语法元素的形式进行表示,即编码器在编码方位角采样信息之后,将码流传输至解码端之后,解码器解码码流,可以获得表示方位角采样信息的语法元素,从而确定方位角采样信息。
可以理解的是,在本申请的实施例中,编码器可以直接将当前点云对应的、表征方位角采样间隔的方位角采样信息写入码流,也可以选择将用于计算方位角采样信息的相关信息写入码流,从而使得解码器可以根据该相关信息推导出当前点云对应的、表征方位角采样间隔的方位角采样信息。
进一步地,在本申请的实施例中,编码器可以将第一方位角参数写入码流传输至解码端,相应的,在进行方位角采样信息的确定时,解码器可以解码码流,确定第一方位角参数,然后根据第一方位角参数和预设数值,进一步确定出当前点云对应的方位角采样信息。
也就是说,在本申请的实施例中,编码器可以先根据方位角采样信息和预设数值确定第一方位角参数;然后再将第一方位角参数写入码流。
可以理解的是,在本申请的实施例中,预设数值可以预先设置的任意数值,本申请不进行具体限定,例如,预设数值可以为1。
示例性的,在一些实施例中,编码器可以直接将当前点云对应的方位角采样信息,如方位角采样间隔写入码流。
示例性的,在一些实施例中,编码器也可以可以先确定第一方位角参数geom_angular_azimuth_speed_minus1,然后再将第一方位角参数写入码流。其中,可以通过方位角采样信息(例如方位角采样间隔)与预设数值(例如1)计算获得对应的第一方位角参数geom_angular_azimuth_speed_minus1。例如公式(1)。
其中,语法元素geom_angular_azimuth_speed_minus1可以通过码流从编码端传输至解码端,该geom_angular_azimuth_speed_minus1可以为几何参数集(Geometric parameter set,GPS)中的语法元素。
进一步地,在本申请的实施例中,在确定当前点云对应的方位角采样信息的同时,还可以确定当前点云对应的径向距离信息,同时将当前点云对应的径向距离信息写入码流传输至解码端。
需要说明的是,在本申请的实施例中,当前点云对应的径向距离信息可以对当前点云对应的径向距离最小值,即半径最小值进行确定。
进一步地,在本申请的实施例中,当前点云对应的径向距离信息可以通过语法元素的形式进行表示,即编码器在编码径向距离信息之后,将码流传输至解码端之后,解码器解码码流,获得表示径向距离信息的语法元素,从而确定径向距离信息。
示例性的,在一些实施例中,编码器也可以可以先确定径向距离信息rmin,然后再通过语法元素pgeom_min_radius传输该径向距离信息rmin,相应的,解码器解码码流可以先确定表示径向距离信息的语法元素pgeom_min_radius,然后再通过pgeom_min_radius确定对应的径向距离信息rmin。例如公式(2)。
其中,语法元素pgeom_min_radius可以通过码流从编码端传输至解码端,该pgeom_min_radius可以为几何块头部(Geometry block header,GPS)信息中的语法元素。
需要说明的是,在本申请的实施例中,本申请实施例提出的点云编码方法,可以用于基于基于预测树的几何编码处理过程中。其中,当前点云可以为待编码的点云。
可以理解的是,在本申请的实施例中,当前点云中的点的几何信息可以使用柱面坐标的形式进行表示,例如,当前点云中的点的几何信息可以表示为(r,i),其中r是点的径向距离,也可称之为半径;是点的方位角;θ是点所属的激光束的俯仰角。
也就是说,在本申请的实施例中,当前点云中的点的几何信息可以通过径向距离分量、方位角分量以及俯仰角分量进行表示。
步骤202、根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。
在本申请的实施例中,在确定当前点云对应的方位角采样信息之后,可以根据当前点云对应的方位角采样信息完成对预测值的初始化,确定出当前点云对应的初始预测值,从而可以进一步根据初始预测值确定出当前点云中点的预测值。
需要说明的是,在本申请的实施例中,可以选择根据方位角采样信息和径向距离信息确定当前点云对应的初始预测值。
进一步地,在本申请的实施例中,在进行当前点云的预测值的初始化时,可以使用当前点云对应的方位角采样信息来实现初始预测值的确定,同时还可以使用当前点云对应的径向距离信息来实现初始预测值的确定。其中,该方位角采样信息可以用于对初始预测值的方位角分量进行确定。该径向距离信息可以用于对初始预测值的径向距离分量进行确定。
可以理解的是,在本申请的实施例中,当前点云对应的初始预测值可以为当前点云对应的初始化后的几何信息预测值。
可以理解的是,在本申请的实施例中,由于当前点云中任意点的几何信息可以表示为柱面坐标(r,i),因此在对当前点云的预测值进行初始化时,最终获得的初始预测值也可以通过柱面坐标进行表示,因此初始预测值也可以通过径向距离分量、方位角分量以及俯仰角分量进行表示。
相应的,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以使用当前点云对应的方位角采样信息对初始预测值中的方位角分量进行确定。
相应的,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以使用当前点云对应的径向距离信息对初始预测值中的径向距离分量进行确定。
也就是说,在本申请的实施例中,结合当前点云对应的方位角采样信息和径向距离信息进行当前点云对应的预测值的初始时,最终获得的初始预测值中的方位角分量由方位角采样信息确定,同时,径向距离分量由径向距离信息确定。
进一步地,在本申请的实施例中,在根据方位角采样信息和径向距离信息确定当前点云对应的初始预测值时,可以先根据根据方位角采样信息确定初始化参数;然后再根据方位角采样信息和初始化参数,确定初始预测值对应的方位角分量。
需要说明的是,在本申请的实时中,在确定方位角采样信息(如方位角采样间隔)之后,便可以先利用方位角采样信息计算获得初始化参数,该初始化参数可以用于在初始化预测值的过程中对方位角分量进行调整和控制,接着便可以结合方位角采样信息和初始化参数,进一步计算获得初始预测值中的方位角分量。
可以理解的是,在本申请的实施例中,可以在方位角采样信息的基础上,结合任意的数值,通过任意的计算方式来进行初始化参数的确定。
示例性的,在一些实施例中,假设方位角采样信息为方位角采样间隔那么可以根据计算获得初始化参数k,如公式(3)所示。
其中,round()为Round函数,是指返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。
可以理解的是,在本申请的实施例中,除了上述公式(3)以外,也可以采用其他方式确定初始化参数,本申请对初始化参数的计算方式不进行限制。
需要说明的是,在本申请的实施例中,可以在方位角采样信息和初始化参数的基础上,结合任意的数值,通过任意的计算方式来进行初始预测值的方位角分量的确定。
示例性的,在一些实施例中,假设方位角采样信息为方位角采样间隔初始化参数为k,最终计算获得方位角分量如公式(4)所示。
可以理解的是,在本申请的实施例中,除了上述公式(4)以外,也可以采用其他方式确定方位角分量,本申请对方位角分量的计算方式不进行限制。
进一步地,在本申请的实施例中,在根据方位角采样信息和径向距离信息确定当前点云对应的初始预测值时,可以直接根据径向距离信息确定初始预测值对应的径向距离分量。
示例性的,在一些实施例中,假设径向距离信息为当前点云的最小径向值rmin,最终计算获得径向距离分量r0,如公式(5)所示。
由此可见,在本申请的实施例中,在根据方位角采样信息和径向距离信息确定当前点云对应的初始预测值之后,最终获得的初始预测值的径向距离分量为rmin,方位角分量为
可以理解的是,在本申请的实施例中,在进行当前点云的预测值的初始化过程中,同时可以将初始预测值的俯仰角分量设置为一个固定的数值,例如,可以将俯仰角分量设置为0。
也就是说,在本申请的实施例中,在完成对当前点云的预测值的初始化之后,初始预测值可以表示为(rmin,0)。
进一步地,在本申请的实施例中,在确定当前点云对应的径向距离信息之后,当进行初始预测值的确定时,还可以选择根据径向距离信息确定初始预测值的径向距离分量,同时将方位角分量和俯仰角分量分别设置为固定的数值,例如,将方位角分量设置为0,同时将俯仰角分量设置为0。
也就是说,在本申请的实施例中,还可以选择采用常见的初始化方案,最终获得的初始预测值可以表示为(rmin,0,0)。
由此可见,本申请实施例提出的点云编码方法,在对当前点云的预测值进行初始化时,可以选择根据当前点云对应的方位角采样信息对初始预测值的方位角分量进行确定,使得初始预测值的设置更为合理。
进一步地,在本申请的实施例中,在根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值之后,可以根据初始预测值确定当前点云中点的预测值。
需要说明的是,在本申请的实施例中,在根据初始预测值确定当前点云中点的预测值时,可以先将初始预测值确定为当前点云对应的预测树的根节点的预测值;然后再基于根节点的预测值,确定当前点云中的其他点的预测值。
进一步地,在本申请的实施例中,对于当前点云中的当前点,在基于初始预测值确定出当前点的预测值之后,可以进一步根据当前点云中当前点对应的预测值,确定当前点对应的预测残差;然后可以根据当前点对应的量化参数对预测残差进行量化,确定当前点对应的量化后的系数残差。
需要说明的是,在本申请的实施例中,在根据当前点对应的量化参数对预测残差进行量化,确定当前点对应的量化后的系数残差之后,可以将当前点对应的量化参数和量化后的预测残差写入码流。
进一步地,在本申请的实施例中,在对当前点进行几何信息的预测处理时,还可以确定当前点对应的模式标识信息;其中,模式标识信息用于指示当前点对应的预测模式为帧间模式或帧内模式。
需要说明的是,在本申请的实施例中,编码器可以根据率失真算法确定当前点对应的模式标识信息,其中,对于当前点(待编码点),可以根据帧内预测算法或帧间预测算法确定几何信息的预测值,然后通过率失真优化算法选取码率最小的预测值作为当前点的预测值,同时确定出对应的模式标识信息。
进一步地,在本申请的实施例中,编码器在确定当前点对应的模式标识信息之后,还可以将当前点对应的模式标识信息写入码流,传输至解码端。
也就是说,在本申请的实施例中,还可以通过率失真算法确定当前点云中的当前点对应的模式标识信息,并将模式标识信息写入码流,相应的,解码器通过解码码流确定当前点云中的当前点的模式标识信息,从而根据模式标识信息确定对当前点采用帧内预测模式或者帧间预测模式,最终便可以根据对应的预测模式确定出当前点的预测值。
进一步地,在本申请的实施例中,图11为本申请实施例提出的点云编码方法的实现流程示意图二,如图11所示,编码器进行点云编码的方法还可以包括以下步骤:
步骤203、确定初始化模式标识信息。
在本申请的实施例中,还可以确定初始化标识信息。其中,初始化模式标识信息可以对当前点云所使用的预测值的初始化模式进行确定和指示,其中,当前点云所使用的预测值的初始化模式可以包括第一初始化模式和第二初始化模式。
也就是说,在本申请的实施例中,基于初始化模式标识信息,可以确定当前点云所使用的初始化模式为第一初始化模式或第二初始化模式。
需要说明的是,在本申请的实施例中,第一初始化模式可以表征使用码流中传输的方位角的相关信息来进行预测值的初始化的模式;第二初始化模式可以表征不使用码流中传输的方位角的相关信息来进行预测值的初始化的模式。
进一步地,在本申请的实施例中,在进行初始化模式标识信息的确定之后,可以选择将该初始化模式标识信息写入码流,即初始化模式标识信息可以通过码流从编码端传输至解码端。
进一步地,在本申请的实施例中,可以选择通过当前点云对应的语法表确定初始化模式标识信息。也就是说,在本申请的实施例中,初始化模式标识信息可以设置在当前点云对应的语法表,如syntax table中。
进一步地,在本申请的实施例中,在本申请实施例中,在确定当前点云使用第一初始化模式的情况下,可以设置初始化模式标识信息的取值为第一值;在确定当前点云使用第二初始化模式的情况下,可以设置初始化模式标识信息的取值为第二值。
需要说明的是,在本申请的实施例中,第一值与第二值不同,而且第一值和第二值可以是参数形式,也可以是数字形式。
示例性的,在一些实施例中,第一值可以为0,第二值可以为1。例如,当初始化模式标识信息的取值为0时,可以确定对当前点云使用第一初始化模式进行预测值的初始化处理,即根据当前点云对应的方位角采样信息确定当前点云的初始预测值的方位角分量;当初始化模式标识信息的取值为1时,可以确定对当前点云使用第二初始化模式进行预测值的初始化处理,即不根据当前点云对应的方位角采样信息确定当前点云的初始预测值,而是直接将当前点云的初始预测值的方位角分量设置为第三值,例如第三值为0。
进一步地,在本申请的实施例中,在确定当前点云对应的初始化模式标识信息之后,可以将初始化模式标识信息写入码流,传输至解码端。
需要说明的是,在本申请的实施例中,初始化模式标识信息可以是写入在概述(profile)中的参数,也可以是一个标志(flag)的取值,这里对此不作具体限定。
示例性的,在本申请的实施例中,初始化模式标识信息可以作为GPS级别的语法元素,也可以作为GBH级别的语法元素,本申请不进行具体限定。
步骤204、在初始化模式标识信息指示当前点云使用第一初始化模式的情况下,执行方位角采样信息和径向距离信息的确定流程。
在本申请的实施例中,在确定初始化模式标识信息之后,如果初始化模式标识信息指示当前点云使用第一初始化模式,那么便可以执行当前点云对应的方位角采样信息和径向距离信息的确定流程,从而可以进一步根据当前点云对应的方位角采样信息和径向距离信息对当前点云的预测值进行初始化处理,确定对应的初始预测值。
可以理解的是,在本申请的实施例中,基于第一初始化模式,在进行当前点云的预测值的初始化处理时,可以选择根据当前点云对应的方位角采样间隔(方位角采样信息)来进行初始预测值的方位角分量的确定,例如将初始预测值的方位角分量确定为
步骤205、在初始化模式标识信息指示当前点云使用第二初始化模式的情况下,执行径向距离信息的确定流程。
在本申请的实施例中,在确定初始化模式标识信息之后,如果初始化模式标识信息指示当前点云使用第二初始化模式,那么便可以执行当前点云对应的径向距离信息的确定流程,从而可以进一步根据当前点云对应的径向距离信息对当前点云的预测值进行初始化处理,确定对应的初始预测值。
可以理解的是,在本申请的实施例中,基于第二初始化模式,在进行当前点云的预测值的初始化处理时,可以选择直接将初始预测值的方位角分量的确定为固定的数值,例如确定为0。
进一步地,在本申请的实施例中,图12为本申请实施例提出的点云编码方法的实现流程示意图三,如图12所示,编码器进行点云编码的方法还可以包括以下步骤:
步骤206、在初始化模式标识信息指示当前点云使用第一初始化模式的情况下,根据方位角采样信息确定初始预测值的方位角分量。
在本申请的实施例中,在确定初始化模式标识信息之后,如果初始化模式标识信息指示当前点云使用第一初始化模式,那么,基于第一初始化模式,在进行当前点云的预测值的初始化处理时,可以选择根据当前点云对应的方位角采样间隔(方位角采样信息)来进行初始预测值的方位角分量的确定,例如将初始预测值的方位角分量确定为
步骤207、在初始化模式标识信息指示当前点云使用第二初始化模式的情况下,将初始预测值的方位角分量设置为第三值。
在本申请的实施例中,在确定初始化模式标识信息之后,如果初始化模式标识信息指示当前点云使用第二初始化模式,那么,基于第二初始化模式,在进行当前点云的预测值的初始化处理时,可以选择直接将初始预测值的方位角分量的确定为第三值。其中,第三值可以为任意数值,例如0。
由此可见,预测值的方位角分量的预测值初始化方式可以采用多种方式,具体采用哪种方式由如初始化模式标识信息的头信息表示。
示例性的,在一些实施例中,在头信息,如GPS或/和GBH中设置一个语法元素,如
geom_angular_phi_ini_zero,该语法元素可以表示当前点云的柱面坐标(r,i)中方位角的预测初始值
示例性的,在一些实施例中,当geom_angular_phi_ini_zero=1时,表示的预测值初始化为0,即初始预测值的方位角分量为0,也就是说,当待编(解)码点是预测树的根节点时,其柱面坐标的预测值为0。
示例性的,在一些实施例中,当geom_angular_phi_ini_zero=0时,表示的预测值初始化为也就是说,当待编(解)码点是预测树的根节点时,其柱面坐标的预测值为
可以理解的是,在本申请的实施例中,与常见技术相比,通过第一初始化模式进行预测值的初始化时,可以利用码流中传输的方位角采样信息(如方位角采样阈值)对初始预测值的方位角分量进行确定,而不再直接将初始预测值的方位角分量初始化为0,这样的预测值初始化方式更为合理,可以有效提升几何信息的预测效果。
综上所述,通过步骤201至步骤207所提出的编码方法,可以先确定当前点云对应的方位角采样信息和径向距离信息,然后再结合方位角采样信息和径向距离信息进行当前点云的预测值的初始化处理,具体地,可以根据方位角采样信息对初始预测值的方位角分量进行确定,同时,根据径向距离信息对初始预测值的径向距离分量进行确定。
本实施例提供了一种编码方法,在编码端,确定当前点云对应的方位角采样信息,并将方位角采样信息写入码流;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。由此可见,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以选择通过当前点云对应的方位角采样信息来确定对应的初始预测值,能够充分考虑到当前点云的根节点的方位角的实际大小,实现更为合理的预测值的初始化处理。也就是说,在本申请的实施例中,结合方位角采样信息进行预测值的初始化,能够提高预测效果的准确性,从而提升了点云压缩性能。
在本申请的再一实施例中,基于前述实施例相同的发明构思,图13为编码器的组成结构示意图一,如图13所示,编码器100可以包括:第一确定单元111和编码单元112;其中,
所述第一确定单元111,配置为确定所述当前点云对应的方位角采样信息;
所述编码单元112,配置为将所述方位角采样信息写入码流;
所述第一确定单元111,还配置为根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
需要说明的是,在本申请的实施例中,编码器100也可以看作数据处理模式(或“熵编码器”),用于对待编码语法元素的取值进行编码处理。
可以理解地,在本申请的实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种计算机可读存储介质,应用于编码器100,该计算机可读存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现前述实施例中任一项所述的编码方法。
基于上述编码器100的组成以及计算机可读存储介质,图14为编码器的组成结构示意图二,如图14所示,编码器100可以包括:第一存储器121和第一处理器122,第一通信接口123和第一总线系统124。第一存储器121、第一处理器122、第一通信接口123通过第一总线系统124耦合在一起。可理解,第一总线系统124用于实现这些组件之间的连接通信。第一总线系统124除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为第一总线系统124。其中,
第一通信接口123,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
所述第一存储器121,用于存储能够在所述第一处理器上运行的计算机程序;
所述第一处理器122,用于在运行所述计算机程序时,确定所述当前点云对应的方位角采样信息,并将所述方位角采样信息写入码流;根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
可以理解,本申请实施例中的第一存储器121可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)。本申请描述的系统和方法的第一存储器121旨在包括但不限于这些和任意其它适合类型的存储器。
而第一处理器122可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器122中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器122可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器121,第一处理器122读取第一存储器121中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,第一处理器122还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
本实施例提供了一种编码器,该编码器确定当前点云对应的方位角采样信息,并将方位角采样信息写入码流;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。由此可见,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以选择通过当前点云对应的方位角采样信息来确定对应的初始预测值,能够充分考虑到当前点云的根节点的方位角的实际大小,实现更为合理的预测值的初始化处理。也就是说,在本申请的实施例中,结合方位角采样信息进行预测值的初始化,能够提高预测效果的准确性,从而提升了点云压缩性能。
在本申请的再一实施例中,基于前述实施例相同的发明构思,图15为解码器的组成结构示意图一,如图15所示,解码器200可以包括:解码单元211和第二确定单元212;其中,
所述解码单元211,配置为解码码流;
所述第二确定单元212,配置为确定所述当前点云对应的方位角采样信息;根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
需要说明的是,在本申请的实施例中,解码器200也可以看作数据处理模式(或“熵解码器”),用于对待解码语法元素的取值进行解码处理。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例提供了一种计算机可读存储介质,应用于解码器200,该计算机可读存储介质存储有计算机程序,所述计算机程序被第二处理器执行时实现前述实施例中任一项所述的方法。
基于上述解码器200的组成以及计算机可读存储介质,图16为解码器的组成结构示意图二,如图16所示,解码器200可以包括:第二存储器221和第二处理器222,第二通信接口223和第二总线系统224。第二存储器221和第二处理器222,第二通信接口223通过第二总线系统224耦合在一起。可理解,第二总线系统224用于实现这些组件之间的连接通信。第二总线系统224除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为第二总线系统224。其中,
第二通信接口223,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
所述第二存储器221,用于存储能够在所述第二处理器上运行的计算机程序;
所述第二处理器222,用于在运行所述计算机程序时,解码码流,确定当前点云对应的方位角采样信息;根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
可以理解,本申请实施例中的第二存储器221可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)。本申请描述的系统和方法的第二存储器221旨在包括但不限于这些和任意其它适合类型的存储器。
而第二处理器222可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第二处理器222中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第二处理器222可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第二存储器221,第二处理器222读取第二存储器221中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,第二处理器222还配置为在运行所述计算机程序时,执行前述实施例中任一项所述的方法。
本实施例提供了一种解码器,该解码器解码码流,确定当前点云对应的方位角采样信息;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。由此可见,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以选择通过当前点云对应的方位角采样信息来确定对应的初始预测值,能够充分考虑到当前点云的根节点的方位角的实际大小,实现更为合理的预测值的初始化处理。也就是说,在本申请的实施例中,结合方位角采样信息进行预测值的初始化,能够提高预测效果的准确性,从而提升了点云压缩性能。
进一步地,本申请的实施例还提出了一种码流,其中,所述码流是根据待编码信息进行比特编码生成的;其中,待编码信息至少包括:初始化模式标识信息,方位角采样信息,径向距离信息,量化参数,量化后的预测残差,模式标识信息。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
本申请实施例提供了一种编解码方法、码流、编码器、解码器以及存储介质,在解码端,解码码流,确定当前点云对应的方位角采样信息;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。在编码端,确定当前点云对应的方位角采样信息,并将方位角采样信息写入码流;根据当前点云对应的方位角采样信息确定当前点云对应的初始预测值,并根据初始预测值确定当前点云中点的预测值。由此可见,在本申请的实施例中,在对当前点云的预测值进行初始化的过程中,可以选择通过当前点云对应的方位角采样信息来确定对应的初始预测值,能够充分考虑到当前点云的根节点的方位角的实际大小,实现更为合理的预测值的初始化处理。也就是说,在本申请的实施例中,结合方位角采样信息进行预测值的初始化,能够提高预测效果的准确性,从而提升了点云压缩性能。
Claims (37)
- 一种点云解码方法,应用于解码器,所述方法包括:解码码流,确定当前点云对应的方位角采样信息;根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
- 根据权利要求1所述的方法,其中,所述方法还包括:解码码流,确定所述当前点云对应的径向距离信息。
- 根据权利要求2所述的方法,其中,所述方法还包括:根据所述方位角采样信息和所述径向距离信息确定所述当前点云对应的初始预测值。
- 根据权利要求3所述的方法,其中,所述方法还包括:根据所述方位角采样信息确定初始化参数;根据所述方位角采样信息和所述初始化参数,确定所述初始预测值对应的方位角分量。
- 根据权利要求1-4任一项所述的方法,其中,所述方法还包括:解码码流,确定第一方位角参数;根据所述第一方位角参数和预设数值,确定所述方位角采样信息。
- 根据权利要求2所述的方法,其中,所述方法还包括:根据所述当前点云对应的径向距离信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
- 根据权利要求2-6任一项所述的方法,其中,所述方法还包括:根据所述径向距离信息确定所述初始预测值对应的径向距离分量。
- 根据权利要求2所述的方法,其中,所述方法还包括:确定初始化模式标识信息;在所述初始化模式标识信息指示所述当前点云使用第一初始化模式的情况下,执行所述方位角采样信息和所述径向距离信息的确定流程。
- 根据权利要求8所述的方法,其中,所述方法还包括:在所述初始化模式标识信息指示所述当前点云使用第二初始化模式的情况下,执行所述径向距离信息的确定流程。
- 根据权利要求9所述的方法,其中,所述方法还包括:在所述初始化模式标识信息的取值为第一值的情况下,确定所述初始化模式标识信息指示所述当前点云使用所述第一初始化模式;在所述初始化模式标识信息的取值为第二值的情况下,确定所述初始化模式标识信息指示所述当前点云使用所述第二初始化模式。
- 根据权利要求8-10任一项所述的方法,其中,所述方法还包括:解码码流,确定所述初始化模式标识信息。
- 根据权利要求10所述的方法,其中,所述方法还包括:在所述初始化模式标识信息指示所述当前点云使用第一初始化模式的情况下,根据所述方位角采样信息确定所述初始预测值的方位角分量;在所述初始化模式标识信息指示所述当前点云使用第二初始化模式的情况下,将所述初始预测值的方位角分量设置为第三值。
- 根据权利要求1或6所述的方法,其中,所述方法还包括:将所述初始预测值确定为所述当前点云对应的预测树的根节点的预测值;基于所述根节点的预测值,确定所述当前点云中的其他点的预测值。
- 根据权利要求13所述的方法,其中,所述方法还包括:解码码流,确定所述当前点云中当前点对应的量化参数和量化后的预测残差;对所述量化后的预测残差进行反量化,确定所述当前点对应的预测残差;根据所述当前点对应的预测值和所述预测残差,确定所述当前点对应的重建值。
- 根据权利要求14所述的方法,其中,所述方法还包括:解码码流,确定所述当前点对应的模式标识信息;其中,所述模式标识信息用于指示所述当前点对应的预测模式为帧间模式或帧内模式。
- 一种点云编码方法,应用于编码器,所述方法包括:确定当前点云对应的方位角采样信息,并将所述方位角采样信息写入码流;根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
- 根据权利要求16所述的方法,其中,所述方法还包括:确定所述当前点云对应的径向距离信息,并将所述当前点云对应的径向距离信息写入码流。
- 根据权利要求17所述的方法,其中,所述方法还包括:根据所述方位角采样信息和所述径向距离信息确定所述当前点云对应的初始预测值。
- 根据权利要求18所述的方法,其中,所述方法还包括:根据所述方位角采样信息确定初始化参数;根据所述方位角采样信息和所述初始化参数,确定所述初始预测值对应的方位角分量。
- 根据权利要求16所述的方法,其中,所述方法还包括:根据所述当前点云对应的径向距离信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
- 根据权利要求17-20任一项所述的方法,其中,所述方法还包括:根据所述径向距离信息确定所述初始预测值对应的径向距离分量。
- 根据权利要求17所述的方法,其中,所述方法还包括:确定初始化模式标识信息;在所述初始化模式标识信息指示所述当前点云使用第一初始化模式的情况下,执行所述方位角采样信息和所述径向距离信息的确定流程。
- 根据权利要求22所述的方法,其中,所述方法还包括:在所述初始化模式标识信息指示所述当前点云使用第二初始化模式的情况下,执行所述径向距离信息的确定流程。
- 根据权利要求23所述的方法,其中,所述方法还包括:在确定所述当前点云使用所述第一初始化模式的情况下,设置所述初始化模式标识信息的取值为第一值;在确定所述当前点云使用所述第二初始化模式的情况下,设置所述初始化模式标识信息的取值为第二值。
- 根据权利要求21-24任一项所述的方法,其中,所述方法还包括:将所述初始化模式标识信息写入码流。
- 根据权利要求24所述的方法,其中,所述方法还包括:在所述初始化模式标识信息指示所述当前点云使用第一初始化模式的情况下,根据所述方位角采样信息确定所述初始预测值的方位角分量;在所述初始化模式标识信息指示所述当前点云使用第二初始化模式的情况下,将所述初始预测值的方位角分量设置为第三值。
- 根据权利要求16或20所述的方法,其中,所述方法还包括:将所述初始预测值确定为所述当前点云对应的预测树的根节点的预测值;基于所述根节点的预测值,确定所述当前点云中的其他点的预测值。
- 根据权利要求27所述的方法,其中,所述方法还包括:根据所述当前点云中当前点对应的预测值,确定所述当前点对应的预测残差;根据所述当前点对应的量化参数对所述预测残差进行量化,确定所述当前点对应的量化后的系数残差。
- 根据权利要求28所述的方法,其中,所述方法还包括:将所述当前点对应的量化参数和量化后的预测残差写入码流。
- 根据权利要求29所述的方法,其中,所述方法还包括:根据率失真算法确定所述当前点对应的模式标识信息,并将所述模式标识信息写入码流;其中,所述模式标识信息用于指示所述当前点对应的预测模式为帧间模式或帧内模式。
- 根据权利要求16所述的方法,其中,所述方法还包括:根据所述方位角采样信息和预设数值确定第一方位角参数;将所述第一方位角参数写入码流。
- 一种码流,其中,所述码流是根据待编码信息进行比特编码生成的;其中,待编码信息至少包括:初始化模式标识信息,方位角采样信息,径向距离信息,量化参数,量化后的预测残差,模式标识信息。
- 一种编码器,所述编码器包括:第一确定单元和编码单元;其中,所述第一确定单元,配置为确定所述当前点云对应的方位角采样信息;所述编码单元,配置为将所述方位角采样信息写入码流;所述第一确定单元,还配置为根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
- 一种编码器,所述编码器包括第一存储器和第一处理器;其中,所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;所述第一处理器,用于在运行所述计算机程序时,执行如权利要求16至31中任一项所述的方法。
- 一种解码器,所述解码器包括:解码单元和第二确定单元;其中,所述解码单元,配置为解码码流;所述第二确定单元,配置为确定所述当前点云对应的方位角采样信息;根据所述当前点云对应的方位角采样信息确定所述当前点云对应的初始预测值,并根据所述初始预测值确定所述当前点云中点的预测值。
- 一种解码器,所述解码器包括第二存储器和第二处理器;其中,所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;所述第二处理器,用于在运行所述计算机程序时,执行如权利要求1至15中任一项所述的方法。
- 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1至15中任一项所述的方法、或者实现如权利要求16至31中任一项所述的方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202380097073.4A CN121100528A (zh) | 2023-07-06 | 2023-07-06 | 编解码方法、码流、编码器、解码器以及存储介质 |
| PCT/CN2023/106176 WO2025007353A1 (zh) | 2023-07-06 | 2023-07-06 | 编解码方法、码流、编码器、解码器以及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/106176 WO2025007353A1 (zh) | 2023-07-06 | 2023-07-06 | 编解码方法、码流、编码器、解码器以及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2025007353A1 WO2025007353A1 (zh) | 2025-01-09 |
| WO2025007353A9 true WO2025007353A9 (zh) | 2025-03-20 |
Family
ID=94171013
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/106176 Pending WO2025007353A1 (zh) | 2023-07-06 | 2023-07-06 | 编解码方法、码流、编码器、解码器以及存储介质 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN121100528A (zh) |
| WO (1) | WO2025007353A1 (zh) |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114913253B (zh) * | 2021-02-08 | 2025-01-28 | 西安电子科技大学 | 一种自适应点云几何编解码方法及装置 |
| CN115412717B (zh) * | 2021-05-26 | 2024-05-17 | 荣耀终端有限公司 | 一种点云方位角信息的预测编解码方法及装置 |
| CN115474058B (zh) * | 2021-06-11 | 2025-06-24 | 维沃移动通信有限公司 | 点云编码处理方法、点云解码处理方法及相关设备 |
| US20230102401A1 (en) * | 2021-09-30 | 2023-03-30 | Qualcomm Incorporated | Inter prediction coding for geometry point cloud compression |
-
2023
- 2023-07-06 CN CN202380097073.4A patent/CN121100528A/zh active Pending
- 2023-07-06 WO PCT/CN2023/106176 patent/WO2025007353A1/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| CN121100528A (zh) | 2025-12-09 |
| WO2025007353A1 (zh) | 2025-01-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN115474041B (zh) | 点云属性的预测方法、装置及相关设备 | |
| CN116648915A (zh) | 点云编解码方法、编码器、解码器以及计算机存储介质 | |
| TWI806481B (zh) | 點雲中鄰居點的選擇方法及裝置、編碼設備、解碼設備及電腦設備 | |
| WO2022121650A1 (zh) | 点云属性的预测方法、编码器、解码器及存储介质 | |
| CN116325732A (zh) | 点云的解码、编码方法、解码器、编码器和编解码系统 | |
| WO2025007353A9 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024159534A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2022170511A1 (zh) | 点云解码方法、解码器及计算机存储介质 | |
| WO2023123471A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2022170521A1 (zh) | 几何重构方法、解码器以及计算机存储介质 | |
| WO2025010541A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| US20250247550A1 (en) | Method for encoding, method for decoding, and decoder | |
| WO2024182978A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025217849A1 (zh) | 编解码方法、点云编码器、点云解码器以及存储介质 | |
| WO2024103304A1 (zh) | 点云编解码方法、编码器、解码器、码流及存储介质 | |
| WO2025039122A1 (zh) | 点云编解码方法、码流、编码器、解码器以及存储介质 | |
| HK40073908A (zh) | 点云中邻居点的选择方法、装置及编解码器 | |
| HK40084295A (zh) | 点云编解码方法、装置、设备及存储介质 | |
| WO2024212043A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024082152A1 (zh) | 编解码方法及装置、编解码器、码流、设备、存储介质 | |
| WO2024082135A1 (zh) | 编解码方法、编解码器、码流以及计算机存储介质 | |
| WO2025076659A1 (zh) | 点云编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025076662A1 (zh) | 点云编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024148491A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024212038A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 |
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: 23944080 Country of ref document: EP Kind code of ref document: A1 |