Point cloud attribute encoding method, point cloud attribute decoding method and terminal
By dividing and grouping point clouds, combining transform coding and entropy coding technologies, the problem of unusing residual information correlation in the prior art is solved, and the efficiency of point cloud attribute coding and decoding is improved.
Patent Information
- Application Number
- CN202110970524.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-23
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2041-08-23
AI Technical Summary
The prior art does not consider the correlation between the residual information corresponding to each coding point during point cloud attribute encoding and decoding, resulting in low encoding efficiency.
By dividing the point cloud to be encoded into coded point cloud blocks and grouping each block with point clouds, N coded point cloud packets are formed. Then, the residual information of the first target coded point cloud packet is transformed and entropy-encoded, and the residual information of the second target coded point cloud packet is entropy-encoded to generate the target code stream.
Make full use of the residual information correlation of each coded point, reduce the redundancy in the transformation coefficient and residual information, and improve the efficiency of point cloud attribute coding and decoding.
Smart Images

Figure CN115714859B_ABST
Abstract
Description
Technical Field
[0001] The present application belongs to the field of point cloud processing technology, and specifically relates to a point cloud attribute encoding method, a point cloud attribute decoding method and a terminal. Background Art
[0002] A point cloud is a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or scene.
[0003] The attribute coding of point cloud is divided into attribute prediction coding and attribute transformation coding. In the attribute prediction coding process, after obtaining the residual information corresponding to each coding point, the residual information is quantized and entropy encoded to obtain a binary code stream; in the attribute transformation coding process, after obtaining the residual information corresponding to each coding point, the residual information is transformed using a matrix of fixed order to obtain the transformation coefficient.
[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 taken into account, resulting in redundant information in the residual information and the transformation coefficients, which reduces the attribute coding efficiency of the point cloud. In addition, the attribute decoding process of the point cloud is consistent with the attribute encoding process of the point cloud, which also reduces the attribute decoding efficiency of the point cloud. Summary of 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, which can solve the problem that the correlation between the residual information corresponding to each encoding point is not considered during the attribute encoding and attribute decoding process, thereby reducing the attribute encoding and decoding efficiency of the point cloud.
[0006] In a first aspect, a point cloud attribute encoding method is provided, the method comprising:
[0007] Obtaining a point cloud to be encoded; sorting the encoding points in the point cloud to be encoded according to a preset encoding order;
[0008] Based on the number of coded points contained in the to-be-coded point cloud, the volume information of the bounding box corresponding to the to-be-coded point cloud, and the order of each coded point, the to-be-coded point cloud is divided into at least one coded point cloud block;
[0009] For each coded point cloud block including at least two coded points, based on the number of coded points included in the coded point cloud block and a preset maximum transformation order, the coded point cloud block is divided into N coded point cloud groups, where N is a positive integer;
[0010] Performing transform coding and quantization processing on first residual information corresponding to a first target coded point cloud group to obtain a quantized first transform coefficient; the first target coded point cloud group is at least part of the N coded point cloud groups, and the first target coded point cloud group is a coded point cloud group for transform coding;
[0011] The quantized first transform coefficient and the second residual information corresponding to the second target coding point cloud group are entropy encoded to generate a target code stream; the second target coding point cloud group is a coding point cloud group among the N coding point cloud groups except the first target coding point cloud group.
[0012] In a second aspect, a point cloud attribute decoding method is provided, the method comprising:
[0013] Decoding the code stream to be decoded to obtain a point cloud to be decoded, wherein the decoding points in the point cloud to be decoded are sorted according to a preset encoding order;
[0014] Based on the number of decoding points contained 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 decoding point, the point cloud to be decoded is divided into at least one decoding point cloud block;
[0015] For each decoding point cloud block including at least two decoding points, based on the number of decoding points included in the decoding point cloud block and the preset maximum transformation order, the decoding point cloud block is divided into M decoding point cloud groups, where M is a positive integer;
[0016] Performing inverse quantization processing on the second transform coefficient corresponding to the third target decoded point cloud group to obtain a target high-frequency coefficient and a target low-frequency coefficient; the third target decoded point cloud group is at least part of the M decoded point cloud groups, and the third target decoded point cloud group is a decoded point cloud group that undergoes inverse quantization processing;
[0017] The target high-frequency coefficients and the target low-frequency coefficients are inversely transformed to obtain third residual information corresponding to the third target decoded point cloud group.
[0018] In a third aspect, an encoder is provided, comprising:
[0019] The first acquisition module is used to acquire a point cloud to be encoded; the encoding points in the point cloud to be encoded are sorted according to a preset encoding order;
[0020] A first division module, configured to divide the point cloud to be encoded into at least one encoded point cloud block based on the number of encoded points contained in the point cloud to be encoded, the volume information of the bounding box corresponding to the point cloud to be encoded, and the order of each encoded point;
[0021] A second division module is used to divide each coded point cloud block including at least two coded points into N coded point cloud groups based on the number of coded points included in the coded point cloud block and a preset maximum transformation order, where N is a positive integer;
[0022] A first encoding module is used to perform transform coding and quantization processing on first residual information corresponding to a first target coded point cloud group to obtain a quantized first transform coefficient; the first target coded point cloud group is at least part of the N coded point cloud groups, and the first target coded point cloud group is a coded point cloud group for transform coding;
[0023] The second encoding module is used to perform entropy encoding on the second residual information corresponding to the quantized first transform coefficient and the second target coding point cloud group to generate a target code stream; the second target coding point cloud group is a coding point cloud group among the N coding point cloud groups except the first target coding point cloud group.
[0024] In a fourth aspect, a decoder is provided, comprising:
[0025] A decoding module, used for decoding the code stream to be decoded to obtain a point cloud to be decoded, wherein the decoding points in the point cloud to be decoded are sorted according to a preset coding order;
[0026] A third division module, used to divide the point cloud to be decoded into at least one decoding point cloud block based on the number of decoding points contained 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 decoding point;
[0027] a fourth division module, configured to divide each decoding point cloud block including at least two decoding points into M decoding point cloud groups based on the number of decoding points included in the decoding point cloud block and a preset maximum transformation order, where M is a positive integer;
[0028] an inverse quantization module, configured to perform inverse quantization processing on the second transform coefficient corresponding to the third target decoded point cloud group to obtain a target high-frequency coefficient and a target low-frequency coefficient; the target decoded point cloud group is at least part of the M decoded point cloud groups, and the third target decoded point cloud group is a decoded point cloud group subjected to inverse quantization processing;
[0029] The inverse transformation module is used to perform inverse transformation processing 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.
[0030] In a fifth aspect, a terminal is provided, comprising a processor, a memory, and a program or instruction stored in the memory and executable on the processor, wherein when the program or instruction is executed by the processor, the steps of the point cloud attribute encoding method as described in the first aspect are implemented, or the steps of the point cloud attribute decoding method as described in the second aspect are implemented.
[0031] In a sixth aspect, a readable storage medium is provided, on which a program or instruction is stored. When the program or instruction is executed by a processor, the steps of the point cloud attribute encoding method as described in the first aspect are implemented, or the steps of the point cloud attribute decoding method as described in the second aspect are implemented.
[0032] In the seventh aspect, a chip is provided, comprising a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run a program or instruction to implement the point cloud attribute encoding method as described in the first aspect, or to implement the steps of the point cloud attribute decoding method as described in the second aspect.
[0033] In an eighth aspect, a computer program / program product is provided, wherein the computer program / program product is stored in a non-volatile storage medium, and the program / program product is executed by at least one processor to implement the steps of the point cloud attribute encoding method as described in the first aspect, or to implement the steps of the point cloud attribute decoding method as described in the second aspect.
[0034] In an embodiment of the present application, after obtaining the point cloud to be encoded, the point cloud to be encoded is divided into at least one encoding point cloud block, and the encoding points in each encoding point cloud block are grouped into point clouds, and the encoding point cloud block is divided into N encoding point cloud groups. In the transform coding process, the correlation between the residual information corresponding to each encoding point is fully considered, and the first residual information corresponding to the first target encoding point cloud group is transform coded and quantized to obtain a quantized first transform coefficient, wherein there is a correlation between the residual information of each encoding point in the first target encoding point cloud group. Further, the quantized first transform coefficient and the second residual information corresponding to the second target encoding point cloud group are entropy coded to generate a target code stream. The above encoding process fully considers the correlation between the residual information corresponding to each encoding point, and by transform coding the first residual information corresponding to the first target encoding point cloud group, the redundant information in the transform coefficient is reduced, thereby improving the attribute coding efficiency of the point cloud. BRIEF DESCRIPTION OF THE DRAWINGS
[0035] Figure 1 This is a schematic diagram of the point cloud AVS encoder framework;
[0036] Figure 2 This is a schematic diagram of the point cloud AVS decoder framework;
[0037] Figure 3 It is a flowchart of the existing point cloud attribute encoding;
[0038] Figure 4 is a flow chart of a point cloud attribute encoding method provided in an embodiment of the present application;
[0039] Figure 5 is a flow chart of a point cloud attribute decoding method provided in an embodiment of the present application;
[0040] Figure 6 is a structural diagram of an encoder provided in an embodiment of the present application;
[0041] Figure 7 is a structural diagram of a decoder provided in an embodiment of the present application;
[0042] Figure 8 is a structural diagram of a communication device provided in an embodiment of the present application;
[0043] Fig. 9 It is a schematic diagram of the hardware structure of the terminal provided in the embodiment of the present application. DETAILED DESCRIPTION
[0044] The following will be combined with the drawings in the embodiments of the present application to clearly describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field belong to the scope of protection of this application.
[0045] The terms "first", "second", etc. in the specification and claims of the present application are used to distinguish similar objects, and are not used to describe a specific order or sequence. It should be understood that the terms used in this way are interchangeable under appropriate circumstances, so that the embodiments of the present application can be implemented in an order other than those illustrated or described here, and the objects distinguished by "first" and "second" are generally of the same type, and the number of objects is not limited. For example, the first object can be one or more. In addition, "and / or" in the specification and claims represents at least one of the connected objects, and the character " / " generally represents that the objects associated with each other are in an "or" relationship.
[0046] The encoder corresponding to the point cloud attribute encoding method and the decoder corresponding to the point cloud attribute decoding method in the embodiment of the present application can both be terminals, which can also be called terminal equipment or user equipment (UE). The terminal can be a mobile phone, a tablet computer (Tablet Personal Computer), a laptop computer (Laptop Computer) or a notebook computer, a personal digital assistant (Personal Digital Assistant, PDA), a handheld computer, a netbook, an ultra-mobile personal computer (ultra-mobile personal computer, UMPC), a mobile Internet device (Mobile Internet Device, MID), augmented reality (augmented reality, AR) / virtual reality (virtual reality, VR) equipment, a robot, a wearable device (Wearable Device) or a vehicle-mounted equipment (VUE), a pedestrian terminal (PUE) and other terminal-side devices, and the wearable device includes: smart watches, bracelets, headphones, glasses, etc. It should be noted that the specific type of the terminal is not limited in the embodiment of the present application.
[0047] For ease of understanding, some contents involved in the embodiments of the present application are described below:
[0048] See also Figure 1 ,like Figure 1 As shown, currently, in the digital audio and video coding technology standard, the geometric information and attribute information of the point cloud are encoded separately using the point cloud AVS encoder. First, the geometric information is converted into coordinates so that all the point clouds are contained in a bounding box, and then the coordinates are quantized. Quantization mainly plays a role in scaling. Since quantization will round the geometric coordinates, the geometric information of some points will be the same, which is called duplicate points. Whether to remove duplicate points is determined based on parameters. The two steps of quantization and removal of duplicate points are also called voxelization. Next, the bounding box is divided into a multi-tree, such as an octree, a quadtree, or a binary tree. In the multi-tree-based geometric information coding framework, the bounding box is divided into 8 sub-cubes in eight equal parts, and the non-empty sub-cubes are continued to be divided until the division is stopped when the leaf node is a unit cube of 1x1x1, and the number of points in the leaf node is encoded to generate a binary code stream.
[0049] In the multi-tree-based geometric coding of point clouds, the points to be coded need to store the placeholder information of neighboring nodes to perform predictive coding for the placeholder information of the points to be coded. In this way, for the points to be coded close to the leaf nodes, a large amount of placeholder information needs to be stored, which takes up a lot of memory space.
[0050] After the geometric encoding is completed, the geometric information is reconstructed for the subsequent recoloring. Attribute encoding is mainly for color and reflectance information. First, it is determined whether to perform color space conversion based on the parameters. If color space conversion is performed, the color information is converted from the red green blue (RGB) color space to the brightness color (YUV) color space. Then, the original point cloud is used to recolor the geometrically reconstructed point cloud so that the unencoded attribute information corresponds to the reconstructed geometric information. In color information encoding, after sorting the point cloud by Morton code or Hilbert code, the nearest neighbor of the point to be predicted is searched by geometric spatial relationship, and the reconstructed attribute value of the neighbor is used to predict the point to be predicted to obtain the predicted attribute value, and then the real attribute value and the predicted attribute value are differentiated to obtain the prediction residual, and finally the prediction residual is quantized and encoded to generate a binary code stream.
[0051] It should be understood that the decoding process in the digital audio and video coding and decoding technical standard corresponds to the above encoding process. Specifically, the AVS decoder framework is as follows: Figure 2 shown.
[0052] See also Figure 3 , Figure 3 This is the flow chart of the existing point cloud attribute encoding. The existing method of encoding the attributes of point clouds is:
[0053] First, the prediction residual is obtained by subtracting the prediction signal from the original signal. The prediction residual is also called residual information. The residual information is subjected to a discrete cosine transform (DCT) to obtain a primary transform coefficient, which can be represented by a primary transform coefficient block; the low-frequency component of the preset area of the primary transform coefficient block is subjected to a secondary transform to obtain a secondary transform coefficient with more concentrated energy, where Figure 3 As shown, the preset area is located at the upper left corner of the primary transform coefficient block. The secondary transform coefficient can be represented by a secondary transform coefficient block; the low-frequency component of the preset area of the secondary transform coefficient block is quantized and entropy encoded to obtain a binary code stream.
[0054] In addition, the quantized secondary transform coefficients can be subjected to an inverse secondary transform to obtain primary transform coefficients, and the primary transform coefficients can be subjected to an inverse primary transform to obtain residual information. Further, the residual information and the predicted attribute value can be added to obtain reconstruction information, and the reconstruction information can be subjected to loop filtering to obtain an attribute reconstruction value.
[0055] In some specific coding scenarios, the above secondary transformation and inverse secondary transformation will not be performed.
[0056] At present, the general point cloud technology standard has the following technical problems:
[0057] In the attribute encoding process of point clouds, the correlation between the residual information corresponding to each encoding point is not fully considered, resulting in some redundant information still existing in the transformation coefficients, resulting in low attribute encoding efficiency of point clouds.
[0058] Based on the above situation, how to make full use of the correlation between the residual information corresponding to each encoding point in the process of point cloud attribute encoding and attribute decoding to perform attribute encoding and attribute decoding to improve the efficiency of point cloud attribute encoding and point cloud attribute decoding is a technical problem to be solved.
[0059] The point cloud attribute encoding method provided by the embodiment of the present application is described in detail below through some embodiments and their application scenarios in combination with the accompanying drawings.
[0060] See also Figure 4 , Figure 4 is a flow chart of the point cloud attribute encoding method provided by the present application. The point cloud attribute encoding method provided by this embodiment comprises the following steps:
[0061] S101, obtaining a point cloud to be encoded.
[0062] The point cloud to be encoded in this step is a point cloud that has undergone recoloring and color space conversion. The above-mentioned recoloring refers to recoloring the geometrically reconstructed point cloud using the original point cloud, so that the unencoded attribute information corresponds to the reconstructed geometric information, and the recolored point cloud is obtained; the above-mentioned color space conversion refers to converting the color information of the point cloud from RGB space to YUV space.
[0063] The point cloud to be encoded can be understood as a point cloud sequence, and each encoding point in the point cloud to be encoded can be understood as each element in the point cloud sequence. The points to be encoded in the point cloud sequence are sorted according to a preset encoding order. An optional implementation method is to perform Hilbert sorting on the points to be encoded in the point cloud sequence, and sort each point to be encoded from large to small according to the Hilbert code, or to perform Morton sorting on the points to be encoded in the point cloud sequence, and sort them from large to small according to the Morton code.
[0064] S102: Divide the point cloud to be encoded into at least one encoded point cloud block based on the number of encoded points contained in the point cloud to be encoded, the volume information of the bounding box corresponding to the point cloud to be encoded, and the order of each encoded point.
[0065] In this step, the point cloud to be encoded is divided to obtain encoded point cloud blocks. The division method of the point cloud to be encoded can be determined based on the number of encoded points contained in the point cloud to be encoded, the volume information of the bounding box corresponding to the point cloud to be decoded, and the order of each encoded point. For specific technical solutions, please refer to the subsequent embodiments.
[0066] An optional implementation is that the number of coded point cloud blocks is 1. In this case, it can be understood that the entire point cloud to be coded is regarded as one coded point cloud block.
[0067] It should be understood that the attribute information corresponding to the coding points belonging to the same coding point cloud block has spatial correlation, so that their corresponding attribute information also has stronger correlation, that is, these coding points are closer in geometric position and more similar in color attributes.
[0068] It should be understood that if the coded points in the point cloud sequence are sorted from large to small according to the Hilbert code, then after the coded point cloud is divided, the Hilbert codes corresponding to the coded points belonging to the same coded point cloud block are the same.
[0069] It should be understood that if the coded points in the point cloud to be coded are sorted from large to small according to the Morton codes, then after the point cloud to be coded is divided, the Morton codes corresponding to the coded points belonging to the same coded point cloud block are the same.
[0070] S103: For each coded point cloud block including at least two coded points, based on the number of coded points included in the coded point cloud block and a preset maximum transformation order, divide the coded point cloud block into N coded point cloud groups.
[0071] In this step, after the coded point cloud is divided into at least one coded point cloud block, for a coded point cloud block including at least two coded points, the coded point cloud block is grouped into N coded point cloud groups, where N is a positive integer. It should be understood that the number of coded points contained in the coded point cloud block and the preset maximum transformation order can be used to group the coded point cloud block into point clouds. For specific technical solutions, please refer to the subsequent embodiments.
[0072] One possible situation is that the number of coded point cloud groups is 1. In this case, it can be understood that the entire coded point cloud block is regarded as 1 coded point cloud group.
[0073] It should be understood that when the coded point cloud block is divided into N coded point cloud groups, for any coded point in the coded point cloud group, the nearest neighbor of the coded point can be searched using the geometric spatial relationship, and the reconstructed attribute value of the found neighbor is used to predict the coded point to obtain the predicted attribute value, and then the real attribute value and the predicted attribute value of the coded point are differentiated to obtain the predicted residual, which is also called residual information. In this way, the residual information corresponding to each coded point in each coded point cloud group is obtained.
[0074] S104, performing transform coding and quantization processing on the first residual information corresponding to the first target coded point cloud group to obtain a quantized first transform coefficient.
[0075] In this step, all the coded point cloud groups in the coded point cloud block can be determined as the first target coded point cloud group, or part of the coded point cloud groups in the coded point cloud block can be determined as the first target coded point cloud group. For the specific technical solution on how to determine the target coded point cloud group, please refer to the subsequent embodiments.
[0076] As described above, after grouping the coded point cloud blocks, the residual information corresponding to each coded point in each coded point cloud group is determined. In this step, the set of residual information corresponding to each coded point in the first target point cloud group can be determined as the residual information corresponding to the first target coded point cloud group.
[0077] For a specific technical solution 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 subsequent embodiments.
[0078] S105, performing entropy coding on the quantized first transform coefficients and the second residual information corresponding to the second target coding point cloud group to generate a target bitstream.
[0079] In this step, after obtaining the residual information corresponding to the first transform coefficient and the second target coding point cloud group, entropy coding is performed on the first transform coefficient and the second residual information to generate a target code stream.
[0080] It should be understood that the above-mentioned second coded point cloud group is a coded point cloud group other than the first target coded point cloud group among the N coded point cloud groups.
[0081] The entropy coding is a coding method that does not lose any information according to the entropy principle during the coding process. The entropy coding may be Shannon coding, Huffman coding or other types of coding, which are not specifically limited in this embodiment. The target bitstream is a binary bitstream.
[0082] It should be understood that, in some embodiments, the first transform coefficients may be subjected to inverse quantization and inverse transform operations to obtain attribute reconstruction values.
[0083] In an embodiment of the present application, after obtaining the point cloud to be encoded, the point cloud to be encoded is divided into at least one encoding point cloud block, and the encoding points in each encoding point cloud block are grouped into point clouds, and the encoding point cloud block is divided into N encoding point cloud groups. In the transform coding process, the correlation between the residual information corresponding to each encoding point is fully considered, and the first residual information corresponding to the first target encoding point cloud group is transform coded and quantized to obtain a quantized first transform coefficient, wherein there is a correlation between the residual information of each encoding point in the first target encoding point cloud group; further, the quantized first transform coefficient and the second residual information corresponding to the second target encoding point cloud group are entropy coded to generate a target code stream. The above encoding process fully considers the correlation between the residual information corresponding to each encoding point, and by transform coding the first residual information corresponding to the first target encoding point cloud group, the redundant information of the transform coefficient is reduced, thereby improving the attribute coding efficiency of the point cloud.
[0084] In order to facilitate understanding of the technical effects of the present application, the point cloud attribute encoding method provided in the embodiment of the present application is applied to the PCEM platform to detect the attribute encoding efficiency of the point cloud. For specific test results, please refer to Table 1:
[0085] Table 1:
[0086]
[0087]
[0088] Among them, BD-AttrRate in Table 1 represents the compression performance of the Y component in the transform coefficient, BD-GeomRate 1 represents the compression performance of the U component in the transform coefficient, and BD-GeomRate 2 represents the compression performance of the V component in the transform coefficient. The sequence in Table 1 is a code stream sequence after comparing the point cloud attribute coding method provided by the embodiment of the present application with the existing point cloud attribute coding method. It should be understood that when the above BD-AttrRate, BD-GeomRate 1 and BD-GeomRate 2 are negative, it means that the performance is improved. On this basis, the larger the absolute value of BD-rate, the greater the performance gain.
[0089] It can be seen from Table 1 that the point cloud attribute encoding method provided in the embodiment of the present application can improve the encoding performance of point cloud attribute encoding.
[0090] Optionally, the dividing the to-be-encoded point cloud into at least one coded point cloud block based on the number of coded points contained in the to-be-encoded point cloud and the order of each coded point comprises:
[0091] Using a first target shift value, shifting the sorting code corresponding to each coding point to obtain a first target sorting code corresponding to each coding point; the target shift value is determined based on the number of coding points included in the point cloud to be coded and the volume information of the bounding box;
[0092] The code points with the same first target sort code are grouped into the same code point cloud block.
[0093] In this embodiment, the geometric information of the point cloud to be encoded is transformed into coordinates so that the point cloud is completely contained in a bounding box. The bounding box can be understood as a hexahedron covering the point cloud to be encoded, and each edge of the hexahedron is located on the X axis, Y axis or Z axis in the above coordinate system. Based on the size of the bounding box, that is, the corresponding side lengths of the bounding box on the X axis, Y axis and Z axis of the coordinate system, the third shift parameter corresponding to the point cloud to be encoded is determined.
[0094] The number of coded points included in the to-be-coded point cloud is obtained, and based on the number of coded points included in the coded point cloud, a fourth shift parameter corresponding to the to-be-coded point cloud is determined.
[0095] In this embodiment, a shift calculation formula is also preset, and the third shift parameter and the fourth shift parameter are input into the shift calculation formula to obtain the first target shift value corresponding to the point cloud to be encoded. The side length corresponding to the bounding box can be input into the third shift parameter calculation formula to obtain the third shift parameter; the number of encoding points contained in the point cloud to be encoded can be input into the fourth shift parameter calculation formula to obtain the fourth shift parameter.
[0096] Specifically, the above-mentioned shift calculation formula is consistent with the shift calculation formula in the subsequent point cloud attribute decoding method, the above-mentioned third shift parameter calculation formula is consistent with the third shift parameter calculation formula in the subsequent point cloud attribute decoding method, and the above-mentioned fourth shift parameter calculation formula is consistent with the fourth shift parameter calculation formula in the subsequent point cloud attribute decoding method.
[0097] The following is an example of sorting the code points in the to-be-coded point cloud from small to large according to the Hilbert code.
[0098] As described above, the coding points in the point cloud to be coded are sorted from small to large according to the Hilbert code. After obtaining the first target shift value, the Hilbert code corresponding to each coding point is shifted to the right using the first target shift value to obtain a new Hilbert code corresponding to each coding point, and the above new Hilbert code is determined as the target Hilbert code, which can be understood as the target sorting code. It should be understood that the above first target shift value represents the number of bits moved by the coding point during the shift process, and the above first target shift value can also represent the density of the point cloud to be coded. The smaller the target shift value, the denser the coding points in the point cloud to be coded.
[0099] Furthermore, the coded point cloud is divided according to the target Hilbert code corresponding to each coding point, and the coding points with the same target Hilbert code are divided into the same coded point cloud block, that is, the target Hilbert code corresponding to each coding point in a coded point cloud block is the same.
[0100] In other embodiments, the first target shift value may be user-defined, or the first target shift value may be determined based on a geometric quantization step size of the encoded point cloud.
[0101] In this embodiment, the Hilbert code of each coding point in the coding point cloud is shifted, and the coding point cloud is divided into coding point cloud blocks according to the target Hilbert code corresponding to each shifted coding point. The target Hilbert codes of the coding points in the same coding point cloud block are the same, so it is considered that the attribute information of these points has a stronger correlation, so the coding points with spatially correlated attribute information are divided into the same coding point cloud block.
[0102] The following is a specific technical solution for grouping the coded point cloud block using the number of coded points contained in the coded point cloud block and the preset maximum transformation order:
[0103] In this embodiment, a maximum transformation order is preset, and the preset maximum transformation order is used to characterize the maximum order corresponding to the transformation matrix used in the transformation coding process. The number of coding points contained in the coding point cloud block is obtained. When the number of coding points is less than or equal to 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. The preset maximum transformation order can be written into the bitstream.
[0104] In the case where the number of coding points is greater than the preset maximum transformation order, the coding point cloud block is grouped based on the number of coding points and the first preset value, and the coding point cloud block is divided into at least two coding point cloud groups. Here, for the specific scheme of grouping the coding point cloud block based on the number of coding points contained in the coding point cloud block and the first preset value, please refer to the subsequent embodiments.
[0105] Optionally, dividing the coded point cloud block into at least two point cloud groups based on the number of coded points included in the coded point cloud block and a first preset value includes:
[0106] When the third value is greater than the preset maximum transformation order, performing a group calculation operation on the third value using the first preset value to obtain a fourth value;
[0107] According to the preset coding order of the coding points in the coding point cloud block, at least part of the coding points that have not been grouped into a coding point cloud group is divided into a coding point cloud group until all the coding points of all the coding point cloud blocks have completed the point cloud grouping.
[0108] The third value is used to represent the number of coded points of the coded point cloud block that have not been grouped. When the third value is greater than the preset maximum transformation order, the first preset value is used to perform a grouping calculation operation on the third value to obtain a fourth value, wherein the fourth value is less than the preset maximum transformation order. Here, how to use the first preset value to perform a grouping calculation operation on the third value to obtain a specific solution of the fourth value, please refer to the subsequent embodiments.
[0109] After obtaining the fourth value, at least part of the coded points that have not been grouped into a coded point cloud group is divided into a coded point cloud group according to the preset coding order of the coded points in the coded point cloud block. In other words, a part of the coded points that have not been grouped into a point cloud in the coded point cloud block is determined, and the part of the coded points is divided into a coded point cloud group, or all the coded points that have not been grouped into a point cloud in the coded point cloud block are determined, and the coded points are divided into a coded point cloud group. The number of the coded points divided into a coded point cloud group is equal to the second value.
[0110] After grouping some coding points into point clouds, update the third value. If the updated third value is still greater than the preset maximum transformation order, continue to group at least some of the coding points in the coding point cloud block until all the coding points in the coding point cloud block have completed point cloud grouping.
[0111] The following specifically describes how to use the first preset value to perform a group calculation operation on the third value to obtain a fourth value:
[0112] The process of the above group calculation operation is: divide the third value by the first preset value to obtain a division result; round the division result to obtain a target value. When the target value is greater than the preset maximum transformation order, the third value is updated to the target value, and the third value is continuously divided by the first preset value until the target value is less than or equal to the preset maximum transformation order, and the target value is determined as the fourth value.
[0113] It should be understood that the technical solution for grouping the encoded point cloud blocks in this embodiment is consistent with the subsequent technical solution for grouping the decoded point cloud blocks, and will not be repeated here.
[0114] Optionally, before transform coding and quantizing the first residual information corresponding to the first target coded point cloud group to obtain a quantized first transform coefficient, the method includes:
[0115] Obtaining a first transformation identifier in the point cloud to be encoded;
[0116] In a case where the first transformation identifier is used to represent transformation encoding of all coded point cloud groups, all coded point cloud groups are determined as the first target coded point cloud groups;
[0117] In a case where the first transformation identifier is used to represent the adaptive transformation encoding of all coded point cloud groups, at least one coded point cloud group among the N coded point cloud groups is determined as the first target coded point cloud group.
[0118] It should be understood that the above-mentioned first target coded point cloud group refers to a point cloud group for transform coding, that is, each coded point in the first target coded point cloud group needs to be transformed coded.
[0119] In this embodiment, the point cloud to be encoded is pre-set with a first transformation identifier, which is also called an adaptive transformation identifier and can be represented by AdpTransform. The first transformation identifier can be customized.
[0120] If AdpTransform=0, it means that transform coding is performed on all code points, that is, transform coding is performed on all code point cloud groups. In this case, all code point cloud groups are determined as the first target code point cloud groups.
[0121] If AdpTransform=1, it means that each coded point cloud group is adaptively transformed and encoded. Then, it is necessary to determine whether to transform encode the coded point cloud group based on the actual situation of each coded point cloud group. In other words, at least one coded point cloud group among the N coded point cloud groups is determined as the first target coded point cloud group.
[0122] It should be understood that the various coded point cloud groups in the coded point cloud block are sorted in chronological order of the grouping time of the point cloud groups, and the coded point cloud group that is sorted first in the coded point cloud block is determined as the third point cloud group.
[0123] In this embodiment, a fourth transformation flag is pre-set in the coded point cloud block, and when the fourth transformation flag is used to indicate that the third point cloud group is transformed and coded, the third point cloud group is determined as the first target coded point cloud group. In other words, a fourth transformation flag is pre-set in the coded point cloud block, and whether the third point cloud group is the first target coded point cloud group is determined according to the fourth transformation flag.
[0124] It should be understood that the various coded point cloud groups in the coded point cloud block are sorted in the order of the grouping time of the point cloud groups, and the coded point cloud groups other than the first coded point cloud group in the coded point cloud block are determined as the fourth point cloud group. For any fourth point cloud group, the coded point cloud group in the coded point cloud block that is adjacent to the fourth point cloud group and located before the fourth point cloud group 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.
[0125] The difference between the third reconstruction value and the fourth reconstruction value is calculated, and the absolute value of the difference is obtained. Furthermore, in this embodiment, a second preset value is also provided, and when the absolute value is less than the second preset value, the fourth point cloud group is determined as the first target coded point cloud group.
[0126] Optionally, the performing transform coding and quantization processing on the first residual information corresponding to the first target coded point cloud group to obtain a quantized first transform coefficient includes:
[0127] Calculating a product result between a transformation matrix and the first residual information, and determining the product result as a first transformation coefficient to be quantized;
[0128] The first transform coefficient to be quantized is quantized to obtain the quantized first transform coefficient.
[0129] The above-mentioned first residual information is the residual information corresponding to the first target coding point cloud group. As mentioned above, the residual information corresponding to the coding point cloud group is the set of residual information corresponding to each coding point of the coding group. The above-mentioned first residual information can be understood as a one-dimensional residual information matrix.
[0130] The above transformation matrix can be a discrete cosine transform (DCT), or a discrete sine transform (DST) matrix, or a Hadamard transform matrix, or other types of change matrices. The transformation order of the above transformation matrix is the same as the number of coding points contained in the first target coding point cloud group. For example, the number of coding points contained in the first target coding point cloud group is 3, then the transformation order of the transformation matrix is also 3, and the transformation matrix is a 3*3 matrix.
[0131] The first transform coefficient to be quantized includes a low-frequency coefficient and a high-frequency coefficient. The low-frequency coefficient is also called a DC coefficient, and the high-frequency coefficient is also called an AC coefficient.
[0132] The transformation matrix is multiplied by the residual information corresponding to the first target coding point cloud group to obtain the transformation coefficient to be quantized. For example, the following formula can be referred to:
[0133]
[0134] Among them, DC in the above formula represents the low-frequency coefficient, AC represents the high-frequency coefficient, AttrRes represents the first residual information, and T represents the element in the transformation matrix. From the above formula, it can be obtained that if 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.
[0135] The color attribute of the first transform coefficient to be quantized is a YUV color space. The U component and the V component in the YUV color space may be determined as the first component, and the Y component may be determined as the second component.
[0136] The high frequency coefficients in the U component and the V component are quantized using a preset first quantization step size to obtain quantized third high frequency coefficients.
[0137] The low-frequency coefficients in the U component and the V component are quantized using a preset second quantization step size to obtain quantized third low-frequency coefficients.
[0138] The high-frequency coefficients and the low-frequency coefficients in the Y component are quantized using a preset third quantization step size to obtain a quantized fourth high-frequency coefficient and a quantized fourth low-frequency coefficient.
[0139] 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.
[0140] The point cloud attribute decoding method provided by the embodiment of the present application is described in detail below through some embodiments and their application scenarios in combination with the accompanying drawings.
[0141] See also Figure 5 , Figure 5 : is a flow chart of the point cloud attribute decoding method provided by the present application. The point cloud attribute decoding method provided by this embodiment includes the following steps:
[0142] S201, decoding the code stream to be decoded to obtain a point cloud to be decoded.
[0143] In this step, after obtaining the code stream to be decoded, the code stream to be decoded is decoded to obtain a point cloud to be decoded, wherein the point cloud to be decoded includes a plurality of decoding points, and the decoding points in the point cloud to be decoded are sorted according to a preset coding order. The decoding points of the point cloud to be decoded can be sorted from large to small according to the Hilbert code, or from large to small according to the Morton code.
[0144] S202: Divide the point cloud to be decoded into at least one decoding point cloud block based on the number of decoding points contained 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 decoding point.
[0145] In this step, the point cloud to be decoded is divided to obtain decoded point cloud blocks. The division method of the point cloud to be decoded can be determined based on the number of decoded points contained 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. For specific technical solutions, please refer to the subsequent embodiments.
[0146] It should be understood that the attribute information corresponding to the decoding points belonging to the same decoding point cloud block has spatial correlation, that is, these decoding points are closer in geometric position and more similar in color attributes.
[0147] It should be understood that if the points to be decoded in the point cloud to be decoded are sorted from large to small according to the Hilbert codes, then after the point cloud to be decoded is divided, the Hilbert codes corresponding to the decoding points belonging to the same decoding point cloud block are the same.
[0148] It should be understood that if the points to be decoded in the point cloud to be decoded are sorted from large to small according to the Morton codes, then after the point cloud to be decoded is divided, the Morton codes corresponding to the decoding points belonging to the same decoding point cloud block are the same.
[0149] S203: For each decoding point cloud block including at least two decoding points, the decoding point cloud block is divided into M decoding point cloud groups based on the number of decoding points contained in the point cloud block to be decoded and a preset maximum transformation order.
[0150] In this step, after the point cloud to be decoded is divided into at least one decoding point cloud block, for the decoding point cloud block including at least two decoding points, the decoding point cloud block is grouped and the decoding point cloud block is divided into M decoding point cloud groups. Here, for the implementation method of dividing the decoding point cloud block into M decoding point cloud groups, please refer to the embodiment.
[0151] One possible situation is that the number of decoded point cloud groups is 1. In this case, it can be understood that the entire decoded point cloud block is regarded as 1 decoded point cloud group.
[0152] It should be understood that when the decoded point cloud block is divided into M decoded point cloud groups, for any decoded point in the decoded point cloud group, the geometric spatial relationship can be used to search for the nearest neighbor of the decoded point, and the reconstructed attribute value of the found neighbor can be used to predict the decoded point to obtain a predicted attribute value, so as to obtain the predicted attribute value corresponding to each decoded point in each decoded point cloud group. The above-mentioned predicted attribute value is also called prediction information.
[0153] S204, performing inverse quantization processing on the second transform coefficients corresponding to the third target decoded point cloud group to obtain target high-frequency coefficients and target low-frequency coefficients.
[0154] The third target decoded point cloud group is at least part of the M decoded point cloud groups, and the third target decoded point cloud group is a decoded point cloud group that undergoes inverse quantization processing.
[0155] In this step, at least part of the M decoded point cloud groups are determined as the third target decoded point cloud group. It should be understood that the third target decoded point cloud group is a decoded point cloud group for inverse quantization processing. For the specific technical solution of how to determine the third target decoded point cloud group, please refer to the subsequent embodiments.
[0156] In this step, the second transform coefficients corresponding to the third target coded point cloud group are read, and the second transform coefficients are dequantized to obtain target high-frequency coefficients and target low-frequency coefficients. For the specific implementation of the dequantization process, please refer to the subsequent embodiments.
[0157] S205, performing inverse transformation processing on the target high-frequency coefficients and the target low-frequency coefficients to obtain residual information corresponding to the third target decoded point cloud group.
[0158] In this step, after obtaining the target high-frequency coefficient and the target low-frequency coefficient, the target high-frequency coefficient and the target low-frequency coefficient are inversely transformed to obtain residual information corresponding to the third target decoded point cloud group.
[0159] An optional implementation is that the decoded point cloud group that is not subjected to inverse quantization processing among the M decoded point cloud groups can be determined as the fourth target decoded point cloud group, and the fourth target decoded point cloud group can be subjected to inverse quantization processing to obtain residual information corresponding to the fourth target decoded point cloud group.
[0160] As described above, after the decoded point cloud block is divided 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 using the geometric spatial relationship, and the decoded point can be predicted using the reconstructed attribute value of the neighbor found to obtain the prediction information corresponding to the encoded point. Further, after the residual information corresponding to the encoded point is determined, the residual information corresponding to the decoded point can be added to the prediction information corresponding to the decoded point to obtain the attribute information corresponding to the decoded point.
[0161] 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 obtains the target high-frequency coefficient and the target low-frequency coefficient corresponding to the third target decoding point cloud group by performing inverse quantization processing on the second transform coefficient corresponding to the third target decoding point cloud group, wherein the attribute information of each decoding point in the third target decoding point cloud group has spatial correlation. Furthermore, the above-mentioned target high-frequency coefficient and target low-frequency coefficient are inversely transformed 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, thereby improving the attribute decoding efficiency of the point cloud.
[0162] Optionally, dividing the point cloud to be decoded into at least one decoding point cloud block based on the number of decoding points contained 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 decoding point includes:
[0163] Using the second target shift value, shifting the sorting code corresponding to each decoding point to obtain the second target sorting code corresponding to each decoding point;
[0164] The decoding points with the same second target sorting code are divided into the same decoding point cloud block.
[0165] The decoding points in the above-mentioned point cloud to be decoded are sorted from small to large according to the sorting code, and the above-mentioned sorting code includes any one of the Hilbert code and the Morton code, that is, the decoding points in the point cloud to be decoded are sorted from small to large according to the Hilbert code, or the decoding points in the point cloud to be decoded are sorted from small to large according to the Morton code.
[0166] The following is an example of sorting the decoding points in the point cloud to be decoded from small to large according to the Morton code to explain the solution:
[0167] After obtaining the second target shift value, the Hilbert code corresponding to each decoding point is shifted rightward 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 the target Hilbert code. The target Hilbert code can be understood as the second target sorting code.
[0168] It should be understood that the second target shift value represents the number of bits moved by the decoding point during the shift process. The second target shift value can also represent the density of the point cloud to be decoded. The smaller the target shift value, the denser the decoding points in the point cloud to be decoded.
[0169] Furthermore, the point cloud to be decoded is divided according to the target Hilbert code corresponding to each decoding point, and the decoding points with 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 a decoding point cloud block is the same.
[0170] In this embodiment, the sorting codes of the decoding points in the point cloud to be decoded are shifted, and the point cloud to be decoded is divided into decoding point cloud blocks according to the second target sorting codes corresponding to the shifted decoding points. The second target sorting codes of the decoding points in the same decoding point cloud block are the same, indicating that the attribute information of these decoding points has spatial correlation, so the decoding points with spatial correlation in attribute information are divided into the same decoding point cloud block.
[0171] Optionally, before using the second target shift value to shift the sort code corresponding to each decoding point to obtain the second target sort code corresponding to each decoding point, the method includes:
[0172] determining the second target shift value based on the first shift parameter and the second shift parameter; or
[0173] determining the second target shift value based on the geometric quantization step size corresponding to the point cloud to be decoded; or
[0174] determining a preset shift value as the second target shift value; or
[0175] The second target shift value is obtained from the to-be-decoded code stream.
[0176] In this embodiment, the geometric information of the point cloud to be decoded is transformed into coordinates so that all the point clouds are contained in a bounding box. A three-dimensional rectangular coordinate system can be formed with the point cloud to be decoded as the center. The bounding box can be understood as a hexahedron covering the point cloud to be decoded, and each edge of the hexahedron is located on the X-axis, Y-axis or Z-axis in the above coordinate system. Based on the size of the bounding box, that is, the corresponding side lengths of the bounding box on the X-axis, Y-axis and Z-axis of the coordinate system, the first shift parameter corresponding to the point cloud to be decoded is determined.
[0177] The number of decoding points included in the point cloud to be decoded is obtained, and based on the number of decoding points included in the decoded point cloud, a second shift parameter corresponding to the point cloud to be decoded is determined.
[0178] In this embodiment, a shift calculation formula, a first shift parameter calculation formula, and a second shift parameter calculation formula are also preset. The first shift parameter and the second shift parameter are input into the calculation formula to obtain the second target shift value corresponding to the point cloud to be decoded. Among them, the side length corresponding to the bounding box can be input into the first shift parameter calculation formula to obtain the first shift parameter; the number of decoding points contained in the point cloud to be decoded is input into the second shift parameter calculation formula to obtain the second shift parameter.
[0179] Specifically, the above shift calculation formula, the first shift parameter calculation formula and the second shift parameter calculation formula are as follows:
[0180]
[0181] MaxBits=log2x+log2y+log2z
[0182] MinBits = log2voxelCount
[0183] Among them, shiftBits represents the second target shift value, MaxBits represents the first shift parameter, MinBits represents the second shift parameter, x represents the side length of the bounding box corresponding to the X-axis of the coordinate system, y represents the side length of the bounding box corresponding to the Y-axis of the coordinate system, z represents the side length of the bounding box corresponding to the Z-axis of the coordinate system, and voxelCount represents the number of decoding points contained in the point cloud to be decoded.
[0184] For example, when the first shift parameter is 9 and the second shift parameter is 3, the second target shift value is 3.
[0185] An optional implementation is that the second target shift value can be determined based on the geometric quantization step of the decoded point cloud. For example, the second target shift value is set to a value corresponding to the geometric quantization step, or the addition result of the value corresponding to the geometric quantization step and a preset value is used as the second target shift value.
[0186] An optional implementation manner is that the second target shift value can be custom set.
[0187] An optional implementation manner is that the second target shift value may be read from the code stream to be decoded.
[0188] Optionally, the 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:
[0189] When the number of decoding points contained in the decoding point cloud block is less than or equal to the preset maximum transformation order, determining the decoding point cloud block as one decoding point cloud group;
[0190] When the number of decoding points contained in the decoding point cloud block is greater than the preset maximum transformation order, the decoding point cloud block is divided into at least two decoding point cloud groups based on the number of decoding points contained in the decoding point cloud block and a first preset value.
[0191] In this embodiment, a maximum transformation order is preset, and the preset maximum transformation order is used to characterize the maximum order corresponding to the transformation matrix used in the inverse transformation process. The number of coded points contained in the coded point cloud block is obtained, and when the number of coded points is less than or equal to the preset maximum transformation order, the coded point cloud block is determined as one coded point cloud group, that is, the coded point cloud block is not grouped.
[0192] In the case where the number of coding points is greater than the preset maximum transformation order, the coding point cloud block is grouped based on the number of coding points and the first preset value, and the coding point cloud block is divided into at least two coding point cloud groups. Here, for the specific scheme of grouping the coding point cloud block based on the number of coding points contained in the coding point cloud block and the first preset value, please refer to the subsequent embodiments.
[0193] Optionally, 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:
[0194] When the first value is greater than the preset maximum transformation order, performing a group calculation operation on the first value using the first preset value to obtain a second value;
[0195] According to the preset decoding order of the decoding points in the decoding point cloud block, at least part of the decoding points that have not been grouped into a decoding point cloud group, until all the decoding points of all the decoding point cloud blocks have completed point cloud grouping.
[0196] The first value above represents the number of decoded points in the decoded point cloud block that have not been grouped. When the first value is greater than the preset maximum transformation order, the first preset value is used to perform a grouping calculation operation on the first value to obtain a second value, wherein the second value is less than the preset maximum transformation order. Here, how to use the first preset value to perform a grouping calculation operation on the first value to obtain a specific solution of the second value, please refer to the subsequent embodiments.
[0197] After obtaining the second value, at least part of the decoded points that have not been grouped into a decoded point cloud group is divided into a decoded point cloud group according to the preset decoding order of the decoded points in the decoded point cloud block. In other words, a part of the decoded points that have not been grouped into a decoded point cloud group is determined, and the part of the decoded points is divided into a decoded point cloud group, or all the decoded points that have not been grouped into a decoded point cloud block are determined, and the decoded points are divided into a decoded point cloud group. The number of the decoded points divided into a decoded point cloud group is equal to the second value.
[0198] After grouping some decoded points into point cloud, update the first value. If the updated first value is still greater than the preset maximum transformation order, continue to group at least some decoded points in the decoded point cloud block into point cloud until all decoded points in the decoded point cloud block have completed point cloud grouping.
[0199] Optionally, the using the first preset value to perform a group calculation operation on the first value to obtain a second value includes:
[0200] When the first value is greater than the preset maximum transformation order, rounding the division result between the first value and the first preset value to obtain a target value;
[0201] The first value is updated to the target value until the target value is less than or equal to a preset maximum transformation order, and the second value is determined to be the target value.
[0202] The process of the above group calculation operation is: divide the first value by the first preset value to obtain a division result; round the division result to obtain a target value, wherein the division result can be rounded up or rounded down or rounded to the nearest integer. When the target value is greater than the preset maximum transformation order, the first value is updated to the target value, and the first value is continuously divided by the first preset value until the target value is less than or equal to the preset maximum transformation order, and the target value is determined as the second value.
[0203] In order to elaborate on the technical solution of grouping the decoded point cloud blocks, an example is described as follows:
[0204] Judge M j1 With K max The size relationship between the above M j1 The number of decoded points that characterize the decoded point cloud block without point cloud grouping, that is, the first value, the above K max is equal to the preset maximum transformation order. j1 Greater than K j , then perform group calculation operation on the first value: That is, the result of dividing the first value by 2 is rounded down to obtain the target value, where M in the above formula isj Characterizing the target value, the first preset value is 2. It should be understood that in other embodiments, the first preset value can be customized.
[0205] When the target value is greater than K max In the case of M, the first value is updated to the target value, and the above group calculation operation is repeated until the first value is less than or equal to the preset maximum transformation order. j1 The second value is determined, and part of the decoding points are divided into a decoding point cloud group according to a preset decoding order of each decoding point in the decoding block, wherein the number of the part of the decoding points is the same as the second value.
[0206] Then, determine M j2 With K j The size relationship between the above M j2 The number of decoded points that are not grouped in the decoded point cloud block. Since some decoded points have been grouped in the above steps, M j2 The value of is equal to the number of all decoded points in the decoded point cloud block and the last updated M j1 The difference between j2 The value is less than M j1 If M j2 Greater than K j , then for M j2 Perform group calculation operations, and group the decoded blocks into point clouds according to the calculation results. The specific implementation method is the same as that according to M j1 The implementation method of grouping point clouds for decoding blocks is consistent and will not be repeated here.
[0207] Until the number of decoded points in the decoded point cloud block that has not been grouped is less than or equal to K j , stop grouping the point clouds for decoded blocks.
[0208] For further information, please refer to the following example:
[0209] Assume that the decoded point cloud block includes 12 decoded points that have not been grouped, the preset maximum transformation order is 5, and the first preset value is 2.
[0210] In this case, the first value 12 and the first preset value 2 are grouped and calculated to obtain a target value 6. Since the target value 6 is greater than the preset maximum transformation order 5, the first value is updated to the target value, that is, the first value is updated to 6. The updated first value 6 is grouped and calculated to obtain a target value 3. At this time, the target value 3 is less than the preset maximum transformation order 5. Then, according to the preset decoding order of each decoding point in the decoding point cloud block, 3 decoding points are selected and divided into the same decoding point cloud group.
[0211] After the decoded point cloud block is grouped once, the first value is updated to 9, and the first value 9 and the first preset value 2 are grouped and calculated to obtain a target value 4. The target value 4 is smaller than the preset maximum transformation order 5, and according to the preset decoding order of each decoded point in the decoded point cloud block, 4 decoded points are selected and divided into the same decoded point cloud group.
[0212] After the decoded point cloud block is grouped twice, the first value is updated to 5. Since the first value 5 is the same as the preset maximum transformation order 5, 5 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.
[0213] In summary, for a decoded point cloud block including 12 decoded points that have not been grouped, the decoded point cloud block can be divided into three point cloud groups, and the numbers of decoded points corresponding to the three point cloud groups are 3, 4 and 5 respectively.
[0214] Optionally, before performing inverse quantization processing on the second transform coefficients corresponding to the third target decoded point cloud group to obtain target high-frequency coefficients and target low-frequency coefficients, the method includes:
[0215] Obtaining a second transformation identifier in the point cloud to be decoded;
[0216] In a case where the second transformation identifier is used to represent the inverse transformation of all decoded point cloud groups, all decoded point cloud groups are determined as the third target decoded point cloud groups;
[0217] In a case where the second transformation identifier is used to represent an adaptive inverse transformation of all decoded point cloud groups, at least one decoded point cloud group among the M decoded point cloud groups is determined as the third target decoded point cloud group.
[0218] It should be understood that the third target decoded point cloud grouping refers to a point cloud grouping that undergoes inverse transformation, that is, each decoded point in the third target decoded point cloud grouping needs to undergo inverse transformation.
[0219] In this embodiment, the point cloud to be decoded is pre-set with a second transformation identifier, which is also called an adaptive transformation identifier. Optionally, the second transformation identifier and the first transformation identifier are the same transformation identifier. The second transformation identifier can be represented by AdpTransform. It should be understood that the second transformation identifier can be customized.
[0220] If AdpTransform=0, it means that all decoded points are inversely transformed. In this case, all decoded point cloud groups are determined as third target decoded point cloud groups.
[0221] If AdpTransform=1, it means that each decoded point cloud group is adaptively inversely transformed. Then, it is necessary to determine whether to inversely transform the decoded point cloud group based on the actual situation of each decoded point cloud group. In this case, at least one decoded point cloud group among the N decoded point cloud groups is determined as the target decoded point cloud group.
[0222] Optionally, determining at least one of the M decoded point cloud groups as the third target decoded point cloud group includes:
[0223] Obtaining a third transformation identifier corresponding to the first point cloud group;
[0224] In a case where the third transformation identifier is used to represent an inverse transformation of the first point cloud group, the first point cloud group is determined as the third target decoding point cloud group.
[0225] It should be understood that the decoded point cloud groups in the decoded point cloud block are sorted in chronological order of the grouping time of the point cloud groups, and the decoded point cloud group that is sorted first in the decoded point cloud block is determined as the first point cloud group.
[0226] In this embodiment, a third transformation identifier is pre-set in the decoded point cloud block, and the third transformation identifier is used to indicate that when the first point cloud group is inversely transformed, the first point cloud group is determined as the third target decoded point cloud group. In other words, a third transformation identifier is pre-set in the decoded point cloud block, and whether the first point cloud group is the third target decoded point cloud group is determined according to the third transformation identifier.
[0227] Optionally, determining at least one of the M decoded point cloud groups as the third target decoded point cloud group includes:
[0228] For any second point cloud group, determining a first reconstruction value and a second reconstruction value corresponding to the second point cloud group;
[0229] calculating an absolute value of a difference between the first reconstruction value and the second reconstruction value;
[0230] When the absolute value is smaller than a second preset value, the second point cloud group is determined as a third target decoding point cloud group.
[0231] It should be understood that the decoded point cloud groups in the decoded point cloud block are sorted in the order of the grouping time of the point cloud groups, and the decoded point cloud groups except the first-ranked decoded point cloud group in the decoded point cloud block are determined as the second point cloud group. For example, the decoded point cloud block includes 3 decoded point cloud groups, and the second-ranked and third-ranked decoded point cloud groups are determined as the second point cloud group.
[0232] For any second point cloud group, the decoded point cloud group in the decoded point cloud block that is adjacent to the second point cloud group and located before the second point cloud group 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 above-mentioned first reconstruction value, and the minimum value in the reconstruction information corresponding to the adjacent point cloud group is determined as the above-mentioned second reconstruction value.
[0233] It should be understood that the reconstruction information corresponding to the adjacent point cloud group is a collection of reconstruction information corresponding to each decoding point in the adjacent point cloud group, that is, the above-mentioned first reconstruction value is the maximum value of the reconstruction information corresponding to each decoding point in the adjacent point cloud group, and the above-mentioned second reconstruction value is the minimum value of the reconstruction information corresponding to each decoding point in the adjacent point cloud group.
[0234] The difference between the first reconstruction value and the second reconstruction value is calculated, and the absolute value of the difference is obtained. Furthermore, in this embodiment, a second preset value is also provided, and when the absolute value is less than the second preset value, the second point cloud group is determined as the third target decoding point cloud group.
[0235] It should be understood that the above-mentioned third transformation flag can be expressed as TransformFlag. If TransformFlag=1, the decoded point cloud group is determined as the third target decoded point cloud group; if TransformFlag=0, the decoded point cloud group is not determined as the third target decoded point cloud group.
[0236] For ease of understanding, the following formula may be introduced to further illustrate the technical solution of this embodiment:
[0237] In | AttRec max -AttRec min |≥Threshold, set TransformFlag=0, and do not determine the decoded point cloud group as the third target decoded point cloud group.
[0238] Among them, AttRec max Characterizes the first reconstruction value, AttRec min represents the second reconstruction value, and Threshold represents the second preset value.
[0239] In | AttRec max -AttRec min |<Threshold, set TransformFlag=1 and determine the decoded point cloud group as the third target decoded point cloud group.
[0240] Optionally, the performing inverse quantization processing on the second transform coefficients corresponding to the third target decoded point cloud group to obtain the target high-frequency coefficients and the target low-frequency coefficients includes:
[0241] 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;
[0242] quantizing the second high-frequency coefficient and the second low-frequency coefficient using a preset third quantization step size to obtain an inverse-quantized second high-frequency coefficient and an inverse-quantized second low-frequency coefficient;
[0243] Determine the inverse quantized first high frequency coefficient and the inverse quantized second high frequency coefficient as the target high frequency coefficient;
[0244] The inversely quantized first low-frequency coefficient and the inversely quantized second low-frequency coefficient are determined as the target low-frequency coefficients.
[0245] The color attribute of the above-mentioned second transformation coefficient is the YUV color space. The U component and the V component in the YUV color space can be determined as the first component, the Y component can be determined as the second component, the high-frequency coefficient in the first component can be determined as the first high-frequency coefficient, the low-frequency coefficient in the first component can be determined as the first low-frequency coefficient, the high-frequency coefficient in the second component can be determined as the second high-frequency coefficient, and the low-frequency coefficient in the second component can be determined as the second low-frequency coefficient.
[0246] For the first high frequency coefficient, the first high frequency coefficient is dequantized using a preset first quantization step size to obtain the dequantized first high frequency coefficient, wherein the first quantization step size is equal to the sum of the initial step size, the transformation step size and the high frequency step size, and the initial step size, the transformation step size and the high frequency step size can all be customized.
[0247] It should be understood that the first quantization step size can be determined by the following formula:
[0248] Q fin1 =Q ori +Offset coeff +Offset AC
[0249] Among them, Q fin1 Indicates the first quantization step size, Q ori Indicates the initial step size, Offset coeff Indicates the transformation step size, Offset AC Represents the high frequency step size.
[0250] For the first low-frequency coefficient, the first low-frequency coefficient is dequantized using a preset second quantization step size to obtain the dequantized first low-frequency coefficient, wherein the second quantization step size is equal to the sum of the initial step size, the transformation step size, and the low-frequency step size, and the initial step size, the transformation step size, and the low-frequency step size can all be customized.
[0251] It should be understood that the second quantization step size can be determined by the following formula:
[0252] Q fin2 =Q ori +Offset coeff +Offset DC
[0253] Among them, Q fin2 Indicates the second quantization step size, Offset DC Indicates the low frequency step size.
[0254] For the second high-frequency coefficient and the second low-frequency coefficient, the second high-frequency coefficient and the second low-frequency coefficient are dequantized using a preset third quantization step size to obtain a dequantized second high-frequency coefficient and a quantized second low-frequency coefficient. The third quantization step size is equal to the sum of the initial step size, the transformation step size, and the low-frequency step size, or the third quantization step size is equal to the sum of the initial step size, the transformation step size, and the high-frequency step size. The initial step size, the transformation 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.
[0255] It should be understood that the third quantization step size can be determined by the following formula:
[0256] Q fin3 =Q ori +Offset coeff +Offset DC
[0257] Among them, Q fin3 Indicates the third quantization step size. The Offset in the above formula DC You can also use Offset AC replace.
[0258] 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; the first inverse quantized low frequency coefficient and the second inverse quantized low frequency coefficient are determined as target low frequency coefficients.
[0259] It should be noted that the execution subject of the point cloud attribute encoding method provided in the embodiment of the present application may be an encoder, or a control module in the encoder for executing the point cloud attribute encoding method. In the embodiment of the present application, the encoder executing the point cloud attribute encoding method is taken as an example to illustrate the encoder provided in the embodiment of the present application.
[0260] like Figure 6 As shown, the encoder 300 includes:
[0261] The first acquisition module 301 is used to acquire a point cloud to be encoded;
[0262] A first division module 302 is used to divide the to-be-encoded point cloud into at least one coded point cloud block based on the number of coded points contained in the to-be-encoded point cloud, the volume information of the bounding box corresponding to the to-be-encoded point cloud, and the order of each coded point;
[0263] A second division module 303 is configured to divide each coded point cloud block including at least two coded points into N coded point cloud groups based on the number of coded points included in the coded point cloud block and a preset maximum transformation order;
[0264] The first encoding module 304 is used to perform 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; the second encoding module 305 is used to perform entropy coding on the quantized first transform coefficient and the second residual information corresponding to the second target coding point cloud group to generate a target code stream.
[0265] Optionally, the first division module 302 is specifically configured to:
[0266] Using the first target shift value, shifting the sort code corresponding to each code point to obtain the first target sort code corresponding to each code point;
[0267] The code points with the same first target sort code are grouped into the same code point cloud block.
[0268] Optionally, the second division module 303 is specifically configured to:
[0269] When the number of coded points included in the coded point cloud block is less than or equal to the preset maximum transformation order, determining the coded point cloud block as one coded point cloud group;
[0270] When the number of coding points contained in the coding point cloud block is greater than the preset maximum transformation order, the coding point cloud block is divided into at least two coding point cloud groups based on the number of coding points contained in the coding point cloud block and a first preset value.
[0271] Optionally, the encoder 300 further includes:
[0272] A second acquisition module is used to acquire a first transformation identifier in the point cloud to be encoded;
[0273] A first determination module is used to determine all coded point cloud groups as the first target coded point cloud groups when the first transformation identifier is used to represent transformation encoding of all coded point cloud groups;
[0274] The second determination module is used to determine at least one coded point cloud group among the N coded point cloud groups as the first target coded point cloud group when the first transformation identifier is used to represent adaptive transformation coding of all coded point cloud groups.
[0275] Optionally, the first encoding module 304 is specifically used for:
[0276] Calculating a product result between a transformation matrix and the first residual information, and determining the product result as a first transformation coefficient to be quantized;
[0277] The first transform coefficient to be quantized is quantized to obtain the quantized first transform coefficient.
[0278] The encoder provided in the embodiment of the present application can achieve Figure 4 The various processes implemented by the method embodiment and achieving the same technical effect are not described here to avoid repetition.
[0279] It should be noted that the point cloud attribute decoding method provided in the embodiment of the present application can be executed by a decoder, or a control module in the decoder for executing the point cloud attribute decoding method. In the embodiment of the present application, the decoder executing the point cloud attribute decoding method is taken as an example to illustrate the decoder provided in the embodiment of the present application.
[0280] like Figure 7 As shown, the decoder 400 includes:
[0281] A decoding module 401 is used to decode the code stream to be decoded to obtain a point cloud to be decoded;
[0282] A third division module 402 is used to divide the point cloud to be decoded into at least one decoding point cloud block based on the number of decoding points contained 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 decoding point;
[0283] A fourth division module 403 is configured to divide 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;
[0284] The inverse quantization module 404 is used to perform inverse quantization processing on the transform coefficients corresponding to the third target decoded point cloud group to obtain target high-frequency coefficients and target low-frequency coefficients;
[0285] The inverse transformation module 405 is used to perform inverse transformation processing on the target high-frequency coefficient and the target low-frequency coefficient to obtain third residual information corresponding to the target decoded point cloud group.
[0286] Optionally, the third division module 402 is specifically configured to:
[0287] Using the second target shift value, shifting the sorting code corresponding to each decoding point to obtain the second target sorting code corresponding to each decoding point;
[0288] The decoding points with the same second target sorting code are divided into the same decoding point cloud block.
[0289] Optionally, the third division module 402 is specifically configured to:
[0290] determining the second target shift value based on the first shift parameter and the second shift parameter; or
[0291] determining the second target shift value based on a geometric quantization step size corresponding to the point cloud to be decoded; or
[0292] determining a preset shift value as the second target shift value; or
[0293] The second target shift value is obtained from the to-be-decoded code stream.
[0294] Optionally, the fourth division module 403 is specifically configured to:
[0295] When the number of decoding points contained in the decoding point cloud block is less than or equal to the preset maximum transformation order, determining the decoding point cloud block as one decoding point cloud group;
[0296] When the number of decoding points contained in the decoding point cloud block is greater than the preset maximum transformation order, the decoding point cloud block is divided into at least two decoding point cloud groups based on the number of decoding points contained in the decoding point cloud block and a first preset value.
[0297] Optionally, the fourth division module 403 is specifically configured to:
[0298] When the first value is greater than the preset maximum transformation order, performing a group calculation operation on the first value using the first preset value to obtain a second value;
[0299] According to the preset decoding order of the decoding points in the decoding point cloud block, at least part of the decoding points that have not been grouped into a decoding point cloud group, until all the decoding points of all the decoding point cloud blocks have completed point cloud grouping, and the number of at least part of the decoding points is equal to the second value.
[0300] Optionally, the fourth division module 403 is specifically configured to:
[0301] When the first value is greater than the preset maximum transformation order, rounding the division result between the first value and the first preset value to obtain a target value;
[0302] The first value is updated to the target value until the target value is less than or equal to a preset maximum transformation order, and the second value is determined to be the target value.
[0303] Optionally, the decoder 400 further includes:
[0304] A third acquisition module is used to acquire a second transformation identifier in the point cloud to be decoded;
[0305] A third determination module is used to determine all decoded point cloud groups as the third target decoded point cloud groups when the second transformation identifier is used to represent the inverse transformation of all decoded point cloud groups;
[0306] The fourth determination module is used to determine at least one decoded point cloud group among the M decoded point cloud groups as the third target decoded point cloud group when the second transformation identifier is used to represent the adaptive inverse transformation of all decoded point cloud groups.
[0307] Optionally, the third determining module is specifically configured to:
[0308] Obtaining a third transformation identifier corresponding to the first point cloud group;
[0309] In a case where the third transformation identifier is used to represent an inverse transformation of the first point cloud group, the first point cloud group is determined as the third target decoding point cloud group.
[0310] Optionally, the fourth determining module is specifically configured to:
[0311] For any second point cloud group, determining a first reconstruction value and a second reconstruction value corresponding to the second point cloud group;
[0312] calculating an absolute value of a difference between the first reconstruction value and the second reconstruction value;
[0313] When the absolute value is smaller than a second preset value, the second point cloud group is determined as a third target decoding point cloud group.
[0314] Optionally, the dequantization module 404 is specifically used for:
[0315] 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;
[0316] quantizing the second high-frequency coefficient and the second low-frequency coefficient using a preset third quantization step size to obtain an inverse-quantized second high-frequency coefficient and an inverse-quantized second low-frequency coefficient;
[0317] Determine the inverse quantized first high frequency coefficient and the inverse quantized second high frequency coefficient as the target high frequency coefficient;
[0318] The inversely quantized first low-frequency coefficient and the inversely quantized second low-frequency coefficient are determined as the target low-frequency coefficients.
[0319] In an embodiment of the present application, after obtaining the point cloud to be encoded, the point cloud to be encoded is divided into at least one encoding point cloud block, and the encoding points in each encoding point cloud block are grouped into point clouds, and the encoding point cloud block is divided into N encoding point cloud groups. In the transform coding process, the correlation between the residual information corresponding to each encoding point is fully considered, and the first residual information corresponding to the first target encoding point cloud group is transform coded and quantized to obtain a quantized first transform coefficient, wherein there is a correlation between the residual information of each encoding point in the first target encoding point cloud group. Further, the quantized first transform coefficient and the second residual information corresponding to the second target encoding point cloud group are entropy coded to generate a target code stream. The above encoding process fully considers the correlation between the residual information corresponding to each encoding point, and by transform coding the first residual information corresponding to the first target encoding point cloud group, the redundant information in the transform coefficient and the residual information is reduced, thereby improving the attribute coding efficiency of the point cloud.
[0320] The encoder and decoder in the embodiment of the present application can be a device, a device or electronic device with an operating system, or a component, an integrated circuit, or a chip in a terminal. The device or electronic device can be a mobile terminal or a non-mobile terminal. Exemplarily, the mobile terminal can include but is not limited to the types of terminals 11 listed above, and the non-mobile terminal can be a server, a network attached storage (Network Attached Storage, NAS), a personal computer (personal computer, PC), a television (television, TV), a teller machine or a self-service machine, etc., which is not specifically limited in the embodiment of the present application.
[0321] The encoder provided in the embodiment of the present application can achieve Figure 4 The various processes implemented by the method embodiment and achieving the same technical effect are not described here to avoid repetition.
[0322] The decoder provided in the embodiment of the present application can realize Figure 5 The various processes implemented by the method embodiment and achieving the same technical effect are not described here to avoid repetition.
[0323] Alternatively, if Figure 8 As shown, an embodiment of the present application also provides a communication device 500, including a processor 501, a memory 502, and a program or instruction stored in the memory 502 and executable on the processor 501. For example, when the communication device 500 is a terminal, the program or instruction is executed by the processor 501 to implement the various processes of the above-mentioned point cloud attribute encoding method embodiment, and can achieve the same technical effect, or implement the various processes of the above-mentioned point cloud attribute decoding method embodiment, and can achieve the same technical effect.
[0324] The embodiment of the present application further provides a terminal, including a processor and a communication interface, wherein the processor is configured to perform the following operations:
[0325] Get the point cloud to be encoded;
[0326] Based on the number of coded points contained in the to-be-coded point cloud, the volume information of the bounding box corresponding to the to-be-coded point cloud, and the order of each coded point, the to-be-coded point cloud is divided into at least one coded point cloud block;
[0327] For each coded point cloud block including at least two coded points, based on the number of coded points included in the coded point cloud block and a preset maximum transformation order, dividing the coded point cloud block into N coded point cloud groups;
[0328] Performing transform coding and quantization processing on first residual information corresponding to the first target coded point cloud group to obtain a quantized first transform coefficient;
[0329] The quantized first transform coefficients and the second residual information corresponding to the second target coding point cloud group are entropy encoded to generate a target bitstream.
[0330] Alternatively, the processor is used to perform the following operations:
[0331] Decode the code stream to be decoded to obtain the point cloud to be decoded;
[0332] Based on the number of decoding points contained 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 decoding point, the point cloud to be decoded is divided into at least one decoding point cloud block;
[0333] For each decoded point cloud block including at least two decoded points, based on the number of decoded points included in the decoded point cloud block and a preset maximum transformation order, divide the decoded point cloud block into M decoded point cloud groups;
[0334] The second transform coefficients corresponding to the third target decoded point cloud group are inversely quantized to obtain target high-frequency coefficients and target low-frequency coefficients; the target high-frequency coefficients and the target low-frequency coefficients are inversely transformed to obtain residual information corresponding to the third target decoded point cloud group.
[0335] This terminal embodiment corresponds to the above-mentioned terminal side method embodiment, and each implementation process and implementation mode of the above-mentioned method embodiment can be applied to this terminal embodiment and can achieve the same technical effect. Specifically, Figure 8 A schematic diagram of the hardware structure of a terminal for implementing an embodiment of the present application.
[0336] The terminal 1000 includes but is 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 and other components.
[0337] Those skilled in the art will appreciate that the terminal 1000 may also include a power source (such as a battery) for supplying power to various components, and the power source may be logically connected to the processor 1010 through a power management system, thereby implementing functions such as managing charging, discharging, and power consumption management through the power management system. Fig. 9 The terminal structure shown in the figure does not constitute a limitation on the terminal. The terminal may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently, which will not be described in detail here.
[0338] It should be understood that in the embodiment of the present application, the input unit 1004 may include a graphics processor (Graphics Processing Unit, GPU) 10041 and a microphone 10042, and the graphics processor 10041 processes the image data of the static picture or video obtained by the image capture device (such as a camera) in the video capture mode or the image capture mode. The display unit 1006 may include a display panel 10061, and the display panel 10071 may be configured 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. Other input devices 10072 may include, but are not limited to, a physical keyboard, function keys (such as volume control keys, switch keys, etc.), a trackball, a mouse, and a joystick, which will not be repeated here.
[0339] In the embodiment of the present application, the radio frequency unit 1001 receives downlink data from the network side device and sends it to the processor 1010 for processing; in addition, the uplink data is sent to the network side device. Generally, the radio frequency unit 1001 includes but is not limited to an antenna, at least one amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, etc.
[0340] The memory 1009 can be used to store software programs or instructions and various data. The memory 1009 can mainly include a program or instruction storage area and a data storage area, wherein the program or instruction storage area can store an operating system, an application program or instruction required for at least one function (such as a sound playback function, an image playback function, etc.), etc. In addition, the memory 1009 can include a high-speed random access memory, and can also include a non-volatile memory, wherein the non-volatile memory can 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 disk storage device, a flash memory device, or other non-volatile solid-state storage devices.
[0341] The processor 1010 may include one or more processing units; optionally, the processor 1010 may integrate an application processor and a modem processor, wherein the application processor mainly processes an operating system, a user interface, and application programs or instructions, etc., and the modem processor mainly processes wireless communications, such as a baseband processor. It is understandable that the modem processor may not be integrated into the processor 1010.
[0342] The processor is used to perform the following operations:
[0343] Get the point cloud to be encoded;
[0344] Based on the number of coded points contained in the to-be-coded point cloud, the volume information of the bounding box corresponding to the to-be-coded point cloud, and the order of each coded point, the to-be-coded point cloud is divided into at least one coded point cloud block;
[0345] For each coded point cloud block including at least two coded points, based on the number of coded points included in the coded point cloud block and a preset maximum transformation order, dividing the coded point cloud block into M coded point cloud groups;
[0346] Performing transform coding and quantization processing on first residual information corresponding to the first target coded point cloud group to obtain a quantized first transform coefficient;
[0347] The quantized first transform coefficients and the second residual information corresponding to the second target coding point cloud group are entropy encoded to generate a target bitstream.
[0348] Alternatively, the processor is used to perform the following operations:
[0349] Decode the code stream to be decoded to obtain the point cloud to be decoded;
[0350] Based on the number of decoding points contained 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 decoding point, the point cloud to be decoded is divided into at least one decoding point cloud block;
[0351] For each decoded point cloud block including at least two decoded points, based on the number of decoded points included in the decoded point cloud block and a preset maximum transformation order, divide the decoded point cloud block into M decoded point cloud groups;
[0352] The second transform coefficients corresponding to the third target decoded point cloud group are inversely quantized to obtain target high-frequency coefficients and target low-frequency coefficients; the target high-frequency coefficients and the target low-frequency coefficients are inversely transformed to obtain residual information corresponding to the third target decoded point cloud group.
[0353] An embodiment of the present application also provides a readable storage medium, on which a program or instruction is stored. When the program or instruction is executed by a processor, the various processes of the above-mentioned point cloud attribute encoding method embodiment are implemented, or the various processes of the above-mentioned point cloud attribute decoding method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.
[0354] 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.
[0355] An embodiment of the present application further provides a chip, which includes a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the various processes of the above-mentioned point cloud attribute encoding method embodiment, or to implement the various processes of the above-mentioned point cloud attribute decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
[0356] It should be understood that the chip mentioned in the embodiments of the present application can also be called a system-level chip, a system chip, a chip system or a system-on-chip chip, etc.
[0357] It should be noted that, in this article, the terms "comprise", "include" or any other variant thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements includes not only those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise one..." do not exclude the presence of other identical elements in the process, method, article or device including the element. In addition, it should be pointed out that the scope of the methods and devices in the embodiments of the present application is not limited to performing functions in the order shown or discussed, and may also include performing functions in a substantially simultaneous manner or in reverse order according to the functions involved, for example, the described method may be performed in an order different from that described, and various steps may also be added, omitted, or combined. In addition, the features described with reference to certain examples may be combined in other examples.
[0358] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application, 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 (such as ROM / RAM, magnetic disk, optical disk), and includes a number of instructions for a terminal (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in each embodiment of the present application.
[0359] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of the present application, ordinary technicians in this field can also make many forms without departing from the purpose of the present application and the scope of protection of the claims, all of which are within the protection of the present application.
Claims
1. A point cloud attribute encoding method, characterized in that: include: Get the point cloud to be encoded; The coding points in the to-be-coded point cloud are sorted according to a preset coding order; Based on the number of coded points contained in the to-be-coded point cloud, the volume information of the bounding box corresponding to the to-be-coded point cloud, and the order of each coded point, the to-be-coded point cloud is divided into at least one coded point cloud block; For each coded point cloud block including at least two coded points, based on the number of coded points included in the coded point cloud block and a preset maximum transformation order, the coded point cloud block is divided into N coded point cloud groups, where N is a positive integer; Performing transform coding and quantization processing on first residual information corresponding to the first target coded point cloud group to obtain a quantized first transform coefficient; The first target coded point cloud group is at least part of the N coded point cloud groups, and the first target coded point cloud group is a coded point cloud group for transform coding; Performing entropy coding on the quantized first transform coefficients and second residual information corresponding to the second target coding point cloud group to generate a target bitstream; The second target coded point cloud group is a coded point cloud group among the N coded point cloud groups except the first target coded point cloud group.
2. The method according to claim 1, characterized in that The coding points in the to-be-coded point cloud are sorted in ascending order according to the sorting code, wherein the sorting code includes any one of a Hilbert code and a Morton code; The step of dividing the point cloud to be encoded into at least one encoded point cloud block based on the number of encoded points contained in the point cloud to be encoded, the volume information of the bounding box corresponding to the point cloud to be encoded, and the order of each encoded point comprises: Using a first target shift value, shifting the sorting code corresponding to each coding point to obtain a first target sorting code corresponding to each coding point; the target shift value is determined based on the number of coding points included in the point cloud to be coded and the volume information of the bounding box; The code points with the same first target sort code are grouped into the same code point cloud block.
3. The method according to claim 1, characterized in that The dividing the coded point cloud block into N coded point cloud groups based on the number of coded points contained in the coded point cloud block and the preset maximum transformation order includes: When the number of coded points included in the coded point cloud block is less than or equal to the preset maximum transformation order, determining the coded point cloud block as one coded point cloud group; When the number of coding points contained in the coding point cloud block is greater than the preset maximum transformation order, the coding point cloud block is divided into at least two coding point cloud groups based on the number of coding points contained in the coding point cloud block and a first preset value.
4. The method according to claim 1, characterized in that: Before transform coding and quantizing the first residual information corresponding to the first target coded point cloud group to obtain a quantized first transform coefficient, the method includes: Obtaining a first transformation identifier in the point cloud to be encoded; In a case where the first transformation identifier is used to represent transformation encoding of all coded point cloud groups, all coded point cloud groups are determined as the first target coded point cloud groups; In a case where the first transformation identifier is used to represent the adaptive transformation encoding of all coded point cloud groups, at least one coded point cloud group among the N coded point cloud groups is determined as the first target coded point cloud group.
5. The method according to claim 1, characterized in that The transform coding and quantization processing are performed on the first residual information corresponding to the first target coded point cloud group to obtain the quantized first transform coefficient, which includes: Calculating a product result between a transformation matrix and the first residual information, and determining the product result as a first transformation coefficient to be quantized; the order of the transformation matrix is determined based on the number of coding points included in the first target coding point cloud group; The first transform coefficient to be quantized is quantized to obtain the quantized first transform coefficient.
6. A point cloud attribute decoding method, characterized in that: include: Decoding the code stream to be decoded to obtain a point cloud to be decoded, wherein the decoding points in the point cloud to be decoded are sorted according to a preset encoding order; Based on the number of decoding points contained 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 decoding point, the point cloud to be decoded is divided into at least one decoding point cloud block; For each decoding point cloud block including at least two decoding points, based on the number of decoding points included in the decoding point cloud block and the preset maximum transformation order, the decoding point cloud block is divided into M decoding point cloud groups, where M is a positive integer; Performing inverse quantization processing on the second transform coefficients corresponding to the third target decoded point cloud group to obtain a target high-frequency coefficient and a target low-frequency coefficient; The third target decoded point cloud group is at least part of the M decoded point cloud groups, and the third target decoded point cloud group is a decoded point cloud group that undergoes inverse quantization processing; The target high-frequency coefficients and the target low-frequency coefficients are inversely transformed to obtain third residual information corresponding to the third target decoded point cloud group.
7. The method according to claim 6, characterized in that The decoding points in the to-be-decoded point cloud are sorted in ascending order according to a sorting code, wherein the sorting code includes any one of a Hilbert code and a Morton code; The step of dividing the point cloud to be decoded into at least one decoding point cloud block based on the number of decoding 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 decoding point includes: Using a second target shift value, shifting the sorting code corresponding to each decoding point to obtain a second target sorting code corresponding to each decoding point; the second target shift value is determined based on the number of decoding points included in the point cloud to be decoded and the volume information of the bounding box; The decoding points with the same second target sorting code are divided into the same decoding point cloud block.
8. The method according to claim 7, characterized in that Before the second target shift value is used to shift the sort code corresponding to each decoding point to obtain the second target sort code corresponding to each decoding point, the method includes: Determining the second target shift value based on a first shift parameter and a second shift parameter, wherein the first shift parameter is determined based on the volume information of the bounding box, and the second shift parameter is 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 The second target shift value is obtained from the to-be-decoded code stream.
9. The method according to claim 6, characterized in that The step of dividing the decoded point cloud block into M decoded point cloud groups based on the number of decoded points contained in the decoded point cloud block and a preset maximum transformation order includes: When the number of decoding points contained in the decoding point cloud block is less than or equal to the preset maximum transformation order, determining the decoding point cloud block as one decoding point cloud group; When the number of decoding points contained in the decoding point cloud block is greater than the preset maximum transformation order, the decoding point cloud block is divided into at least two decoding point cloud groups based on the number of decoding points contained in the decoding point cloud block and a first preset value.
10. The method according to claim 9, characterized in that 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: In the case where the first value is greater than the preset maximum transformation order, a grouping calculation operation is performed on the first value using the first preset value to obtain a second value; the first value represents the number of decoded points of the decoded point cloud block that are not grouped, and the second value is less than or equal to the preset maximum transformation order; According to the preset decoding order of the decoding points in the decoding point cloud block, at least part of the decoding points that have not been grouped into a decoding point cloud group, until all the decoding points of all the decoding point cloud blocks have completed point cloud grouping, and the number of at least part of the decoding points is equal to the second value.
11. The method according to claim 10, characterized in that The using the first preset value to perform a group calculation operation on the first value to obtain a second value includes: When the first value is greater than the preset maximum transformation order, rounding the division result between the first value and the first preset value to obtain a target value; The first value is updated to the target value until the target value is less than or equal to a preset maximum transformation order, and the second value is determined to be the target value.
12. The method according to claim 6, characterized in that Before performing inverse quantization processing on the second transform coefficients corresponding to the third target decoded point cloud group to obtain target high-frequency coefficients and target low-frequency coefficients, the method includes: Obtaining a second transformation identifier in the point cloud to be decoded; In a case where the second transformation identifier is used to represent the inverse transformation of all decoded point cloud groups, all decoded point cloud groups are determined as the third target decoded point cloud groups; In a case where the second transformation identifier is used to represent an adaptive inverse transformation of all decoded point cloud groups, at least one decoded point cloud group among the M decoded point cloud groups is determined as the third target decoded point cloud group.
13. The method according to claim 12, characterized in that The M decoded point cloud groups are sorted in a preset order in the decoded point cloud block, and the M decoded point cloud groups include a first point cloud group, which is the first decoded point cloud group in the M decoded point cloud groups; The 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; In a case where the third transformation identifier is used to represent an inverse transformation of the first point cloud group, the first point cloud group is determined as the third target decoding point cloud group.
14. The method according to claim 12, characterized in that The M decoded point cloud groups are sorted in a preset order in the decoded point cloud block, the M decoded point cloud groups include M-1 second point cloud groups, and the second point cloud groups are decoded point cloud groups other than the first-sorted decoded point cloud group among the M decoded point cloud groups; The 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, determine a first reconstruction value and a second reconstruction value corresponding to the second point cloud group; the first reconstruction value is the maximum value in the reconstruction information corresponding to the adjacent point cloud group, and the second reconstruction value is the minimum value in the reconstruction information corresponding to the adjacent point cloud group, and the adjacent point cloud group is a decoded point cloud group in the decoded point cloud block that is adjacent to the second point cloud group and located before the second point cloud group; calculating an absolute value of a difference between the first reconstruction value and the second reconstruction value; When the absolute value is smaller than a second preset value, the second point cloud group is determined as a third target decoding point cloud group.
15. The method according to claim 6, characterized in that The second transform coefficient includes 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 performing inverse quantization processing on the second transform coefficients corresponding to the third target decoded point cloud group to obtain the target high-frequency coefficients and the target low-frequency coefficients 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; quantizing the second high-frequency coefficient and the second low-frequency coefficient using a preset third quantization step size to obtain an inverse-quantized second high-frequency coefficient and an inverse-quantized second low-frequency coefficient; Determine the inverse quantized first high frequency coefficient and the inverse quantized second high frequency coefficient as the target high frequency coefficient; The inversely quantized first low-frequency coefficient and the inversely quantized second low-frequency coefficient are determined as the target low-frequency coefficients.
16. An encoder, characterized in that: include: The first acquisition module is used to acquire the point cloud to be encoded; The coding points in the to-be-coded point cloud are sorted according to a preset coding order; A first division module, configured to divide the point cloud to be encoded into at least one encoded point cloud block based on the number of encoded points contained in the point cloud to be encoded, the volume information of the bounding box corresponding to the point cloud to be encoded, and the order of each encoded point; A second division module is used to divide each coded point cloud block including at least two coded points into N coded point cloud groups based on the number of coded points included in the coded point cloud block and a preset maximum transformation order, where N is a positive integer; A first encoding module is used to perform transform coding and quantization processing on first residual information corresponding to a first target coded point cloud group to obtain a quantized first transform coefficient; the first target coded point cloud group is at least part of the N coded point cloud groups, and the first target coded point cloud group is a coded point cloud group for transform coding; A second encoding module is used to perform entropy encoding on the quantized first transform coefficient and the second residual information corresponding to the second target coding point cloud group to generate a target bit stream; The second target coded point cloud group is a coded point cloud group among the N coded point cloud groups except the first target coded point cloud group.
17. A decoder, characterized in that: include: A decoding module, used for decoding the code stream to be decoded to obtain a point cloud to be decoded, wherein the decoding points in the point cloud to be decoded are sorted according to a preset coding order; A third division module, used to divide the point cloud to be decoded into at least one decoding point cloud block based on the number of decoding points contained 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 decoding point; a fourth division module, configured to divide each decoding point cloud block including at least two decoding points into M decoding point cloud groups based on the number of decoding points included in the decoding point cloud block and a preset maximum transformation order, where M is a positive integer; A dequantization module, used for performing dequantization processing on the second transform coefficients corresponding to the third target decoded point cloud group to obtain a target high-frequency coefficient and a target low-frequency coefficient; The target decoded point cloud group is at least part of the decoded point cloud group, the third target decoded point cloud group is at least part of the M decoded point cloud groups, and the third target decoded point cloud group is a decoded point cloud group that undergoes inverse quantization processing; The inverse transformation module is used to perform inverse transformation processing 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.
18. A terminal, characterized in that: The method comprises a processor, a memory, and a program or instruction stored in the memory and executable on the processor, wherein the program or instruction, when executed by the processor, implements the steps of the point cloud attribute encoding method as described in any one of claims 1 to 5, or implements the steps of the point cloud attribute decoding method as described in any one of claims 6 to 15.
19. A readable storage medium, characterized in that: The readable storage medium stores a program or instruction, and when the program or instruction is executed by the processor, the steps of the point cloud attribute encoding method as described in any one of claims 1 to 5 are implemented, or the steps of the point cloud attribute decoding method as described in any one of claims 6 to 15 are implemented.
Citation Information
Patent Citations
Methods and devices for data compression using a non-uniform reconstruction space
CN103959786A
Information processing method and terminal equipment
CN109995943A