Point cloud attribute encoding method, point cloud attribute decoding method, and terminal
By sorting and grouping the point clouds, transform coding and quantizing the correlation of residual information is used to solve the problem of inefficient point cloud attribute encoding and decoding, and more efficient encoding and decoding effects are achieved.
Patent Information
- Application Number
- JP2023578761
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-08-23
- Filing Date
- 2022-08-18
- Publication Date
- 2025-02-10
- Estimated Expiration
- 2042-08-18
AI Technical Summary
The prior art does not fully consider the correlation between each coding point during point cloud attribute encoding and decoding, resulting in low encoding efficiency and decoding efficiency.
By sorting the point clouds in a preset order, they are divided into point cloud blocks, and each block is grouped, transform encoding and quantization processing is used to use the correlation of residual information, and then entropy encoding is performed to generate a bit stream.
By considering the correlation of residual information, the redundant information in the transformation coefficient is reduced, and the encoding efficiency and decoding efficiency of point cloud attributes are improved.
Smart Images

Figure 0007628631000012 
Figure 0007628631000013 
Figure 0007628631000014
Abstract
Description
[Technical field]
[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims priority to Chinese Patent Application No. 202110970524.3 filed in China on August 23, 2021, the entire contents of which are incorporated herein by reference. The present application relates to the technical field of point cloud processing, and in particular to a method for encoding a point cloud attribute, a method for decoding a point cloud attribute, and a terminal. [Background technology]
[0002] A point cloud is a set of randomly distributed, discrete points in space that represent the spatial structure and surface properties of a 3D object or scene.
[0003] The coding of the attributes of the point cloud can be divided into attribute prediction coding and attribute transformation coding. In the process of attribute prediction coding, the residual information corresponding to each coding point is obtained, and then the residual information is quantized and entropy coded to obtain a binary bit stream. In the process of attribute transformation coding, the residual information corresponding to each coding point is obtained, and then the residual information is transformed using a fixed-order matrix to obtain transformation coefficients.
[0004] In the above attribute prediction coding and attribute transformation coding processes, the correlation between the residual information corresponding to each coding point is not considered, so there is redundant information in the residual information and the transformation coefficients, which reduces the coding efficiency of the point cloud attributes.In addition, the decoding process of the point cloud attributes is the same as the coding process of the point cloud attributes, which also reduces the decoding efficiency of the point cloud attributes. Summary of the Invention [Problem to be solved by the invention]
[0005] The embodiments of the present application provide a point cloud attribute encoding method, a point cloud attribute decoding method, and a terminal that can solve the problem that the efficiency of encoding and decoding point cloud attributes is reduced because the correlation between residual information corresponding to each coding point is not taken into account in the attribute encoding and attribute decoding process. [Means for solving the problem]
[0006] In a first aspect, obtaining a point cloud to be encoded, in which encoding points in the point cloud to be encoded are sorted in a preset encoding order; Dividing the point group to be encoded into at least one encoding point group block based on the number of encoding points included in the point group to be encoded, volume information of a bounding box corresponding to the point group to be encoded, and an order of each encoding point; For each coding point cloud block including at least two coding points, dividing the coding point cloud block into N coding point cloud groups based on the number of coding points included in the coding point cloud block and a preset maximum transformation order, where N is a positive integer; performing transform coding and quantization processing on first residual information corresponding to a first target coding point cloud group to obtain a first quantized transform coefficient, the first target coding point cloud group being at least a part of the N coding point cloud groups and being a coding point cloud group to be transformed; The present invention provides a method for encoding point cloud attributes, the method including: entropy encoding the quantized first transform coefficients and second residual information corresponding to a second target encoding point cloud group to generate a target bitstream, wherein the second target encoding point cloud group is an encoding point cloud group other than the first target encoding point cloud group among the N encoding point cloud groups.
[0007] In a second aspect, decoding a bitstream to be decoded to obtain a group of points to be decoded, where the decoding points in the group of points to be decoded are sorted in a preset decoding order; Dividing the point cloud to be decoded into at least one decoded point cloud block based on the number of decoded points included in the point cloud to be decoded, volume information of a bounding box corresponding to the point cloud to be decoded, and an order of each decoded point; For each decoded point cloud block including at least two decoded points, divide the decoded point cloud block into M decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a preset maximum transform order, where M is a positive integer; performing an inverse quantization process on second transform coefficients corresponding to a third target decoding point cloud group to obtain target high-frequency coefficients and target low-frequency coefficients, the third target decoding point cloud group being at least a part of the M decoding point cloud groups and being a decoding point cloud group to be subjected to the inverse quantization process; performing an inverse transform process on the target high frequency coefficients and the target low frequency coefficients to obtain third residual information corresponding to the third target decoded point cloud group.
[0008] In the third aspect, A first acquisition module for acquiring a point cloud to be encoded, wherein encoding points in the point cloud to be encoded are sorted in a preset encoding order; a first division module for dividing the point cloud to be encoded into at least one encoding point cloud block based on the number of encoding points included in the point cloud to be encoded, volume information of a bounding box corresponding to the point cloud to be encoded, and an order of each encoding point; a second division module for dividing each coding point cloud block including at least two coding points into N coding point cloud groups based on the number of coding points included in the coding point cloud block and a preset maximum transformation order, where N is a positive integer; a first encoding module for performing transform coding and quantization processing on first residual information corresponding to a first target encoding point cloud group to obtain a quantized first transform coefficient, the first target encoding point cloud group being at least a part of the N encoding point cloud groups and being an encoding point cloud group to be transformed and coded; and a second encoding module for entropy encoding the quantized first transform coefficients and second residual information corresponding to a second target encoding point cloud group to generate a target bitstream, wherein the second target encoding point cloud group is an encoding point cloud group other than the first target encoding point cloud group among the N encoding point cloud groups.
[0009] In the fourth aspect: a decoding module for decoding a bitstream to be decoded to obtain a group of points to be decoded, the decoding points in the group of points to be decoded being sorted in a preset decoding order; a third division module for dividing the point cloud to be decoded into at least one decoded point cloud block according to the number of decoded points included in the point cloud to be decoded, volume information of a bounding box corresponding to the point cloud to be decoded, and an order of each decoded point; A fourth division module for dividing each decoded point cloud block including at least two decoded points into M decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a preset maximum transformation order, where M is a positive integer; an inverse quantization module for performing inverse quantization processing on second transform coefficients corresponding to a third target decoding point cloud group to obtain target high frequency coefficients and target low frequency coefficients, the third target decoding point cloud group being at least a part of the M decoding point cloud groups and being a decoding point cloud group performing inverse quantization processing; an inverse transform module for performing an inverse transform process on the target high frequency coefficients and the target low frequency coefficients to obtain third residual information corresponding to the third target decoding point cloud group.
[0010] In a fifth aspect, there is provided a terminal including a processor, a memory, and a program or command stored in the memory and executable on the processor, wherein, when the program or command is executed by the processor, steps of the point cloud attribute encoding method described in the first aspect are realized, or steps of the point cloud attribute decoding method described in the second aspect are realized.
[0011] In a sixth aspect, there is provided a readable storage medium having a program or command stored therein, which, when executed by a processor, realizes steps of the point cloud attribute encoding method described in the first aspect, or realizes steps of the point cloud attribute decoding method described in the second aspect.
[0012] In a seventh aspect, there is provided a chip including a processor and a communication interface, the communication interface and the processor being coupled to each other, the processor executing a program or command to realize steps of the point cloud attribute encoding method described in the first aspect, or to realize steps of the point cloud attribute decoding method described in the second aspect.
[0013] In an eighth aspect, there is provided a computer program / program product that is stored in a non-volatile storage medium and that, when executed by at least one processor, realizes the steps of the point cloud attribute encoding method described in the first aspect, or realizes the steps of the point cloud attribute decoding method described in the second aspect.
[0014] In a ninth aspect, there is provided a communications device arranged to execute and realise the steps of the method for encoding a point cloud attribute according to the first aspect or the steps of the method for decoding a point cloud attribute according to the second aspect. Effect of the Invention
[0015] In the embodiment of the present application, after obtaining the point cloud to be coded, the point cloud to be coded is divided into at least one coding point cloud block, the coding points in each coding point cloud block are grouped into a point cloud group, and the coding point cloud block is divided into N coding point cloud groups. In the process of transform coding, the first residual information corresponding to the first target coding point cloud group is transformed and quantized to obtain a quantized first transform coefficient, in which there is a correlation between the residual information of each coding point in the first target coding point cloud group. Furthermore, the quantized first transform coefficient and the second residual information corresponding to the second target coding point cloud group are entropy coded to generate a target bit stream. The above coding process fully considers the correlation between the residual information corresponding to each coding point, and transform codes the first residual information corresponding to the first target coding point cloud group, thereby reducing redundant information in the transform coefficient and improving the coding efficiency of the attribute of the point cloud. [Brief description of the drawings]
[0016] [Figure 1] 1 is a framework diagram of a point cloud AVS encoder. [Diagram 2] A framework diagram of a point cloud AVS decoder. [Diagram 3] 1 is a flowchart of conventional point cloud attribute encoding. [Figure 4] 1 is a flowchart of a point cloud attribute encoding method provided in an embodiment of the present application; [Diagram 5] 1 is a flowchart of a point cloud attribute decoding method provided in an embodiment of the present application; [Figure 6] FIG. 2 is a structural diagram of an encoder provided in an embodiment of the present application. [Figure 7] FIG. 2 is a structural diagram of a decoder provided in an embodiment of the present application; [Figure 8] FIG. 2 is a structural diagram of a communication device provided in an embodiment of the present application; [Figure 9] FIG. 2 is a hardware structure schematic diagram of a terminal provided in an embodiment of the present application; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0017] Hereinafter, the technical solutions in the embodiments of the present application will be clearly described with reference to the drawings in the embodiments of the present application, and it is to be understood that the described embodiments are only a part of the embodiments of the present application, and not all of the embodiments. Based on the embodiments of the present application, all other embodiments obtained by those skilled in the art shall fall within the scope of protection of the present application.
[0018] The terms "first", "second", etc. in the specification and claims of the present application are not intended to describe a particular order or sequence, but are intended to distinguish between similar objects. It should be understood that the terms used in this manner may be substituted for each other where appropriate, so that the embodiments of the present application may be performed in an order other than that shown or described herein, and the objects distinguished by "first" and "second" are generally of one type, and the number of objects is not limited, for example, the first object may be one or more. In the specification and claims, "and / or" indicates at least one of the objects connected, and the symbol " / " generally indicates that the related objects before and after are in an "or" relationship.
[0019] The encoder corresponding to the encoding method of the point cloud attribute in the embodiment of the present application and the decoder corresponding to the decoding method of the point cloud attribute may both be a terminal, which may be called a terminal device or a user terminal (User Equipment, UE), and may be a terminal side device such as a mobile phone, a tablet personal computer, a laptop computer also called a notebook computer, a personal digital assistant (PDA), a personal digital assistant, a netbook, an ultra-mobile personal computer (UMPC), a mobile Internet device (MID), an augmented reality (AR) / virtual reality (VR) device, a robot, a wearable device (Wearable Device) or a vehicle-mounted device (Vehicle User Equipment, VUE), a pedestrian terminal (PED), etc., and the wearable device includes a smart watch, a bracelet, an earphone, glasses, etc. It is necessary to explain that the specific type of the terminal is not limited in the embodiment of the present application.
[0020] For ease of understanding, some of the contents related to the embodiments of the present application will be described below.
[0021] Referring to FIG. 1, as shown in FIG. 1, currently, in the standard of digital audio and video encoding and decoding technology, the geometry information and attribute information of the point cloud are encoded separately using the Audio Video Coding Standard (AVS) encoder. First, the geometry information is transformed to include all the points in one bounding box, and then the coordinate quantization is performed. The quantization mainly plays a scaling role, and since the geometric coordinates are rounded in the quantization, the geometric information of some points becomes the same, which are called duplicated points, and whether to delete the duplicated points is determined based on a parameter, and the two steps of quantization and deletion of duplicated points are also called a voxelization process. Then, the bounding box is partitioned into multiple trees, for example, octree, quadtree, or binary tree. In the multi-tree based geometric information encoding framework, we divide the bounding box into 8 equal sub-cubes, and continue to divide the non-empty sub-cubes until a 1x1x1 unit cube is obtained as a leaf node, and then encode the number of points at the leaf node to generate a binary bitstream.
[0022] In multi-tree based geometric coding for point clouds, a point to be coded needs to store occupancy information of adjacent nodes in order to perform predictive coding on the occupancy information of the point to be coded. Thus, for a point to be coded that is close to a leaf node, a large amount of occupancy information needs to be stored, occupying a large amount of memory space.
[0023] After completing the geometric coding, the geometric information is reconstructed and used for later recoloring. Attribute coding mainly targets color and reflectance information. First, it is determined whether to perform color space conversion based on the parameters, and if color space conversion is performed, the color information is converted from the Red Green Blue (RGB) color space to the Luminance and Chrominance (YUV) color space. Then, the original point cloud is used to recolor the geometrically reconstructed point cloud, and the uncoded attribute information is associated with the reconstructed geometric information. In coding the color information, after sorting the point cloud by Morton code or Hilbert code, the geometric spatial relationship is used to search for the nearest neighbor of the point to be predicted, and the reconstructed attribute value of the searched neighbor is used to predict the point to be predicted to obtain a predicted attribute value, and then the actual attribute value is subtracted from the predicted attribute value to obtain a prediction residual, and finally, the prediction residual is quantized and coded to generate a binary bit stream.
[0024] It should be understood that the decoding flow in the standard of digital audio and video encoding and decoding technology corresponds to the above encoding flow, specifically, the AVS decoder framework is as shown in FIG. 2.
[0025] Please refer to Fig. 3, which is a flow chart of conventional point cloud attribute encoding. The conventional method of performing attribute encoding on point cloud is as follows.
[0026] First, subtract a prediction signal from an original signal to obtain a prediction residual, which is also called residual information. A first-order Discrete Cosine Transform (DCT) is performed on the residual information to obtain a first-order transform coefficient, which can be represented as a first-order transform coefficient block, and a second-order transform is performed on the low-frequency components of a preset region of the first-order transform coefficient block to obtain a second-order transform coefficient with more concentrated energy, where the preset region is located at the upper left of the first-order transform coefficient block, as shown in FIG. 3. The second-order transform coefficient can be represented as a second-order transform coefficient block, and the low-frequency components of the preset region of the second-order transform coefficient block are quantized and entropy coded to obtain a binary bit stream.
[0027] Furthermore, the quantized secondary transform coefficients may be subjected to an inverse secondary transform to obtain primary transform coefficients, and the primary transform coefficients may be subjected to an inverse primary transform to obtain residual information. The residual information may then be added to the predicted attribute values to obtain reconstructed information, and the reconstructed information may be subjected to a loop filtering process to obtain attribute reconstructed values.
[0028] However, in some specific coding scenarios, the quadratic transform and inverse quadratic transform described above are not performed.
[0029] Currently, the general point cloud technology standards have the following technical challenges:
[0030] In the encoding process of the point cloud attributes, the correlation between the residual information corresponding to each encoding point is not fully taken into account, so some redundant information still exists in the transform coefficients, which reduces the encoding efficiency of the point cloud attributes.
[0031] Based on the above situation, the technical problem to be solved is how to fully utilize the correlation between the residual information corresponding to each coding point in the point cloud attribute coding and attribute decoding process to perform attribute coding and attribute decoding, so as to improve the efficiency of point cloud attribute coding and point cloud attribute decoding.
[0032] In the following, the point cloud attribute encoding method provided in the embodiments of the present application will be described in detail with reference to the drawings according to several embodiments and application scenarios thereof.
[0033] Please refer to Fig. 4, which is a flowchart of the point cloud attribute encoding method provided in this embodiment. The point cloud attribute encoding method provided in this embodiment includes the following steps S101 to S105.
[0034] In S101, a group of points to be encoded is obtained.
[0035] The point cloud to be encoded in this step is a point cloud that has undergone re-coloring and color space conversion. The re-coloring refers to re-coloring the geometrically reconstructed point cloud using the original point cloud, thereby associating the unencoded attribute information with the reconstructed geometric information to obtain the re-colored point cloud. The color space conversion refers to converting the color information of the point cloud from RGB space to YUV space.
[0036] Here, the points to be coded can be understood as a point cloud sequence, and each coding point in the points to be coded can be understood as each element in the point cloud sequence. The points to be coded in the point cloud sequence are sorted in a preset coding order, and in an alternative embodiment, a Hilbert sort is performed on the points to be coded in the point cloud sequence, and each of the points to be coded is sorted in ascending order based on a Hilbert code, or a Morton sort is performed on the points to be coded in the point cloud sequence, and each of the points to be coded is sorted in ascending order based on a Morton code.
[0037] In S102, the point cloud to be encoded is divided into at least one encoding point cloud block based on the number of encoding points included in the point cloud to be encoded, volume information of a bounding box corresponding to the point cloud to be encoded, and the order of each encoding point.
[0038] In this step, the point cloud to be coded is divided to obtain a coding point cloud block, where the division method of the point cloud to be coded can be determined according to the number of coding points included in the point cloud to be coded, the volume information of the bounding box corresponding to the point cloud to be coded, and the order of each coding point, and the specific technical solution is referred to the following embodiment.
[0039] In an alternative embodiment, the number of encoding point cloud blocks is 1, in which case it can be understood that the entire point cloud to be encoded is regarded as one encoding point cloud block.
[0040] It should be understood that since the attribute information corresponding to the coding points belonging to the same coding point cloud block has spatial correlation, the attribute information corresponding to them also has stronger correlation, that is, these coding points have closer geometric positions and more similar color attributes.
[0041] It should be understood that when the coding points in the point cloud sequence are sorted in ascending order based on the Hilbert code, after dividing the point cloud to be coded, the Hilbert codes corresponding to the coding points belonging to the same coding point cloud block are the same.
[0042] It should be understood that when the coding points in the point cloud to be encoded are sorted in ascending order based on the Morton code, after dividing the point cloud to be encoded, the Morton codes corresponding to the coding points belonging to the same coding point cloud block are the same.
[0043] In S103, for each coding point cloud block including at least two coding points, the coding point cloud block is divided into N coding point cloud groups based on the number of coding points included in the coding point cloud block and a preset maximum transformation order.
[0044] In this step, after dividing the point cloud to be coded into at least one coding point cloud block, for each coding point cloud block that contains at least two coding points, the coding point cloud block is grouped into a point cloud group, and the coding point cloud block is divided into N coding point cloud groups, where N is a positive integer. It should be understood that the number of coding points contained in the coding point cloud block and the preset maximum transformation degree can be used to group the coding point cloud block into a point cloud group, and specific technical solutions can be referred to the following embodiments.
[0045] A possible situation is that the number of encoded point cloud groups is 1, in which case the entire encoded point cloud block can be understood to be regarded as one encoded point cloud group.
[0046] It should be understood that after dividing the coding point cloud block into N coding point cloud groups, for any coding point in each coding point cloud group, use geometric spatial relationship to search the nearest neighbor of this coding point, use the reconstructed attribute value of the searched neighbor to predict this coding point to obtain a predicted attribute value, and then take the difference between the actual attribute value of this coding point and the predicted attribute value to obtain a prediction residual, and the prediction residual is also called residual information.Thereby, the residual information corresponding to each coding point in each coding point cloud group can be obtained.
[0047] In S104, a transform coding and quantization process is performed on the first residual information corresponding to the first target coding point cloud group to obtain a quantized first transform coefficient.
[0048] In this step, all the encoding point cloud groups in the encoding point cloud block may be determined as the first target encoding point cloud group, or some of the encoding point cloud groups in the encoding point cloud block may be determined as the first target encoding point cloud group. For specific technical solutions on how to determine the target encoding point cloud group, please refer to the following examples.
[0049] As described above, after the encoding point cloud block is grouped into point cloud groups, residual information corresponding to each encoding point in each encoding point cloud group is determined. In this step, a set of residual information corresponding to each encoding point in the first target point cloud group can be determined as residual information corresponding to the first target encoding point cloud group.
[0050] For specific technical solutions on how to perform transform coding and quantization processing on the residual information corresponding to the first target coding point cloud group to obtain the quantized first transform coefficients, please refer to the following embodiments.
[0051] In S105, the quantized first transform coefficients and second residual information corresponding to a second target coding point cloud group are entropy coded to generate a target bitstream.
[0052] In this step, after obtaining the first transform coefficients and the residual information corresponding to the second target coding point cloud group, the first transform coefficients and the second residual information are entropy coded to generate a target bitstream.
[0053] It should be understood that the second encoding target point cloud group is an encoding point cloud group other than the first target encoding point cloud group among the N encoding point cloud groups.
[0054] Here, the entropy coding is a coding method that does not lose any information in the coding process according to the entropy principle, and the entropy coding can be Shannon coding, Huffman coding or other types of coding, and the embodiment is not specifically limited here. Wherein, the target bit stream is a binary bit stream.
[0055] It should be appreciated that in some embodiments, the first transform coefficients may be subjected to inverse quantization and inverse transform operations to obtain the attribute reconstruction values.
[0056] In the embodiment of the present application, after obtaining the point cloud to be coded, the point cloud to be coded is divided into at least one coding point cloud block, the coding points in each coding point cloud block are grouped into a point cloud group, and the coding point cloud block is divided into N coding point cloud groups. In the process of transform coding, the first residual information corresponding to the first target coding point cloud group is transformed and quantized to obtain a quantized first transform coefficient, where there is a correlation between the residual information of each coding point in the first target coding point cloud group. Furthermore, the quantized first transform coefficient and the second residual information corresponding to the second target coding point cloud group are entropy coded to generate a target bit stream. The above coding process fully considers the correlation between the residual information corresponding to each coding point, and transform codes the first residual information corresponding to the first target coding point cloud group, thereby reducing the redundant information of the transform coefficient and improving the coding efficiency of the attribute of the point cloud.
[0057] In order to facilitate understanding of the technical effects of the present application, the point cloud attribute encoding method provided in the embodiments of the present application is applied to the PCEM platform to detect the encoding efficiency of point cloud attributes. The specific detection results can be seen in Table 1.
[0058] [Table 1]
[0059] Here, BD-AttrRate in Table 1 indicates the compression performance of the Y component in the transform coefficient, BD-GeomRate1 indicates the compression performance of the U component in the transform coefficient, and BD-GeomRate2 indicates the compression performance of the V component in the transform coefficient. The sequences in Table 1 are bitstream sequences compared using the point cloud attribute encoding method provided in the embodiment of the present application and the conventional point cloud attribute encoding method, and it should be understood that when the above BD-AttrRate, BD-GeomRate1, and BD-GeomRate2 are negative, it means that the performance is better, and moreover, the larger the absolute value of BD-rate, the greater the improvement in performance.
[0060] It can be seen from Table 1 that by using the point cloud attribute encoding method provided in the embodiments of the present application, the encoding performance of the point cloud attribute encoding can be improved.
[0061] Optionally, the step of dividing the point cloud to be encoded into at least one encoding point cloud block based on the number of encoding points included in the point cloud to be encoded and the order of each encoding point may further include: A step of shifting a sort code corresponding to each encoding point using a first target shift value to obtain a first target sort code corresponding to each encoding point, the target shift value being determined based on the number of encoding points included in the point group to be encoded and volume information of the bounding box; and dividing the coded points having the same first target sort code into the same coded point cloud block.
[0062] In this embodiment, a coordinate transformation is performed on the geometric information of the points to be encoded, so that all the points are contained in a bounding box. The bounding box can be understood as a hexahedron that covers the points to be encoded, and each edge of the hexahedron is located on the X-axis, Y-axis or Z-axis of the coordinate system. According to the size of the bounding box, i.e., the length of the corresponding side of the bounding box on the X-axis, Y-axis and Z-axis of the coordinate system, a third shift parameter corresponding to the points to be encoded is determined.
[0063] The number of encoding points included in the point group to be encoded is obtained, and a fourth shift parameter corresponding to the point group to be encoded is determined based on the number of encoding points included in the point group to be encoded.
[0064] In this embodiment, a shift calculation formula is further preset, and the above-mentioned third shift parameter and fourth shift parameter are input into the shift calculation formula to obtain a first target shift value corresponding to the point group to be encoded. Here, the length of the side corresponding to the above-mentioned bounding box can be input into the third shift parameter calculation formula to obtain the third shift parameter, and the number of encoding points included in the point group to be encoded can be input into the fourth shift parameter calculation formula to obtain the fourth shift parameter.
[0065] Specifically, the above shift calculation formula is the same as the shift calculation formula in a later point cloud attribute decoding method, the above third shift parameter calculation formula is the same as the third shift parameter calculation formula in a later point cloud attribute decoding method, and the above fourth shift parameter calculation formula is the same as the fourth shift parameter calculation formula in a later point cloud attribute decoding method.
[0066] In the following, an example will be given in which the coding points in the point cloud to be coded are sorted in ascending order based on the Hilbert code.
[0067] As described above, the coding points in the point cloud to be coded are sorted in ascending order according to the Hilbert code. After obtaining the first target shift value, the Hilbert code corresponding to each coding point is shifted right using the first target shift value to obtain a new Hilbert code corresponding to each coding point, and the new Hilbert code is determined as the target Hilbert code, and the target Hilbert code can be understood as the target sort code. The first target shift value represents the number of bits moved during the shifting process of the coding points, and the first target shift value can also represent the density of the point cloud to be coded, and it should be understood that the smaller the target shift value, the more densely the coding points in the point cloud to be coded are packed together.
[0068] Furthermore, the point cloud to be coded is divided based on the target Hilbert code corresponding to each coding point, and coding points having the same target Hilbert code are divided into the same coding point cloud block, that is, the target Hilbert code corresponding to each coding point in one coding point cloud block is the same.
[0069] In other embodiments, the first target shift value can be customized, or the first target shift value can be determined based on a geometric quantization step size of the coding point cloud.
[0070] In this embodiment, the Hilbert code of each coding point in the point cloud to be coded is shifted, and the point cloud to be coded is divided into coding point cloud blocks according to the target Hilbert code corresponding to each shifted coding point. Here, since coding points belonging to the same coding point cloud block have the same target Hilbert code, it is considered that there is a stronger correlation between the attribute information of these points, and coding points whose attribute information has spatial correlation are divided into the same coding point cloud block.
[0071] In the following, a specific technical solution for grouping the encoded point cloud block into point cloud groups using the number of encoded points contained in the encoded point cloud block and the preset maximum transformation order will be described in detail.
[0072] In this embodiment, the maximum transformation order is preset, and the preset maximum transformation order is for representing the maximum order corresponding to the transformation matrix used in the process of transformation coding. The number of coding points included in the coding point cloud block is obtained, and if the number of coding points is equal to or less than the preset maximum transformation order, the coding point cloud block is determined as one coding point cloud group, that is, the coding point cloud block is not grouped into a point cloud. Here, the preset maximum transformation order can be written into the bitstream.
[0073] If the number of the coding points is greater than the preset maximum transformation order, the coding point cloud block is grouped into a point cloud group according to the number of the coding points and a first preset value, and the coding point cloud block is divided into at least two coding point cloud groups. Here, for a specific method of grouping the coding point cloud block into a point cloud group according to the number of the coding points included in the coding point cloud block and the first preset value, please refer to the following embodiment.
[0074] Optionally, the step of dividing the encoded point cloud block into at least two point cloud groups based on the number of encoded points included in the encoded point cloud block and a first preset value includes: performing a grouping calculation operation on the third value according to the first preset value to obtain a fourth value when the third value is greater than a preset maximum transformation order; and dividing at least a portion of the coding points that have not been grouped into a point cloud group into one coding point cloud group according to a preset coding order of the coding points in the coding point cloud blocks until point cloud grouping of all the coding points in all the coding point cloud blocks is completed.
[0075] The number of the coding points of the coding point cloud block that are not grouped into the point cloud is represented by a third value, and when the third value is greater than the preset maximum transformation degree, a grouping calculation operation is performed on the third value according to a first preset value to obtain a fourth value, where the fourth value is less than the preset maximum transformation degree. Here, for a specific method of how to perform the grouping calculation operation on the third value according to the first preset value to obtain the fourth value, please refer to the following embodiment.
[0076] After obtaining the fourth value, at least a part of the coded points not grouped into a point cloud group is divided into one coded point cloud group according to a preset coding order of the coded points in the coded point cloud block. That is, a part of the coded points not grouped into a point cloud group in the coded point cloud block is selected and the part of the coded points is divided into one coded point cloud group, or all of the coded points not grouped into a point cloud group in the coded point cloud block are selected and the coded points are divided into one coded point cloud group. Here, the number of the coded points divided into one coded point cloud group is equal to the second value.
[0077] After some of the encoding points are grouped into point cloud groups, the third value is updated, and if the updated third value is still greater than the preset maximum transformation order, the point cloud grouping of at least some of the encoding points in the encoding point cloud block is continued until the point cloud grouping of all the encoding points in the encoding point cloud block is completed.
[0078] The following will specifically describe how to perform a grouping calculation operation on the third value by the first preset value to obtain the fourth value.
[0079] The process of the grouping calculation operation includes performing a division operation on the third value and the first preset value to obtain a division result, and rounding the division result to obtain a target value. When the target value is greater than the preset maximum conversion order, the third value is updated to the target value, and the division operation is continued on the third value and the first preset value until the target value is equal to or less than the preset maximum conversion order, and the target value is determined as a fourth value.
[0080] It should be understood that the technical solution for grouping the encoded point cloud blocks into point cloud groups in this embodiment is consistent with the technical solution for grouping the decoded point cloud blocks into point cloud groups later, and the overlapping description will be omitted here.
[0081] Optionally, before the step of performing transform coding and quantization on first residual information corresponding to a first target coding point cloud group to obtain a quantized first transform coefficient, the method further comprises: obtaining a first transformation identifier for the point cloud to be encoded; determining all the coding point cloud groups as the first target coding point cloud group if the first transformation identifier is for representing a transformation coding for all the coding point cloud groups; and determining at least one of the N coding point cloud groups as the first target coding point cloud group if the first transform identifier is to represent adaptive transform coding for all coding point cloud groups.
[0082] It should be understood that the above-mentioned first target coding point cloud group refers to a point cloud group to be transformed coded, that is, any coding point in the first target coding point cloud group requires transform coding.
[0083] In this embodiment, a first transformation identifier is preset in the point group to be encoded, and the first transformation identifier is also called an adaptive transformation identifier, which can be represented by an adaptive transformation (AdpTransform), and can be customized.
[0084] When AdpTransform=0, it means transform coding for all coding points, that is, transform coding for all coding point cloud groups. In this case, all coding point cloud groups are determined as the first target coding point cloud group.
[0085] When AdpTransform=1, it means adaptive transform coding for each coding point cloud group, and it needs to determine whether to perform transform coding for each coding point cloud group according to the actual situation of the coding point cloud group, that is, at least one of the N coding point cloud groups is determined as the first target coding point cloud group.
[0086] It should be understood that each encoded point cloud group in the encoded point cloud block is sorted in the grouping time sequence of the point cloud groups, and the encoded point cloud group sorted to the top in the encoded point cloud block is determined as the third point cloud group.
[0087] In this embodiment, when a fourth transformation identifier is preset in the coding point cloud block and the fourth transformation identifier is for representing the transformation coding for the third point cloud group, the third point cloud group is determined as the first target coding point cloud group. That is, a fourth transformation identifier is preset in the coding point cloud block, and it is determined whether the third point cloud group is the first target coding point cloud group according to the fourth transformation identifier.
[0088] It should be understood that each coded point cloud group in the coded point cloud block is sorted in the grouping time sequence of the point cloud groups, and the coded point cloud group other than the coded point cloud group sorted to the top in the coded point cloud block is determined as the fourth point cloud group. For any fourth point cloud group, the coded point cloud group adjacent to and located before the fourth point cloud group in the coded point cloud block is determined as an adjacent point cloud group, the maximum value in the reconstruction information corresponding to the adjacent point cloud group is determined as the third reconstruction value, and the minimum value in the reconstruction information corresponding to the adjacent point cloud group is determined as the fourth reconstruction value.
[0089] Calculate the difference between the third reconstruction value and the fourth reconstruction value, and obtain the absolute value of the difference. In addition, in this embodiment, a second preset value is also set, and if the absolute value is smaller than the second preset value, the fourth point cloud group is determined as the first target encoding point cloud group.
[0090] Optionally, the step of performing transform coding and quantization on the first residual information corresponding to the first target coding point cloud group to obtain the quantized first transform coefficients may include: calculating a product of a product between a transformation matrix and the first residual information, and determining the product as a first transformation coefficient to be quantized; quantizing the first transform coefficient to be quantized to obtain the quantized first transform coefficient.
[0091] The first residual information is residual information corresponding to a first target encoding point cloud group. As described above, the residual information corresponding to an encoding point cloud group is a collection of residual information corresponding to each encoding point of the encoding group, and the first residual information can be understood as a one-dimensional residual information matrix.
[0092] The transformation matrix may be a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Hadamard transformation matrix, or other types of transformation matrix. The transformation order of the transformation matrix is the same as the number of coding points included in the first target coding point cloud group. For example, if the number of coding points included in the first target coding point cloud group is 3, the transformation order of the transformation matrix is also 3, and the transformation matrix is a 3*3 matrix.
[0093] The first transform coefficients to be quantized include low-frequency coefficients and high-frequency coefficients, where the low-frequency coefficients are also called DC coefficients and the high-frequency coefficients are also called AC coefficients.
[0094] The transformation matrix and the residual information corresponding to the first target coding point cloud group are multiplied to obtain the transformation coefficients to be quantized. For example, the following formula can be referred to:
[0095]
number
[0096] Wherein, in the above formula, DC denotes low frequency coefficient, AC denotes high frequency coefficient, AttrRes denotes first residual information, and T denotes an element in the transformation matrix. From the above formula, it can be seen that when the first target coding point cloud group includes K coding points, the first residual information matrix includes K residual information, the first transformation coefficient to be quantized includes 1 low frequency coefficient, K-1 high frequency coefficients, and the transformation order of the transformation matrix is K.
[0097] The color attribute of the first transform coefficient to be quantized is a YUV color space, and the U component and the V component in the YUV color space can be determined as a first component, and the Y component can be determined as a second component.
[0098] The high frequency coefficients in the U and V components are quantized using a preset first quantization step size to obtain a quantized third high frequency coefficient.
[0099] The low frequency coefficients in the U and V components are quantized using a preset second quantization step size to obtain a quantized third low frequency coefficient.
[0100] The high-frequency coefficients and the low-frequency coefficients in the Y component are quantized using a preset third quantization step size to obtain fourth quantized high-frequency coefficients and fourth quantized low-frequency coefficients, respectively.
[0101] In this embodiment, the quantized third high frequency coefficient, the quantized third low frequency coefficient, the quantized fourth high frequency coefficient, and the quantized fourth low frequency coefficient are determined as the quantized first transform coefficients.
[0102] In the following, the point cloud attribute decoding method provided in the embodiments of the present application will be described in detail with reference to the drawings according to several embodiments and application scenarios thereof.
[0103] Please refer to Fig. 5, which is a flowchart of the point cloud attribute decoding method provided in this embodiment. The point cloud attribute decoding method provided in this embodiment includes the following steps S201 to S205.
[0104] In S201, the bit stream to be decoded is decoded to obtain a group of points to be decoded.
[0105] In this step, after obtaining a bitstream to be decoded, the bitstream to be decoded is decoded to obtain a point cloud to be decoded, the point cloud to be decoded includes a plurality of decoded points, and the decoded points in the point cloud to be decoded are sorted in a preset decoding order, where the decoded points in the point cloud to be decoded can be sorted in ascending order according to a Hilbert code, or can be sorted in ascending order according to a Morton code.
[0106] In S202, the point cloud to be decoded is divided into at least one decoded point cloud block based on the number of decoded points included in the point cloud to be decoded, volume information of a bounding box corresponding to the point cloud to be decoded, and the order of each decoded point.
[0107] In this step, the point cloud to be decoded is divided to obtain a decoded point cloud block. Here, the number of decoded points included in the point cloud to be decoded, the volume information of the bounding box corresponding to the point cloud to be decoded, and the order of each decoded point can determine the division method of the point cloud to be decoded. For specific technical solutions, please refer to the following embodiment.
[0108] It should be understood that the attribute information corresponding to the decoded points belonging to the same decoded point cloud block has spatial correlation, that is, the decoded points have closer geometric positions and more similar color attributes.
[0109] It should be understood that when the points to be decoded in the point cloud to be decoded are sorted in ascending order based on the Hilbert code, after dividing the point cloud to be decoded, the Hilbert codes corresponding to the decoded points belonging to the same decoded point cloud block are the same.
[0110] It should be understood that when the points to be decoded in the point cloud to be decoded are sorted in ascending order based on the Morton code, after dividing the point cloud to be decoded, the Morton codes corresponding to the decoded points belonging to the same decoded point cloud block are the same.
[0111] In S203, for each decoded point cloud block including at least two decoded points, the decoded point cloud block is divided into M decoded point cloud groups based on the number of decoded points included in the point cloud block to be decoded and a preset maximum transform order.
[0112] In this step, the point cloud to be decoded is divided into at least one decoded point cloud block, and then, for a decoded point cloud block containing at least two decoded points, the decoded point cloud block is grouped into point cloud groups, and the decoded point cloud block is divided into M decoded point cloud groups, where for an embodiment of dividing the decoded point cloud block into M decoded point cloud groups, please refer to the examples.
[0113] A possible situation is that the number of decoded point cloud groups is 1, in which case the entire decoded point cloud block can be understood to be regarded as one decoded point cloud group.
[0114] It should be understood that after dividing the decoded point cloud block into M decoded point cloud groups, for any decoded point in the decoded point cloud group, a geometric spatial relationship can be used to search for the nearest neighbor of the decoded point, and the reconstructed attribute value of the searched neighbor can be used to predict the decoded point to obtain a predicted attribute value, so as to obtain a predicted attribute value corresponding to each decoded point in each decoded point cloud group, and the above predicted attribute value is also referred to as predicted information.
[0115] In S204, the second transform coefficients corresponding to the third target decoding point group are subjected to an inverse quantization process to obtain target high frequency coefficients and target low frequency coefficients.
[0116] The third target decoding point cloud group is at least a part of the M decoding point cloud groups, and is a decoding point cloud group for which inverse quantization processing is performed.
[0117] In this step, at least a part of the M decoding point group is determined as a third target decoding point group, it should be understood that the third target decoding point group is a decoding point group that performs inverse quantization processing, and please refer to the later embodiments for specific technical solutions on how to determine the third target decoding point group.
[0118] In this step, read the second transform coefficient corresponding to the third target decoding point group group, and carry out inverse quantization process on the second transform coefficient, and obtain the target high frequency coefficient and the target low frequency coefficient.Here, please refer to the following embodiment for the specific embodiment of inverse quantization process.
[0119] In S205, an inverse transform process is performed on the target high frequency coefficients and the target low frequency coefficients to obtain residual information corresponding to the third target decoding point cloud group.
[0120] In this step, after the target high-frequency coefficients and the target low-frequency coefficients are obtained, an inverse transform process is performed on the target high-frequency coefficients and the target low-frequency coefficients to obtain residual information corresponding to the third target decoding point cloud group.
[0121] As an alternative embodiment, among the M decoding point group groups, a decoding point group that does not undergo inverse quantization processing is determined as a fourth target decoding point group, and inverse quantization processing is performed on the fourth target decoding point group to obtain residual information corresponding to the fourth target decoding point group.
[0122] As described above, after dividing the decoded point cloud block into M decoded point cloud groups, for any decoded point in the decoded point cloud group, the nearest neighbor of the decoded point can be searched for using the geometric spatial relationship, and the decoded point can be predicted using the reconstructed attribute value of the nearest neighbor to obtain the predicted information corresponding to the decoded point.Furthermore, after determining the residual information corresponding to the coding point, the residual information corresponding to the decoded point and the predicted information corresponding to the decoded point can be added to obtain the reconstruction of the attribute information corresponding to the decoded point.
[0123] The point cloud attribute decoding method provided in the embodiment of the present application fully considers the correlation between the residual information corresponding to each decoding point, and performs inverse quantization processing on the second transform coefficient corresponding to the third target decoding point cloud group to obtain the target high frequency coefficient and the target low frequency coefficient corresponding to the third target decoding point cloud group, where the attribute information of each decoding point in the third target decoding point cloud group has spatial correlation.Furthermore, perform inverse transform processing on the target high frequency coefficient and the target low frequency coefficient to obtain the residual information corresponding to the third target decoding point cloud group, thereby reducing the redundant information in the transform coefficient and the residual information, and improving the decoding efficiency of the point cloud attribute.
[0124] Optionally, the step of dividing the point cloud to be decoded into at least one decoded point cloud block based on the number of decoded points included in the point cloud to be decoded, volume information of a bounding box corresponding to the point cloud to be decoded, and an order of each decoded point is performed by: shifting a sort code corresponding to each decoded point using a second target shift value to obtain a second target sort code corresponding to each decoded point; and dividing the decoded points having the same second target sort code into identical decoded point cloud blocks.
[0125] The decoded points in the point group to be decoded are sorted in ascending order based on a sort code, and the sort code includes one of a Hilbert code and a Morton code, i.e., the decoded points in the point group to be decoded are sorted in ascending order based on a Hilbert code, or the decoded points in the point group to be decoded are sorted in ascending order based on a Morton code.
[0126] In the following, the solution is explained by taking an example where the decoded points in the point cloud to be decoded are sorted in ascending order based on the Hilbert code.
[0127] After obtaining the second target shift value, the Hilbert code corresponding to each decoding point is shifted to the right using the second target shift value to obtain a new Hilbert code corresponding to each decoding point, and the new Hilbert code is determined as a target Hilbert code, and the target Hilbert code can be understood as a second target sort code.
[0128] It should be understood that the above-mentioned second target shift value represents the number of bits moved during the shifting process of the decoding point, and the above-mentioned second target shift value can also represent the density of the point group to be decoded, and the smaller the target shift value, the more densely the decoding points are arranged in the point group to be decoded.
[0129] Furthermore, the point cloud to be decoded is divided based on the target Hilbert code corresponding to each decoding point, and the decoding points having the same target Hilbert code are divided into the same decoding point cloud block, that is, the target Hilbert code corresponding to each decoding point in one decoding point cloud block is the same.
[0130] In this embodiment, the sort code of each decoded point in the point cloud to be decoded is shifted, and the point cloud to be decoded is divided into decoded point cloud blocks according to the second target sort code corresponding to each shifted decoded point. Here, the decoded points belonging to the same decoded point cloud block have the same second target sort code, which means that the attribute information of these decoded points has spatial correlation, and thus the decoded points whose attribute information has spatial correlation are divided into the same decoded point cloud block.
[0131] Optionally, prior to the step of shifting a sort code corresponding to each decoding point using a second target shift value to obtain a second target sort code corresponding to each decoding point, the method further comprises: determining the second target shift value based on a first shift parameter and a second shift parameter; or determining the second target shift value based on a geometric quantization step size corresponding to the point cloud to be decoded; or determining a preset shift value as the second target shift value; or obtaining the second target shift value from the bitstream to be decoded.
[0132] In this embodiment, coordinate transformation is performed on the geometric information of the points to be decoded, and all the points are included in a bounding box. Here, a three-dimensional Cartesian coordinate system can be formed with the points to be decoded as the center, and the bounding box can be understood as a hexahedron that covers the points to be decoded, and each edge of the hexahedron is located on the X-axis, Y-axis or Z-axis of the coordinate system. According to the size of the bounding box, that is, the length of the corresponding side of the bounding box on the X-axis, Y-axis and Z-axis of the coordinate system, determine the first shift parameter corresponding to the points to be decoded.
[0133] The number of decoded points included in the point group to be decoded is obtained, and a second shift parameter corresponding to the point group to be decoded is determined based on the number of decoded points included in the decoded point group.
[0134] In this embodiment, a shift calculation formula, a first shift parameter calculation formula and a second shift parameter calculation formula are preset. The first shift parameter and the second shift parameter are input into the calculation formula to obtain a second target shift value corresponding to the point group to be decoded. Here, the length of the side corresponding to the bounding box can be input into the first shift parameter calculation formula to obtain the first shift parameter, and the number of decoded points included in the point group to be decoded can be input into the second shift parameter calculation formula to obtain the second shift parameter.
[0135] Specifically, the above shift calculation formula, the first shift parameter calculation formula, and the second shift parameter calculation formula are as follows:
[0136]
number
[0137]
number
[0138]
number
[0139] Here, shiftBits indicates the second target shift value, MaxBits indicates the first shift parameter, MinBits indicates the second shift parameter, x indicates the length of the corresponding side of the bounding box on the X-axis of the coordinate system, y indicates the length of the corresponding side of the bounding box on the Y-axis of the coordinate system, z indicates the length of the corresponding side of the bounding box on the Z-axis of the coordinate system, and voxelCount indicates the number of decoded points included in the point cloud to be decoded.
[0140] For example, if the first shift parameter is 9 and the second shift parameter is 3, the second target shift value is 3.
[0141] As an optional embodiment, the second target shift value can be determined based on the geometric quantization step size of the decoded point group. For example, the second target shift value is set to a value corresponding to the geometric quantization step size, or the second target shift value is the sum of the value corresponding to the geometric quantization step size and a preset value.
[0142] In an optional embodiment, the second target shift value can be customized.
[0143] As an alternative embodiment, the second target shift value can be read from the bitstream to be decoded.
[0144] Optionally, the step of dividing the decoded point cloud block into M decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a preset maximum transformation order may include: determining the decoded point cloud block as one decoded point cloud group when the number of decoded points included in the decoded point cloud block is equal to or less than the preset maximum transformation order; When the number of decoded points included in the decoded point cloud block is greater than the preset maximum transform order, dividing the decoded point cloud block into at least two decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a first preset value.
[0145] In this embodiment, the maximum transformation order is preset, and the preset maximum transformation order is used to represent the maximum order corresponding to the transformation matrix used in the inverse transformation process. The number of coding points included in the coding point cloud block is obtained, and if the number of coding points is equal to or less than the preset maximum transformation order, the coding point cloud block is determined as one coding point cloud group, that is, the coding point cloud block is not grouped into a point cloud group.
[0146] If the number of the coding points is greater than the preset maximum transformation order, the coding point cloud block is grouped into a point cloud group according to the number of the coding points and a first preset value, and the coding point cloud block is divided into at least two coding point cloud groups. Here, for a specific method of grouping the coding point cloud block into a point cloud group according to the number of the coding points included in the coding point cloud block and the first preset value, please refer to the following embodiment.
[0147] Optionally, the step of dividing the decoded point cloud block into at least two decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a first preset value includes: performing a grouping calculation operation on the first value according to the first preset value to obtain a second value when the first value is greater than a preset maximum transformation order; and dividing at least a portion of the decoded points that have not been grouped into a point cloud group into one decoded point cloud group according to a preset decoding order of the decoded points in the decoded point cloud block until point cloud grouping of all the decoded points in all the decoded point cloud blocks is completed.
[0148] The first value indicates the number of decoded points not grouped in the decoded point cloud block, and when the first value is greater than a preset maximum transform degree, a grouping calculation operation is performed on the first value according to the first preset value to obtain a second value, and the second value is smaller than the preset maximum transform degree. Here, for a specific method of performing a grouping calculation operation on the first value according to the first preset value to obtain the second value, please refer to the following embodiment.
[0149] After obtaining the second value, at least a part of the decoded points not grouped into a point cloud group is divided into one decoded point cloud group according to a preset decoding order of the decoded points in the decoded point cloud block. That is, a part of the decoded points not grouped into a point cloud group in the decoded point cloud block is selected, and the part of the decoded points is divided into one decoded point cloud group, or all the decoded points not grouped into a point cloud group in the decoded point cloud block are selected, and the decoded points are divided into one decoded point cloud group. Here, the number of the decoded points divided into one decoded point cloud group is equal to the second value.
[0150] After some of the decoded points are grouped into point cloud groups, the first value is updated, and if the updated first value is still greater than the preset maximum transformation order, the point cloud grouping of at least some of the decoded points in the decoded point cloud block is continued until the point cloud grouping of all the decoded points in the decoded point cloud block is completed.
[0151] Optionally, the step of performing a grouping calculation operation on the first value according to the first preset value to obtain a second value includes: When the first value is greater than a preset maximum conversion order, rounding a result of dividing the first value by a first preset value to obtain a target value; updating the first value to the target value until the target value is equal to or less than a preset maximum transformation order, and determining the target value as the second value.
[0152] The process of the grouping calculation operation includes performing a division operation on a first value and a first preset value to obtain a division result, and rounding the division result to obtain a target value, where the division result can be rounded up, rounded down or rounded to the nearest integer. If the target value is greater than the preset maximum conversion order, the first value is updated to the target value, and the division operation is continued on the first value and the first preset value until the target value is equal to or less than the preset maximum conversion order, and the target value is determined as a second value.
[0153] In order to describe in detail the technical solution of grouping the decoded point cloud blocks into point clouds, an example is given below.
[0154] The magnitude relationship between Mj1 and Kmax is determined, where Mj1 represents the number of decoded points not grouped into point cloud in the decoded point cloud block, that is, a first value, and Kmax is equal to the preset maximum transform order.
[0155] If Mj1 is greater than Kj, perform a grouping calculation operation on the first value.
number
[0156] If the target value is greater than Kmax, update the first value to the target value, and repeat the above grouping calculation operation until the first value is equal to or less than the preset maximum transform order. In this case, determine the last updated Mj1 as a second value, and divide some decoding points into one decoding point cloud group according to the preset decoding order of each decoding point in the decoding block, where the number of the above part of decoding points is equal to the second value.
[0157] Next, judge the magnitude relationship between Mj2 and Kj, where Mj2 represents the number of decoded points in the decoded point cloud block that are not grouped into point cloud groups, and because some decoded points are grouped into point cloud groups in the above step, the value of Mj2 is equal to the difference between the number of all decoded points in the decoded point cloud block and the last updated Mj1, that is, the value of Mj2 is smaller than the value of Mj1. If Mj2 is larger than Kj, perform grouping calculation operation on Mj2, and according to the calculation result, group the decoded block into point cloud groups, and the specific embodiment is the same as the above embodiment that groups the decoded block into point cloud groups according to Mj1, and the overlapping description is omitted here.
[0158] When the number of decoded points not grouped into point cloud groups in the decoded point cloud block becomes equal to or less than Kj, the point cloud grouping of the decoded block is stopped.
[0159] Additionally, see the examples below.
[0160] Suppose the decoded point cloud block includes 12 point cloud ungrouped decoded points, the preset maximum transform order is 5, and the first preset value is 2.
[0161] In this case, a grouping calculation operation is performed on the first value 12 and the first preset value 2 to obtain a target value of 6. Furthermore, the target value of 6 is greater than the preset maximum transformation order of 5, so the first value is updated to the target value, that is, the first value is updated to 6. A grouping calculation operation is performed on the updated first value 6 to obtain a target value of 3, and since the target value of 3 is less than the preset maximum transformation order of 5 in this case, three decoded points are selected and divided into the same decoded point cloud group according to the preset decoding order of each decoded point in the decoded point cloud block.
[0162] After the decoded point cloud block is grouped once, the first value is updated to 9, and a grouping calculation operation is performed on the first value of 9 and the first preset value of 2 to obtain a target value of 4. In addition, the target value of 4 is smaller than the preset maximum transformation order of 5, and four decoded points are selected and divided into the same decoded point cloud group according to the preset decoding order of each decoded point in the decoded point cloud block.
[0163] After the decoded point cloud block is grouped into point cloud groups twice, the first value is updated to 5. In addition, since the first value of 5 is the same as the preset maximum transformation order of 5, five decoded points are selected and divided into the same decoded point cloud group according to the preset decoding order of each decoded point in the decoded point cloud block.
[0164] As described above, for a decoded point cloud block including 12 decoded points that are not grouped into point cloud groups, the decoded point cloud block can be divided into three point cloud groups, and the number of decoded points corresponding to the three point cloud groups can be 3, 4, and 5, respectively.
[0165] Optionally, before the step of performing an inverse quantization process on the second transform coefficients corresponding to the third target decoding point cloud group to obtain the target high frequency coefficients and the target low frequency coefficients, the method further comprises: obtaining a second transformation identifier for the point cloud to be decoded; determining the all decoded point cloud group as the third target decoded point cloud group if the second transformation identifier is for representing an inverse transformation for the all decoded point cloud group; and determining at least one of the M decoded point cloud groups as the third target decoded point cloud group if the second transform identifier is to represent an adaptive inverse transform for all decoded point cloud groups.
[0166] It should be understood that the third target decoded point cloud group refers to a point cloud group that undergoes inverse transformation, that is, any decoded point in the third target decoded point cloud group requires inverse transformation.
[0167] In this embodiment, a second transformation identifier is pre-set in the point group to be decoded, and the second transformation identifier is also called an adaptive transformation identifier. Optionally, the second transformation identifier is the same transformation identifier as the first transformation identifier, and the second transformation identifier can be represented by AdpTransform. It should be understood that the second transformation identifier can be customized.
[0168] When AdpTransform=0, it means inverse transformation for all decoded points, and in this case, the entire decoded point cloud group is determined as the third target decoded point cloud group.
[0169] When AdpTransform=1, it means adaptive inverse transformation for each decoded point cloud group, and therefore, according to the actual situation of each decoded point cloud group, it needs to determine whether to perform inverse transformation on the decoded point cloud group, and in this case, at least one of the N decoded point cloud groups is determined as the target decoded point cloud group.
[0170] Optionally, the step of determining at least one of the M decoded point cloud groups as the third target decoded point cloud group comprises: obtaining a third transformation identifier corresponding to the first point cloud group; determining the first point cloud group as the third target decoding point cloud group if the third transformation identifier is to represent an inverse transformation for the first point cloud group.
[0171] It should be understood that each decoded point cloud group in the decoded point cloud block is sorted in the grouping time sequence of the point cloud groups, and the decoded point cloud group sorted to the top in the decoded point cloud block is determined as the first point cloud group.
[0172] In this embodiment, when a third transformation identifier is preset in the decoded point cloud block and the third transformation identifier is for representing an inverse transformation of the first point cloud group, the first point cloud group is determined as the third target decoded point cloud group. That is, a third transformation identifier is preset in the decoded point cloud block, and it is determined whether the first point cloud group is the third target decoded point cloud group according to the third transformation identifier.
[0173] Optionally, the step of determining at least one of the M decoded point cloud groups as the third target decoded point cloud group comprises: for any second point cloud group, determining a first reconstruction value and a second reconstruction value corresponding to the second point cloud group; calculating an absolute value of the difference between the first reconstructed value and the second reconstructed value; and determining the second point cloud group as a third target decoding point cloud group if the absolute value is smaller than a second preset value.
[0174] It should be understood that each decoded point cloud group in the decoded point cloud block is sorted in the grouping time sequence of the point cloud groups, and the decoded point cloud group other than the decoded point cloud group sorted to the top in the decoded point cloud block is determined as the second point cloud group. For example, the decoded point cloud block includes three decoded point cloud groups, and the decoded point cloud groups sorted to the second and third places are determined as the second point cloud group.
[0175] For any second point cloud group, a decoded point cloud group that is adjacent to and located before the second point cloud group in the decoded point cloud block is determined as an adjacent point cloud group, the maximum value in the reconstructed information corresponding to the adjacent point cloud group is determined as the first reconstruction value, and the minimum value in the reconstructed information corresponding to the adjacent point cloud group is determined as the second reconstruction value.
[0176] It should be understood that the reconstruction information corresponding to the adjacent point cloud group is a collection of reconstruction information corresponding to each decoded point in the adjacent point cloud group, that is, the first reconstruction value is the maximum value among the reconstruction information corresponding to each decoded point in the adjacent point cloud group, and the second reconstruction value is the minimum value among the reconstruction information corresponding to each decoded point in the adjacent point cloud group.
[0177] Calculate the difference between the first reconstruction value and the second reconstruction value, and obtain the absolute value of the difference. In addition, in this embodiment, a second preset value is also set, and if the absolute value is smaller than the second preset value, the second point cloud group is determined as the third target decoded point cloud group.
[0178] It should be understood that the above-mentioned third transformation identifier can be indicated by a transformation identifier (TransformFlag), and when TransformFlag=1, the decoded point cloud group is determined as the third target decoded point cloud group, and when TransformFlag=0, the decoded point cloud group is not determined as the third target decoded point cloud group.
[0179] For ease of understanding, the following formula can be introduced to further describe the technical solution of this embodiment:
[0180]
number
[0181] Here, AttRec max represents the first reconstruction value, and AttRec min represents a second reconstruction value, and Threshold represents a second preset value.
[0182]
number
[0183] Optionally, the step of performing an inverse quantization process on the second transform coefficients corresponding to the third target decoding point cloud group to obtain the target high frequency coefficients and the target low frequency coefficients includes: dequantizing the first high frequency coefficient and the first low frequency coefficient using a preset first quantization step size and a preset second quantization step size, respectively, to obtain a dequantized first high frequency coefficient and a dequantized first low frequency coefficient; dequantizing the second high frequency coefficients and the second low frequency coefficients using a preset third quantization step size to obtain dequantized second high frequency coefficients and dequantized second low frequency coefficients; determining the first dequantized high frequency coefficient and the second dequantized high frequency coefficient as the target high frequency coefficient; determining the dequantized first low frequency coefficient and the dequantized second low frequency coefficient as the target low frequency coefficient.
[0184] The color attribute of the second transform coefficient is a YUV color space, and the U component and the V component in the YUV color space are determined as a first component, the Y component is determined as a second component, the high frequency coefficient in the first component is determined as a first high frequency coefficient, the low frequency coefficient in the first component is determined as a first low frequency coefficient, the high frequency coefficient in the second component is determined as a second high frequency coefficient, and the low frequency coefficient in the second component is determined as a second low frequency coefficient.
[0185] For a first high-frequency coefficient, use a preset first quantization step size to dequantize the first high-frequency coefficient to obtain a dequantized first high-frequency coefficient, where the first quantization step size is equal to the sum of an initial step size, a transform step size and a high-frequency step size, and the initial step size, the transform step size and the high-frequency step size can all be customized.
[0186] It should be appreciated that the first quantization step size can be determined by the following equation:
[0187]
number
[0188] Here, Q fin1 denotes the first quantization step size, and Q ori indicates the initial step size, and Offset coeff indicates the transformation step size, and OffsetAC denotes the high frequency step size.
[0189] For a first low-frequency coefficient, use a preset second quantization step size to dequantize the first low-frequency coefficient to obtain a dequantized first low-frequency coefficient, where the second quantization step size is equal to the sum of an initial step size, a transform step size and a low-frequency step size, and the initial step size, the transform step size and the low-frequency step size can all be customized.
[0190] It should be appreciated that the second quantization step size can be determined by the following equation:
[0191]
number
[0192] Here, Q fin2 indicates the second quantization step size, and Offset DC denotes the low frequency step size.
[0193] For a second high-frequency coefficient and a second low-frequency coefficient, use a preset third quantization step size to dequantize the second high-frequency coefficient and the second low-frequency coefficient to obtain a dequantized second high-frequency coefficient and a dequantized second low-frequency coefficient, where the third quantization step size is equal to the sum of an initial step size, a transform step size and a low-frequency step size, or the third quantization step size is equal to the sum of an initial step size, a transform step size and a high-frequency step size, where the initial step size, the transform step size, the high-frequency step size and the low-frequency step size can all be customized, and the high-frequency step size and the low-frequency step size are the same.
[0194] It should be appreciated that the third quantization step size can be determined by the following equation:
[0195]
number
[0196] Here, Q fin3 indicates the third quantization step size, and Offset in the above formula DC Offset AC may be substituted.
[0197] In this embodiment, the first inverse quantized high frequency coefficient and the second inverse quantized high frequency coefficient are determined as target high frequency coefficients, and the first inverse quantized low frequency coefficient and the second inverse quantized low frequency coefficient are determined as target low frequency coefficients.
[0198] It should be noted that the point cloud attribute encoding method provided in the embodiments of the present application may be executed by an encoder or a control module for executing the point cloud attribute encoding method in the encoder. In the embodiments of the present application, the encoder provided in the embodiments of the present application will be described by taking an example of executing the point cloud attribute encoding method by an encoder.
[0199] As shown in FIG. 6, the encoder 300 includes: a first acquisition module 301 for acquiring a cloud of points to be encoded; a first division module 302 for dividing the point cloud to be encoded into at least one encoding point cloud block according to the number of encoding points included in the point cloud to be encoded, volume information of a bounding box corresponding to the point cloud to be encoded, and an order of each encoding point; a second division module 303 for dividing, for each coding point cloud block including at least two coding points, the coding point cloud block into N coding point cloud groups based on the number of coding points included in the coding point cloud block and a preset maximum transformation order; a first encoding module 304 for performing transform encoding and quantization processing on the first residual information corresponding to the first target encoding point cloud group to obtain a quantized first transform coefficient; and a second encoding module 305 for entropy encoding the first quantized transform coefficients and second residual information corresponding to a second target encoding point cloud group to generate a target bitstream.
[0200] Optionally, the first division module 302 specifically includes: shifting a sort code corresponding to each coding point using a first target shift value to obtain a first target sort code corresponding to each coding point; and dividing the coding points having the same first target sort code into the same coding point cloud block.
[0201] Optionally, the second division module 303 specifically includes: determining the encoded point cloud block as one encoded point cloud group when the number of encoded points included in the encoded point cloud block is equal to or less than the preset maximum transformation order; When the number of coding points included in the coding point cloud block is greater than the preset maximum transform order, dividing the coding point cloud block into at least two coding point cloud groups based on the number of coding points included in the coding point cloud block and a first preset value.
[0202] Optionally, the encoder 300 comprises: a second obtaining module for obtaining a first transformation identifier in the point cloud to be encoded; a first determination module for determining all the encoded point cloud groups as the first target encoded point cloud group when the first transform identifier is for representing a transform coding for all the encoded point cloud groups; and a second determination module for determining at least one of the N encoding point cloud groups as the first target encoding point cloud group when the first transform identifier is to represent adaptive transform coding for all encoding point cloud groups.
[0203] Optionally, the first encoding module 304 specifically comprises: calculating a product of a product between a transformation matrix and the first residual information, and determining the product as a first transformation coefficient to be quantized; quantizing the first transform coefficient to be quantized to obtain the quantized first transform coefficient.
[0204] The encoder provided in the embodiment of the present application can implement each process implemented by the method embodiment of FIG. 4 and achieve the same technical effects, and detailed descriptions thereof will be omitted here to avoid duplication.
[0205] It should be noted that the point cloud attribute decoding method provided in the embodiments of the present application may be executed by a decoder or a control module for executing the point cloud attribute decoding method in the decoder. In the embodiments of the present application, the decoder provided in the embodiments of the present application is described by taking an example of executing the point cloud attribute decoding method by a decoder.
[0206] As shown in FIG. 7, the decoder 400 a decoding module 401 for decoding the bitstream to be decoded and obtaining a point cloud to be decoded; a third division module 402 for dividing the point cloud to be decoded into at least one decoded point cloud block according to the number of decoded points included in the point cloud to be decoded, volume information of a bounding box corresponding to the point cloud to be decoded, and an order of each decoded point; A fourth division module 403 for dividing each decoded point cloud block including at least two decoded points into M decoded point cloud groups according to the number of decoded points included in the decoded point cloud block and a preset maximum transformation order; an inverse quantization module 404 for performing an inverse quantization process on the transform coefficients corresponding to the third target decoding point cloud group to obtain target high frequency coefficients and target low frequency coefficients; an inverse transform module 405 for performing an inverse transform process on the target high-frequency coefficients and the target low-frequency coefficients to obtain third residual information corresponding to the target decoded point cloud group.
[0207] Optionally, the third division module 402 specifically includes: shifting a sort code corresponding to each decoded point using a second target shift value to obtain a second target sort code corresponding to each decoded point; and dividing the decoded points having the same second target sort code into the same decoded point cloud block.
[0208] Optionally, the third division module 402 specifically includes: determining the second target shift value based on the first shift parameter and the second shift parameter; or determining the second target shift value based on a geometric quantization step size corresponding to the point cloud to be decoded; or determining a preset shift value as the second target shift value; or It is used to obtain the second target shift value from the bitstream to be decoded.
[0209] Optionally, the fourth division module 403 specifically includes: determining the decoded point cloud block as one decoded point cloud group when the number of decoded points included in the decoded point cloud block is equal to or less than the preset maximum transformation order; When the number of decoded points included in the decoded point cloud block is greater than the preset maximum transform order, dividing the decoded point cloud block into at least two decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a first preset value.
[0210] Optionally, the fourth division module 403 specifically includes: performing a grouping calculation operation on the first value according to the first preset value to obtain a second value when the first value is greater than a preset maximum transformation order; and a step of dividing at least a portion of the decoded points that have not been grouped into a point cloud group into one decoded point cloud group according to a preset decoding order of the decoded points in the decoded point cloud block until point cloud grouping of all the decoded points in all the decoded point cloud blocks is completed, wherein the number of the at least a portion of the decoded points is equal to the second value.
[0211] Optionally, the fourth division module 403 specifically includes: When the first value is greater than a preset maximum conversion order, rounding a result of dividing the first value by a first preset value to obtain a target value; updating the first value to the target value until the target value is equal to or less than a preset maximum transformation order, and determining the target value as the second value.
[0212] Optionally, the decoder 400 may further include: a third acquisition module for acquiring a second transformation identifier in the point cloud to be decoded; a third determination module for determining the all decoded point cloud group as the third target decoded point cloud group if the second transformation identifier is to represent an inverse transformation for the all decoded point cloud group; and a fourth determination module for determining at least one of the M decoded point cloud groups as the third target decoded point cloud group when the second transform identifier is to represent an adaptive inverse transform for all decoded point cloud groups.
[0213] Optionally, the third determination module specifically comprises: obtaining a third transformation identifier corresponding to the first point cloud group; determining the first point cloud group as the third target decoding point cloud group if the third transformation identifier is for representing an inverse transformation for the first point cloud group.
[0214] Optionally, the fourth determination module specifically comprises: for any second point cloud group, determining a first reconstruction value and a second reconstruction value corresponding to the second point cloud group; calculating an absolute value of the difference between the first reconstructed value and the second reconstructed value; and determining the second point cloud group as a third target decoding point cloud group if the absolute value is smaller than a second preset value.
[0215] Optionally, the inverse quantization module 404 specifically comprises: dequantizing the first high frequency coefficient and the first low frequency coefficient using a preset first quantization step size and a preset second quantization step size, respectively, to obtain a dequantized first high frequency coefficient and a dequantized first low frequency coefficient; dequantizing the second high frequency coefficients and the second low frequency coefficients using a preset third quantization step size to obtain dequantized second high frequency coefficients and dequantized second low frequency coefficients; determining the first dequantized high frequency coefficient and the second dequantized high frequency coefficient as the target high frequency coefficient; determining the first dequantized low frequency coefficient and the second dequantized low frequency coefficient as the target low frequency coefficient.
[0216] In the embodiment of the present application, after obtaining the point cloud to be coded, the point cloud to be coded is divided into at least one coding point cloud block, the coding points in each coding point cloud block are grouped into a point cloud group, and the coding point cloud block is divided into N coding point cloud groups. In the process of transform coding, the first residual information corresponding to the first target coding point cloud group is transformed and quantized to obtain a quantized first transform coefficient, where there is a correlation between the residual information of each coding point in the first target coding point cloud group. Furthermore, the quantized first transform coefficient and the second residual information corresponding to the second target coding point cloud group are entropy coded to generate a target bit stream. The above coding process fully considers the correlation between the residual information corresponding to each coding point, and transform codes the first residual information corresponding to the first target coding point cloud group, thereby reducing redundant information in the transform coefficients and the residual information, and improving the coding efficiency of the attribute of the point cloud.
[0217] The encoder and decoder in the embodiments of the present application may be a device, a device with an operating system, or an electronic device, or may be a component, integrated circuit, or chip in a terminal. The device or electronic device may be a portable terminal or a non-portable terminal. By way of example, the portable terminal may include, but is not limited to, the types of terminals 11 listed above, and the non-portable terminal may be a server, a network attached storage (NAS), a personal computer (PC), a television (TV), an automated teller machine or a kiosk, etc., and are not specifically limited in the embodiments of the present application.
[0218] The encoder provided in the embodiment of the present application can implement each process implemented in the method embodiment of Fig. 4 and achieve the same technical effect, and detailed description will be omitted here to avoid duplication.
[0219] The decoder provided in the embodiment of the present application can implement each process implemented in the method embodiment of Figure 5, and achieve the same technical effect, and in order to avoid repetition, detailed description will be omitted here.
[0220] Optionally, as shown in Fig. 8, an embodiment of the present application further provides a communication device 500, which includes a processor 501, a memory 502, and a program or command stored in the memory 502 and executable by the processor 501. For example, when the communication device 500 is a terminal, when the program or command is executed by the processor 501, each process of the embodiment of the above-mentioned point cloud attribute encoding method can be realized and the same technical effect can be achieved, or each process of the embodiment of the above-mentioned point cloud attribute decoding method can be realized and the same technical effect can be achieved.
[0221] An embodiment of the present application further provides a terminal, the terminal including a processor and a communication interface, the processor comprising: Obtaining a group of points to be encoded; An operation of dividing the point group to be encoded into at least one encoding point group block based on the number of encoding points included in the point group to be encoded, volume information of a bounding box corresponding to the point group to be encoded, and an order of each encoding point; For each coding point cloud block including at least two coding points, dividing the coding point cloud block into N coding point cloud groups based on the number of coding points included in the coding point cloud block and a preset maximum transformation order; performing a transform coding and quantization process on first residual information corresponding to a first target coding point cloud group to obtain a quantized first transform coefficient; and entropy coding the first quantized transform coefficients and second residual information corresponding to a second target coding point cloud group to generate a target bitstream.
[0222] Alternatively, the processor may: An operation of decoding a bit stream to be decoded and obtaining a point group to be decoded; An operation of dividing the point cloud to be decoded into at least one decoded point cloud block based on the number of decoded points included in the point cloud to be decoded, volume information of a bounding box corresponding to the point cloud to be decoded, and an order of each decoded point; For each decoded point cloud block including at least two decoded points, dividing the decoded point cloud block into M decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a preset maximum transform order; performing an inverse quantization process on the second transform coefficients corresponding to the third target decoding point group group to obtain target high frequency coefficients and target low frequency coefficients; and performing an inverse transform process on the target high-frequency coefficients and the target low-frequency coefficients to obtain residual information corresponding to the third target decoding point cloud group.
[0223] The embodiment of the terminal corresponds to the above-mentioned method embodiment of the terminal side, and each implementation process and realization manner of the above-mentioned method embodiment can be applied to the embodiment of the terminal, and the same technical effects can be achieved. Specifically, Figure 9 is a schematic diagram of the hardware structure of a terminal implementing the embodiment of the present application.
[0224] The terminal 1000 includes components such as, but not limited to, a radio frequency unit 1001, a network module 1002, an audio output unit 1003, an input unit 1004, a sensor 1005, a display unit 1006, a user input unit 1007, an interface unit 1008, a memory 1009 and a processor 1010.
[0225] Those skilled in the art can understand that the terminal 1000 may further include a power source (e.g., a battery) for powering each component, and the power source may be logically connected to the processor 1010 through a power management system, thus realizing functions such as charge / discharge management and power consumption management through the power management system. The structure of the terminal shown in FIG. 9 is not intended to limit the terminal, and the terminal may include more or fewer components than those shown, or a combination of some components, or a different component arrangement, and detailed description thereof will be omitted here.
[0226] It should be understood that in the embodiment of the present application, the input unit 1004 may include a graphics processing unit (GPU) 10041 for processing image data of static or video captured by an image capture device (e.g., a camera) in a video capture mode or an image capture mode, and a microphone 10042. The display unit 1006 may include a display panel 10061, which may be arranged in the form of a liquid crystal display, an organic light emitting diode, etc. The user input unit 1007 includes a touch panel 10071 and other input devices 10072. The touch panel 10071 is also called a touch screen. The touch panel 10071 may include two parts: a touch detection device and a touch controller. The other input devices 10072 may include, but are not limited to, a physical keyboard, a function button (e.g., a volume control button, a switch button, etc.), a trackball, a mouse, and a control lever, and detailed description thereof is omitted here.
[0227] In the embodiment of the present application, the high frequency unit 1001 receives downlink data from the network side device, processes the data in the processor 1010, and transmits uplink data to the network side device. Typically, the high frequency unit 1001 includes, but is not limited to, an antenna, at least one amplifier, a receiver-transmitter, a coupler, a low-noise amplifier, a duplexer, etc.
[0228] The memory 1009 can be used to store software programs or commands and various data. The memory 1009 may mainly include an area for storing programs or commands and a data storage area, which can store an operating system, applications or commands required for at least one function (e.g., audio playback function, image playback function, etc.). The memory 1009 may also include a high-speed random access memory or a non-volatile memory, among which the non-volatile memory may be a read-only memory (Read-Only Memory, ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically erasable programmable read-only memory (Electrically EPROM, EEPROM), or a flash memory. For example, at least one magnetic disk storage device, a flash memory device, or other non-volatile solid-state storage device may be included.
[0229] The processor 1010 may include one or more processing units, and may optionally integrate an application processor that mainly processes an operating system, a user interface, and applications or commands, etc., and a modem processor that mainly processes wireless communications, such as a baseband processor, in the processor 1010. It is understandable that the modem processor may not be integrated into the processor 1010.
[0230] Here, the processor: Obtaining a group of points to be encoded; An operation of dividing the point group to be encoded into at least one encoding point group block based on the number of encoding points included in the point group to be encoded, volume information of a bounding box corresponding to the point group to be encoded, and an order of each encoding point; For each coding point cloud block including at least two coding points, dividing the coding point cloud block into N coding point cloud groups based on the number of coding points included in the coding point cloud block and a preset maximum transformation order; performing a transform coding and quantization process on first residual information corresponding to a first target coding point cloud group to obtain a quantized first transform coefficient; and entropy coding the first quantized transform coefficients and second residual information corresponding to a second target coding point cloud group to generate a target bitstream.
[0231] Alternatively, the processor may: An operation of decoding a bit stream to be decoded and obtaining a point group to be decoded; An operation of dividing the point cloud to be decoded into at least one decoded point cloud block based on the number of decoded points included in the point cloud to be decoded, volume information of a bounding box corresponding to the point cloud to be decoded, and an order of each decoded point; For each decoded point cloud block including at least two decoded points, dividing the decoded point cloud block into M decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a preset maximum transform order; performing an inverse quantization process on the second transform coefficients corresponding to the third target decoding point group group to obtain target high frequency coefficients and target low frequency coefficients; and performing an inverse transform process on the target high-frequency coefficients and the target low-frequency coefficients to obtain residual information corresponding to the third target decoding point cloud group.
[0232] An embodiment of the present application further provides a readable storage medium, which may be non-volatile or volatile, and stores a program or command in the readable storage medium. When the program or command is executed by a processor, each process of the embodiment of the point cloud attribute encoding method is realized, or each process of the embodiment of the point cloud attribute decoding method is realized, and similar technical effects can be achieved. In order to avoid duplication, detailed description is omitted here.
[0233] An embodiment of the present application further provides a computer program product, which is stored in a non-transitory recording medium and executed by at least one processor to realize each process of the embodiment of the above-mentioned point cloud attribute encoding method, or each process of the embodiment of the above-mentioned point cloud attribute decoding method, and can achieve similar technical effects, and detailed descriptions thereof will be omitted here to avoid duplication.
[0234] Here, the processor is the processor in the terminal described in the above embodiment. The readable storage medium includes a computer readable storage medium such as a computer read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0235] An embodiment of the present application further provides a chip, the chip comprising a processor and a communication interface, the communication interface and the processor are coupled to each other, and the processor executes a program or command to realize each process of the embodiment of the point cloud attribute encoding method or each process of the embodiment of the point cloud attribute decoding method, and similar technical effects can be achieved, and detailed description is omitted here to avoid duplication.
[0236] It should be understood that the chip described in the embodiments of the present application may be referred to as a system level chip, a system chip, a chip system, a system on a chip, or the like.
[0237] It should be noted that in this specification, the terms "comprise", "consist of" or any other variants are intended to include a non-exclusive inclusion, whereby a process, method, article or apparatus that includes a set of elements includes not only those elements, but also other elements not expressly stated or inherent to such process, method, article or apparatus. Unless otherwise specified, an element limited by the phrase "comprises a" does not exclude the presence of other identical elements in the process, method, article or apparatus that includes the element. It should also be noted that the scope of the method and apparatus in the embodiments of this application is not limited to performing functions in the order shown or discussed, but may include performing functions substantially simultaneously or in the reverse order depending on such functions, for example, the described method may be performed in a different order than described, and various steps may be added, omitted or combined. Also, features described with reference to any example may be combined in other examples.
[0238] From the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be realized in the form of a combination of software and a necessary common hardware platform, and of course, they can also be realized by hardware, but in many cases the former is a more preferred embodiment. Based on this view, the technical solution of the present application can be substantially or the part that contributes to the prior art can be embodied in the form of a computer software product, which is stored in a storage medium (e.g., ROM / RAM, magnetic disk, optical disk) and includes a number of commands that cause a terminal (which may be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) to execute the methods described in the embodiments of the present application.
[0239] Although the examples of the present application have been described above with reference to the drawings, the present application is not limited to the above-mentioned specific embodiments, which are merely illustrative and not limiting. Based on the suggestions of the present application, many forms that a person skilled in the art can make without departing from the spirit of the present application and the scope of protection of the claims are all within the scope of protection of the present application.
Claims
1. obtaining a point cloud to be encoded, in which encoding points in the point cloud to be encoded are sorted in a preset encoding order; Dividing the point cloud to be encoded into at least one encoding point cloud block based on the number of encoding points included in the point cloud to be encoded, volume information of a bounding box corresponding to the point cloud to be encoded, and an order of each encoding point; For each coding point cloud block including at least two coding points, dividing the coding point cloud block into N coding point cloud groups based on the number of coding points included in the coding point cloud block and a preset maximum transformation order, where N is a positive integer; performing transform coding and quantization processing on first residual information corresponding to a first target coding point cloud group to obtain a first quantized transform coefficient, the first target coding point cloud group being at least a part of the N coding point cloud groups and being a coding point cloud group to be transformed; a step of entropy coding the quantized first transform coefficients and second residual information corresponding to a second target coding point cloud group to generate a target bitstream, wherein the second target coding point cloud group is an encoding point cloud group other than the first target coding point cloud group among the N encoding point cloud groups.
2. The coding points in the point group to be coded are sorted in ascending order based on a sort code, the sort code including any one of a Hilbert code and a Morton code; The step of dividing the point group to be encoded into at least one encoding point group block based on the number of encoding points included in the point group to be encoded, volume information of a bounding box corresponding to the point group to be encoded, and an order of each encoding point includes: A step of shifting a sort code corresponding to each encoding point using a first target shift value to obtain a first target sort code corresponding to each encoding point, the target shift value being determined based on the number of encoding points included in the point group to be encoded and volume information of the bounding box; and dividing the coded points having the same first target sort code into the same coded point cloud block.
3. The step of dividing the encoded point cloud block into N encoded point cloud groups based on the number of encoded points included in the encoded point cloud block and a preset maximum transformation order includes: determining the encoded point cloud block as one encoded point cloud group when the number of encoded points included in the encoded point cloud block is equal to or less than the preset maximum transformation order; 2. The method of claim 1, further comprising: if the number of coding points included in the coding point cloud block is greater than the preset maximum transform order, dividing the coding point cloud block into at least two coding point cloud groups based on the number of coding points included in the coding point cloud block and a first preset value.
4. before the step of performing transform coding and quantization processing on first residual information corresponding to a first target coding point cloud group to obtain a quantized first transform coefficient, obtaining a first transformation identifier for the point cloud to be encoded; determining all the coding point cloud groups as the first target coding point cloud group if the first transform identifier is for representing a transform coding for all the coding point cloud groups; and determining at least one of the N coding point cloud groups as the first target coding point cloud group if the first transform identifier is to represent adaptive transform coding for all coding point cloud groups.
5. The step of performing transform coding and quantization processing on the first residual information corresponding to the first target coding point cloud group to obtain a quantized first transform coefficient includes: calculating a product of a transformation matrix and the first residual information and determining the product as a first transformation coefficient to be quantized, the order of the transformation matrix being determined based on the number of coding points included in the first target coding point cloud group; quantizing the first transform coefficients to be quantized to obtain the quantized first transform coefficients.
6. decoding a bitstream to be decoded to obtain a group of points to be decoded, where the decoding points in the group of points to be decoded are sorted in a preset decoding order; Dividing the point cloud to be decoded into at least one decoded point cloud block based on the number of decoded points included in the point cloud to be decoded, volume information of a bounding box corresponding to the point cloud to be decoded, and an order of each decoded point; For each decoded point cloud block including at least two decoded points, dividing the decoded point cloud block into M decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a preset maximum transform order, where M is a positive integer; performing an inverse quantization process on second transform coefficients corresponding to a third target decoding point cloud group to obtain target high-frequency coefficients and target low-frequency coefficients, the third target decoding point cloud group being at least a part of the M decoding point cloud groups and being a decoding point cloud group to be subjected to the inverse quantization process; performing an inverse transform process on the target high frequency coefficients and the target low frequency coefficients to obtain third residual information corresponding to the third target decoded point cloud group.
7. The decoded points in the point cloud to be decoded are sorted in ascending order based on a sort code, the sort code including one of a Hilbert code and a Morton code; The step of dividing the point cloud to be decoded into at least one decoded point cloud block based on the number of decoded points included in the point cloud to be decoded, volume information of a bounding box corresponding to the point cloud to be decoded, and an order of each decoded point, A step of shifting a sort code corresponding to each decoded point using a second target shift value to obtain a second target sort code corresponding to each decoded point, the second target shift value being determined based on the number of decoded points included in the point group to be decoded and volume information of the bounding box; and dividing the decoded points having the same second target sort code into the same decoded point cloud block.
8. prior to the step of shifting the sort code corresponding to each decoded point using a second target shift value to obtain a second target sort code corresponding to each decoded point; determining the second target shift value based on a first shift parameter and a second shift parameter, the first shift parameter being determined based on volume information of the bounding box, and the second shift parameter being determined based on the number of decoding points included in the point cloud to be decoded; or determining the second target shift value based on a geometric quantization step size corresponding to the point cloud to be decoded; or determining a preset shift value as the second target shift value; or 8. The method of claim 7, further comprising the step of: obtaining the second target shift value from the bitstream to be decoded.
9. The step of dividing the decoded point cloud block into M decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a preset maximum transformation order includes: determining the decoded point cloud block as one decoded point cloud group when the number of decoded points included in the decoded point cloud block is equal to or less than the preset maximum transformation order; 7. The method of claim 6, further comprising: if a number of decoded points included in the decoded point cloud block is greater than the preset maximum transform order, dividing the decoded point cloud block into at least two decoded point cloud groups based on a number of decoded points included in the decoded point cloud block and a first preset value.
10. The step of dividing the decoded point cloud block into at least two decoded point cloud groups based on the number of decoded points included in the decoded point cloud block and a first preset value includes: performing a grouping calculation operation on the first value according to the first preset value to obtain a second value when the first value is greater than a preset maximum transform order, the first value indicating the number of decoded points not grouped into point clouds in the decoded point cloud block, and the second value being less than or equal to the preset maximum transform order; 10. The method of claim 9, further comprising: dividing at least a portion of decoded points that have not been grouped into a point cloud group into one decoded point cloud group according to a preset decoding order of decoded points in the decoded point cloud block until point cloud grouping of all decoded points in all decoded point cloud blocks is completed, wherein a number of the at least a portion of decoded points is equal to the second value.
11. The step of performing a grouping calculation operation on the first value according to the first preset value to obtain a second value includes: When the first value is greater than a preset maximum conversion order, rounding a result of dividing the first value by a first preset value to obtain a target value; 11. The method of claim 10, further comprising: updating the first value to the target value until the target value is less than or equal to a preset maximum transform order; and determining the target value as the second value.
12. before the step of performing an inverse quantization process on the second transform coefficients corresponding to the third target decoding point group group to obtain the target high frequency coefficients and the target low frequency coefficients; obtaining a second transformation identifier for the point cloud to be decoded; determining the all decoded point cloud group as the third target decoded point cloud group if the second transformation identifier is to represent an inverse transformation for the all decoded point cloud group; and determining at least one of the M decoded point cloud groups as the third target decoded point cloud group if the second transform identifier is to represent an adaptive inverse transform for all decoded point cloud groups.
13. The M decoded point cloud groups are sorted in a preset order in a decoded point cloud block, the M decoded point cloud groups include one first point cloud group, the first point cloud group being a decoded point cloud group sorted to the top of the M decoded point cloud groups; The step of determining at least one of the M decoded point cloud groups as the third target decoded point cloud group comprises: obtaining a third transformation identifier corresponding to the first point cloud group; and determining the first point cloud group as the third target decoding point cloud group if the third transform identifier is to represent an inverse transform for the first point cloud group.
14. The M decoded point cloud groups are sorted in a preset order in a decoded point cloud block, and the M decoded point cloud groups include M-1 second point cloud groups, and the second point cloud group is a decoded point cloud group other than the decoded point cloud group sorted to the top among the M decoded point cloud groups; The step of determining at least one of the M decoded point cloud groups as the third target decoded point cloud group comprises: determining a first reconstruction value and a second reconstruction value corresponding to an arbitrary second point cloud group, the first reconstruction value being a maximum value in reconstruction information corresponding to an adjacent point cloud group, the second reconstruction value being a minimum value in reconstruction information corresponding to an adjacent point cloud group, the adjacent point cloud group being a decoded point cloud group adjacent to and located before the second point cloud group in the decoded point cloud block; calculating an absolute value of the difference between the first reconstruction value and the second reconstruction value; 13. The method of claim 12, further comprising: if the absolute value is less than a second preset value, determining the second group of points as a third target decoding group of points.
15. the second transform coefficients include a first component and a second component, the first component includes a first high frequency coefficient and a first low frequency coefficient, and the second component includes a second high frequency coefficient and a second low frequency coefficient; The step of performing an inverse quantization process on the second transform coefficients corresponding to the third target decoding point group group to obtain target high frequency coefficients and target low frequency coefficients includes: dequantizing the first high frequency coefficient and the first low frequency coefficient using a preset first quantization step size and a preset second quantization step size, respectively, to obtain a dequantized first high frequency coefficient and a dequantized first low frequency coefficient; dequantizing the second high frequency coefficients and the second low frequency coefficients using a preset third quantization step size to obtain dequantized second high frequency coefficients and dequantized second low frequency coefficients; determining the first dequantized high frequency coefficient and the second dequantized high frequency coefficient as the target high frequency coefficient; determining the first dequantized low frequency coefficient and the second dequantized low frequency coefficient as the target low frequency coefficient.
16. A terminal comprising a processor, a memory, and a program or command stored in the memory and executable on the processor, wherein, when the program or command is executed by the processor, steps of a point cloud attribute encoding method described in any one of claims 1 to 5 are realized, or steps of a point cloud attribute decoding method described in any one of claims 6 to 15 are realized.
17. A chip comprising a processor and a communications interface, the communications interface and the processor being coupled to each other, the processor executing a program or command to implement steps of a point cloud attribute encoding method described in any one of claims 1 to 5, or to implement steps of a point cloud attribute decoding method described in any one of claims 6 to 15.
Citation Information
Patent Citations
Point cloud decoding device, point cloud decoding method, and program
JP2021162923A
Method and apparatus for HAAR-based point cloud coding
JP2023521675A
Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20210211721A1
Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2020138463A1
Transform method, inverse transform method, encoder, decoder and storage medium
WO2021062732A1