Coding method, decoding method, bitstream, coder, decoder, and storage medium
By adaptively determining attribute offset values and performing in-loop filtering, the problems of high time complexity and large bitstream overhead in point cloud compression coding are solved, thereby improving the performance of point cloud encoding and decoding and the reconstruction effect of attribute information.
Patent Information
- Application Number
- PCT/CN2024/088912
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-19
- Publication Date
- 2025-10-23
AI Technical Summary
Existing point cloud compression coding techniques suffer from high time complexity, large bitstream overhead, and unsatisfactory prediction results during attribute information prediction, leading to a decline in point cloud encoding and decoding performance.
An adaptive attribute offset method is adopted, which adaptively determines the optimal attribute offset value of the current point cloud at the encoding end and transmits it to the decoding end through syntax element identification information for attribute information compensation. The attribute offset value is used for in-loop filtering to improve the reconstruction effect, while reducing the transmission of indicator information.
It improves point cloud encoding and decoding performance, reduces time complexity and bitstream overhead, and enhances the reconstruction effect of attribute information.
Smart Images

Figure CN2024088912_23102025_PF_FP_ABST
Abstract
Description
Coding method, code stream, codec and storage medium TECHNICAL FIELD
[0001] Embodiments of the present application relate to the technical field of point cloud compression, and particularly relate to a coding method, a code stream, a codec and a storage medium. BACKGROUND
[0002] In a coding framework provided by Moving Picture Experts Group (MPEG), such as a Geometry-based Point Cloud Compression (G-PCC) coding framework or a Video-based Point Cloud Compression (V-PCC) coding framework, the geometry information and the attribute information of a point cloud are encoded separately.
[0003] In order to improve the prediction performance of the attribute information, the common point cloud compression coding technologies at present mainly include an out-of-loop attribute enhancement method based on Wiener filtering and an in-loop attribute enhancement method based on neighborhood smoothing. However, the common methods have problems such as high time complexity, large code stream overhead, and unsatisfactory prediction effect in the prediction process of the attribute information, which reduces the point cloud coding performance.
[0004] SUMMARY
[0005] Embodiments of the present application provide a coding method, a code stream, a codec and a storage medium, which can effectively improve the point cloud coding performance.
[0006] The technical solutions of the embodiments of the present application can be implemented as follows:
[0007] In a first aspect, the embodiments of the present application provide a decoding method applied to a decoder, and the method comprises the following steps:
[0008] decoding a code stream to determine first syntax element identification information;
[0009] in a case where the first syntax element identification information indicates that a current type of a current point cloud uses an attribute offset value, determining an attribute offset value of the current type;
[0010] determining an attribute reconstruction value of the current point of the current type according to the attribute offset value of the current type.
[0011] In a second aspect, the embodiments of the present application provide an encoding method applied to an encoder, and the method comprises the following steps:
[0012] determining an attribute offset value of a current type corresponding to a current point cloud;
[0013] determine a property reconstruction value of the current point of the current type according to the property offset value of the current type;
[0014] In a case where the attribute offset value is determined for the point of the current type corresponding to the current point cloud based on the property reconstruction value of the current point, a first syntax element identification information is determined, and the first syntax element identification information is written into the bitstream.
[0015] In a third aspect, an embodiment of the present application provides an encoder, the encoder comprising a first determining unit; wherein,
[0016] The first determining unit is configured to determine a property offset value of a current type corresponding to a current point cloud, determine a property reconstruction value of a current point of the current type according to the property offset value of the current type, and in a case where the attribute offset value is determined for the point of the current type corresponding to the current point cloud based on the property reconstruction value of the current point, determine a first syntax element identification information and write the first syntax element identification information into a bitstream.
[0017] In a fourth aspect, an embodiment of the present application provides an encoder, the encoder comprising a first memory and a first processor; wherein,
[0018] The first memory is configured to store a computer program capable of running on the first processor.
[0019] The first processor is configured to execute the encoding method as described above when the computer program is running.
[0020] In a fifth aspect, an embodiment of the present application provides a decoder, the decoder comprising a second determining unit; wherein,
[0021] The second determining unit is configured to decode a bitstream, determine a first syntax element identification information, in a case where the first syntax element identification information indicates that an attribute offset value is used for a point of a current type corresponding to a current point cloud, determine a property offset value of the current type, and determine a property reconstruction value of a current point of the current type according to the property offset value of the current type.
[0022] In a sixth aspect, an embodiment of the present application provides a decoder, the decoder comprising a second memory and a second processor; wherein,
[0023] The second memory is configured to store a computer program capable of running on the second processor.
[0024] The second processor is configured to execute the decoding method as described above when the computer program is running.
[0025] In a seventh aspect, an embodiment of the present application provides a code stream, the code stream being generated by bit encoding according to to-be-encoded information; wherein the to-be-encoded information at least comprises:
[0026] the first syntax element identification information, the second syntax element identification information, the third syntax element identification information, the first reference identification information, the second reference identification information, the third reference identification information, the motion vector, and the prediction residual of the attribute offset value of the current type.
[0027] In an eighth aspect, an embodiment of the present application provides a computer readable storage medium, wherein the computer readable storage medium stores a computer program, and the computer program is executed to implement the decoding method or the encoding method.
[0028] An embodiment of the present application provides a coding and decoding method, a code stream, a codec and a storage medium. At a decoding end, a code stream is decoded, and first syntax element identification information is determined. In a case where the first syntax element identification information indicates that a point of a current type corresponding to a current point cloud uses an attribute offset value, an attribute offset value of the current type is determined. An attribute reconstruction value of a current point of the current type is determined according to the attribute offset value of the current type. At an encoding end, an attribute offset value of a current type corresponding to a current point cloud is determined. An attribute reconstruction value of a current point of the current type is determined according to the attribute offset value of the current type. In a case where it is determined that the point of the current type corresponding to the current point cloud uses the attribute offset value based on the attribute reconstruction value of the current point, the first syntax element identification information is determined, and the first syntax element identification information is written into the code stream. That is, in an embodiment of the present application, an optimal attribute offset value of a current type corresponding to a current point cloud can be adaptively determined at an encoding end, and whether a point of the current type corresponding to the current point cloud uses the attribute offset value to compensate attribute information can be adaptively selected, and the first syntax element identification information is correspondingly set and transmitted to a decoding end. Correspondingly, when the first syntax element identification information obtained by decoding indicates that the point of the current type corresponding to the current point cloud uses the attribute offset value, the decoding end can further compensate the attribute information of the current point of the current type by using the attribute offset value, that is, the attribute information is in-loop filtered by using the attribute offset value to obtain a final attribute reconstruction value. As can be seen, the use of the attribute offset value can improve the reconstruction effect of the attribute information, and only a small amount of indication information needs to be transmitted, so that the time complexity and code stream overhead can be reduced, thereby effectively improving the point cloud coding and decoding performance. BRIEF DESCRIPTION OF DRAWINGS
[0029] FIG. 1 is a schematic diagram of a network architecture of a point cloud coding according to an embodiment of the present application;
[0030] FIG. 2 is a schematic diagram of a composition framework of a G-PCC encoder according to an embodiment of the present application;
[0031] FIG. 3 is a schematic diagram of a G-PCC decoder according to an embodiment of the present application;
[0032] FIG. 4 is a schematic diagram of an implementation process of a decoding method according to an embodiment of the present application;
[0033] FIG. 5 is a schematic diagram of an implementation process of a decoding method according to an embodiment of the present application;
[0034] FIG. 6 is a schematic diagram of an implementation process of a decoding method according to an embodiment of the present application;
[0035] FIG. 7 is a schematic diagram of an implementation process of an encoding method according to an embodiment of the present application;
[0036] FIG. 8 is a schematic diagram of an implementation process of an encoding method according to an embodiment of the present application;
[0037] FIG. 9 is a schematic diagram of an implementation process of an encoding method according to an embodiment of the present application;
[0038] FIG. 10 is a schematic diagram of an encoding and decoding implementation of intra-loop attribute filtering;
[0039] FIG. 11 is a schematic diagram of a structure of an encoder according to an embodiment of the present application;
[0040] FIG. 12 is a schematic diagram of a specific hardware structure of an encoder according to an embodiment of the present application;
[0041] FIG. 13 is a schematic diagram of a structure of a decoder according to an embodiment of the present application;
[0042] FIG. 14 is a schematic diagram of a specific hardware structure of a decoder according to an embodiment of the present application;
[0043] FIG. 15 is a schematic diagram of a structure of an encoding and decoding system according to an embodiment of the present application. DETAILED DESCRIPTION
[0044] In order to enable a person skilled in the art to better understand the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings, which are only used for reference and are not intended to limit the embodiments of the present application.
[0045] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present application belongs. The terms used herein are only for the purpose of describing the embodiments of the present application and are not intended to limit the present application.
[0046] In the following description, reference is made to "some embodiments", which describe a subset of all possible embodiments, but it is to be understood that "some embodiments" can be the same subset or different subsets as each other and as other subsets of all possible embodiments, and can be combined with each other and with other subsets of all possible embodiments without contradiction.
[0047] It should also be noted that the terms "first", "second", "third" etc. used in the embodiments of the present application are only used to distinguish similar objects, and do not represent a specific order of the objects. Understandably, "first", "second", "third" etc. can be interchanged in a specific order or sequence as allowed, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0048] A point cloud is a three-dimensional representation of an object surface. A point cloud (data) of an object surface can be collected by photoelectric radar, laser radar, laser scanner, multi-view camera, etc.
[0049] A point cloud is a set of discrete points that express the spatial structure and surface properties of a three-dimensional object or scene in space, wherein the point cloud surface is composed of densely distributed points.
[0050] A two-dimensional image has information expressed at each pixel point, and the distribution is regular, so there is no need to record the position information. However, the distribution of points in a point cloud in three-dimensional space has randomness and irregularity, so the position of each point in space needs to be recorded in order to fully express a point cloud. Similar to a two-dimensional image, each position has corresponding attribute information during the collection process, which is usually an RGB color value, and the color value reflects the color of the object. For a point cloud, the attribute information corresponding to each point, in addition to color information, also includes reflectance value, which is commonly used to reflect the surface material of the object. Therefore, a point in a point cloud can include position information and attribute information of the point. For example, the position information of the point can be three-dimensional coordinate information (x, y, z) of the point. The position information of the point can also be referred to as the geometric information of the point. For example, the attribute information of the point can include color information (three-dimensional color information) and / or reflectance (one-dimensional reflectance information r), etc. For example, the color information can be information on any color space. For example, the color information can be RGB information. Wherein, R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, the color information can be luminance chrominance (YCbCr, YUV) information. Wherein, Y represents brightness (Luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
[0051] According to the laser measurement principle, the points in the point cloud can include three-dimensional coordinate information of the points and reflectivity values of the points. For example, according to the photogrammetry principle, the points in the point cloud can include three-dimensional coordinate information of the points and three-dimensional color information of the points. For another example, the point cloud is obtained in combination with the laser measurement and the photogrammetry principle, and the points in the point cloud can include three-dimensional coordinate information of the points, reflectivity values of the points and three-dimensional color information of the points.
[0052] With the development of three-dimensional reconstruction and three-dimensional imaging technology, point clouds are widely used in virtual reality, immersive telepresence, three-dimensional printing and other fields. However, due to the large number of points in the three-dimensional point cloud, and the disorderly distribution of the points in space, and the rich attribute information of each point, a point cloud has a large amount of data, which brings great challenges to the storage and transmission of the point cloud. Therefore, point cloud compression and coding technology is one of the feature technologies of point cloud processing and application.
[0053] In point cloud inter-frame prediction coding, the reconstructed point cloud attributes are used as a reference for the coding of the next frame of point cloud. Inaccurate reconstructed attribute values can affect the accuracy of inter-frame prediction, and further affect the final coding efficiency.
[0054] In order to improve the prediction performance of attribute information, the current common methods mainly include out-of-loop attribute enhancement method based on Wiener filtering and in-loop attribute enhancement method based on neighborhood smoothing.
[0055] For the attribute enhancement method based on Wiener filtering, at the encoding end, for each point, a certain number of neighbor points are found in the vicinity, and based on the minimum rate-distortion criterion, a set of weight coefficients is calculated for each frame or each coding unit, so that the neighbor points have smaller signal distortion of the current point based on the set of weight coefficients relative to the attribute value reconstructed according to the existing compression method. If the quality gain brought by the reduced signal distortion is greater than the code rate loss brought by the transmission of the set of weight coefficients, an indication bit is encoded at the encoding end. At the decoding end, first, the indication bit is decoded. If the indication bit indicates that the rate-distortion gain can be brought by the Wiener filtering method, the weight coefficients are further decoded. Then, for each decoded point, a certain number of neighbor points or neighbor pixels are found in the same way as at the encoding end, and then the attribute reconstruction value of the current point is recalculated using the neighbor points or neighbor pixels and the decoded weight coefficients.
[0056] However, in the attribute enhancement method based on Wiener filtering, the nearest neighbor search operation and the optimal weight coefficient calculation involved consume a lot of time, especially for the time-sensitive decoding end, which significantly increases the additional time complexity. At the same time, the weight coefficients to be transmitted account for a large proportion in the overall attribute code stream. In addition, the attribute enhancement method based on Wiener filtering can be regarded as a post-processing method after the conventional encoding process of GPCC, and cannot be used as an in-loop filtering method.
[0057] The in-loop attribute enhancement method based on neighborhood smoothing is a hierarchical attribute transform method in geometry-based point cloud compression (GPCC). In the original GPCC hierarchical attribute transform method, at the encoding end, for each node in the hierarchical structure, the attribute value of the current node is predicted by looking up the attribute values of the nodes in the previous level or the same level that have been encoded, and then the difference between the true attribute value of the current node and the predicted attribute value is calculated. The difference is further transformed by a wavelet transform and written into the encoding bitstream. At the decoding end, for each node in the hierarchical structure, the neighbors are looked up in the same way as at the encoding end, the attribute prediction value is calculated in the same way as at the encoding end, and then the transform coefficients of the prediction residual are decoded, the residual is obtained by inverse transform, and the reconstructed attribute value is obtained by adding the residual to the prediction value. In the in-loop attribute enhancement method based on neighborhood smoothing, the prediction value of each node is further looked up in a certain range of neighbor nodes on the basis of the original prediction method, and the prediction value of the current node is updated by using the prediction values found in the certain range. These prediction values are assigned fixed weights based on the distance from the current node, without writing the weight coefficients into the bitstream. At the decoding end, the prediction value is updated in the same way as at the encoding end, and the residual is further obtained by decoding to obtain the reconstructed value.
[0058] However, in the in-loop attribute enhancement method based on neighborhood smoothing, the attribute of the current point is forcibly smoothed by the attribute values of the neighbors, and lacks the guidance of the minimum rate-distortion criterion, so that the enhancement effect cannot be guaranteed.
[0059] Therefore, in the prediction process of attribute information, the common point cloud compression and encoding technology often has high time complexity, large bitstream overhead, and unsatisfactory prediction effect, which greatly reduces the point cloud coding and decoding performance.
[0060] To solve the above problems, the embodiment of the present application provides a coding and decoding method, a code stream, a coder and a storage medium. At the decoding end, the code stream is decoded, and first syntax element identification information is determined. In the case that the first syntax element identification information indicates that the attribute offset value is used for the current type of point corresponding to the current point cloud, the attribute offset value of the current type is determined. The attribute reconstruction value of the current point of the current type is determined according to the attribute offset value of the current type. At the encoding end, the attribute offset value of the current type corresponding to the current point cloud is determined. The attribute reconstruction value of the current point of the current type is determined according to the attribute offset value of the current type. In the case that the attribute offset value is used for the current type of point corresponding to the current point cloud based on the attribute reconstruction value of the current point, the first syntax element identification information is determined, and the first syntax element identification information is written into the code stream. That is, in the embodiment of the present application, the optimal attribute offset value of the current type corresponding to the current point cloud can be adaptively determined at the encoding end, and it is adaptively selected whether the attribute offset value is used for the current type of point corresponding to the current point cloud to compensate the attribute information, and the first syntax element identification information is correspondingly set and transmitted to the decoding end. Correspondingly, when the first syntax element identification information obtained by decoding at the decoding end determines that the attribute offset value is used for the current type of point corresponding to the current point cloud, the attribute information of the current point of the current type can be further compensated by using the attribute offset value, that is, the attribute information is in-loop filtered by using the attribute offset value to obtain the final attribute reconstruction value. As can be seen, the use of the attribute offset value can improve the reconstruction effect of the attribute information, and only a small amount of indication information needs to be transmitted, which can ensure the reduction of time complexity and code stream overhead, thereby effectively improving the point cloud coding and decoding performance.
[0061] The embodiment of the present application provides a network architecture of a point cloud coding and decoding system including a decoding method and an encoding method. FIG. 1 is a schematic diagram of a network architecture of a point cloud coding and decoding provided by the embodiment of the present application. As shown in FIG. 1, 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 devices in the implementation process can be various types of devices with point cloud coding and decoding functions, for example, the electronic devices can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital telephone, a video telephone, a television, a sensing device, a server and the like, and the embodiment of the present application does not make any limitation. The decoder or the encoder in the embodiment of the present application can be the above-mentioned electronic devices.
[0062] The electronic device in the embodiment of the present application has a point cloud coding and decoding function, generally includes a point cloud encoder (i.e. an encoder) and a point cloud decoder (i.e. a decoder).
[0063] The following describes the related technologies by taking the G-PCC coding and decoding framework as an example.
[0064] It can be understood that, in the point cloud G-PCC coding framework, for the point cloud data to be encoded, the point cloud data is first divided into multiple slices through slice division. In each slice, the geometry information of the point cloud and the attribute information corresponding to each point are encoded separately.
[0065] FIG. 2 is a schematic diagram of a G-PCC encoder according to an embodiment of the present application. As shown in FIG. 2, in the geometry coding process, coordinate conversion is performed on the geometry information, so that all the point clouds are contained in a bounding box, and then quantization is performed, which mainly plays a role of scaling. Due to the rounding in quantization, the geometry information of a part of the point clouds is the same, and then it is determined based on parameters whether to remove the duplicate points. This process of quantization and removal of duplicate points is also called voxelization process. Then, octree division or prediction tree construction is performed on the bounding box. In this process, the points in the divided leaf nodes are arithmetically encoded to generate a binary geometry bitstream, or the vertices generated by the division are arithmetically encoded (surface fitting is performed based on the vertices) to generate a binary geometry bitstream. In the attribute coding process, after the geometry coding is completed and the geometry information is reconstructed, color conversion is first performed 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 geometry information, so that the unencoded attribute information corresponds to the reconstructed geometry information. The attribute coding is mainly performed on the color information. In the color information coding process, there are mainly two transformation methods, one is distance-based lifting transformation depending on level of detail (LOD) division, and the other is direct region adaptive hierarchal transform (RAHT). Both of the two methods convert the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, quantize the coefficients, and then arithmetically encode the quantized coefficients to generate a binary attribute bitstream.
[0066] FIG. 3 is a schematic diagram of a G-PCC decoder according to an embodiment of the present application. As shown in FIG. 3, for the obtained binary bitstream, the geometry bitstream and the attribute bitstream in the binary bitstream are first independently decoded. In the decoding of the geometry bitstream, the geometry information of the point cloud is obtained through arithmetic decoding-reconstruction of octree / reconstruction of prediction tree-reconstruction of geometry-coordinate inverse conversion. In the decoding of the attribute bitstream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD division / RAHT-color inverse conversion. Based on the geometry information and the attribute information, the point cloud data to be encoded (i.e., the output point cloud) is restored.
[0067] The embodiments of the present application will be described in detail below with reference to the accompanying drawings.
[0068] An embodiment of the present application provides a point cloud decoding method, which can be applied to a decoder. Fig. 4 is a schematic flowchart of an implementation of the decoding method according to an embodiment of the present application. As shown in Fig. 4, the method for decoding processing of the decoder can include the following steps.
[0069] In step 101, a bitstream is decoded to determine first syntax element identification information.
[0070] In an embodiment of the present application, the decoder can determine the first syntax element identification information by decoding the bitstream. The first syntax element identification information can be used to determine whether the current type of points of the current point cloud uses an attribute offset value.
[0071] It should be noted that the decoding method according to the embodiments of the present application specifically refers to a point cloud decoding method, which can be applied to a point cloud decoder (also referred to as a “decoder” for short). The point cloud decoding method according to the embodiments of the present application can include a decoding method for attribute information of a point cloud, specifically including a method for introducing an attribute offset value to filter the attribute information to obtain a final attribute reconstruction value.
[0072] It should be noted that in the embodiments of the present application, the attribute information can be color information, reflectivity or other attributes, which are not limited in the embodiments of the present application. When the attribute information is color information, it can be color information in any color space. For example, the attribute information can be color information in an RGB space, color information in a YUV space, color information in a YCbCr space, etc., which are not limited in the embodiments of the present application.
[0073] Further, in the embodiments of the present application, when the value of the first syntax element identification information is a first value, it is determined that the current type of points uses the attribute offset value; and when the value of the first syntax element identification information is a second value, it is determined that the current type of points does not use the attribute offset value.
[0074] It should be noted that in the embodiments of the present application, the value of the first syntax element identification information can be used to determine whether the current type of points of the current point cloud uses the attribute offset value.
[0075] For example, in some embodiments, when the value of the first syntax element identification information is the first value, it is determined that the current type of points uses the attribute offset value. When the value of the first syntax element identification information is the second value, it is determined that the current type of points does not use the attribute offset value.
[0076] It should be noted that in the embodiments of the present application, the first value and the second value are different, and the first value and the second value can be in the form of a parameter or in the form of a number. In general, the first syntax element identification information can be a flag, which is not limited herein.
[0077] It should also be noted that if the first syntax element identification information is a frame-level flag, in one specific example, the first value can be set to 1, and the second value can be set to 0; in another specific example, the first value can also be set to true, and the second value can also be set to false; and in yet another specific example, the first value can also be set to 0, and the second value can also be set to 1; or, the first value can also be set to false, and the second value can also be set to true. The first value and the second value in the embodiments of the present application are not limited.
[0078] Taking the first value as 1 and the second value as 0 as an example, in the embodiments of the present application, if the value of the first syntax element identification information is 1, it can be determined that the points of the current type use the attribute offset value. Otherwise, if the value of the first syntax element identification information is 0, it can be determined that the points of the current type do not use the attribute offset value.
[0079] Of course, the value of the first syntax element identification information is not limited to 0 and 1, and the present application does not make specific limitations.
[0080] It can be understood that in the embodiments of the present application, the points in the current point cloud can be classified first, so that the points in the current point cloud can be divided into at least one type.
[0081] For example, in some embodiments, the points in the current point cloud can be divided into 16 types, which are type 1, type 2, …, type 15, and type 16. The current type can be any one of the types, for example, the current type can be type 4.
[0082] It should be noted that in the embodiments of the present application, the number of types after the current point cloud is divided is not limited, and the number of points corresponding to each type is also not limited.
[0083] Correspondingly, in the embodiments of the present application, the first syntax element identification information can be used to indicate whether the points of the current type corresponding to the current point cloud use the attribute offset value, and the first syntax element identification information can also be used to determine the type of the points in the current point cloud that use the attribute offset value.
[0084] Further, in the embodiments of the present application, when judging whether the points of the current type use the attribute offset value according to the first syntax element identification information, whether the points of the current type corresponding to the current point cloud use the attribute offset value can be determined according to the value of the first syntax element identification information.
[0085] For example, in some embodiments, when the value of the first syntax element identification information is different from the preset index corresponding to the current type, it is determined that the points of the current type do not use the attribute offset value; and when the value of the first syntax element identification information is the same as the preset index corresponding to the current type, it is determined that the points of the current type use the attribute offset value.
[0086] It should be noted that in the embodiments of the present application, the preset index corresponding to the current type can include an index value of the current type, or an index value related to the current type, which is not limited in the present application.
[0087] For example, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, the current type is type 4, and the index value of the current type is 4, it can be determined that the preset index corresponding to the current type is 4.
[0088] For example, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, the current type is type 4, and each two types of the 16 types use the same index value, i.e., 8 index values with values of 1-8 correspond to the 16 types, for example, the index values of type 1 and type 2 are 1, then the index value of the current type is 2, i.e., it can be determined that the preset index corresponding to the current type is 2.
[0089] That is, in the embodiments of the present application, after obtaining the first syntax element identification information corresponding to the current type by decoding the code stream, the value of the first syntax element identification information can be compared with the preset index corresponding to the current type, if the two are the same, it can be determined that the points of the current type use the attribute offset value, and if the two are different, it can be determined that the points of the current type do not use the attribute offset value.
[0090] For example, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, corresponding to 16 index values of 1-16, the current type is type 4, and the preset index corresponding to the current type is 4, if the value of the first syntax element identification information corresponding to the current type is 4, it can be determined that the first syntax element identification information indicates that the points of the current type use the attribute offset value; and if the value of the first syntax element identification information corresponding to the current type is 0, it can be determined that the first syntax element identification information indicates that the points of the current type do not use the attribute offset value.
[0091] Exemplarily, in some embodiments, assuming that points in the current point cloud are divided into 16 types, each two types in the 16 types use the same index value, respectively corresponding to 8 index values of 1-8, the current type is type 4, the preset index corresponding to the current type is 2, if the value of the first syntax element identification information corresponding to the current type is 2, it can be determined that the first syntax element identification information indicates that the points of the current type use the attribute offset value; if the value of the first syntax element identification information corresponding to the current type is 0, it can be determined that the first syntax element identification information indicates that the points of the current type do not use the attribute offset value.
[0092] As can be seen, in the embodiments of the present application, one attribute offset category index decoding value (the value of the first syntax element identification information) can correspond to one category (type) or multiple categories. For example, the point cloud is divided into 16 types, the value of the index symbol (the first syntax element identification information) obtained by decoding is 1-8, and each symbol corresponds to indicating whether 2 categories adopt the attribute offset value.
[0093] Further, in the embodiments of the present application, in the case that the number of the decoded first syntax element identification information is greater than or equal to the preset threshold, the decoding of the first syntax element identification information is stopped.
[0094] It should be noted that in the embodiments of the present application, one threshold (for example, the preset threshold) can be used to limit the number of the decoded first syntax element identification information. In the process of predicting the attribute information of the current point cloud, if the number of the decoded first syntax element identification information reaches the preset threshold, the decoding of the first syntax element identification information corresponding to the subsequent type can be selected not to be performed, so that the time complexity and the code stream overhead can be reduced to a certain extent.
[0095] It can be understood that in the embodiments of the present application, the preset threshold can be an integer greater than 0 which is set in advance. The present application does not specifically limit the value of the preset threshold.
[0096] That is to say, in the embodiments of the present application, the maximum number of types allowed to use the attribute offset value (such as the preset threshold) can be set in advance, and when the number of the obtained index symbols (the first syntax element identification information) reaches the maximum allowed number, the decoding of the index symbols can be stopped.
[0097] Further, in the embodiments of the present application, the code stream can be decoded first to determine the second syntax element identification information, and in the case that the second syntax element identification information indicates that the current point cloud uses the attribute offset value, the determination of the first syntax element identification information can be further performed.
[0098] It can be understood that, in the embodiments of the present application, the second syntax element identification information can be used to determine whether the current point cloud uses the attribute offset value.
[0099] It should be noted that, in the embodiments of the present application, whether the current point cloud uses the attribute offset value can be determined according to the value of the second syntax element identification information.
[0100] Exemplarily, in some embodiments, when the value of the second syntax element identification information is a first value, it is determined that the current point cloud uses the attribute offset value. When the value of the second syntax element identification information is a second value, it is determined that the current point cloud does not use the attribute offset value.
[0101] It should be noted that, in the embodiments of the present application, the first value and the second value are different, and the first value and the second value can be in the form of a parameter or in the form of a number. In general, the first syntax element identification information can be a flag, which is not limited herein.
[0102] It should be further noted that, if the second syntax element identification information is a frame-level flag, in one specific example, the first value can be set to 1, and the second value can be set to 0; in another specific example, the first value can also be set to true, and the second value can also be set to false; or, in still another specific example, the first value can also be set to 0, and the second value can also be set to 1; or, the first value can also be set to false, and the second value can also be set to true. The first value and the second value in the embodiments of the present application are not limited.
[0103] Taking the first value as 1 and the second value as 0 as an example, in the embodiments of the present application, if the value of the second syntax element identification information is 1, it can be determined that the current point cloud uses the attribute offset value. Otherwise, if the value of the second syntax element identification information is 0, it can be determined that the current point cloud does not use the attribute offset value.
[0104] Of course, the value of the second syntax element identification information is not limited to 0 and 1, and the present application does not make specific limitations.
[0105] It can be understood that, in the embodiments of the present application, if it is determined that the current point cloud uses the attribute offset value based on the second syntax element identification information, the decoding of the first syntax element identification information can be further performed, so that whether the current point cloud corresponding to the current type of points uses the attribute offset value can be determined according to the first syntax element identification information.
[0106] That is, one possible implementation manner of the embodiment of the present application includes: if the second syntax element identification information obtained through decoding indicates that the current point cloud does not use the attribute offset value, then the decoding of the first syntax element identification information can be selected not to be performed. That is, based on the second syntax element identification information, it is determined to use the conventional attribute prediction method to determine the attribute reconstruction value of the current point cloud, and the attribute offset value is no longer introduced to determine the attribute reconstruction value.
[0107] Therefore, in the embodiment of the present application, the flag bit (the second syntax element identification information) indicating whether the attribute offset is enabled can be first decoded and obtained, and if the flag bit indicates that the attribute offset value is enabled, then the class index (the first syntax element identification information) enabling the attribute offset is further decoded.
[0108] Further, in the embodiment of the present application, in the case that the value of the first syntax element identification information does not belong to the preset index range corresponding to the current point cloud, it is determined that the current point cloud does not use the attribute offset value; in the case that the value of the first syntax element identification information belongs to the preset index range corresponding to the current point cloud, it is determined that the current point cloud uses the attribute offset value.
[0109] It should be noted that, in the embodiment of the present application, the first syntax element identification information can also be used to determine whether the current point cloud uses the attribute offset value.
[0110] That is, in the embodiment of the present application, the first syntax element identification information can be used to indicate whether the current point uses the attribute offset value, and can also be used to indicate whether the current type of point corresponding to the current point cloud uses the attribute offset value. That is, the current point cloud and the current category corresponding to the current point cloud can use the same identification information (the first syntax element identification information) to indicate whether the attribute offset value is used.
[0111] It should be noted that, in the embodiment of the present application, the preset index range corresponding to the current point cloud can be a range formed by index values of all types corresponding to the current point cloud.
[0112] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, one type corresponds to one index value, and the 16 types correspond to 16 index values with values of 1-16, at this time, it can be determined that the preset index range corresponding to the current point cloud is 1-16.
[0113] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, one type corresponds to two index values, and the 16 types correspond to 8 index values with values of 1-8, at this time, it can be determined that the preset index range corresponding to the current point cloud is 1-8.
[0114] That is, in the embodiments of the present application, after obtaining the first syntax element identification information from the code stream, the value of the first syntax element identification information can be compared with the preset index range corresponding to the current point cloud, if the preset index range includes the value of the first syntax element identification information, it can be determined that the current point cloud uses the attribute offset value, if the preset index range does not include the value of the first syntax element identification information, it can be determined that the current point cloud does not use the attribute offset value.
[0115] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, respectively corresponding to 16 index values 1-16, if the value of the first syntax element identification information corresponding to the current type is 0, it can be determined that the first syntax element identification information indicates that the current point cloud does not use the attribute offset value; if the value of the first syntax element identification information corresponding to the current type is 6, it can be determined that the first syntax element identification information indicates that the current point cloud uses the attribute offset value, and the points of type 6 use the attribute offset value.
[0116] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, every two types in the 16 types use the same index value, respectively corresponding to 8 index values 1-8, if the value of the first syntax element identification information corresponding to the current type is 0, it can be determined that the first syntax element identification information indicates that the current point cloud does not use the attribute offset value; if the value of the first syntax element identification information corresponding to the current type is 2, it can be determined that the first syntax element identification information indicates that the current point cloud uses the attribute offset value, and the points of type 2 use the attribute offset value.
[0117] As can be seen, in the embodiments of the present application, the flag bit of whether to enable the attribute offset and the attribute offset category index can be indicated by selecting the same symbol (the first syntax element identification information) to indicate whether to enable the attribute offset and the attribute offset category index, when the obtained value (the value of the first syntax element identification information) is not in the possible values of the attribute offset category (the preset index range corresponding to the current point cloud), the attribute offset is not performed.
[0118] Further, in the embodiments of the present application, the use of the attribute offset value of the reference type in the determined reference point cloud can be used to further determine whether the points of the current type corresponding to the current point cloud use the attribute offset value. Wherein, the reference point cloud is the point cloud corresponding to the current point cloud which has completed encoding and decoding.
[0119] It should be noted that in the embodiments of the present application, the code stream can be decoded to determine the first reference identification information; the reference point cloud corresponding to the current point cloud is determined according to the first reference identification information; and in the case that the points of the reference type corresponding to the current type in the reference point cloud use the attribute offset value, the attribute offset value used by the points of the current type corresponding to the current point cloud is determined.
[0120] It can be understood that in the embodiments of the present application, the first reference identification information can be used to indicate the reference point cloud corresponding to the current point cloud. The reference point cloud can be a previously coded point cloud of the current point cloud, or a previously coded point cloud of any frame before the current point cloud, which is not limited in the present application.
[0121] It should be noted that in the embodiments of the present application, after the reference point cloud corresponding to the current point cloud is determined through the first reference identification information, the reference type corresponding to the current type in the reference point cloud can be further determined. At this time, if the points of the reference type use the attribute offset value, it can be determined that the points of the current type also use the attribute offset value, and if the points of the reference type do not use the attribute offset value, it can be determined that the points of the current type do not use the attribute offset value.
[0122] Further, in the embodiments of the present application, whether the points of the current type use the attribute offset value can be further determined by the use of the attribute offset value of the reference type in the determined reference unit. The reference unit is a coded unit corresponding to the coding unit where the current type is located, which has been completed coding.
[0123] It should be noted that in the embodiments of the present application, the code stream can be decoded to determine the second reference identification information; the reference unit corresponding to the coding unit where the current type is located is determined according to the second reference identification information; and in the case that the points of the reference type corresponding to the current type in the reference unit use the attribute offset value, the attribute offset value used by the points of the current type corresponding to the current point cloud is determined.
[0124] It can be understood that in the embodiments of the present application, the second reference identification information can be used to indicate the reference unit corresponding to the coding unit where the current type is located. The reference unit can be any coded unit in the current point cloud that has been completed coding, or any coded unit in the previously coded point cloud of any frame before the current point cloud that has been completed coding, which is not limited in the present application.
[0125] It should be noted that in the embodiments of the present application, after the reference unit corresponding to the current type is determined through the second reference identification information, the reference type corresponding to the current type can be further determined in the reference unit. At this time, if the points of the reference type use the attribute offset value, it can be determined that the points of the current type also use the attribute offset value, and if the points of the reference type do not use the attribute offset value, it can be determined that the points of the current type do not use the attribute offset value.
[0126] Further, in the embodiments of the present application, whether the points of the current type use the attribute offset value can be further determined by the use of the attribute offset value of the determined reference type. The reference type is any type corresponding to the current type that has completed coding and decoding.
[0127] It should be noted that in the embodiments of the present application, the code stream can be decoded to determine the third reference identification information; the reference type is determined according to the third reference identification information; and in the case that the points of the reference type use the attribute offset value, it is determined that the points of the current type corresponding to the current point cloud use the attribute offset value.
[0128] It can be understood that in the embodiments of the present application, the third reference identification information can be used to indicate the reference type corresponding to the current type. The reference type can be any type that has completed coding and decoding corresponding to the current point cloud, or any type that has completed coding and decoding corresponding to any point cloud of any frame in front of the current point cloud, which is not limited in the present application.
[0129] It should be noted that in the embodiments of the present application, after the reference type corresponding to the current type is determined through the third reference identification information, if the points of the reference type use the attribute offset value, it can be determined that the points of the current type also use the attribute offset value, and if the points of the reference type do not use the attribute offset value, it can be determined that the points of the current type do not use the attribute offset value.
[0130] That is, in the embodiments of the present application, the use of the attribute offset value corresponding to the reference point cloud (reference unit, reference type) can also be selected to determine whether the points of the current type corresponding to the current point cloud use the attribute offset value, instead of indicating whether the points of the current type corresponding to the current point cloud use the attribute offset value through the transmission of the first syntax element identification information.
[0131] Therefore, in the embodiments of the present application, when the obtained symbol (first reference identification information, or second reference identification information, or third reference identification information) indicates that the reference point cloud (or reference unit or reference type) is used as a reference, it can be selected not to further continue decoding, and whether the points of the current type use the attribute offset value is determined based on the reference information (reference point cloud or reference unit or reference type).
[0132] Further, in the embodiments of the present application, whether the attribute offset value is used by the point of the current type can be further determined by the usage of the attribute offset value of the preset type corresponding to the current point cloud. The preset type is at least one other type other than the current type.
[0133] For example, in some embodiments, the preset type can be a neighboring type corresponding to the current type corresponding to the current point cloud, or a type with an index value smaller than that of the current type corresponding to the current point cloud. The present application does not make specific limitations.
[0134] Further, in the embodiments of the present application, when determining the attribute offset value of the current type, the attribute offset value of the preset type can be selected to determine the attribute offset value of the current type.
[0135] It should be noted that, in the embodiments of the present application, when the attribute offset value of the preset type is used to determine the attribute offset value of the current type, the attribute offset value of one preset type can be selected to determine the attribute offset value of the current type, or the attribute offset values of multiple preset types can be mathematically operated, and the operation result can be selected to determine the attribute offset value of the current type. The present application does not make specific limitations.
[0136] Therefore, in the embodiments of the present application, the indicator can be selected not to be decoded, and whether the attribute offset value is used by the point of the current type can be determined based on the usage of the attribute offset value of the preset type.
[0137] Further, in the embodiments of the present application, the code stream can be decoded to determine the third syntax element identification information, and then the first classification manner corresponding to the current point cloud can be determined according to the third syntax element identification information. The first classification manner is a classification manner based on attribute information and / or a classification manner based on spatial position. Finally, the points in the current point cloud can be classified according to the first classification manner, and at least one type corresponding to the current point cloud can be determined. The at least one type includes the current type.
[0138] It should be noted that, in the embodiments of the present application, the third syntax element identification information can be used to determine the classification manner of the current point cloud. After determining the third syntax element identification information corresponding to the current point cloud by decoding the code stream, the first classification manner corresponding to the current point cloud can be further determined according to the value of the third syntax element identification information, and then the points in the current point cloud can be classified according to the first classification manner. Finally, at least one type corresponding to the current point cloud can be determined, and the at least one type includes the current type.
[0139] Exemplarily, in some embodiments, Table 1 is a correspondence between a value of the third identification information and a classification manner. As shown in Table 1, assuming that the value of the third syntax element identification information is 1, the classification manner 1 can be determined as the first classification manner corresponding to the current point cloud; and assuming that the value of the third syntax element identification information is n, the classification manner n can be determined as the first classification manner corresponding to the current point cloud, where n is a positive integer.
[0140] Table 1
[0141] It can be understood that, in the embodiments of the present application, the first classification manner can be one of a plurality of classification manners. The first classification manner can be a classification manner based on attribute information and / or a classification manner based on spatial position.
[0142] That is to say, in the embodiments of the present application, at the encoding end, the first classification manner corresponding to the current point cloud can be adaptively determined from a plurality of different classification manners, and then the third syntax element identification information indicating the first classification manner is written into a bitstream and transmitted to the decoding end.
[0143] Further, in the embodiments of the present application, the points in the current point cloud can be classified according to a preset classification manner to determine at least one type corresponding to the current point cloud, where the at least one type includes the current type; and the preset classification manner is a classification manner based on attribute information and / or a classification manner based on spatial position.
[0144] It should be noted that, in the embodiments of the present application, one of the classification manners can be determined in advance as the classification manner corresponding to the current point cloud, for example, the preset classification manner, and then the points in the current point cloud can be directly classified according to the preset classification manner to determine at least one type corresponding to the current point cloud, where the at least one type includes the current type.
[0145] It can be understood that, in the embodiments of the present application, the preset classification manner can be one of a plurality of classification manners. The preset classification manner can be a classification manner based on attribute information and / or a classification manner based on spatial position.
[0146] Exemplarily, in some embodiments, one possible classification manner based on attribute information can be that attribute values are divided into a plurality of intervals from a possible minimum value to a possible maximum value, and the points are classified according to an interval index to which the attribute value of the current point belongs.
[0147] Exemplarily, in some embodiments, another possible classification manner based on attribute information can be: searching for attribute values of neighbor points in a certain range (attribute values of neighbor points), predicting the attribute value of the current point based on the attribute values of the neighbor points, and classifying the points into different categories according to the difference between the predicted attribute value and the existing attribute value of the current point.
[0148] It should be noted that, in the embodiments of the present application, when determining the attribute value of the neighbor, the neighbor points in a certain range can be obtained in multiple ways, which can be a group of points with the shortest geometric distance in the global all points, can be a group of points with the shortest distance to the current point in a certain range, or can be a group of points with the shortest distance to the node to which the current point belongs in a hierarchical structure, and the present application does not make further limitation here.
[0149] It should be noted that, in the embodiments of the present application, the hierarchical structure can be a RAHT layer after region adaptive hierarchical transform (RAHT), can be a detail layer obtained by a Predlift attribute encoding algorithm, or can be a layer obtained by other hierarchical division, and the present application does not make specific limitation.
[0150] It should be noted that, in the embodiments of the present application, when classifying the point cloud by using any of the above classification manners based on attribute information, the attribute information can be the reconstructed attribute value of the point or the predicted attribute value generated in the encoding process, and the present application does not make specific limitation.
[0151] Exemplarily, in some embodiments, a possible classification manner based on spatial position can be: dividing the point cloud in the three-dimensional space into multiple sub-blocks, and classifying according to the index of the spatial divided sub-block to which the current point belongs.
[0152] Exemplarily, in some embodiments, another possible classification manner based on spatial position can be: classifying the point cloud according to the Morton code of the points thereof. One implementation manner can be described as follows: representing the relative spatial position of the points of the point cloud by 8-bit Morton code, and classifying according to the value of any bit or any multiple bits in the Morton code of each point. For example, the classification can be performed according to the 8th bit of the Morton code, since the 8th bit of the Morton code of each point has 8 possible values, the point cloud can be divided into 8 categories as a whole. The classification can also be performed according to the 7th bit and the 8th bit of the Morton code, since the 7th bit and the 8th bit of the Morton code of each point have 64 possible values, the point cloud can be divided into 64 categories as a whole.
[0153] Exemplarily, in some embodiments, another possible classification manner based on spatial position can be to classify the point cloud based on a hierarchical spatial structure. For example, in combination with the RAHT attribute encoding algorithm in the G-PCC coding standard, a hierarchical structure established based on RAHT, the direct current transform coefficients in each level or one or some levels are classified according to one or a combination of the above methods.
[0154] Exemplarily, in some embodiments, another possible classification manner based on spatial position can be to classify the point cloud based on a hierarchical spatial structure. For example, in combination with the RAHT attribute encoding algorithm in the G-PCC coding standard, a hierarchical structure established based on RAHT, the direct current transform coefficients in each level or one or some levels are classified according to one or a combination of the above methods.
[0155] It can be understood that, in the embodiments of the present application, any one of the above classification manners based on attribute information and / or the classification manner based on spatial position are exemplary illustrations of the classification manner of the point cloud, and other classification manners can also be used to classify the points in the point cloud, which are not limited in the present application.
[0156] It should be noted that, in the embodiments of the present application, the above classification manners can also be combined arbitrarily, for example, after the point cloud is divided into sub-blocks or levels based on the spatial position of the points, the points in each sub-block or level are classified according to the above classification manner based on the attribute value of the points, which are not limited in the present application.
[0157] Exemplarily, in some embodiments, when the points in the current point cloud are classified, for example, the points in the current point cloud can be classified according to the classification manner based on attribute information first to determine at least one first type; and then the points of each first type are classified according to the classification manner based on spatial position to determine at least one type corresponding to the current point cloud.
[0158] That is, in the embodiments of the present application, different classification manners can be selected to classify the points in the current point cloud. Assuming that the classification manner based on attribute information and the classification manner based on spatial position are combined, the points in the current point cloud can be classified for the first time according to the attribute information of the points to obtain at least one first type, and then for each first type, the points of the first type can be classified for the second time according to the spatial position of the points, and finally at least one type corresponding to the current point cloud can be obtained.
[0159] Exemplarily, in some embodiments, when classifying the points in the current point cloud, different classification manners can be combined, for example, the points in the current point cloud can be classified according to the classification manner based on spatial positions first to determine at least one second type, and then the points of each second type can be classified according to the classification manner based on attribute information to determine at least one type corresponding to the current point cloud.
[0160] That is, in the embodiments of the present application, the points in the current point cloud can be classified by combining different classification manners. Assuming that the classification manner based on attribute information and the classification manner based on spatial positions are combined, the points in the current point cloud can be classified according to the spatial information of the points first to obtain at least one second type, and then for each second type, the points of the second type can be classified according to the attribute information of the points for a second time, and finally at least one type corresponding to the current point cloud can be obtained.
[0161] Of course, when classifying the points in the current point cloud, a plurality of times of classification can also be performed by combining any number and any type of classification manners, and the present application does not make specific limitations.
[0162] It should be noted that in the embodiments of the present application, when the attribute information contains a plurality of dimensions of the current point, such as the RGB or YUV channels of color, the points can be classified according to any one of the above classification manners in each dimension, and after the class index of the current point in each dimension is obtained, the class corresponding to the current point can be obtained by comprehensive calculation according to the class indexes of each dimension.
[0163] It should be noted that in the embodiments of the present application, when the attribute information contains a plurality of attributes of the current point, such as color and reflectivity, after the points are classified according to any one of the above classification manners in each attribute, the class index of the current point in each attribute is obtained, and the class corresponding to the current point can be obtained by comprehensive calculation according to the class indexes of each attribute.
[0164] Step 102, in the case where the first syntax element identification information indicates that the points of the current type corresponding to the current point cloud use attribute offset values, determining the attribute offset values of the current type.
[0165] In the embodiments of the present application, after the first syntax element identification information is determined by decoding the code stream, if the first syntax element identification information indicates that the points of the current type corresponding to the current point cloud use attribute offset values, the attribute offset values of the current type can be further determined.
[0166] It should be noted that in the embodiments of the present application, a plurality of methods can be used to determine the attribute offset value of the current type, including but not limited to transmitting the attribute offset value of the current type in the code stream, multiplexing the attribute offset value of the reference type, determining the attribute offset value of the current type according to the attribute offset value of the reference type, etc.
[0167] It can be understood that in the embodiments of the present application, the same attribute offset value can be used to filter the attribute information for different points of the same type in the point cloud, so that the attribute offset values used by different points of the same type are the same, that is, the attribute offset value of the current type is used to further determine the final attribute reconstruction value for the points of the current type.
[0168] Further, in the embodiments of the present application, when determining the attribute offset value of the current type, the attribute offset value of the current type can be directly obtained by decoding the code stream.
[0169] That is, in the embodiments of the present application, the decoding end can write the adaptively determined attribute offset value of the current type into the code stream and transmit it to the decoding end, so that the decoding end can directly determine the attribute offset value of the current type by decoding.
[0170] Further, in the embodiments of the present application, when determining the attribute offset value of the current type, the attribute offset value corresponding to the reference type can be determined as the attribute offset value of the current type.
[0171] It should be noted that in the embodiments of the present application, the attribute offset value of the reference type can be directly multiplexed, that is, the attribute offset value of the reference type is directly determined as the attribute offset value of the current type. The reference type can be a type corresponding to the current type in the reference point cloud determined by the first reference identification information, or a type corresponding to the current type in the reference unit determined by the second reference identification information, or a type corresponding to the current type determined by the third reference identification information.
[0172] That is, in the embodiments of the present application, the attribute offset value corresponding to the reference point cloud (reference unit, reference type) can be determined as the attribute offset value of the current type.
[0173] Further, in the embodiments of the present application, when determining the attribute offset value of the current type, the attribute offset value of the current type can be determined according to the attribute offset value of the reference type. The reference type can be a type corresponding to the current type in the reference point cloud determined by the first reference identification information, or a type corresponding to the current type in the reference unit determined by the second reference identification information, or a type corresponding to the current type determined by the third reference identification information. Further, in the embodiments of the present application, when determining the attribute offset value of the current type, the attribute offset value of the current type can be determined according to the attribute offset value of the reference type. The reference type can be a type corresponding to the current type in the reference point cloud determined by the first reference identification information, or a type corresponding to the current type in the reference unit determined by the second reference identification information, or a type corresponding to the current type determined by the third reference identification information.
[0174] That is, in the embodiments of the present application, the attribute offset value of the current type can be further determined by using the attribute offset value corresponding to the reference point cloud (reference unit, reference type).
[0175] Exemplarily, in some embodiments, the code stream can be decoded first to determine the prediction residual of the attribute offset value of the current type. The prediction residual of the attribute offset value of the current type can be understood as the difference between the predicted value of the attribute offset value of the current type and the attribute offset value of the current type.
[0176] Exemplarily, in some embodiments, the predicted value of the attribute offset value of the current type can be determined according to the attribute offset value corresponding to the reference type; and then the attribute offset value of the current type can be determined according to the prediction residual of the attribute offset value of the current type and the predicted value of the attribute offset value of the current type.
[0177] It should be noted that in the embodiments of the present application, the attribute offset value of the current type can be predicted by using the attribute offset value corresponding to the reference point cloud (reference unit, reference type) to obtain the predicted value of the attribute offset value of the current type, so that the attribute offset value of the current type can be further determined by combining the prediction residual of the attribute offset value of the current type obtained by decoding.
[0178] Exemplarily, in some embodiments, the sum value between the predicted value of the attribute offset value of the current type and the prediction residual of the attribute offset value of the current type corresponding thereto can be determined as the attribute offset value of the current type.
[0179] As can be seen, in the embodiments of the present application, the optimal offset value of the current type can be predicted based on the reference information (reference point cloud or reference unit or reference type) to obtain the corresponding predicted value, at the same time, the difference (residual value) between the predicted value and the real optimal value is obtained by decoding, and finally the optimal offset value can be obtained by adding the residual value obtained by decoding and the predicted value, that is, the attribute offset value of the current type is obtained.
[0180] Step 103, determining the attribute reconstruction value of the current point of the current type according to the attribute offset value of the current type.
[0181] In the embodiments of the present application, if it is determined that the point of the current type corresponding to the current point cloud uses the attribute offset value, then after the attribute offset value of the current type is determined, the attribute reconstruction value of the current point of the current type can be further determined according to the attribute offset value of the current type.
[0182] It should be noted that in the embodiments of the present application, the attribute offset value of the current type can be used to filter the attribute information, that is, the attribute offset value of the current type is used to compensate the attribute information, and the attribute reconstruction value of the current point of the current type is determined, which can be understood as an in-loop filtering process for the attribute information.
[0183] Further, in the embodiments of the present application, when the attribute reconstruction value of the current point of the current type is determined according to the attribute offset value of the current type, the attribute reconstruction value of the current point can be determined according to the attribute offset value of the current type and the initial reconstruction value of the current point. For example, the attribute offset value of the current type and the initial reconstruction value of the current point can be summed, and then the sum value is determined as the attribute reconstruction value of the current point.
[0184] It should be noted that in the embodiments of the present application, after the attribute offset value corresponding to the current type is determined, for any point of the current type, for example, the current point, the initial reconstruction value of the current point can be directly compensated using the attribute offset value corresponding to the current type, for example, the attribute offset value of the current type and the initial reconstruction value of the current point are summed, and finally the sum value obtained by calculation is determined as the attribute reconstruction value of the current point.
[0185] It can be understood that in the embodiments of the present application, for the specific implementation of using the attribute offset value of the current type to compensate the attribute information, the above sum value operation is only an example, and other ways such as difference value operation, shift operation, etc. can also be implemented, and the present application does not make specific limitation.
[0186] Further, in the embodiments of the present application, the initial reconstruction value of the current point can be determined according to the attribute reconstruction value of the reference point in the reference point cloud corresponding to the current point cloud.
[0187] That is, in the embodiments of the present application, the initial reconstruction value of the current point can be determined by an inter-frame prediction method, that is, the reference point cloud corresponding to the current point cloud can be first determined, then the reference point corresponding to the current point in the reference point cloud is determined, and the attribute information of the current point is initially predicted according to the attribute reconstruction value of the reference point to obtain the initial reconstruction value of the attribute information of the current point.
[0188] It can be understood that in the embodiments of the present application, the initial reconstruction value of the current point can also be determined by an intra-frame prediction method, that is, the reference point corresponding to the current point in the current point cloud can be determined, and the attribute information of the current point is initially predicted according to the attribute reconstruction value of the reference point to obtain the initial reconstruction value of the attribute information of the current point.
[0189] Further, in the embodiments of the present application, FIG. 5 is a second implementation flowchart of the decoding method according to the embodiments of the present application. As shown in FIG. 5, after determining the attribute reconstruction value of the current point according to the attribute offset value of the current type, i.e., after step 103, the method for the decoder to perform decoding processing can further include the following steps:
[0190] Step 104: determining the attribute reconstruction value of the current point cloud according to the attribute reconstruction value of the current point.
[0191] In the embodiments of the present application, after completing the in-loop filtering of the attribute information of the current point by using the attribute offset value of the current type to obtain the attribute reconstruction value of the current point, the attribute reconstruction value of the current point cloud can be further determined. The attribute reconstruction value of the current point cloud can include the attribute reconstruction values of all points in the current point cloud.
[0192] That is, according to the method according to the embodiments of the present application, each point of each type in the current point cloud can be traversed, the in-loop filtering of the attribute information of the current point is completed by using the corresponding attribute offset value to obtain the attribute reconstruction values of all points, and finally the attribute reconstruction value of the current point cloud is obtained.
[0193] Further, in the embodiments of the present application, FIG. 6 is a third implementation flowchart of the decoding method according to the embodiments of the present application. As shown in FIG. 6, the method for the decoder to perform decoding processing can further include the following steps:
[0194] Step 105: decoding the code stream to determine the motion vector.
[0195] Step 106: determining the attribute prediction value of the point cloud of the next frame image according to the motion vector and the attribute reconstruction value of the current point cloud.
[0196] In the embodiments of the present application, after completing the prediction of the attribute information of the current point cloud to determine the attribute reconstruction value of the current point cloud, the attribute information can be further predicted by using the attribute reconstruction value of the current point cloud and the motion vector obtained by decoding to determine the attribute prediction value of the point cloud of the next frame image.
[0197] That is, in the embodiments of the present application, after completing the in-loop filtering of the attribute information of the current point cloud according to the embodiments of the present application, the subsequent point cloud can be further motion compensated according to the filtered result (the attribute reconstruction value of the current point cloud and the decoded motion vector) to complete the inter-frame prediction of the attribute information of the subsequent point cloud.
[0198] It can be understood that the method for attribute information compensation based on the attribute offset value according to the embodiments of the present application can be applied to the inter-frame prediction of the point cloud and the intra-frame prediction of the point cloud, which is not limited in the present application.
[0199] In summary, the decoding method proposed in steps 101 to 106 can compensate the attribute information of different types of points in the point cloud according to the corresponding attribute offset value at the decoding end, complete the in-loop filtering of the attribute information, and obtain the corresponding attribute reconstruction value. In this way, the prediction effect of the attribute information can be effectively improved, and only a small amount of identification information needs to be transmitted, thereby reducing the time complexity and encoding overhead while ensuring the reconstruction quality, and improving the compression performance of the point cloud.
[0200] That is, the decoding method proposed in the present application classifies the original point cloud (current point cloud) in the same way as the encoding end at the decoding end, determines the corresponding compensation value (attribute offset value), further compensates points of different categories (different types), and generates a motion compensation frame based on the compensated and filtered attribute value and the motion vector information obtained by decoding, which is used for inter-frame prediction. The classification method designed is simple to operate, and the encoding and decoding ends do not have a significant increase in operation time. The offset value (attribute offset value) calculated based on the minimum rate-distortion criterion can ensure that the enhanced attribute value has less distortion than the original reconstruction value; only a small amount of optimal offset value and a small amount of indication information need to be transmitted to ensure that the transmission bandwidth is not under pressure, thereby achieving a good balance between code rate and reconstruction quality; the filtering process is added to the encoding loop, and the inter-frame prediction process is combined to further optimize the encoding efficiency.
[0201] The embodiment of the present application provides a decoding method. At the decoding end, a code stream is decoded, and a first syntax element identification information is determined. In the case where the first syntax element identification information indicates that the attribute offset value is used for points of a current type corresponding to a current point cloud, a current type attribute offset value is determined. The attribute reconstruction value of the current point of the current type is determined according to the current type attribute offset value. That is, in the embodiment of the present application, the optimal attribute offset value of the current type corresponding to the current point cloud can be adaptively determined at the encoding end, and whether the attribute offset value is used for the compensation of the attribute information of the points of the current type corresponding to the current point cloud is adaptively selected. The first syntax element identification information is transmitted to the decoding end. Correspondingly, when the first syntax element identification information obtained by decoding at the decoding end indicates that the attribute offset value is used for the points of the current type corresponding to the current point cloud, the attribute information of the points of the current type can be further compensated by using the attribute offset value, that is, the in-loop filtering of the attribute information is completed by using the attribute offset value, and the final attribute reconstruction value is obtained. As can be seen, the use of the attribute offset value can improve the reconstruction effect of the attribute information, and only a small amount of indication information needs to be transmitted, which can ensure the reduction of the time complexity and the code stream overhead, thereby effectively improving the point cloud coding and decoding performance.
[0202] Embodiments of the present application provide a point cloud encoding method, which can be applied to an encoder. FIG. 7 is a schematic diagram of an implementation process of the encoding method according to an embodiment of the present application. As shown in FIG. 7, the method for encoding processing of the encoder can include the following steps.
[0203] In step 201, a current type attribute offset value corresponding to a current point cloud is determined.
[0204] In embodiments of the present application, the encoder can first adaptively determine the current type attribute offset value corresponding to the current point cloud.
[0205] It should be noted that the encoding method according to the embodiments of the present application specifically refers to a point cloud encoding method, which can be applied to a point cloud encoder (which can also be referred to as an "encoder" for short). The point cloud encoding method according to the embodiments of the present application can include an encoding method of attribute information of a point cloud, specifically including a method of introducing an attribute offset value to filter the attribute information to obtain a final attribute reconstruction value.
[0206] It should be noted that in embodiments of the present application, the attribute information can be color information, or reflectivity or other attributes, which are not limited in the embodiments of the present application. When the attribute information is color information, it can be color information in any color space. For example, the attribute information can be color information in an RGB space, color information in a YUV space, color information in a YCbCr space, etc., which are not limited in the embodiments of the present application.
[0207] It can be understood that in embodiments of the present application, the points in the current point cloud can be classified first, so that the points in the current point cloud can be divided into at least one type.
[0208] For example, in some embodiments, the points in the current point cloud can be divided into 16 types, i.e., type 1, type 2, …, type 15, and type 16. The current type can be any one of the types, for example, the current type can be type 4.
[0209] It should be noted that in embodiments of the present application, the number of types after the current point cloud is divided is not limited, and the number of points corresponding to each type is also not limited.
[0210] Further, in the embodiments of the present application, when classifying the current point cloud, the points in the current point cloud can be classified according to at least one classification manner respectively, at least one type corresponding to each of the at least one classification manner is determined; at least one cost value corresponding to each of the at least one classification manner is determined based on the at least one type corresponding to each of the at least one classification manner; a first classification manner corresponding to the current point cloud is determined from the at least one classification manner according to the at least one cost value; wherein the first classification manner is a classification manner based on attribute information and / or a classification manner based on spatial position; the third syntax element identification information is set according to the first classification manner, and the third syntax element identification information is written into the bitstream.
[0211] It should be noted that, in the embodiments of the present application, the third syntax element identification information can be used to determine the classification manner of the current point cloud.
[0212] It should be noted that, in the embodiments of the present application, the current point cloud can be classified according to different classification manners respectively, and then the cost value corresponding to each classification manner is calculated, i.e., at least one cost value corresponding to at least one classification manner is determined; finally, the classification manner with the smallest cost value can be determined as the first classification manner corresponding to the current point cloud, and the third syntax element identification information can also be set according to the first classification manner.
[0213] Exemplarily, in some embodiments, the calculation manner of the cost value corresponding to the classification manner includes but is not limited to rate-distortion optimization algorithm.
[0214] It can be understood that, in the embodiments of the present application, after determining at least one cost value corresponding to at least one classification manner, the at least one cost value corresponding to the at least one classification manner can also be compared with the cost value in the case of not classifying the current point cloud, and then the optimal first classification manner is determined from the at least one classification manner according to the comparison result. For example, based on the comparison result, the classification manner that can reduce distortion the most is selected as the first classification manner corresponding to the current point cloud.
[0215] It can be understood that, in the embodiments of the present application, the value of the third syntax element identification information can be determined according to the first classification manner corresponding to the current point cloud.
[0216] Exemplarily, in some embodiments, Table 2 is the correspondence between the value of the third identification information and the classification manner, as shown in Table 2, assuming that the classification manner 1 is determined as the first classification manner corresponding to the current point cloud, then the value of the third syntax element identification information can be set to 1.
[0217] Table 2
[0218] It should be noted that in the embodiments of the present application, the at least one type corresponding to the current point cloud finally determined according to the optimal first classification manner includes the current type.
[0219] It can be understood that in the embodiments of the present application, the first classification manner can be one of a plurality of classification manners. The first classification manner can be a classification manner based on attribute information and / or a classification manner based on spatial position.
[0220] That is to say, in the embodiments of the present application, at the encoding end, the first classification manner corresponding to the current point cloud can be adaptively determined from a plurality of different classification manners, and then the third syntax element indicating the first classification manner is written into the code stream and transmitted to the decoding end.
[0221] Further, in the embodiments of the present application, when classifying the current point cloud, the points in the current point cloud can be classified according to a preset classification manner to determine the at least one type corresponding to the current point cloud; wherein the at least one type includes the current type; wherein the preset classification manner is a classification manner based on attribute information and / or a classification manner based on spatial position.
[0222] It should be noted that in the embodiments of the present application, one of the classification manners can be determined in advance as the classification manner corresponding to the current point cloud, for example, the preset classification manner, and then the points in the current point cloud can be directly classified according to the preset classification manner to determine the at least one type corresponding to the current point cloud, and the at least one type corresponding to the current point cloud includes the current type.
[0223] It can be understood that in the embodiments of the present application, the preset classification manner can be one of a plurality of classification manners. The preset classification manner can be a classification manner based on attribute information and / or a classification manner based on spatial position.
[0224] Exemplarily, in some embodiments, one possible classification manner based on attribute information can be to divide the attribute values from the possible minimum value to the possible maximum value into a plurality of intervals, and classify the points according to the interval index to which the attribute value of the current point belongs.
[0225] Exemplarily, in some embodiments, another possible classification manner based on attribute information can be to find the neighbor attribute values (attribute values of neighbor points) within a certain range, predict the attribute value of the current point based on the neighbor attribute values, and classify the points into different categories according to the difference between the predicted attribute value and the existing attribute value of the current point.
[0226] It should be noted that in the embodiments of the present application, the neighbor points in a certain range have multiple obtaining methods when determining the neighbor attribute value, which can be a group of geometrically closest points in all global points, a group of closest points in a certain range from the current point, or a group of nodes closest to the current node in the hierarchical structure, and the present application does not make further limitations.
[0227] It should be noted that in the embodiments of the present application, the hierarchical structure can be a RAHT layer after region adaptive hierarchical transform (RAHT), a detail layer obtained by a Predlift attribute encoding algorithm, or a layer obtained by other hierarchical division, and the present application does not make specific limitations.
[0228] It should be noted that in the embodiments of the present application, when the point cloud is classified by using any one of the above attribute information-based classification methods, the attribute information can be the reconstructed attribute value of the point or the predicted attribute value generated in the encoding process, and the present application does not make specific limitations.
[0229] Exemplarily, in some embodiments, a possible spatial position-based classification method can be that the point cloud is divided into multiple sub-blocks in a three-dimensional space, and classified according to the spatial division sub-block index to which the current point belongs.
[0230] Exemplarily, in some embodiments, another possible spatial position-based classification method can be that the point cloud is classified according to the Morton code of the point. One implementation can be described as follows: the relative spatial position of the point cloud point is represented by an 8-bit Morton code, and the value of any bit or multiple bits in the Morton code of each point is used for classification. For example, the 8th bit of the Morton code can be used for classification, since the 8th bit of the Morton code of each point has 8 possible values, the point cloud can be divided into 8 categories as a whole. The 7th and 8th bits of the Morton code can also be used for classification, since the 7th and 8th bits of the Morton code of each point have 64 possible values, the point cloud can be divided into 64 categories as a whole.
[0231] Exemplarily, in some embodiments, another possible spatial position-based classification method can be to classify the point cloud based on a hierarchical spatial structure. For example, in combination with the RAHT attribute encoding algorithm in the G-PCC coding and decoding standard, the hierarchical structure established based on RAHT is classified according to one or a combination of the above methods in each level or one or some levels. The direct current coefficient can be understood as the average attribute value of all points contained in a certain node at this level.
[0232] Exemplarily, in some embodiments, another possible spatial position based classification manner can be to classify the point cloud based on a point cloud detail hierarchy. For example, in combination with the Predlift attribute encoding algorithm in the G-PCC coding standard, a multi-detail hierarchy is established based on Predlift, and the points in each detail level or certain detail level or certain detail levels are classified according to a combination of one or more of the above methods.
[0233] It can be understood that, in the embodiments of the present application, any one of the above attribute information based classification manners and / or spatial position based classification manners is an exemplary illustration of the classification manner of the point cloud, and other classification manners can also be used to classify the points in the point cloud, which is not specifically limited in the present application.
[0234] It should be noted that, in the embodiments of the present application, the above classification manners can also be combined arbitrarily, for example, each sub-block or each level after the point cloud is divided based on the spatial position of the points, and then the points are classified according to the above attribute value based classification manner of the points, which is not specifically limited in the present application.
[0235] Exemplarily, in some embodiments, when classifying the points in the current point cloud, for example, the points in the current point cloud can be classified according to the attribute information based classification manner first to determine at least one first type, and then the points of each first type are classified according to the spatial position based classification manner to determine at least one type corresponding to the current point cloud.
[0236] That is, in the embodiments of the present application, different classification manners can be selected to classify the points in the current point cloud. Assuming that the attribute information based classification manner and the spatial position based classification manner are combined, the points in the current point cloud can be classified for the first time according to the attribute information of the points to obtain at least one first type, and then for each first type, the points of the first type can be classified for the second time according to the spatial position of the points, and finally at least one type corresponding to the current point cloud can be obtained.
[0237] Exemplarily, in some embodiments, when classifying the points in the current point cloud, different classification manners can be selected, for example, the points in the current point cloud can be classified according to the spatial position based classification manner first to determine at least one second type, and then the points of each second type are classified according to the attribute information based classification manner to determine at least one type corresponding to the current point cloud.
[0238] That is to say, in the embodiments of the present application, the points in the current point cloud can be classified in combination with different classification manners. Assuming that the classification manner based on attribute information and the classification manner based on spatial position are combined, the points in the current point cloud can be classified for the first time according to the spatial information of the points to obtain at least one second type corresponding thereto, and then for each second type, the points of the second type can be classified for the second time according to the attribute information of the points, and finally at least one type corresponding to the current point cloud can be obtained.
[0239] Of course, when classifying the points in the current point cloud, a plurality of classifications in any number and of any type can also be combined to perform multiple classifications, which is not limited in the present application.
[0240] It should be noted that in the embodiments of the present application, when the attribute information contains a plurality of dimensions of the current point, such as the RGB or YUV channels of color, each dimension can be classified according to any of the above classification manners, and after obtaining the class index of each dimension, the class corresponding to the current point can be obtained by comprehensive calculation of the class indexes of each dimension.
[0241] It should be noted that in the embodiments of the present application, when the attribute information includes multiple attributes of the current point such as color and reflectivity, after classifying each attribute according to any of the above classification manners, the class index of each attribute of the current point is obtained, and the class corresponding to the current point can be obtained by comprehensive calculation of the class indexes of each attribute.
[0242] Further, in the embodiments of the present application, when determining the attribute offset value of the current type corresponding to the current point cloud, the attribute reconstruction value of the point of the current type can be first determined according to at least one candidate offset value; then at least one cost value corresponding to at least one candidate offset value is determined according to the attribute reconstruction value of the point of the current type; and finally, the attribute offset value of the current type can be determined from at least one candidate offset value according to at least one cost value corresponding to at least one candidate offset value.
[0243] It should be noted that in the embodiments of the present application, for each type of point, at least one candidate offset value can be set in advance, and then each candidate offset value can be traversed to compensate the attribute information using each candidate offset value respectively, and the attribute reconstruction value corresponding to the point can be determined. Finally, the distortion cost of each candidate offset value can be calculated to determine at least one cost value corresponding to at least one candidate offset value, and finally the candidate offset value with the minimum cost value can be selected as the optimal attribute offset value, that is, the candidate offset value with the minimum cost value is determined as the attribute offset value of the current type corresponding to the current point cloud.
[0244] It should be noted that in the embodiments of the present application, the candidate offset values corresponding to different types of points obtained after classification can be the same or different, and the present application does not make specific limitations.
[0245] Exemplarily, in some embodiments, the calculation manner of the generation value corresponding to the candidate offset value includes but is not limited to a rate-distortion optimization algorithm.
[0246] It can be understood that in the embodiments of the present application, after the distortion cost of each candidate offset value is calculated and at least one generation value corresponding to at least one candidate offset value is determined, the at least one generation value corresponding to the at least one candidate offset value can also be compared with the generation value in the case of not using the attribute offset value, and then the optimal candidate offset value is determined from the at least one candidate offset value according to the comparison result. For example, based on the comparison result, one candidate offset value that can reduce the distortion the most is selected as the attribute offset value of the current type.
[0247] Exemplarily, in some embodiments, when determining the optimal attribute offset value of the current type, for a set of candidate offset values set, the distortion after each candidate offset value is adopted can be iteratively calculated, and then compared with the signal distortion of the original reconstructed attribute value, and the offset value that can reduce the signal distortion the most (or the distortion cost is the smallest) is selected as the optimal offset value. The original reconstructed attribute value can refer to the original true attribute value of each point, or the attribute value of the point cloud geometry lossy encoded and reconstructed point recolored.
[0248] It should be noted that in the embodiments of the present application, the above process of traversing the candidate offset value can be repeated under the above different classification manners, and the offset value that can reduce the signal distortion the most (or the distortion cost is the smallest) is selected, and the classification manner adopted is determined as the first classification manner corresponding to the current point cloud.
[0249] That is, in the embodiments of the present application, the selection process of the first classification manner and the selection process of the attribute offset value of the current type can be iterated, that is, each type of candidate offset value is traversed under the condition of using different classification manners, the calculation of the corresponding generation value is performed, and finally the optimal classification manner and the optimal offset value are determined according to the generation value, that is, the first classification manner and the attribute offset value corresponding to the current type are determined.
[0250] Further, in the embodiments of the present application, when determining the attribute offset value of the current type, the attribute offset value corresponding to the reference type can be determined as the attribute offset value of the current type.
[0251] It should be noted that in the embodiments of the present application, the attribute offset value of the reference type can be directly reused, that is, the attribute offset value of the reference type is directly determined as the attribute offset value of the current type. The reference type can be a type corresponding to the current type in the reference point cloud, a type corresponding to the current type in the reference unit, or a reference type corresponding to the current type.
[0252] That is, in the embodiments of the present application, the attribute offset value corresponding to the reference point cloud (reference unit, reference type) can be determined as the attribute offset value of the current type.
[0253] Further, in the embodiments of the present application, the prediction value of the attribute offset value of the current type can be determined according to the attribute offset value corresponding to the reference type; then the prediction residual of the attribute offset value of the current type can be determined according to the attribute offset value of the current type and the prediction value of the attribute offset value of the current type; finally, the prediction residual of the attribute offset value of the current type can be written into the code stream.
[0254] It should be noted that in the embodiments of the present application, the prediction residual of the attribute offset value of the current type can be understood as the difference between the prediction value of the attribute offset value of the current type and the attribute offset value of the current type.
[0255] It should be noted that in the embodiments of the present application, the attribute offset value of the current type can be first predicted using the attribute offset value corresponding to the reference point cloud (reference unit, reference type) to obtain the prediction value of the attribute offset value of the current type, so that the prediction residual of the attribute offset value of the current type can be determined in combination with the attribute offset value of the current type, and the prediction residual is written into the code stream.
[0256] As can be seen, in the embodiments of the present application, the optimal offset value of the current type can be predicted based on the reference information (reference point cloud or reference unit or reference type) to obtain the corresponding prediction value, and the difference (residual value) between the prediction value and the real optimal value is encoded, so that the decoding end can obtain the optimal offset value by adding the residual value obtained by decoding to the prediction value, that is, the attribute offset value of the current type.
[0257] Step 202, determining the attribute reconstruction value of the current point of the current type according to the attribute offset value of the current type.
[0258] In the embodiments of the present application, after determining the attribute offset value of the current type corresponding to the current point cloud, the attribute reconstruction value of the current point of the current type can be further determined according to the attribute offset value of the current type.
[0259] It should be noted that in the embodiments of the present application, the attribute offset value of the current type can be used to filter the attribute information, that is, the attribute offset value of the current type is used to compensate the attribute information, and the attribute reconstruction value of the current point of the current type is determined, which can be understood as an in-loop filtering process for the attribute information.
[0260] Further, in the embodiments of the present application, when the attribute reconstruction value of the current point of the current type is determined according to the attribute offset value of the current type, the attribute reconstruction value of the current point can be determined according to the attribute offset value of the current type and the initial reconstruction value of the current point. For example, the attribute offset value of the current type and the initial reconstruction value of the current point can be summed, and then the sum value is determined as the attribute reconstruction value of the current point.
[0261] It should be noted that in the embodiments of the present application, after the attribute offset value corresponding to the current type is determined, for any point of the current type, for example, the current point, the initial reconstruction value of the current point can be directly compensated using the attribute offset value corresponding to the current type, for example, the attribute offset value of the current type and the initial reconstruction value of the current point are summed, and finally the sum value obtained by calculation can be determined as the attribute reconstruction value of the current point.
[0262] It can be understood that in the embodiments of the present application, for the specific implementation of using the attribute offset value of the current type to compensate the attribute information, the above sum value operation is only an example, and other ways such as difference value operation, shift operation, etc. can also be implemented, and the present application does not make specific limitation.
[0263] Further, in the embodiments of the present application, the initial reconstruction value of the current point can be determined according to the attribute reconstruction value of the reference point in the reference point cloud corresponding to the current point cloud.
[0264] That is, in the embodiments of the present application, the initial reconstruction value of the current point can be determined by an inter-frame prediction method, that is, the reference point cloud corresponding to the current point cloud can be first determined, then the reference point corresponding to the current point in the reference point cloud is determined, and the attribute information of the current point is initially predicted according to the attribute reconstruction value of the reference point to obtain the initial reconstruction value of the attribute information of the current point.
[0265] It can be understood that in the embodiments of the present application, the initial reconstruction value of the current point can also be determined by an intra-frame prediction method, that is, the reference point corresponding to the current point in the current point cloud can be determined, and the attribute information of the current point is initially predicted according to the attribute reconstruction value of the reference point to obtain the initial reconstruction value of the attribute information of the current point.
[0266] Further, in the embodiments of the present application, whether the points of the current type corresponding to the current point cloud use the attribute offset value can be determined according to the attribute reconstruction value of the current point. Wherein, the first generation value corresponding to the attribute offset value of the current type can be determined according to the attribute reconstruction value of the current point, and then whether the points of the current type corresponding to the current point cloud use the attribute offset value is determined according to the first generation value corresponding to the attribute offset value of the current type.
[0267] Further, in the embodiments of the present application, when the first generation value corresponding to the attribute offset value of the current type is determined according to the attribute reconstruction value of the current point, the distortion generation value corresponding to the attribute offset value of the current type can be determined according to the attribute reconstruction value of the current point; at the same time, the transmission generation value corresponding to the attribute offset value of the current type is determined; and finally, the first generation value corresponding to the attribute offset value of the current type is determined according to the distortion generation value and the transmission generation value.
[0268] It should be noted that in the embodiments of the present application, the calculation method of any generation value can include but is not limited to rate-distortion optimization algorithm.
[0269] It should be noted that in the embodiments of the present application, in the case that the points of the current type use the attribute offset value of the current type, a small amount of identification information may be required to indicate whether to enable the attribute offset value and / or the value of the attribute offset value, which will generate a certain transmission cost. Therefore, when determining the first generation value corresponding to the attribute offset value of the current type, the transmission generation value corresponding to the attribute offset value of the current type needs to be considered.
[0270] Further, in the embodiments of the present application, the second generation value corresponding to the current type can be determined according to the initial reconstruction value of the current point; in the case that the first generation value is less than or equal to the second generation value, it is determined that the points of the current type use the attribute offset value; and in the case that the first generation value is greater than the second generation value, it is determined that the points of the current type do not use the attribute offset value.
[0271] It should be noted that in the embodiments of the present application, the generation value corresponding to the initial reconstruction value of the current point can also be determined, and after traversing each point of the current type, the second generation value of the current type in the case of not using the attribute offset value for compensation is determined.
[0272] Correspondingly, in the embodiments of the present application, after respectively determining the first generation value corresponding to the attribute offset value of the current type and the second generation value corresponding to the current type, whether the points of the current type use the attribute offset value can be further determined according to the first generation value and the second generation value.
[0273] Exemplarily, in some embodiments, the first generation value and the second generation value can be compared, if the first generation value is less than or equal to the second generation value, it can be determined that the current type of point uses the attribute offset value; if the first generation value is greater than the second generation value, it can be determined that the current type of point does not use the attribute offset value.
[0274] In step 203, in a case that the attribute offset value of the current type of point is determined based on the attribute reconstruction value of the current point, the first syntax element identification information is determined, and the first syntax element identification information is written into the bitstream.
[0275] In the embodiments of the present application, after the attribute reconstruction value of the current type of point is determined according to the attribute offset value of the current type, if the attribute offset value of the current type of point corresponding to the current point cloud is determined based on the attribute reconstruction value of the current point, the first syntax element identification information can be further determined, and the first syntax element identification information is written into the bitstream. Wherein, the first syntax element identification information can be used to determine whether the attribute offset value is used for the current type of point corresponding to the current point cloud.
[0276] It should be noted that, in the embodiments of the present application, the first syntax element identification information can be used to indicate whether the attribute offset value is used for the current type of point corresponding to the current point cloud, and the first syntax element identification information can also be used to determine the type using the attribute offset value in the current point cloud.
[0277] It can be understood that, in the examples of the present application, the value of the first syntax element can be set according to whether the attribute offset value is used for the current type of point.
[0278] Further, in the embodiments of the present application, when the first syntax element identification information is determined, in a case that the attribute offset value of the current type of point is determined based on the attribute reconstruction value of the current point, the value of the first syntax element identification information is set as a first value; in a case that the attribute offset value of the current type of point is not determined based on the attribute reconstruction value of the current point, the value of the first syntax element identification information is set as a second value.
[0279] It should be noted that, in the embodiments of the present application, whether the attribute offset value is used for the current type of point corresponding to the current point cloud can be determined by the value of the first syntax element identification information.
[0280] Exemplarily, in some embodiments, in a case that the attribute offset value is used for the current type of point, the value of the first syntax element identification information is set as a first value, and in a case that the attribute offset value is not used for the current type of point, the value of the first syntax element identification information is set as a second value.
[0281] It should be noted that in the embodiments of the present application, the first value and the second value are different, and the first value and the second value can be in the form of a parameter or in the form of a number. In general, the first syntax element identification information can be a flag, which is not limited herein.
[0282] It should be further noted that if the first syntax element identification information is a frame-level flag, in one specific example, the first value can be set to 1, and the second value can be set to 0; in another specific example, the first value can also be set to true, and the second value can also be set to false; and in still another specific example, the first value can also be set to 0, and the second value can also be set to 1; or, the first value can also be set to false, and the second value can also be set to true. The first value and the second value in the embodiments of the present application are not limited.
[0283] Taking the first value as 1 and the second value as 0 as an example, in the embodiments of the present application, if the attribute offset value is used for the point of the current type, it can be determined that the value of the first syntax element identification information is 1, and if the attribute offset value is not used for the point of the current type, it can be determined that the value of the first syntax element identification information is 0.
[0284] Of course, the value of the first syntax element identification information is not limited to 0 and 1, and the present application does not make specific limitations.
[0285] Further, in the embodiments of the present application, when determining the first syntax element identification information, in the case where the attribute offset value is used for the point of the current type based on the attribute reconstruction value of the current point, the value of the first syntax element identification information is set to be the same as the preset index corresponding to the current type; and in the case where the attribute offset value is not used for the point of the current type based on the attribute reconstruction value of the current point, the value of the first syntax element identification information is set to be different from the preset index corresponding to the current type.
[0286] It should be noted that in the embodiments of the present application, the preset index corresponding to the current type can include an index value of the current type or an index value related to the current type, and the present application does not make specific limitations.
[0287] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, the current type is type 4, and the index value of the current type is 4, it can be determined that the preset index corresponding to the current type is 4.
[0288] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, the current type is type 4, and each two types of the 16 types use the same index value, i.e., the 8 index values of 1-8 correspond to the 8 types of 1-8, for example, the index value of type 1 and type 2 is 1, at this time, the index value of the current type is 2, i.e., it can be determined that the preset index corresponding to the current type is 2.
[0289] That is, in the embodiments of the present application, if it is determined that the points of the current type use the attribute offset value, the value of the first syntax element identification information can be set to be the same as the preset index corresponding to the current type, and if it is determined that the points of the current type do not use the attribute offset value, the value of the first syntax element identification information can be set to be different from the preset index corresponding to the current type.
[0290] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, respectively corresponding to 16 index values of 1-16, the current type is type 4, and the preset index corresponding to the current type is 4, if the points of the current type use the attribute offset value, the value of the first syntax element identification information corresponding to the current type can be set to 4, so that the first syntax element identification information indicates that the points of the current type use the attribute offset value; if the points of the current type do not use the attribute offset value, the value of the first syntax element identification information corresponding to the current type can be set to 0, so that the first syntax element identification information indicates that the points of the current type do not use the attribute offset value.
[0291] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, each two types of the 16 types use the same index value, respectively corresponding to 8 index values of 1-8, the current type is type 4, and the preset index corresponding to the current type is 2, if the points of the current type use the attribute offset value, the value of the first syntax element identification information corresponding to the current type can be set to 2, so that the first syntax element identification information indicates that the points of the current type use the attribute offset value; if the points of the current type do not use the attribute offset value, the value of the first syntax element identification information corresponding to the current type can be set to 0, so that the first syntax element identification information indicates that the points of the current type do not use the attribute offset value.
[0292] As can be seen, in the embodiments of the present application, one attribute offset category index decoding value (the value of the first syntax element identification information) can correspond to one category (type) or multiple categories, for example, the point cloud is divided into 16 types, the value of the index symbol (the first syntax element identification information) obtained by decoding is 1-8, and each symbol corresponds to indicating whether 2 categories adopt the attribute offset value.
[0293] Further, in the embodiments of the present application, in the case that the quantity of the coded first syntax element identification information is greater than or equal to the preset threshold, the coding of the first syntax element identification information is stopped.
[0294] It should be noted that in the embodiments of the present application, the quantity of the coded first syntax element identification information can be limited by using one threshold (for example, the preset threshold), and in the process of predicting the attribute information of the current point cloud, if the quantity of the coded first syntax element identification information reaches the preset threshold, the coding of the first syntax element identification information corresponding to the subsequent type can be selected not to be performed, so that the time complexity and the code stream overhead can be reduced to a certain extent.
[0295] It can be understood that in the embodiments of the present application, the preset threshold can be an integer greater than 0 which is set in advance. The present application does not specifically limit the value of the preset threshold.
[0296] That is to say, in the embodiments of the present application, the quantity of the types allowed to use the attribute offset value (for example, the preset threshold) can be set in advance, and when the quantity of the coded indicator (the first syntax element identification information) reaches the maximum allowed quantity, the coding of the indicator can be stopped.
[0297] Further, in the embodiments of the present application, the third generation value corresponding to the current point cloud can be determined according to the first generation value corresponding to the attribute offset value of the current type; in the case that the attribute offset value is determined to be used by the current point cloud based on the third generation value corresponding to the current point cloud, the second syntax element identification information is determined and written into the code stream.
[0298] It can be understood that in the embodiments of the present application, after the first generation value corresponding to the attribute offset value of the current type and the generation values corresponding to other types of the current point cloud are determined, the third generation value corresponding to the current point cloud can be further determined according to the first generation value corresponding to the attribute offset value of the current type and the generation values corresponding to other types of the current point cloud, and then the third generation value corresponding to the current point cloud can be compared with the generation value in the case that the attribute offset value is not used by the current point cloud, so that whether the attribute offset value is used by the current point cloud can be determined.
[0299] Exemplarily, in some embodiments, if the third generation value corresponding to the current point cloud is less than or equal to the generation value in the case that the attribute offset value is not used by the current point cloud, it can be determined that the attribute offset value is used by the current point cloud. If the third generation value corresponding to the current point cloud is greater than the generation value in the case that the attribute offset value is not used by the current point cloud, it can be determined that the attribute offset value is not used by the current point cloud.
[0300] It should be noted that in the embodiments of the present application, the second syntax element identification information can be used to determine whether the current point cloud uses the attribute offset value.
[0301] It should be noted that in the embodiments of the present application, the value of the second syntax element identification information can be further set according to whether the current point cloud uses the attribute offset value.
[0302] Exemplarily, in some embodiments, the value of the second syntax element identification information can be set to a first value in a case where it is determined that the current point cloud uses the attribute offset value. The value of the second syntax element identification information can be set to a second value in a case where it is determined that the current point cloud does not use the attribute offset value.
[0303] It should be noted that in the embodiments of the present application, the first value and the second value are different, and the first value and the second value can be in the form of a parameter or in the form of a number. In general cases, the first syntax element identification information can be a flag, which is not limited herein.
[0304] It should be further noted that if the second syntax element identification information is a frame-level flag, in one specific example, the first value can be set to 1, and the second value can be set to 0; in another specific example, the first value can also be set to true, and the second value can also be set to false; or in yet another specific example, the first value can also be set to 0, and the second value can also be set to 1; or the first value can also be set to false, and the second value can also be set to true. The first value and the second value in the embodiments of the present application are not limited.
[0305] Taking the first value as 1 and the second value as 0 as an example, in the embodiments of the present application, if it is determined that the current point cloud uses the attribute offset value, it can be determined that the value of the second syntax element identification information is 1. Otherwise, if it is determined that the current point cloud does not use the attribute offset value, it can be determined that the value of the second syntax element identification information is 0.
[0306] Of course, the value of the second syntax element identification information is not limited to 0 and 1, and the present application does not make specific limitations.
[0307] It can be understood that in the embodiments of the present application, after setting the value of the second syntax element identification information to indicate that the current point cloud uses the attribute offset value, the encoding of the first syntax element identification information can be further performed, so that the current type of point corresponding to the current point cloud can be indicated by the first syntax element identification information whether the attribute offset value is used.
[0308] That is, one possible implementation manner of the embodiments of the present application includes: if the encoded second syntax element identification information indicates that the current point cloud does not use the attribute offset value, the encoding of the first syntax element identification information can be selected not to be performed. That is, after determining the attribute reconstruction value of the current point cloud using the conventional attribute prediction method, the attribute offset value is no longer introduced to determine the attribute reconstruction value.
[0309] Therefore, in the embodiments of the present application, the flag bit (second syntax element identification information) indicating whether the attribute offset is enabled can be encoded first, and if the flag bit indicates that the attribute offset value is enabled, the class index (first syntax element identification information) enabling the attribute offset is further encoded.
[0310] Further, in the embodiments of the present application, in the case where the attribute offset value is used to determine the current type of point based on the attribute reconstruction value of the current point, the value of the first syntax element identification information is set to belong to the preset index range corresponding to the current point cloud; in the case where the attribute offset value is not used to determine the current type of point based on the attribute reconstruction value of the current point, the value of the first syntax element identification information is set to not belong to the preset index range corresponding to the current point cloud.
[0311] It should be noted that, in the embodiments of the present application, the first syntax element identification information can also be directly used to indicate whether the attribute offset value is used by the current point cloud.
[0312] That is, in the embodiments of the present application, the first syntax element identification information can be used to indicate whether the attribute offset value is used by the current point and the current type of point corresponding to the current point cloud. That is, the same identification information (first syntax element identification information) can be used to indicate whether the attribute offset value is used by the current point cloud and the current type of point corresponding to the current point cloud.
[0313] It should be noted that, in the embodiments of the present application, the preset index range corresponding to the current point cloud can be a range formed by the index values of all types corresponding to the current point cloud.
[0314] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, one type corresponds to one index value, and the 16 types correspond to 16 index values with values of 1-16, the preset index range corresponding to the current point cloud can be determined as 1-16.
[0315] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, one type corresponds to two index values, and the 16 types correspond to 8 index values with values of 1-8, the preset index range corresponding to the current point cloud can be determined as 1-8.
[0316] That is, in the embodiments of the present application, the value of the first syntax element identification information can also be set according to whether the current point cloud uses the attribute offset value. For example, if it is determined that the current point cloud uses the attribute offset value, the value of the first syntax element identification information can be set to belong to the preset index range corresponding to the current point cloud; if it is determined that the current point cloud does not use the attribute offset value, the value of the first syntax element identification information can be set to not belong to the preset index range corresponding to the current point cloud.
[0317] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, respectively corresponding to 16 index values 1-16, i.e., the preset index range corresponding to the current point cloud is 1-16, if the current point cloud does not use the attribute offset value, the value of the first syntax element identification information corresponding to the current type can be set to 0, so that the first syntax element identification information indicates that the current point cloud does not use the attribute offset value; if the current point cloud uses the attribute offset value, the value of the first syntax element identification information corresponding to the current type can be set to 6, so that the first syntax element identification information indicates that the current point cloud uses the attribute offset value, and the points of type 6 use the attribute offset value.
[0318] Exemplarily, in some embodiments, assuming that the points in the current point cloud are divided into 16 types, every two types in the 16 types use the same index value, respectively corresponding to 8 index values 1-8, i.e., the preset index range corresponding to the current point cloud is 1-8, if the current point cloud does not use the attribute offset value, the value of the first syntax element identification information corresponding to the current type can be set to 0, so that the first syntax element identification information indicates that the current point cloud does not use the attribute offset value; if the current point cloud uses the attribute offset value, the value of the first syntax element identification information corresponding to the current type can be set to 2, so that the first syntax element identification information indicates that the current point cloud uses the attribute offset value, and the points of type 2 use the attribute offset value.
[0319] As can be seen, in the embodiments of the present application, the flag indicating whether to enable attribute offset and the attribute offset category index can select to use the same symbol (the first syntax element identification information) to indicate whether to enable attribute offset and the attribute offset category index, and when the coded value (the value of the first syntax element identification information) is not in the possible values of the attribute offset category (the preset index range corresponding to the current point cloud), it can be indicated that attribute offset is not performed.
[0320] Further, in the embodiments of the present application, whether the points of the current type corresponding to the current point cloud use the attribute offset value can be further determined by the use of the attribute offset value of the reference type in the determined reference point cloud. The reference point cloud is the point cloud corresponding to the current point cloud which has completed coding and decoding.
[0321] It should be noted that in the embodiments of the present application, in the case that the points of the reference type corresponding to the current type in the reference point cloud use the attribute offset value, the attribute offset value used by the points of the current type corresponding to the current type of the current point cloud is determined, the first reference identification information is set, and the first reference identification information is written into the bitstream; wherein the first reference identification information is used to indicate the reference point cloud.
[0322] It can be understood that in the embodiments of the present application, the first reference identification information can be used to indicate the reference point cloud corresponding to the current point cloud. Wherein the reference point cloud can be the point cloud of the previous frame of the current point cloud which has been coded and decoded, or can be any point cloud of the previous frame of the current point cloud which has been coded and decoded, and the present application does not make specific limitation.
[0323] It should be noted that in the embodiments of the present application, after determining the reference point cloud corresponding to the current point cloud, the reference type corresponding to the current type can be further determined in the reference point cloud. At this time, if the points of the reference type use the attribute offset value, it can be determined that the points of the current type also use the attribute offset value, and if the points of the reference type do not use the attribute offset value, it can be determined that the points of the current type do not use the attribute offset value.
[0324] Further, in the embodiments of the present application, whether the points of the current type use the attribute offset value can be further determined by the use of the attribute offset value of the reference type in the determined reference unit. Wherein the reference unit is the coded unit corresponding to the coding unit where the current type is located, which has been coded and decoded.
[0325] It should be noted that in the embodiments of the present application, in the case that the points of the reference type corresponding to the current type in the reference unit use the attribute offset value, the attribute offset value used by the points of the current type corresponding to the current type of the current point cloud is determined, the second reference identification information is set, and the second reference identification information is written into the bitstream; wherein the second reference identification information is used to indicate the reference unit.
[0326] It can be understood that in the embodiments of the present application, the second reference identification information can be used to indicate the reference unit corresponding to the coding unit where the current type is located. Wherein the reference unit can be any coded unit in the current point cloud which has been coded and decoded, or can be any coded unit in the point cloud of the previous frame of the current point cloud which has been coded and decoded, and the present application does not make specific limitation.
[0327] It should be noted that in the embodiments of the present application, after the reference unit corresponding to the current type is determined, the reference type corresponding to the current type can be further determined in the reference unit. At this time, if the points of the reference type use the attribute offset value, it can be determined that the points of the current type also use the attribute offset value, and if the points of the reference type do not use the attribute offset value, it can be determined that the points of the current type do not use the attribute offset value.
[0328] Further, in the embodiments of the present application, whether the points of the current type use the attribute offset value can be further determined by the use of the attribute offset value of the determined reference type. The reference type is any type corresponding to the current type that has completed coding.
[0329] It should be noted that in the embodiments of the present application, in the case where the points of the reference type use the attribute offset value, it is determined that the points of the current type corresponding to the current point cloud use the attribute offset value, the third reference identification information is set, and the third reference identification information is written into the bitstream; wherein the third reference identification information is used to indicate the reference type.
[0330] It can be understood that in the embodiments of the present application, the third reference identification information can be used to indicate the reference type corresponding to the current type. The reference type can be any type that has completed coding corresponding to the current point cloud, or any type that has completed coding corresponding to the point cloud of any previous frame of the current point cloud, which is not limited in the present application.
[0331] It should be noted that in the embodiments of the present application, after the reference type corresponding to the current type is determined, if the points of the reference type use the attribute offset value, it can be determined that the points of the current type also use the attribute offset value, and if the points of the reference type do not use the attribute offset value, it can be determined that the points of the current type do not use the attribute offset value.
[0332] That is, in the embodiments of the present application, it can also be selected to determine whether the points of the current type corresponding to the current point cloud use the attribute offset value by the use of the attribute offset value of the reference point cloud (reference unit, reference type), and accordingly, it is no longer indicated by the transmission of the first syntax element identification information whether the points of the current type corresponding to the current point cloud use the attribute offset value.
[0333] As can be seen, in the embodiments of the present application, whether the points of the current type use the attribute offset value can be determined based on the reference information (reference point cloud or reference unit or reference type), and at the same time, the use of the reference point cloud (or reference unit or reference type) as the reference can be indicated by the coding symbol (first reference identification information, or second reference identification information, or third reference identification information).
[0334] Further, in the embodiments of the present application, whether the points of the current type use the attribute offset value can be further determined by the usage of the attribute offset value of the preset type corresponding to the current point cloud. The preset type is at least one other type other than the current type.
[0335] For example, in some embodiments, the preset type can be a neighboring type corresponding to the current type corresponding to the current point cloud, or a type with an index value smaller than the index value of the current type. The present application does not make specific limitations.
[0336] Further, in the embodiments of the present application, when determining the attribute offset value of the current type, the attribute offset value of the preset type can be selected to determine the attribute offset value of the current type.
[0337] It should be noted that in the embodiments of the present application, when the attribute offset value of the preset type is used to determine the attribute offset value of the current type, the attribute offset value of one preset type can be selected as the attribute offset value of the current type, or the attribute offset values of multiple preset types can be mathematically operated, and the operation result can be determined as the attribute offset value of the current type. The present application does not make specific limitations.
[0338] Therefore, in the embodiments of the present application, whether the points of the current type use the attribute offset value can be determined based on the usage of the attribute offset value of the preset type, without encoding the indicator.
[0339] Further, in the embodiments of the present application, FIG. 8 is a second implementation flowchart of the encoding method according to the embodiments of the present application. As shown in FIG. 8, after determining the attribute reconstruction value of the current point of the current type according to the attribute offset value of the current type, i.e., after step 202, the method of the encoder for encoding processing can further include the following steps:
[0340] Step 204: In the case that the points of the current type corresponding to the current point cloud use the attribute offset value based on the attribute reconstruction value of the current point, the attribute offset value of the current type is written into the bitstream.
[0341] In the embodiments of the present application, after determining the attribute reconstruction value of the current point of the current type according to the attribute offset value of the current type, if the points of the current type corresponding to the current point cloud use the attribute offset value based on the attribute reconstruction value of the current point, the attribute offset value of the current type can be selected to be written into the bitstream.
[0342] Further, in the embodiments of the present application, FIG. 9 is a third implementation flowchart of the encoding method according to the embodiments of the present application. As shown in FIG. 9, the method of the encoder for encoding processing can further include the following steps:
[0343] Step 205, determining the attribute reconstruction value of the current point cloud according to the attribute reconstruction value of the current point.
[0344] In the embodiments of the present application, after the in-loop filtering processing of the attribute information of the current point is completed by using the attribute offset value of the current type, the attribute reconstruction value of the current point is obtained, the attribute reconstruction value of the current point cloud can be further determined. The attribute reconstruction value of the current point cloud can include the attribute reconstruction value of all points in the current point cloud.
[0345] That is, according to the method proposed in the embodiments of the present application, each type of each point in the current point cloud is traversed, the in-loop filtering processing of the attribute information of the current point is completed by using the corresponding attribute offset value, the attribute reconstruction value of all points is obtained, and finally the attribute reconstruction value of the current point cloud is obtained.
[0346] Step 206, determining the motion vector according to the attribute reconstruction value of the current point cloud and the attribute prediction value of the point cloud of the next frame image, and writing the motion vector into the code stream.
[0347] In the embodiments of the present application, after the prediction of the attribute information of the current point cloud is completed and the attribute reconstruction value of the current point cloud is determined, the attribute reconstruction value of the current point cloud can be used to determine the corresponding motion vector in combination with the attribute prediction value of the point cloud of the next frame image, and then the motion vector is written into the code stream.
[0348] That is, in the embodiments of the present application, after the in-loop filtering of the attribute information of the current point cloud is completed according to the method proposed in the embodiments of the present application, the subsequent point cloud can be further motion compensated according to the filtered results (the attribute reconstruction value of the current point cloud and the decoded motion vector) to complete the inter-frame prediction of the attribute information of the subsequent point cloud.
[0349] It can be understood that the method of attribute information compensation based on attribute offset value proposed in the embodiments of the present application can be applied to both inter-frame prediction and intra-frame prediction of point cloud, and the present application does not make specific limitation.
[0350] In summary, the encoding method proposed in the above steps 201 to 206 can adaptively determine the corresponding attribute offset value at the encoding end, compensate the attribute information of different types of points in the point cloud, complete the in-loop filtering processing of the attribute information, and obtain the corresponding attribute reconstruction value. This can effectively improve the prediction effect of the attribute information, and only a small amount of identification information needs to be transmitted, thereby reducing the time complexity and encoding overhead under the premise of ensuring the reconstruction quality, and improving the compression performance of the point cloud.
[0351] That is, the encoding method proposed in the present application can classify the original point cloud (current point cloud) at the encoding end, calculate an optimal attribute compensation value (attribute offset value) for each category based on the minimum rate-distortion criterion, write the compensation value into the code stream, and perform inter-frame motion prediction based on the compensated attribute. Wherein, through the design of simple classification method, the encoding and decoding end does not have significant increase in operation time. The offset value (attribute offset value) calculated based on the minimum rate-distortion criterion can ensure that the enhanced attribute value has smaller distortion compared to the original reconstructed value; only a small amount of optimal offset value and a small amount of indication information need to be transmitted to ensure that the transmission bandwidth is not under pressure, thereby achieving a good balance between code rate and reconstruction quality; the filtering process is added to the coding loop, which is combined with the inter-frame prediction process to further optimize the coding efficiency.
[0352] The embodiment of the present application provides an encoding method, at the encoding end, determining an attribute offset value of a current type corresponding to a current point cloud; determining an attribute reconstructed value of a current point of the current type according to the attribute offset value of the current type; in the case that the attribute offset value is used for the point of the current type corresponding to the current point cloud based on the attribute reconstructed value of the current point, determining first syntax element identification information, and writing the first syntax element identification information into a code stream. That is, in the embodiment of the present application, the optimal attribute offset value of the current type corresponding to the current point cloud can be adaptively determined at the encoding end, and whether the attribute offset value is used for the point of the current type corresponding to the current point cloud to compensate the attribute information is adaptively selected, and the first syntax element identification information is correspondingly set and transmitted to the decoding end. Correspondingly, when the first syntax element identification information obtained by decoding is used to determine that the attribute offset value is used for the point of the current type corresponding to the current point cloud, the attribute information of the current point of the current type can be further compensated by using the attribute offset value, that is, the attribute information is in-loop filtered by using the attribute offset value to obtain the final attribute reconstructed value. As can be seen, the use of the attribute offset value can improve the reconstruction effect of the attribute information, and only a small amount of indication information needs to be transmitted, which can ensure the reduction of time complexity and code stream overhead, thereby effectively improving the point cloud coding and decoding performance.
[0353] It should be noted that in the embodiment of the present application, the encoding end can perform the following processing:
[0354] 1. At the encoding end, the point cloud points are classified.
[0355] One classification method is to classify the points based on the attribute value of the points. Wherein, the attribute value of the points is the reconstructed attribute value of the points or the predicted attribute value generated in the encoding process.
[0356] One classification method based on the attribute value of the points can be described as dividing the attribute value from the possible minimum value to the possible maximum value into multiple intervals, and classifying the points according to the interval index to which the attribute value of the current point belongs.
[0357] A classification method based on the attribute value of a point can be described as follows: when the attribute value of a point contains multiple dimensions, such as the RGB or YUV channels of a color, or a point has multiple attributes such as color and reflectivity, after each dimension is classified according to a certain classification method, the indexes of the various dimension categories are integrated to calculate the category to which the current point belongs.
[0358] A classification method based on the attribute value of a point can be described as follows: the attribute values of neighbors within a certain range are found, the attribute value of the current point is predicted based on the attribute values of the neighbors, and the point is classified into different categories according to the difference between the predicted attribute value and the existing attribute value of the current point.
[0359] The neighbors within a certain range described above can be obtained in various ways, such as a group of points with the closest geometric distance from all points in the global, a group of points with the closest distance to the current point within a certain range, or a group of points with the closest distance to the node to which the current point belongs in a hierarchical structure, and the present application does not make further limitations.
[0360] The point classification method based on neighbor prediction described above can be performed after all encoding steps are completed, or during the prediction and encoding process of the encoder.
[0361] A classification method is based on the spatial position characteristics of a point to classify the point.
[0362] A classification method based on the spatial position of a point can be described as follows: the point cloud is divided into multiple sub-blocks in three-dimensional space, and the current point is classified according to the index of the sub-block to which it belongs after spatial division.
[0363] A classification method based on the spatial position of a point can be described as follows: the point cloud is classified according to its point's Morton code. For example, one implementation can be described as follows: the relative spatial position of the point cloud point is represented by an 8-bit Morton code, and the point cloud is classified according to the value of the 8th bit. There are 8 possible values for the 8th bit, so the point cloud is divided into 8 categories.
[0364] A classification method based on the spatial position of a point can be described as follows: the point cloud is classified based on a hierarchical spatial structure. For example, one implementation is combined with the RAHT attribute encoding algorithm in the G-PCC encoding and decoding standard, and the hierarchical structure established based on RAHT is used to classify the direct current transform coefficients in each level or one or more levels according to one or a combination of the above methods. It should be noted that the direct current coefficient is essentially the average attribute value of all points contained in a certain node at this level.
[0365] A classification method based on the spatial position of points can be described as classifying point clouds based on the point cloud detail hierarchy. For example, one implementation is to combine the Predlift attribute encoding algorithm in the G-PCC coding standard, based on the multi-detail hierarchy established by Predlift, and classify points in each detail level or certain detail level or certain detail levels according to a combination of one or more of the above methods.
[0366] A classification method is to combine any of the above classification methods, for example, in each sub-block or each level after the point cloud is divided based on the spatial position of points, classify points according to the above attribute value classification method based on the spatial position of points.
[0367] 2. For each class after classification, calculate an optimal attribute offset value.
[0368] The method for calculating the optimal attribute offset value can be described as follows: first, set a group of candidate offset values. Then, iteratively calculate the distortion after each candidate offset value is adopted, compare it with the signal distortion of the original reconstructed attribute value, and select the offset value that can reduce the signal distortion the most as the optimal offset value.
[0369] The above original attribute value can refer to the original true attribute value of each point, or the attribute value after the reconstructed point is recolored after the lossy encoding of the point cloud geometry.
[0370] The above process can be repeated under multiple classification methods, and the offset value that can reduce the signal distortion the most is selected, and a symbol indicating the classification method adopted is written into the code stream.
[0371] 3. Calculate the comprehensive benefit of the distortion reduction after the optimal offset value is adopted and the additional code stream overhead of transmitting the optimal offset value, and decide whether to finally adopt the optimal offset value, and write an indicator symbol indicating whether to adopt the offset value into the code stream.
[0372] One method for setting the indicator symbol is to write a flag bit indicating whether to enable attribute offset into the code stream, and if enabled, further write the class index of the attribute offset enabled into the code stream.
[0373] One method for setting the indicator symbol is to write the class index of the offset value adopted into the code stream, and when the written value is not in the possible class index, terminate the writing of the indicator symbol. For example, the point cloud is divided into 16 classes, and the encoding symbol takes a value of 1-16, indicating that the class corresponding to the symbol adopts the offset value. Multiple indicator symbols can be continuously written to indicate that multiple classes adopt the offset value, and the encoding symbol takes a value of 0, indicating that the writing of the indicator symbol is stopped.
[0374] A method for setting an indication symbol is to merge adjacent categories, such as dividing a point cloud into 16 categories, and the encoding symbol takes a value of 1-8, each encoding symbol corresponds to an offset value used to indicate 2 categories.
[0375] A method for setting an indication symbol is to set the maximum number of categories allowed to use an offset value, and when the number of written indication symbols reaches the maximum allowed number, stop writing the indication symbol.
[0376] A method for setting an indication symbol is to set the value of the current category indication symbol based on the reference frame or the reference coding unit or the reference category, without writing the value of the current category indication symbol into the bitstream, and writing a symbol indicating the use of the reference into the bitstream.
[0377] 4、If the indication symbol indicates that the attribute offset is enabled, write the corresponding optimal offset value into the bitstream.
[0378] A method for writing an optimal offset value into a bitstream is to directly bin the optimal offset value and write it into the bitstream.
[0379] A method for writing an optimal offset value into a bitstream is to predict the optimal offset value of the current category based on the reference frame or the reference coding unit or the reference category, and write the prediction residual into the bitstream.
[0380] A method for writing an optimal offset value into a bitstream is to set the value of the optimal offset value of the current category based on the reference frame or the reference coding unit or the reference category, without writing the optimal offset value of the current category into the bitstream, and writing a symbol indicating the use of the reference into the bitstream.
[0381] 5、At the encoding end, filter the attribute value of the current coding frame according to the result of the above decision. The filtered attribute value is used for subsequent inter-frame prediction. Among them, the filtering of attribute information can include compensating the initial reconstruction value of the point using the corresponding attribute offset value to obtain the final attribute reconstruction value.
[0382] It should be noted that in the embodiments of the present application, the decoding end can perform the following processing:
[0383] 1、At the decoding end, classify the point cloud points. Among them, the point cloud can be classified in the same way as the encoding end.
[0384] 2、At the decoding end, decode to obtain the flag indicating whether to use the attribute offset, the category index of the attribute offset enabled, and the corresponding optimal offset value.
[0385] A method for decoding a flag indicating whether to enable attribute offset, a category index of attribute offset enabled, and a corresponding optimal offset value is as follows: first, decode the flag indicating whether to enable attribute offset; if the flag indicates that attribute offset is enabled, further decode the category index of attribute offset enabled and the corresponding optimal offset value.
[0386] A method for decoding a flag indicating whether to enable attribute offset and a category index of attribute offset enabled is as follows: use the same symbol to indicate whether to enable attribute offset and the category index of attribute offset; when the decoded value is not in the possible values of the category of attribute offset, do not perform attribute offset.
[0387] A method for decoding a flag indicating whether to enable attribute offset and a category index of attribute offset enabled is as follows: one category index of attribute offset decoded value actually corresponds to multiple categories. For example, divide the point cloud into 16 categories, and the decoded index symbol value is 1-8. Each symbol corresponds to indicate 2 categories using offset values.
[0388] A method for decoding a flag indicating whether to enable attribute offset and a category index of attribute offset enabled is as follows: set the maximum number of categories allowed to use offset values; when the number of decoded indicator symbols reaches the maximum allowed number, stop decoding the indicator symbols.
[0389] A method for decoding a flag indicating whether to enable attribute offset and a category index of attribute offset enabled and a corresponding offset value is as follows: when the decoded symbol indicates that the value of the current category is based on the reference frame or the reference coding unit or the reference category, do not further continue decoding, but set the flag indicating whether to enable attribute offset, the category index of attribute offset enabled, and the corresponding offset value based on the reference information.
[0390] A method for decoding an optimal offset value is as follows: based on the reference frame or the reference coding unit or the reference category, predict the optimal offset value of the current category, decode the difference between the predicted value and the true optimal value, and add the decoded residual value to the predicted value to obtain the optimal offset value.
[0391] 3. At the decoding end, decode the motion vector, filter the current frame attribute according to the result of the above decision, and generate a motion compensation frame based on the filtered attribute and the decoded motion vector.
[0392] FIG. 10 is a schematic diagram of a codec implementation of intra-loop attribute filtering. As shown in FIG. 10, at the encoding end, after completing geometry encoding and attribute encoding, the attribute information of the points of the current type can be compensated using the determined optimal attribute offset value of the current type of the current point cloud (the nth frame), i.e., intra-loop attribute filtering of the points of the current type is completed based on the corresponding attribute offset value to obtain the final attribute reconstruction value, which can be used for inter-frame prediction of the point cloud of the next frame (the (n+1)th frame), wherein the motion vector determined in the inter-frame prediction process can be written into the code stream and transmitted to the decoding end. Correspondingly, at the decoding end, after completing geometry encoding and attribute encoding, the attribute information of the points of the current type can also be compensated using the determined optimal attribute offset value of the current type of the current point cloud (the nth frame), i.e., intra-loop attribute filtering of the points of the current type is completed based on the corresponding attribute offset value to obtain the final attribute reconstruction value, which can be used for inter-frame prediction of the point cloud of the next frame (the (n+1)th frame), wherein the motion vector used in the inter-frame prediction process can be obtained by decoding the code stream.
[0393] It can be seen that the codec method proposed in the embodiments of the present application can be applied to attribute filtering methods within the point cloud encoding loop. A simple classification method of three-dimensional point clouds is proposed, and based on the classification method, the calculation of the optimal attribute offset value is designed, and the method of writing the indicator symbol into the code stream is designed, which improves the subjective and objective quality of the reconstructed point cloud without significantly increasing the time complexity and the length of the code stream.
[0394] In summary, the codec method proposed in the embodiments of the present application classifies the original point cloud at the encoding end, calculates an optimal attribute compensation value for each category based on the minimum rate-distortion criterion, writes the compensation value into the code stream, and enhances the reconstructed attribute based on the compensated attribute value for inter-frame prediction. At the decoding end, the original point cloud is classified in the same way as at the encoding end, and the compensation value is decoded to further compensate the points of different categories, and the compensated attribute value is combined with the motion vector information for inter-frame prediction. The offset value calculated based on the minimum rate-distortion criterion can ensure that the enhanced attribute value has smaller distortion compared to the original reconstructed value, and only a small amount of optimal offset value and a small amount of indication information need to be transmitted to ensure that the transmission bandwidth is not under pressure, thereby achieving a good balance between code rate and reconstruction quality.
[0395] The embodiment of the present application provides a coding method. At the decoding end, a code stream is decoded, and first syntax element identification information is determined. In the case that the first syntax element identification information indicates that a current type of points corresponding to a current point cloud uses an attribute offset value, an attribute offset value of the current type is determined. An attribute reconstruction value of a current point of the current type is determined according to the attribute offset value of the current type. At the encoding end, an attribute offset value of a current type corresponding to a current point cloud is determined. An attribute reconstruction value of a current point of the current type is determined according to the attribute offset value of the current type. In the case that the attribute reconstruction value of the current point is used to determine that the points of the current type corresponding to the current point cloud use the attribute offset value, the first syntax element identification information is determined, and the first syntax element identification information is written into the code stream. That is, in the embodiment of the present application, the optimal attribute offset value of the current type corresponding to the current point cloud can be adaptively determined at the encoding end, and whether the points of the current type corresponding to the current point cloud use the attribute offset value to compensate attribute information is adaptively selected. The first syntax element identification information is correspondingly set and transmitted to the decoding end. Correspondingly, when the first syntax element identification information obtained by decoding is used to determine that the points of the current type corresponding to the current point cloud use the attribute offset value, the attribute information of the current point of the current type can be further compensated by using the attribute offset value, that is, the attribute information is in-loop filtered by using the attribute offset value, and the final attribute reconstruction value is obtained. As can be seen, the use of the attribute offset value can improve the reconstruction effect of the attribute information, and only a small amount of indication information needs to be transmitted, so that the time complexity and the code stream overhead can be reduced, thereby the point cloud coding performance can be effectively improved.
[0396] In still another embodiment of the present application, based on the same inventive concept as the foregoing embodiments, referring to FIG. 11, a composition structure schematic diagram of an encoder 100 proposed in the embodiment of the present application is shown. As shown in FIG. 11, the encoder 100 can include a first determining unit 1001; wherein,
[0397] The first determining unit 1001 is configured to determine an attribute offset value of a current type corresponding to a current point cloud; determine an attribute reconstruction value of a current point of the current type according to the attribute offset value of the current type; and in the case that the attribute reconstruction value of the current point is used to determine that the points of the current type corresponding to the current point cloud use the attribute offset value, determine first syntax element identification information, and write the first syntax element identification information into a code stream.
[0398] It should be noted that in the embodiment of the present application, the encoder 100 can also be regarded as a data processing mode (or an entropy encoder) for encoding processing of a value of a to-be-encoded syntax element.
[0399] It can be understood that, in the embodiments of the present application, the "unit" can be a part of circuit, a part of processor, a part of program or software, etc., and of course can also be a module, and can also be non-modular. Moreover, the components in the embodiments can be integrated in a processing unit, or can be physically present as individual units, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software function module.
[0400] The integrated unit, if realized in the form of a software function module and not sold or used as an independent product, can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the embodiments can essentially or say the parts that contribute to the prior art or the whole or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a plurality of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the method described in the embodiments. The foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various media that can store program codes.
[0401] Therefore, the embodiments of the present application provide a computer readable storage medium applied to the encoder 100, and the computer readable storage medium stores a computer program. The computer program is executed by the first processor to implement the encoding method in any one of the foregoing embodiments.
[0402] Based on the components of the encoder 100 and the computer readable storage medium, referring to FIG. 12, a specific hardware structure schematic diagram of the encoder 100 provided by the embodiments of the present application is shown. As shown in FIG. 12, the encoder 100 can include a first communication interface 1002, a first memory 1003 and a first processor 1004; and the components are coupled together through a first bus system 1005. It can be understood that the first bus system 1005 is used to realize the connection communication between the components. The first bus system 1005 includes a data bus, a power supply bus, a control bus and a state signal bus. However, for the purpose of clear illustration, all kinds of buses are marked as the first bus system 1005 in the figure. Among them,
[0403] The first communication interface 1002 is used for receiving and sending signals in the process of transceiving information with other external network elements;
[0404] The first memory 1003 is configured to store a computer program capable of running on the first processor 1004.
[0405] The first processor 1004 is configured to, when running the computer program, perform the following steps: determining a current type attribute offset value corresponding to a current point cloud; determining a current point attribute reconstruction value of the current type according to the current type attribute offset value; and determining first syntax element identification information in a case where a point attribute offset value of the current type corresponding to the current point cloud is determined based on the current point attribute reconstruction value, and writing the first syntax element identification information into a bitstream.
[0406] It can be understood that the first memory 1003 in the embodiments 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 ROM (PROM), an Erasable PROM (EPROM), an Electrically EPROM (EEPROM), or a flash memory. The volatile memory can be a Random Access Memory (RAM) used as an external cache. By way of example, and not limitation, many forms of RAM can be used, such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous Dynamic RAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The first memory 1003 of the system and method described in the present application is intended to include, without limitation, these and any other suitable types of memory.
[0407] The first processor 1004 can be a chip that has a processing capability of signals. In implementation, each step of the above method can be completed by integrated logic circuit of hardware in the first processor 1004 or instructions in the form of software. The first processor 1004 described above can be a general processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component. Each method, step and logic block 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. The steps of the method disclosed in combination with the embodiments of the present application can be directly embodied as a hardware code processor for execution, or a combination of hardware and software modules in the code processor for execution. The software module can be located in a random access memory, a flash memory, a read only memory, a programmable read only memory or an electrically erasable programmable memory, a register or other mature storage medium in the art. The storage medium is located in the first storage 1003, and the first processor 1004 reads the information in the first storage 1003 and combines the hardware to complete the steps of the above method.
[0408] It can be understood that the embodiments described in the present application can be realized by hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be realized in one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for executing functions described in the present application or a combination thereof. For software implementation, the technology described in the present application can be realized by modules (such as processes, functions, etc.) for executing functions described in the present application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.
[0409] Optionally, as another embodiment, the first processor 1004 is further configured to, when running the computer program, perform the encoding method in any one of the preceding embodiments.
[0410] The embodiment provides an encoder, and the codec can select to code the filter coefficient of the current color component, that is, can select to skip the transmission of part of the filter coefficient, so that the coding efficiency can be effectively improved, and the compression performance is improved.
[0411] In still another embodiment of the application, based on the same inventive concept as in the preceding embodiments, referring to FIG. 13, a schematic structural diagram of a decoder 200 is shown. As shown in FIG. 13, the decoder 200 can include a second determining unit 2001, wherein,
[0412] The second determining unit 2001 is configured to decode a code stream, determine first syntax element identification information, determine an attribute offset value of a current type in a case where the first syntax element identification information indicates that the current point cloud corresponds to the current type of point using the attribute offset value, and determine an attribute reconstruction value of the current point of the current type according to the attribute offset value of the current type.
[0413] It should be noted that in the embodiments of the application, the decoder 200 can also be regarded as a data processing mode (or an "entropy decoder") for decoding the value of the to-be-decoded syntax element.
[0414] It can be understood that in the embodiment, the "unit" can be a part of circuit, a part of processor, a part of program or software, and of course can be a module, and can also be non-modular. Moreover, the components in the embodiment can be integrated in a processing unit, or each unit can exist physically, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software function module.
[0415] When the integrated unit is realized in the form of a software function module and is not sold or used as an independent product, the integrated unit can be stored in a computer readable storage medium. Based on such understanding, the embodiment provides a computer readable storage medium applied to the decoder 200, and the computer readable storage medium stores a computer program. The computer program is executed by the second processor to implement the method in any one of the preceding embodiments.
[0416] Based on the components of the decoder 200 and the computer readable storage medium, referring to FIG. 14, a specific hardware structure diagram of the decoder 200 provided by the embodiments of the present application is shown. As shown in FIG. 14, the decoder 200 can include a second communication interface 2002, a second memory 2003 and a second processor 2004; each component is coupled together through a second bus system 2005. It can be understood that the second bus system 2005 is used to realize the connection communication between the components. The second bus system 2005 includes a data bus, a power bus, a control bus and a state signal bus. However, for the purpose of clear illustration, all kinds of buses are marked as the second bus system 2005 in the figure. Among them,
[0417] The second communication interface 2002 is configured to receive and send signals in the process of transceiving information with other external network elements;
[0418] The second memory 2003 is configured to store a computer program capable of running on the second processor 2004;
[0419] The second processor 2004 is configured to, when running the computer program, perform: decoding a code stream, determining first syntax element identification information; in the case that the first syntax element identification information indicates that the current type of point corresponding to the current point cloud uses an attribute offset value, determining the attribute offset value of the current type; determining the attribute reconstruction value of the current point of the current type according to the attribute offset value of the current type.
[0420] Optionally, as another embodiment, the second processor 2004 is further configured to, when running the computer program, perform the method of any one of the preceding embodiments.
[0421] It can be understood that the hardware function of the second memory 2003 is similar to that of the first memory 1003, and the hardware function of the second processor 2004 is similar to that of the first processor 1004; here is not described in detail.
[0422] The embodiment provides a decoder, and the codec can select to code the filter coefficient of the current color component, that is, can select to skip the transmission of part of the filter coefficient, so that the coding efficiency can be effectively improved, and the compression performance is improved.
[0423] In still another embodiment of the present application, referring to FIG. 15, a component structure diagram of a coding system provided by the embodiments of the present application is shown. As shown in FIG. 15, the coding system 300 can include an encoder 100 and a decoder 200.
[0424] In the embodiments of the present application, the encoder 100 can be the encoder of any one of the preceding embodiments, and the decoder 200 can be the decoder of any one of the preceding embodiments.
[0425] Further, the embodiment of the present application further provides a code stream, wherein the code stream is generated by bit coding according to to-be-encoded information; wherein the to-be-encoded information at least comprises the first syntax element identification information, the second syntax element identification information, the third syntax element identification information, the first reference identification information, the second reference identification information, the third reference identification information, the motion vector and the prediction residual of the attribute offset value of the current type.
[0426] It should be noted that, in the present application, the terms "comprising", "containing" or any other variants thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements not only includes those elements, but also includes other elements not explicitly listed or inherent to such process, method, article or device. Without more limitations, the element defined by the statement "comprising a" does not exclude the presence of other identical elements in the process, method, article or device including the element.
[0427] The above-mentioned sequence numbers of the embodiments of the present application are only for description, and do not represent the advantages or disadvantages of the embodiments.
[0428] The methods disclosed in the several method embodiments of the present application can be combined arbitrarily without conflict to obtain new method embodiments.
[0429] The features disclosed in the several product embodiments of the present application can be combined arbitrarily without conflict to obtain new product embodiments.
[0430] The features disclosed in the several method or device embodiments of the present application can be combined arbitrarily without conflict to obtain new method or device embodiments.
[0431] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto, and any person skilled in the art can easily think of changes or replacements within the technical range disclosed by the present application, which should be covered in the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims. Industrial applicability
[0432] Embodiments of the present application provide a coding method, a code stream, a codec and a storage medium. At the decoding end, the code stream is decoded, and a first syntax element identification information is determined. In a case where the first syntax element identification information indicates that a current type of point corresponding to a current point cloud uses an attribute offset value, an attribute offset value of the current type is determined. An attribute reconstruction value of a current point of the current type is determined according to the attribute offset value of the current type. At the encoding end, an attribute offset value of a current type corresponding to a current point cloud is determined. An attribute reconstruction value of a current point of the current type is determined according to the attribute offset value of the current type. In a case where it is determined that the current type of point corresponding to the current point cloud uses the attribute offset value based on the attribute reconstruction value of the current point, the first syntax element identification information is determined, and the first syntax element identification information is written into the code stream. That is, in the embodiments of the present application, the optimal attribute offset value of the current type corresponding to the current point cloud can be adaptively determined at the encoding end, and it is adaptively selected whether the point of the current type corresponding to the current point cloud uses the attribute offset value to compensate for the attribute information. The first syntax element identification information is correspondingly set and transmitted to the decoding end. Correspondingly, when the first syntax element identification information obtained by decoding at the decoding end determines that the point of the current type corresponding to the current point cloud uses the attribute offset value, the attribute information of the current point of the current type can be further compensated by using the attribute offset value, that is, the attribute information is in-loop filtered by using the attribute offset value to obtain the final attribute reconstruction value. As can be seen, the use of the attribute offset value can improve the reconstruction effect of the attribute information. At the same time, only a small amount of indication information needs to be transmitted, which can ensure the reduction of time complexity and code stream overhead, thereby effectively improving the point cloud coding performance.
Claims
1. A decoding method applied to a decoder, the method comprising: decoding a bitstream to determine first syntax element identification information; in a case where the first syntax element identification information indicates that points of a current type corresponding to a current point cloud use an attribute offset value, determining the attribute offset value of the current type; determining a property reconstruction value of a current point of the current type according to the attribute offset value of the current type.
2. The method of claim 1, wherein, The method further comprises: decoding a bitstream to determine second syntax element identification information; in a case where the second syntax element identification information indicates that the current point cloud uses an attribute offset value, performing the determination process of the first syntax element identification information.
3. The method of claim 2, wherein, The method further comprises: in a case where a value of the first syntax element identification information is different from a preset index corresponding to the current type, determining that points of the current type do not use an attribute offset value; in a case where the value of the first syntax element identification information is the same as the preset index corresponding to the current type, determining that points of the current type use an attribute offset value.
4. The method of claim 3, wherein, The method further comprises: in a case where a number of decoded first syntax element identification information is greater than or equal to a preset threshold, stopping the decoding of the first syntax element identification information.
5. The method of claim 1, wherein, The method further comprises: in a case where a value of the first syntax element identification information does not belong to a preset index range corresponding to the current point cloud, determining that the current point cloud does not use an attribute offset value; in a case where the value of the first syntax element identification information belongs to the preset index range corresponding to the current point cloud, determining that the current point cloud uses an attribute offset value.
6. The method of any one of claims 1-5, wherein, The determining of the attribute offset value of the current type comprises: decoding a bitstream to determine the attribute offset value of the current type.
7. The method of claim 1, wherein, The method further comprises: decoding a bitstream to determine first reference identification information; determining a reference point cloud according to the first reference identification information; in a case where points of a reference type corresponding to the current type in the reference point cloud use an attribute offset value, determining that points of the current type corresponding to the current point cloud use an attribute offset value.
8. The method of claim 1, wherein, The method further comprises: decoding a bitstream to determine second reference identification information; determining a reference unit according to the second reference identification information; in a case where points of a reference type corresponding to the current type in the reference unit use an attribute offset value, determining that points of the current type corresponding to the current point cloud use an attribute offset value.
9. The method of claim 1, wherein, The method further comprises: decoding a bitstream to determine third reference identification information; determining a reference type according to the third reference identification information; in a case where points of the reference type use an attribute offset value, determining that points of the current type corresponding to the current point cloud use an attribute offset value.
10. The method of any one of claims 7-9, wherein, The determining of the attribute offset value of the current type comprises: determining an attribute offset value corresponding to the reference type as the attribute offset value of the current type.
11. The method of any one of claims 7-9, wherein, The method further comprises: decoding a bitstream to determine a prediction residual of the attribute offset value of the current type.
12. The method of claim 11, wherein, The determining of the attribute offset value of the current type comprises: determining a prediction value of the attribute offset value of the current type according to an attribute offset value corresponding to the reference type; determining the attribute offset value of the current type according to the prediction residual of the attribute offset value of the current type and the prediction value of the attribute offset value of the current type.
13. The method of claim 1, wherein, The determining the attribute reconstruction value of the current point of the current type according to the attribute offset value of the current type comprises: determining the attribute reconstruction value of the current point according to the attribute offset value of the current type and the initial reconstruction value of the current point.
14. The method of claim 13, wherein, The method further comprises: determining the initial reconstruction value of the current point according to the attribute reconstruction value of the reference point in the reference point cloud corresponding to the current point cloud.
15. The method of claim 1 or 14, wherein, The method further comprises: determining the attribute reconstruction value of the current point cloud according to the attribute reconstruction value of the current point.
16. The method of claim 15, wherein, The method further comprises: decoding the code stream to determine a motion vector; determining the attribute prediction value of the point cloud of the next frame image according to the motion vector and the attribute reconstruction value of the current point cloud.
17. The method of claim 1, wherein, The method further comprises: in a case that the attribute offset value is used for the point of the preset type corresponding to the current point cloud, determining that the attribute offset value is used for the point of the current type corresponding to the current point cloud; wherein the preset type comprises at least one other type except the current type.
18. The method of claim 17, wherein, The determining the attribute offset value of the current type comprises: determining the attribute offset value of the current type according to the attribute offset value corresponding to the preset type.
19. The method of claim 1, wherein, The method further comprises: decoding the code stream to determine third syntax element identification information; determining a first classification manner corresponding to the current point cloud according to the third syntax element identification information; wherein the first classification manner is a classification manner based on attribute information and / or a classification manner based on spatial position. classifying the points in the current point cloud according to the first classification manner to determine at least one type corresponding to the current point cloud; wherein the at least one type comprises the current type.
20. The method of claim 1, wherein, The method further comprises: classifying the points in the current point cloud according to a preset classification manner to determine at least one type corresponding to the current point cloud; wherein the at least one type comprises the current type; wherein the preset classification manner is a classification manner based on attribute information and / or a classification manner based on spatial position.
21. The method of claim 19 or 20, wherein, The method further comprises: determining at least one first type according to the classification manner based on attribute information for the points in the current point cloud; determining at least one type corresponding to the current point cloud according to the classification manner based on spatial position for the points of each first type.
22. The method of claim 19 or 20, wherein, The method further comprises: determining at least one second type according to the classification manner based on spatial position for the points in the current point cloud; determining at least one type corresponding to the current point cloud according to the classification manner based on attribute information for the points of each second type.
23. An encoding method applied to an encoder, the method comprising: determining an attribute offset value of a current type corresponding to a current point cloud; determining an attribute reconstruction value of a current point of the current type according to the attribute offset value of the current type. In a case where the attribute offset value is determined based on the attribute reconstruction value of the current point, the first syntax element identification information is determined, and the first syntax element identification information is written into the bitstream.
24. The method of claim 23, wherein, The attribute offset value of the current type corresponding to the current point cloud is determined by: determining attribute reconstruction values of the points of the current type according to the at least one candidate offset value respectively; determining at least one cost value corresponding to the at least one candidate offset value according to the attribute reconstruction values of the points of the current type; determining the attribute offset value of the current type from the at least one candidate offset value according to the at least one cost value corresponding to the at least one candidate offset value.
25. The method of claim 24, wherein, The attribute reconstruction value of the current point of the current type is determined according to the attribute offset value of the current type, including: determining the attribute reconstruction value of the current point according to the attribute offset value of the current type and the initial reconstruction value of the current point.
26. The method of claim 25, wherein, The method further includes: determining the initial reconstruction value of the current point according to the attribute reconstruction value of a reference point in a reference point cloud corresponding to the current point cloud.
27. The method of claim 26, wherein, The method further includes: determining a distortion cost value corresponding to the attribute offset value of the current type according to the attribute reconstruction value of the current point; determining a transmission cost value corresponding to the attribute offset value of the current type; determining a first cost value corresponding to the attribute offset value of the current type according to the distortion cost value and the transmission cost value.
28. The method of claim 27, wherein, The method further includes: determining a second cost value corresponding to the current type according to the initial reconstruction value of the current point; in a case where the first cost value is less than or equal to the second cost value, determining that the attribute offset value is used for the points of the current type; in a case where the first cost value is greater than the second cost value, determining that the attribute offset value is not used for the points of the current type.
29. The method of any one of claims 23-27, wherein, The method further includes: in a case where the attribute offset value is determined based on the attribute reconstruction value of the current point, the attribute offset value of the current type is written into the bitstream.
30. The method of any one of claims 23-27, wherein, The method further includes: in a case where the attribute offset value is determined based on the attribute reconstruction value of the current point, the value of the first syntax element identification information is set to be the same as a preset index corresponding to the current type; in a case where the attribute offset value is not determined based on the attribute reconstruction value of the current point, the value of the first syntax element identification information is set to be different from the preset index corresponding to the current type.
31. The method of any one of claims 23-27, wherein, The method further includes: in a case where the number of the coded first syntax element identification information is greater than or equal to a preset threshold, the coding of the first syntax element identification information is stopped.
32. The method of claim 27 or 28, wherein, The method further includes: determining a third cost value corresponding to the current point cloud according to the first cost value corresponding to the attribute offset value of the current type; in a case where the attribute offset value is determined based on the third cost value corresponding to the current point cloud, the second syntax element identification information is determined, and the second syntax element identification information is written into the bitstream.
33. The method of claim 23, wherein, The method further includes: In a case where the attribute offset value is used for the point of the current type based on the attribute reconstruction value of the current point, a value of the first syntax element identification information is set to belong to a preset index range corresponding to the current point cloud. In a case where the attribute offset value is not used for the point of the current type based on the attribute reconstruction value of the current point, the value of the first syntax element identification information is set to not belong to the preset index range corresponding to the current point cloud.
34. The method of claim 23, wherein, The method further includes: In a case where the attribute offset value is used for the point of the reference type corresponding to the current type in the reference point cloud, it is determined that the attribute offset value is used for the point of the current type corresponding to the current point cloud, the first reference identification information is set, and the first reference identification information is written into the code stream; wherein the first reference identification information is used to indicate the reference point cloud.
35. The method of claim 23, wherein, The method further includes: In a case where the attribute offset value is used for the point of the reference type corresponding to the current type in the reference unit, it is determined that the attribute offset value is used for the point of the current type corresponding to the current point cloud, the second reference identification information is set, and the second reference identification information is written into the code stream; wherein the second reference identification information is used to indicate the reference unit.
36. The method of claim 23, wherein, The method further includes: In a case where the attribute offset value is used for the point of the reference type, it is determined that the attribute offset value is used for the point of the current type corresponding to the current point cloud, the third reference identification information is set, and the third reference identification information is written into the code stream; wherein the third reference identification information is used to indicate the reference type.
37. The method of any one of claims 34-36, wherein, The determination of the attribute offset value of the current type includes: The attribute offset value corresponding to the reference type is determined as the attribute offset value of the current type.
38. The method of any one of claims 34-36, wherein, The method further includes: A prediction value of the attribute offset value of the current type is determined according to the attribute offset value corresponding to the reference type; A prediction residual of the attribute offset value of the current type is determined according to the attribute offset value of the current type and the prediction value of the attribute offset value of the current type; The prediction residual of the attribute offset value of the current type is written into the code stream.
39. The method of claim 23, wherein, The method further includes: The attribute reconstruction value of the current point cloud is determined according to the attribute reconstruction value of the current point; A motion vector is determined according to the attribute reconstruction value of the current point cloud and an attribute prediction value of a point cloud of a next frame image, and the motion vector is written into the code stream.
40. The method of claim 23, wherein, The method further includes: In a case where the attribute offset value is used for the point of the current point cloud corresponding to a preset type, it is determined that the attribute offset value is used for the point of the current type corresponding to the current point cloud; wherein the preset type includes at least one other type except the current type.
41. The method of claim 40, wherein, The determination of the attribute offset value of the current type includes: The attribute offset value of the current type is determined according to the attribute offset value corresponding to the preset type.
42. The method of claim 23, wherein, The method further includes: The points in the current point cloud are classified according to at least one classification manner respectively, and at least one type corresponding to each classification manner in the at least one classification manner is determined. determine at least one generation value corresponding to the at least one classification manner based on the at least one type corresponding to each classification manner; determine a first classification manner corresponding to the current point cloud in the at least one classification manner according to the at least one generation value; wherein the first classification manner is a classification manner based on attribute information and / or a classification manner based on spatial position; set third syntax element identification information according to the first classification manner, and write the third syntax element identification information into a bitstream.
43. The method of claim 23, wherein, The method further comprises: classify points in the current point cloud according to a preset classification manner to determine at least one type corresponding to the current point cloud; wherein the at least one type includes the current type; wherein the preset classification manner is a classification manner based on attribute information and / or a classification manner based on spatial position.
44. The method of claim 42 or 43, wherein, The method further comprises: classify points in the current point cloud according to the classification manner based on attribute information to determine at least one first type; classify points of each of the first types according to the classification manner based on spatial position to determine at least one type corresponding to the current point cloud.
45. The method of claim 42 or 43, wherein, The method further comprises: classify points in the current point cloud according to the classification manner based on spatial position to determine at least one second type; classify points of each of the second types according to the classification manner based on attribute information to determine at least one type corresponding to the current point cloud.
46. A code stream, wherein the code stream is generated by bit-encoding information to be encoded; and wherein, The information to be encoded at least includes: first syntax element identification information, second syntax element identification information, third syntax element identification information, first reference identification information, second reference identification information, third reference identification information, motion vector, and prediction residual of attribute offset value of the current type.
47. An encoder, comprising a first determining unit; wherein the first determining unit is configured to determine an attribute offset value of a current type corresponding to a current point cloud; determine an attribute reconstruction value of a current point of the current type according to the attribute offset value of the current type; and in a case where the attribute offset value is used to determine the point of the current type corresponding to the current point cloud based on the attribute reconstruction value of the current point, determine first syntax element identification information and write the first syntax element identification information into a bitstream.
48. An encoder, comprising a first memory and a first processor; wherein the first memory is configured to store a computer program capable of running on the first processor; the first processor is configured to execute the method according to any one of claims 23 to 45 when running the computer program.
49. A decoder, comprising a second determining unit; wherein the second determining unit is configured to decode a bitstream to determine first syntax element identification information; and in a case where the first syntax element identification information indicates that an attribute offset value is used for a point of a current type corresponding to a current point cloud, determine the attribute offset value of the current type; determine an attribute reconstruction value of a current point of the current type according to the attribute offset value of the current type.
50. A decoder comprising a second memory and a second processor; wherein, the second memory is configured to store a computer program capable of running on the second processor; the second processor is configured to perform the method of any one of claims 1 to 22 when running the computer program.
51. A computer readable storage medium, wherein, The computer readable storage medium stores a computer program which, when executed, implements the method of any one of claims 1 to 22, or implements the method of any one of claims 23 to 45.
Citation Information
Patent Citations
Point cloud data processing
CN114731462A
Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN115280365A
Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN116917943A
Decoding method, encoding method, decoding device, and encoding device
WO2023204040A1