Point cloud processing method and device, computer device, and storage medium

By determining appropriate encoding modes for the points to be decoded or encoded in K directions of the point cloud, the problem of low efficiency in point cloud geometric encoding and decoding is solved, and more efficient encoding and decoding are achieved.

CN115131449BActive Publication Date: 2026-02-27TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202210717592.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-06-18
Publication Date
2026-02-27
Estimated Expiration
2042-06-18

AI Technical Summary

Technical Problem

The low efficiency of geometric encoding and decoding of point clouds is mainly due to the non-uniform spatial distribution of point clouds, which leads to large geometric residuals at each point.

Method used

By acquiring the encoded data of the point cloud, the encoding patterns of the points to be decoded in K directions are determined, and decoding or encoding is performed according to the determined encoding patterns. The encoded data is used to determine the appropriate encoding patterns for each direction of the points to be decoded or encoded.

Benefits of technology

The geometric encoding and decoding efficiency of point clouds is improved by determining appropriate encoding modes for each direction of the point cloud, thereby enhancing the efficiency of encoding and decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115131449B_ABST
    Figure CN115131449B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a point cloud processing method and device, computer equipment and a storage medium, wherein the point cloud processing method comprises: when a to-be-decoded point in a point cloud needs to be decoded, encoded data of the point cloud is acquired, the encoded data is used to determine an encoding mode of the to-be-decoded point in the point cloud in M directions, and the to-be-decoded point is decoded according to the determined encoding mode. When a to-be-encoded point in the point cloud needs to be encoded, the encoded data of the point cloud is set, the encoded data is used to determine an encoding mode of the to-be-encoded point in the point cloud in K directions, and the to-be-encoded point is encoded according to the determined encoding mode. By using the embodiments of the present application, the geometry encoding and decoding efficiency of the point cloud can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computer, in particular to the technical field of coding and decoding, and specifically relates to a point cloud processing method, a point cloud processing device, a computer device and a computer readable storage medium. BACKGROUND

[0002] With the continuous development of science and technology, a large number of high-precision point clouds can be obtained at a low cost and in a short time period at present. Each point in the point cloud has geometric information and attribute information. In order to improve the transmission efficiency of the point cloud, the point cloud needs to be encoded before being transmitted. Specifically, the encoding end encodes the geometric information and attribute information of each point in the point cloud, and then transmits the encoded point cloud to the decoding end. The decoding end decodes the encoded point cloud to reconstruct the geometric information and attribute information of each point in the point cloud. It is found in practice that the point cloud has the characteristic of uneven spatial distribution, which causes the geometric residual of each point in the point cloud to be large, thereby resulting in low geometric coding and decoding efficiency of the point cloud. SUMMARY

[0003] The embodiments of the present application provide a point cloud processing method, device, computer device and storage medium, which can improve the geometric coding and decoding efficiency of the point cloud.

[0004] In one aspect, the embodiments of the present application provide a point cloud processing method, which comprises:

[0005] obtaining the encoding data of the point cloud;

[0006] determining the encoding mode of a to-be-decoded point in the point cloud in K directions according to the encoding data, K being a positive integer;

[0007] decoding the to-be-decoded point according to the determined encoding mode.

[0008] In the embodiments of the present application, when the to-be-decoded point in the point cloud needs to be decoded, the encoding data of the point cloud is obtained, the encoding mode of the to-be-decoded point in each direction is determined according to the encoding data, and the to-be-decoded point is decoded according to the determined encoding mode. The embodiments of the present application can determine the appropriate encoding mode for each direction of the to-be-decoded point through the encoding data to improve the geometric decoding efficiency of the point cloud.

[0009] In another aspect, the embodiments of the present application provide a point cloud processing method, which comprises:

[0010] setting the encoding data of the point cloud;

[0011] determining the encoding mode of a to-be-encoded point in the point cloud in K directions according to the encoding data, K being a positive integer;

[0012] encode the to-be-encoded point according to the determined encoding mode.

[0013] In the embodiments of the present application, when a to-be-encoded point in the point cloud needs to be encoded, the encoding data of the point cloud can be set, the encoding mode of the to-be-encoded point in the point cloud in each direction is determined according to the encoding data, and the to-be-encoded point is encoded according to the determined encoding mode. The embodiments of the present application can determine a suitable encoding mode for each direction of the to-be-encoded point through the encoding data to encode, and can improve the geometric encoding efficiency of the point cloud.

[0014] Correspondingly, the embodiments of the present application provide a point cloud processing apparatus, which comprises:

[0015] an acquisition unit configured to acquire encoding data of the point cloud;

[0016] a processing unit configured to determine an encoding mode of a to-be-decoded point in the point cloud in K directions according to the encoding data, K being a positive integer, and decode the to-be-decoded point according to the determined encoding mode.

[0017] In an implementation manner, the encoding data comprises default setting information, and the default setting information is set by the decoding end and the encoding end by default; the processing unit is specifically configured to perform the following steps when determining the encoding mode of the to-be-decoded point in the point cloud in K directions according to the encoding data:

[0018] determine that the to-be-decoded point adopts a default encoding mode in K directions according to the default setting information;

[0019] If the default setting information indicates that the encoding modes of the K directions are the same, the to-be-decoded point adopts the same default encoding mode in all directions of the K directions; if the default setting information indicates that the encoding modes of the K directions are different, the to-be-decoded point adopts different default encoding modes in each direction of the K directions.

[0020] In an implementation manner, the encoding data comprises mode setting information, and the mode setting information is parsed from an encoding parameter set of the point cloud or an encoding bitstream of the point cloud; the processing unit is specifically configured to perform the following steps when determining the encoding mode of the to-be-decoded point in the point cloud in K directions according to the encoding data:

[0021] If the mode setting information is common to the to-be-decoded point in the K directions, it is determined that the to-be-decoded point adopts the same encoding mode in the K directions, and the encoding mode common to the to-be-decoded point in the K directions is determined according to the mode setting information common to the to-be-decoded point in the K directions;

[0022] If the point to be decoded corresponds to a mode setting information in each of the K directions, then it is determined that the point to be decoded adopts different encoding modes in the K directions, and the encoding mode of the point to be decoded in the corresponding direction is determined according to the mode setting information corresponding to the point to be decoded in each direction.

[0023] In one implementation, the mode setting information includes one or both of the residual difference flag field and the placeholder difference flag field; the processing unit, when determining the encoding mode shared by the point to be decoded in the K directions based on the mode setting information shared by the point to be decoded in the K directions, specifically performs any of the following:

[0024] The mode setting information includes a residual difference flag field. When the value of the residual difference flag field is the target value, the encoding mode shared by the point to be decoded in K directions is determined to be the first encoding mode.

[0025] The mode setting information includes a placeholder difference flag field. When the value of the placeholder difference flag field is the target value, the encoding mode shared by the point to be decoded in K directions is determined to be the second encoding mode.

[0026] The mode setting information includes the residual difference flag field and the placeholder difference flag field. When the values ​​of the residual difference flag field and the placeholder difference flag field are both target values, the encoding mode shared by the point to be decoded in K directions is determined to be the third encoding mode.

[0027] In one implementation, the encoded data includes a decision threshold, which is either set by default at the decoding and encoding ends, or the decision threshold is obtained by parsing from the encoded bitstream of the point cloud; the processing unit, used to determine the encoding mode of the point to be decoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0028] Parse pattern determination information from the encoded bitstream of the point cloud;

[0029] Based on the pattern determination information and the determination threshold, the encoding pattern of the point to be decoded in K directions is determined.

[0030] In one implementation, the determination threshold includes a quantization threshold, and the mode determination information includes quantization parameters shared by the point to be decoded in K directions, wherein the point to be decoded adopts the same encoding mode in the K directions; the processing unit, when determining the encoding mode of the point to be decoded in the K directions based on the mode determination information and the determination threshold, specifically performs the following steps:

[0031] Based on the relationship between the quantization parameters and the quantization threshold, the encoding mode shared by the point to be decoded in K directions is determined.

[0032] In one implementation, the quantization threshold includes any one or both of a first quantization threshold and a second quantization threshold; the processing unit, when determining the encoding mode shared by the point to be decoded in K directions based on the relationship between the quantization parameters and the quantization threshold, specifically performs any of the following:

[0033] When the quantization threshold includes the first quantization threshold, if the quantization parameter is less than the first quantization threshold, then the encoding mode shared by the point to be decoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0034] When the quantization threshold includes the second quantization threshold, if the quantization parameter is greater than the second quantization threshold, then the encoding mode shared by the point to be decoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0035] When the quantization threshold includes a first quantization threshold and a second quantization threshold, if the quantization parameter is greater than the second quantization threshold and less than the first quantization threshold, then the encoding mode shared by the point to be decoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0036] In one implementation, the determination threshold includes an encoding parsing threshold, and the mode determination information includes encoding parsing information of the point to be decoded in K directions. The encoding parsing information includes residual parsing information or occupied bit parsing information. The processing unit, when determining the encoding mode of the point to be decoded in K directions based on the mode determination information and the determination threshold, specifically performs the following steps:

[0037] When the point to be decoded uses the same encoding mode in K directions, determine the statistical characteristics of the encoded parsing information of the point to be decoded in the K directions, and determine the encoding mode shared by the point to be decoded in the K directions based on the relationship between the statistical characteristics and the encoding parsing threshold; or,

[0038] When the point to be decoded adopts different encoding modes in K directions, the encoding mode of the point to be decoded in the corresponding direction is determined according to the encoding parsing threshold and the magnitude relationship between the encoding parsing information of the point to be decoded in each direction.

[0039] The statistical characteristic information includes any one of the following: the average value of the encoded parsing information of the point to be decoded in K directions, the minimum value of the encoded parsing information of the point to be decoded in K directions, and the maximum value of the encoded parsing information of the point to be decoded in K directions.

[0040] In one implementation, the decision threshold includes a bounding box threshold, and the mode decision information includes the bounding box size of the prediction tree of the point cloud, wherein the bounding box size includes dimensions in K directions; the processing unit, when determining the encoding mode of the point to be decoded in the K directions based on the mode decision information and the decision threshold, specifically performs the following steps:

[0041] When the point to be decoded uses the same encoding pattern in K directions, the target size feature value is determined based on the dimensions in the K directions, and the encoding pattern shared by the point to be decoded in the K directions is determined based on the relationship between the target size feature value and the bounding box threshold; or,

[0042] When the point to be decoded adopts different encoding modes in K directions, the size feature value of each of the K directions is determined according to the size in the K directions, and the encoding mode of the point to be decoded in the corresponding direction is determined according to the relationship between the bounding box threshold and the size feature value of each direction.

[0043] In one implementation, the processing unit, when decoding the point to be decoded according to a defined encoding pattern, specifically performs the following steps:

[0044] According to the determined encoding pattern, the residual values ​​of the point to be decoded are decoded to obtain the reconstructed residual values ​​of the point to be decoded in K directions.

[0045] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be decoded in the k-th direction is the first encoding mode, where k is a positive integer less than or equal to K; the processing unit, used to decode the residual value of the point to be decoded according to the determined encoding mode, specifically performs the following steps when obtaining the reconstructed residual value of the point to be decoded in the K directions:

[0046] The number of bits occupied in the k-th direction of the point to be decoded is analyzed to obtain the number of bits occupied in the k-th direction of the residual quotient A1[k] of the point to be decoded;

[0047] Analyze the B[k] bit value in the bit value field corresponding to the k-th direction of the point to be decoded to obtain the residual quotient A1[k];

[0048] The residual remainder segment corresponding to the point to be decoded in the k-th direction is analyzed to obtain the residual remainder A2[k] of the point to be decoded in the k-th direction;

[0049] Based on the residual quotient A1[k] and the residual remainder A2[k], determine the reconstructed residual value A[k] of the point to be decoded in the k-th direction.

[0050] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be decoded in the k-th direction is the second encoding mode; the processing unit, used to perform residual value decoding on the point to be decoded according to the determined encoding mode, to obtain the reconstructed residual values ​​of the point to be decoded in the K directions, specifically performs the following steps:

[0051] The number of bits occupied in the k-th direction of the point to be decoded is analyzed to obtain the quotient B1[k] of the point to be decoded in the k-th direction;

[0052] The placeholder remainder segment corresponding to the point to be decoded in the k-th direction is analyzed to obtain the placeholder remainder B2[k] of the point to be decoded in the k-th direction;

[0053] Based on the placeholder quotient B1[k] and the placeholder remainder B2[k], determine the number of bits B[k] occupied by the reconstructed residual value A[k] of the point to be decoded in the k-th direction;

[0054] The B[k] bit value in the bit value field corresponding to the point to be decoded in the k-th direction is analyzed to obtain the reconstruction residual value A[k] of the point to be decoded in the k-th direction.

[0055] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be decoded in the k-th direction is the third encoding mode; the processing unit, used to perform residual value decoding on the point to be decoded according to the determined encoding mode, to obtain the reconstructed residual values ​​of the point to be decoded in the K directions, specifically performs the following steps:

[0056] The number of bits occupied in the k-th direction of the point to be decoded is analyzed to obtain the quotient B1[k] of the point to be decoded in the k-th direction;

[0057] The placeholder remainder segment corresponding to the point to be decoded in the k-th direction is analyzed to obtain the placeholder remainder B2[k] of the point to be decoded in the k-th direction;

[0058] Based on the placeholder quotient B1[k] and the placeholder remainder B2[k], determine the number of bits B[k] occupied by the residual quotient A1[k] of the point to be decoded in the k-th direction;

[0059] Analyze the B[k] bit value in the bit value field corresponding to the k-th direction of the point to be decoded to obtain the residual quotient A1[k];

[0060] The residual remainder segment corresponding to the point to be decoded in the k-th direction is analyzed, and the residual remainder A2[k] is obtained from the point to be decoded in the k-th direction.

[0061] Based on the residual quotient A1[k] and the residual remainder A2[k], determine the reconstructed residual value A[k] of the point to be decoded in the k-th direction.

[0062] In one implementation, when the encoding mode of the point to be decoded in the K directions is the first encoding mode or the third encoding mode, the residual number segment corresponding to the point to be decoded in the K directions is parsed using K4 context models, where K4 is a positive integer less than or equal to K.

[0063] In one implementation, when the encoding mode of the point to be decoded in the K directions is the second encoding mode or the third encoding mode, the placeholder remainder number field corresponding to the point to be decoded in the K directions is parsed using K5 context models, where K5 is a positive integer less than or equal to K.

[0064] In one implementation, the processing unit, when parsing the B[k] bit value in the bit value field corresponding to the k-th direction of the point to be decoded, specifically performs the following steps:

[0065] The B[k]-bit value is parsed using N context models, where B[k] is a positive integer and N is a positive integer greater than or equal to B[k].

[0066] In one implementation, the processing unit, when parsing the B[k]-bit value using N context models, specifically performs the following steps:

[0067] The B[k]-bit value is parsed using N independent context models, where N equals B[k].

[0068] The context model used to parse each bit of the B[k]-bit value is selected independently from N context models.

[0069] In one implementation, the processing unit, when parsing the B[k]-bit value using N context models, specifically performs the following steps:

[0070] The B[k]-bit values ​​are parsed using N fully correlated context models, where N is greater than B[k].

[0071] The context model used to parse the a-th digit in the B[k] digit value is selected from N context models based on the parsing results of the a-1 digit values ​​preceding the a-th digit value, where a is a positive integer less than or equal to B[k].

[0072] In one implementation, the processing unit, when parsing the B[k]-bit value using N context models, specifically performs the following steps:

[0073] The B[k]-bit value is parsed using a context model with N parts related to each other, where N is greater than B[k].

[0074] The context model used to parse the a1-th digit in the B[k]-bit value is selected from N context models based on the parsing results of the digits preceding the a1-th digit; the context model used to parse the a2-th digit in the B[k]-bit value is selected independently from N context models, where a1 and a2 are both positive integers less than or equal to B[k], and a1 is not equal to a2.

[0075] In one implementation, after decoding the point to be decoded according to a determined encoding pattern, the reconstructed residual values ​​of the point to be decoded in K directions are obtained; the processing unit is further configured to perform the following steps:

[0076] Residual symbol decoding is performed on the point to be decoded in each of the K directions to obtain the reconstructed residual symbol information of the point to be decoded in the K directions;

[0077] Based on the reconstruction residual values ​​of the point to be decoded in K directions and the sign information of the reconstruction residuals of the point to be decoded in K directions, the reconstruction residual information of the point to be decoded is determined.

[0078] Based on the reconstruction residual information of the point to be decoded, the geometric information of the point to be decoded is reconstructed.

[0079] In one implementation, the processing unit, used to perform residual symbol decoding on the point to be decoded in each of the K directions to obtain the reconstructed residual symbol information of the point to be decoded in the K directions, specifically performs the following steps:

[0080] Read the residual symbol encoding of the point to be decoded in K directions from the encoded bitstream of the point cloud;

[0081] The residual symbol encoding of the point to be decoded in K directions is parsed to obtain the reconstructed residual symbol information of the point to be decoded in K directions.

[0082] In one implementation, the processing unit, used to perform residual symbol decoding on the point to be decoded in each of the K directions to obtain the reconstructed residual symbol information of the point to be decoded in the K directions, specifically performs the following steps:

[0083] Obtain symbol identification information, which is either set by default at the encoding and decoding ends, or obtained by parsing from the encoding parameter set or encoding bitstream of the point cloud;

[0084] Based on the value of the symbol identification information, determine the symbol association relationship between the point to be decoded and its predecessor point;

[0085] If there is a symbol association relationship between the point to be decoded and its predecessor, then the reconstruction residual symbol information of the point to be decoded in the K directions is determined based on the reconstruction residual symbol information of the predecessor in the K directions.

[0086] If there is no symbol association between the point to be decoded and its predecessor point, the residual symbol encoding of the point to be decoded in K directions is read from the encoded bitstream of the point cloud, and the residual symbol encoding of the point to be decoded in K directions is parsed to obtain the reconstructed residual symbol information of the point to be decoded in K directions.

[0087] In one implementation, the processing unit, used to parse the residual symbol encoding of the point to be decoded in K directions to obtain the reconstructed residual symbol information of the point to be decoded in K directions, specifically performs the following steps:

[0088] The residual symbol encoding of the point to be decoded in K directions is parsed using a K2 context model to obtain the reconstructed residual symbol information of the point to be decoded in K directions, where K2 is a positive integer less than or equal to K.

[0089] In one implementation, the processing unit, when reconstructing the geometric information of the point to be decoded based on the reconstruction residual information of the point to be decoded, specifically performs the following steps:

[0090] Obtain the predicted geometric information of the point to be decoded;

[0091] Based on the reconstructed residual information and the predicted geometric information of the point to be decoded, the geometric information of the point to be decoded is reconstructed.

[0092] Accordingly, embodiments of this application provide a point cloud processing apparatus, which includes:

[0093] The setting unit is used to set the encoding data of the point cloud;

[0094] The processing unit is used to determine the encoding pattern of the point to be encoded in the point cloud in K directions, where K is a positive integer, based on the encoded data; and to encode the point to be encoded according to the determined encoding pattern.

[0095] In one implementation, the encoded data includes default setting information, which is the default setting of the encoding and decoding ends; the processing unit, when determining the encoding mode of the point to be encoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0096] Based on the default settings, the point to be encoded will use the default encoding mode in K directions;

[0097] If the default setting information indicates that the encoding modes in the K directions are the same, then the point to be encoded will use the same default encoding mode in all of the K directions; if the default setting information indicates that the encoding modes in the K directions are different, then the point to be encoded will use different default encoding modes in each of the K directions.

[0098] In one implementation, the encoded data includes mode setting information, which is written into the encoding parameter set of the point cloud or the encoded bitstream of the point cloud; the processing unit, when determining the encoding mode of the point to be encoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0099] If the mode setting information is shared by the point to be encoded in K directions, then it is determined that the point to be encoded adopts the same encoding mode in K directions, and the encoding mode shared by the point to be encoded in K directions is determined according to the mode setting information shared by the point to be encoded in K directions.

[0100] If the point to be encoded corresponds to a mode setting information in each of the K directions, then it is determined that the point to be encoded adopts different encoding modes in the K directions, and the encoding mode of the point to be encoded in the corresponding direction is determined according to the mode setting information corresponding to the point to be encoded in each direction.

[0101] In one implementation, the mode setting information includes one or both of the residual difference flag field and the placeholder difference flag field; the processing unit, when determining the encoding mode shared by the point to be encoded in the K directions based on the mode setting information shared by the point to be encoded in the K directions, specifically performs any of the following:

[0102] The mode setting information includes the residual difference flag field. When the residual difference flag field is set to the target value, the encoding mode shared by the point to be encoded in K directions is determined to be the first encoding mode.

[0103] The mode setting information includes a placeholder difference flag field. When the placeholder difference flag field is set to the target value, the encoding mode shared by the point to be encoded in K directions is determined to be the second encoding mode.

[0104] The mode setting information includes the residual difference flag field and the placeholder difference flag field. When both the residual difference flag field and the placeholder difference flag field are set to the target value, the encoding mode shared by the point to be encoded in K directions is determined to be the third encoding mode.

[0105] In one implementation, the encoded data includes a decision threshold, which is a default setting at the encoding and decoding ends, or the decision threshold is written into the encoding parameter set or encoded bitstream of the point cloud; the processing unit, used to determine the encoding mode of the point to be encoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0106] Obtain pattern determination information;

[0107] Based on the pattern determination information and the determination threshold, the encoding pattern of the point to be encoded in K directions is determined.

[0108] In one implementation, the decision threshold includes a quantization threshold, and the mode decision information includes quantization parameters shared by the point to be encoded in K directions, and the point to be encoded uses the same encoding mode in the K directions; the processing unit, when determining the encoding mode of the point to be encoded in the K directions based on the mode decision information and the decision threshold, specifically performs the following steps:

[0109] Based on the relationship between the quantization parameters and the quantization threshold, the encoding mode shared by the point to be encoded in K directions is determined.

[0110] In one implementation, the quantization parameters include any one or both of a first quantization threshold and a second quantization threshold; the processing unit, when determining the encoding mode shared by the point to be encoded in K directions based on the relationship between the quantization parameters and the quantization thresholds, specifically performs any of the following:

[0111] When the quantization threshold includes the first quantization threshold, if the quantization parameter is less than the first quantization threshold, then the encoding mode shared by the point to be encoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0112] When the quantization threshold includes the second quantization threshold, if the quantization parameter is greater than the second quantization threshold, then the coding mode shared by the point to be encoded in the K directions is determined to be any one of the first coding mode, the second coding mode, or the third coding mode.

[0113] When the quantization threshold includes a first quantization threshold and a second quantization threshold, if the quantization parameter is greater than the second quantization threshold and less than the first quantization threshold, then the encoding mode shared by the point to be encoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0114] In one implementation, the determination threshold includes an encoding information threshold, and the mode determination information includes the encoding information of the point to be encoded in K directions, wherein the encoding information includes residual values ​​or the number of bits occupied by the residual values; the processing unit, when determining the encoding mode of the point to be encoded in K directions based on the mode determination information and the determination threshold, specifically performs the following steps:

[0115] When the point to be encoded uses the same encoding pattern in K directions, determine the statistical characteristics of the information to be encoded in the K directions, and determine the encoding pattern shared by the point in the K directions based on the relationship between the statistical characteristics and the encoding information threshold; or,

[0116] When the point to be encoded adopts different encoding modes in K directions, the encoding mode of the point to be encoded in the corresponding direction is determined according to the judgment threshold and the size relationship between the information to be encoded in each direction.

[0117] The statistical characteristic information includes any of the following: the average value of the information to be encoded in K directions, the minimum value of the information to be encoded in K directions, and the maximum value of the information to be encoded in K directions.

[0118] In one implementation, the decision threshold includes a bounding box threshold, and the mode decision information includes the bounding box size of the prediction tree of the point cloud, wherein the bounding box size includes dimensions in K directions; the processing unit, when determining the encoding mode of the point to be encoded in the K directions based on the mode decision information and the decision threshold, specifically performs the following steps:

[0119] When the point to be encoded uses the same encoding pattern in K directions, the target size feature value is determined based on the dimensions in the K directions, and the encoding pattern shared by the point to be encoded in the K directions is determined based on the relationship between the target size feature value and the bounding box threshold; or,

[0120] When the point to be encoded adopts different encoding modes in K directions, the size feature value of each of the K directions is determined according to the size in the K directions, and the encoding mode of the point to be encoded in the corresponding direction is determined according to the relationship between the bounding box threshold and the size feature value of each direction.

[0121] In one implementation, the processing unit is further configured to perform the following steps:

[0122] Obtain the geometric residual information of the point to be encoded. The geometric residual information includes the residual values ​​of the point to be encoded in K directions and the residual sign information of the point to be encoded in K directions.

[0123] The processing unit, when encoding the points to be encoded according to a determined encoding pattern, specifically performs the following steps:

[0124] According to the determined encoding pattern, the residual values ​​of the point to be encoded in K directions are encoded.

[0125] In one implementation, for the k-th direction among K directions, the encoding pattern of the point to be encoded in the k-th direction is a first encoding pattern, where k is a positive integer less than or equal to K; the processing unit, used to encode the residual values ​​of the point to be encoded in the K directions according to the determined encoding pattern, specifically performs the following steps:

[0126] The residual value A[k] of the point to be encoded in the k-th direction is calculated by taking the remainder, and the residual quotient A1[k] and residual remainder A2[k] are obtained.

[0127] Determine the number of bits occupied by the residual quotient A1[k], use the number of bits occupied in the k-th direction corresponding to the point to be encoded to represent the number of bits occupied B[k], and encode the number of bits occupied field;

[0128] The residual remainder A2[k] is represented by the residual remainder number segment corresponding to the point to be encoded in the k-th direction, and the residual remainder number segment is encoded.

[0129] The B[k] bits in the bit value field corresponding to the point to be encoded in the k-th direction are used to represent the value of each bit in the B[k] bits occupied by the residual quotient A1[k], and the B[k] bits in the bit value field are encoded.

[0130] In one implementation, for the k-th direction among K directions, the encoding pattern of the point to be encoded in the k-th direction is a second encoding pattern, where k is a positive integer less than or equal to K; the processing unit, used to encode the residual values ​​of the point to be encoded in the K directions according to the determined encoding pattern, specifically performs the following steps:

[0131] Determine the number of bits B[k] occupied by the residual value A[k] of the point to be encoded in the k-th direction;

[0132] The remainder of the occupied bit length B[k] is calculated to obtain the placeholder quotient B1[k] and the placeholder remainder B2[k].

[0133] The number of occupies in the k-th direction is used to represent the quotient B1[k], and the number of occupies in the bit field is encoded.

[0134] The placeholder remainder B2[k] is represented by the placeholder remainder number segment corresponding to the point to be encoded in the k-th direction, and the placeholder remainder number segment is encoded.

[0135] The B[k] bits in the bit value field corresponding to the point to be encoded in the k-th direction are used to represent the value of each bit in the B[k] bits occupied by the residual value of the point to be encoded in the k-th direction, and the B[k] bits in the bit value field are encoded.

[0136] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be encoded in the k-th direction is the third encoding mode, where k is a positive integer less than or equal to K; the processing unit, used to encode the residual values ​​of the point to be encoded in the K directions according to the determined encoding mode, specifically performs the following steps:

[0137] The residual value A[k] of the point to be encoded in the k-th direction is calculated by taking the remainder, and the residual quotient A1[k] and residual remainder A2[k] are obtained.

[0138] The residual remainder A2[k] is represented by the residual remainder number segment corresponding to the point to be encoded in the k-th direction, and the residual remainder number segment is encoded.

[0139] The number of bits occupied by the residual quotient A1[k] is calculated by taking the remainder, and the placeholder quotient B1[k] and placeholder remainder B2[k] are obtained.

[0140] The number of occupies in the k-th direction is used to represent the quotient B1[k], and the number of occupies in the bit field is encoded.

[0141] The placeholder remainder B2[k] is represented by the placeholder remainder number segment corresponding to the k-th direction of the point to be encoded, and the placeholder remainder number segment is encoded.

[0142] The B[k] bits in the bit value field corresponding to the point to be encoded in the k-th direction are used to represent the value of each bit in the B[k] bits occupied by the residual quotient A1, and the B[k] bits in the bit value field are encoded.

[0143] In one implementation, when the encoding mode of the point to be encoded in the K directions is the first encoding mode or the third encoding mode, the residual number segment corresponding to the point to be encoded in the K directions is encoded using K4 context models, where K4 is a positive integer less than or equal to K.

[0144] In one implementation, when the encoding mode of the point to be encoded in the K directions is the second encoding mode or the third encoding mode, the placeholder remainder number field corresponding to the point to be encoded in the K directions is encoded using K5 context models, where K5 is a positive integer less than or equal to K.

[0145] In one implementation, the processing unit, when encoding the B[k] bit elements in the bit value field, specifically performs the following steps:

[0146] N context models are used to encode the B[k] bits in the bit value field, where B[k] is a positive integer and N is a positive integer greater than or equal to B[k].

[0147] In one implementation, the processing unit, when encoding the B[k] bit elements in the bit value field using N context models, specifically performs the following steps:

[0148] The B[k] bits in the bit value field are encoded using N independent context models;

[0149] The context model used to encode each element in the bit value field is selected independently from N context models.

[0150] In one implementation, the processing unit, when encoding the B[k] bit elements in the bit value field using N context models, specifically performs the following steps:

[0151] The B[k] bits in the bit value field are encoded using N fully correlated context models;

[0152] The context model used to encode the a-th bit element in the bit value field is selected from N context models, depending on the a-1 bits preceding the a-th bit element, where a is a positive integer less than or equal to B[k].

[0153] In one implementation, the processing unit, when encoding the B[k] bit elements in the bit value field using N context models, specifically performs the following steps:

[0154] The B[k] bits in the bit value field are encoded using an N-part related context model;

[0155] The context model used to encode the a1-th element in the bit value field is selected from N context models, depending on the elements preceding the a1-th element; the context model used to encode the a2-th element in the bit value field is selected independently from N context models. Both a1 and a2 are positive integers less than or equal to B[k], and a1 is not equal to a2.

[0156] In one implementation, the processing unit, when acquiring the geometric residual information of the point to be encoded, specifically performs the following steps:

[0157] Obtain the predicted geometric information of the point to be encoded;

[0158] The geometric residual information of the point to be encoded is determined based on the actual geometric information and the predicted geometric information of the point to be encoded.

[0159] In one implementation, the processing unit is further configured to perform the following steps:

[0160] Perform residual symbol encoding on the point to be encoded in K directions.

[0161] In one implementation, the processing unit, when performing residual symbol encoding on the point to be encoded in K directions, specifically performs the following steps:

[0162] Encode the residual symbol information of the point to be encoded in K directions.

[0163] In one implementation, the processing unit, when performing residual symbol encoding on the point to be encoded in K directions, specifically performs the following steps:

[0164] Set symbol identification information; the symbol identification information is set by default at the encoding end and the decoding end, or the symbol identification information is written into the encoding parameter set or encoding bitstream of the point cloud;

[0165] Based on the setting value of the symbol identification information, determine the symbol association relationship between the point to be encoded and its predecessor point;

[0166] If there is a symbolic association between the point to be encoded and its predecessor, then the residual symbolic encoding of the point to be encoded in the K directions is determined based on the residual symbolic encoding of the predecessor in the K directions.

[0167] If there is no symbol association between the point to be encoded and its predecessor, then the residual symbol information of the point to be encoded in K directions is encoded.

[0168] In one implementation, the processing unit, when encoding the residual symbol information of the point to be encoded in K directions, specifically performs the following steps:

[0169] K2 context models are used to encode the residual symbol information of the point to be encoded in K directions, where K1 is a positive integer less than or equal to K.

[0170] Accordingly, embodiments of this application provide a computer device, which includes a processor and a computer-readable storage medium, wherein:

[0171] A processor is a tool for implementing computer programs.

[0172] A computer-readable storage medium stores a computer program adapted to be loaded by a processor and executed by the point cloud processing method described above.

[0173] Accordingly, embodiments of this application provide a computer-readable storage medium storing a computer program. When the computer program is read and executed by the processor of a computer device, the computer device performs the point cloud processing method described above.

[0174] Accordingly, embodiments of this application provide a computer program product or computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the point cloud processing method described above.

[0175] In this embodiment, when decoding a point in a point cloud is required, the encoded data of the point cloud can be obtained. Based on the encoded data, the encoding modes of the point in the point cloud in M ​​directions are determined, and the point is decoded according to the determined encoding modes. When encoding a point in the point cloud is required, the encoded data of the point cloud can be set. Based on the encoded data, the encoding modes of the point in the point cloud in M ​​directions are determined, and the point is encoded according to the determined encoding modes. This embodiment can determine suitable encoding modes for decoding in each direction of the point to be decoded using the encoded data, and can also determine suitable encoding modes for encoding in each direction of the point to be encoded using the encoded data, thereby improving the geometric encoding and decoding efficiency of the point cloud. Attached Figure Description

[0176] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0177] Figure 1 This is a schematic diagram of a point cloud encoding process provided in an embodiment of this application;

[0178] Figure 2 This is a schematic diagram of a bounding box provided in an embodiment of this application;

[0179] Figure 3 This is a schematic diagram of an octree encoding provided in an embodiment of this application;

[0180] Figure 4aThis is a schematic diagram of a prediction tree coding structure provided in an embodiment of this application;

[0181] Figure 4b This is a schematic diagram of another prediction tree coding structure provided in an embodiment of this application;

[0182] Figure 5 This is a schematic diagram of the structure of a point cloud processing system provided in an embodiment of this application;

[0183] Figure 6 This is a schematic flowchart of a point cloud processing method provided in an embodiment of this application;

[0184] Figure 7 This is a flowchart illustrating another point cloud processing method provided in an embodiment of this application;

[0185] Figure 8 This is a schematic diagram of a feasible symbol determination process provided in an embodiment of this application;

[0186] Figure 9 This is a schematic diagram of the structure of a point cloud processing device provided in an embodiment of this application;

[0187] Figure 10 This is a schematic diagram of another point cloud processing device provided in an embodiment of this application;

[0188] Figure 11 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation

[0189] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.

[0190] To better understand the technical solutions provided in the embodiments of this application, the basic concepts involved in the embodiments of this application will be introduced first:

[0191] (1) Point Cloud. A point cloud is a set of discrete points in space that are randomly distributed and represent the spatial structure and surface properties of a three-dimensional object or scene. Point clouds can be classified into different categories according to different classification criteria. For example, according to the acquisition method, they can be divided into dense point clouds and sparse point clouds. Also, according to the temporal type of point clouds, they can be divided into static point clouds and dynamic point clouds.

[0192] (2) Point Cloud Data. Point cloud data is composed of the geometric and attribute information of each point in a point cloud. Geometric information, also known as 3D positional information, refers to the spatial coordinates (x, y, z) of a point in the point cloud. This can include the coordinate values ​​of the point along each coordinate axis of a 3D coordinate system, such as x (x-axis), y (y-axis), and z (z-axis). Attribute information of a point in the point cloud can include at least one of the following: color information, material information, and laser reflection intensity information (also known as reflectivity). Typically, each point in the point cloud has the same number of attribute information. For example, each point in the point cloud can have both color information and laser reflection intensity information, or it can have color information, material information, and laser reflection intensity information.

[0193] (3) Point Cloud Compression (PCC). Point cloud encoding refers to the process of encoding the geometric and attribute information of each point in a point cloud to obtain a compressed bitstream. Point cloud encoding can include two main processes: geometric information encoding and attribute information encoding. Currently, mainstream point cloud encoding technologies can be divided into geometric structure-based point cloud encoding and projection-based point cloud encoding, depending on the type of point cloud. Here, we will take G-PCC (Geometry-Based Point Cloud Compression) in MPEG (Moving Picture Expert Group, an international audio and video codec standard) and AVS-PCC (Audio Video Coding Standard, China's national video codec standard) as examples for introduction.

[0194] The encoding frameworks of G-PCC and AVS-PCC are largely the same, such as Figure 1 As shown, the process can be divided into geometric information encoding and attribute information encoding. In the geometric information encoding process, the geometric information of each point in the point cloud is encoded to obtain a geometric bitstream; in the attribute information encoding process, the attribute information of each point in the point cloud is encoded to obtain an attribute bitstream; the geometric bitstream and the attribute bitstream together constitute the compressed bitstream of the point cloud.

[0195] The main operations and processing steps for geometric information encoding are described below:

[0196] ① Pre-processing: This can include coordinate transformation and voxelization. By scaling and translation, point cloud data in 3D space is converted into integer form, and its smallest geometric position is moved to the origin.

[0197] ② Geometric Encoding: Geometric encoding can include two modes: octree-based geometric encoding and triangulation-based geometric encoding. These two encoding modes can be used under different conditions. Among them:

[0198] Octree-based geometric encoding: An octree is a tree-like data structure that uniformly divides a predefined bounding box in 3D space, with each node having eight child nodes. By using "1" and "0" to indicate whether each child node of the octree is occupied, the occupancy code is obtained as the bitstream of the point cloud geometric information.

[0199] Geometric encoding based on triangulation: The point cloud is divided into blocks of a certain size, and the intersection points of the point cloud surface with the edges of the blocks are located and triangles are constructed. Geometric information is compressed by encoding the intersection points.

[0200] ③ Geometry Quantization: The fineness of quantization is usually determined by the quantization parameter (QP). A larger QP value means that coefficients with a wider range of values ​​will be quantized into the same output, which usually leads to greater distortion and a lower bit rate. Conversely, a smaller QP value means that coefficients with a smaller range of values ​​will be quantized into the same output, which usually leads to less distortion and a higher bit rate.

[0201] ④ Geometric Entropy Encoding: This method uses statistical compression encoding on the occupancy code information of an octree to output a binary (0 or 1) compressed bitstream. Statistical coding is a lossless coding method that can effectively reduce the bit rate required to represent the same signal. A commonly used statistical coding method is Content Adaptive Binary Arithmetic Coding (CABAC).

[0202] The main operations and processing steps for encoding attribute information can be found in the following description:

[0203] ① Attribute Recoloring: In lossy encoding, after encoding geometric information, the encoding end needs to decode and reconstruct the geometric information, that is, restore the geometric information of each point in the point cloud. Attribute information corresponding to one or more neighboring points in the original point cloud is used as the attribute information of the reconstructed point.

[0204] ② Attribute Transform Coding: Attribute transform coding can include three modes: predicting transform, lifting transform, and region adaptive hierarchical transform (RAHT). These three coding modes can be used under different conditions. Among them:

[0205] Predictive transform coding: Based on distance, a subset of points is selected to divide the point cloud into multiple different levels of detail (LoD), achieving a point cloud representation from coarse to fine. Bottom-up prediction can be achieved between adjacent levels, that is, the attribute information of points introduced in the fine layer is predicted from the neighboring points in the coarse layer to obtain the corresponding residual signal. Among them, the points at the bottom layer are encoded as reference information.

[0206] Enhanced transform coding: Based on the LoD neighboring layer prediction, a weight update strategy for neighboring points is introduced to finally obtain the predicted attribute values ​​of each point and obtain the corresponding residual signal.

[0207] Hierarchical Region Adaptive Transform Coding: The attribute information is transformed into the transform domain by RAHT transformation, and the transformed coefficients are called transform coefficients.

[0208] ③ Attribute Quantization: The fineness of quantization is usually determined by the quantization parameters. In predictive transform coding and boost transform coding, entropy coding is performed on the quantized residual values; in RAHT, entropy coding is performed on the quantized transform coefficients.

[0209] ④ Attribute Entropy Coding: The quantized attribute residual signal or transform coefficients are generally compressed using run-length coding and arithmetic coding. The corresponding coding mode, quantization parameters, and other information are also encoded using an entropy encoder.

[0210] (4) Point Cloud Decoding. Point cloud decoding refers to the process of decoding the compressed bitstream obtained from point cloud encoding to reconstruct the point cloud; more specifically, it refers to the process of reconstructing the geometric and attribute information of each point in the point cloud based on the geometric bitstream and attribute bitstream in the compressed bitstream. After obtaining the compressed bitstream at the decoding end, for the geometric bitstream, entropy decoding is first performed to obtain the quantized geometric information of each point in the point cloud, and then inverse quantization is performed to reconstruct the geometric information of each point in the point cloud. For the attribute bitstream, entropy decoding is first performed to obtain the quantized prediction residual information or quantized transform coefficients of each point in the point cloud; then the quantized prediction residual information is inverse quantized to obtain the reconstructed residual information, and the quantized transform coefficients are inverse quantized to obtain the reconstructed transform coefficients. The reconstructed transform coefficients are inversely transformed to obtain the reconstructed residual information. The attribute information of each point in the point cloud can be reconstructed based on the reconstructed residual information of each point in the point cloud. The reconstructed attribute information of each point in the point cloud is matched one-to-one with the reconstructed geometric information in sequence to reconstruct the point cloud.

[0211] The above content introduced the basic concepts involved in the embodiments of this application. The basic technologies involved in the embodiments of this application are described below:

[0212] (1) Preprocessing:

[0213] The floating-point coordinates of each point in the input point cloud are represented as (x... m ,y m ,z m ), m = 0, ..., M-1, where M is the number of points in the point cloud, and the coordinates of the points are (x, y, y). min ,y min ,z min ) and coordinates (x) max ,y max ,z max The following is represented:

[0214] x min =min(x 0 ,x 1 ,…,x M-1 )

[0215] y min =min(y 0 ,y 1 ,…,y M-1 )

[0216] z min =min(z) 0 ,z 1 ,…,z M-1 )

[0217] x max =max(x 0 ,x 1,…,x M-1 )

[0218] y max =max(y 0 ,y 1 ,…,y M-1 )

[0219] z max =max(z) 0 ,z 1 ,…,z M-1 )

[0220] Wherein, the function min(s) 0 ,s 1 ,…,s M-1 ) represents taking the minimum value of the current input, max(s) 0 ,s 1 ,…,s M-1 ) indicates taking the maximum value of the current input.

[0221] like Figure 2 As shown, the bounding box represents the largest cuboid that can contain all points in the input point cloud. The origin coordinates of the bounding box are (x, y). origin ,y origin ,z origin The following can be calculated:

[0222] x origin =int(floor(x) min ))

[0223] y origin =int(floor(y) min ))

[0224] z origin =int(floor(z) min ))

[0225] The dimensions of the bounding box in the x, y, z directions can be calculated as follows:

[0226] BoudingBoxSize x =int(x max -x origin )+1

[0227] BoudingBoxSize y =int(y max -y origin )+1

[0228] BoudingBoxSize z =int(z max -zorigin )+1

[0229] Here, int(s) is the floor function, and floor(s) returns the largest integer value less than or equal to s.

[0230] (2) Octree encoding:

[0231] An octree is a tree-like data structure, currently primarily used in G-PCC or AVS-PCC for point cloud partitioning. For point cloud data in 3D space, the octree partitioning method uniformly divides a predefined bounding box hierarchically, with each node having eight child nodes. The occupancy of each child node in the octree is indicated by '1' and '0', such as... Figure 3 As shown, the occupancy code information is obtained as the bitstream of point cloud geometric information.

[0232] The octree construction is based on the Morton order, which involves converting the 3D coordinates of point cloud data into corresponding Morton codes by querying the Morton order table. The corresponding points at each level of the octree are obtained according to the order of each Morton code. Currently, mainstream point cloud coding techniques utilize octree partitioning to represent point cloud data, employing different processing flows for geometric and attribute information.

[0233] (3) TSP (Traveling Salesman Problem):

[0234] The Time-of-Sight (TSS) problem is a classic combinatorial optimization problem. The classic TSP can be described as follows: A salesperson needs to travel to several cities to sell goods. Starting from one city, the salesperson needs to visit all cities and return to the starting point. How should the salesperson choose the route to minimize the total distance traveled? From a graph theory perspective, this problem is essentially finding the cycle with the minimum weight in a weighted complete undirected graph. Since the feasible solution to this problem is a complete permutation of all vertices, combinatorial explosion occurs as the number of vertices increases, making it an NP-complete problem. Due to its wide applications in transportation, circuit board design, and logistics, it has been extensively studied by scholars both domestically and internationally. Early researchers used exact algorithms to solve this problem, commonly including branch and bound, linear programming, and dynamic programming. However, as the problem size increases, exact algorithms become inadequate. Therefore, later research focused on approximate or heuristic algorithms, including genetic algorithms, simulated annealing, ant colony optimization, tabu search, greedy algorithms, and neural networks.

[0235] For example, when modeling the TSP using an undirected weighted graph, cities are the vertices of the graph, roads are the edges, and the distance along a road is the length of the edge. It is a minimization problem where the starting and ending points are both at a specific vertex, and each vertex is visited exactly once. Typically, this model is a complete graph (i.e., every pair of vertices is connected by an edge). If there is no path between two cities, adding a very long edge can complete the graph without affecting the computation of the optimal circuit.

[0236] In symmetric TSP problems, the round-trip distance between two cities is equal, forming an undirected graph. This symmetry reduces the number of solutions by half. In asymmetric TSP problems, not all bidirectional paths exist, or the round-trip distances are different, forming a directed graph. Traffic accidents, one-way streets, and different airfares for departure and arrival in certain cities are examples that break this symmetry.

[0237] (4) Predictive coding techniques:

[0238] The aforementioned TSP can be used to generate predictive relationships between corresponding signals. All points in the point cloud are linked into a single prediction tree, and each point is predicted based on the signal value of its preceding point. This method, as an option for point cloud signal prediction, can be configured to apply to the entire original point cloud data, or to octree child nodes or subsets of point cloud data obtained through other methods.

[0239] Furthermore, the predictive coding techniques already present in G-PCC utilize distance search between points to build a prediction tree. Figure 4a This illustrates a prediction tree coding structure in AVS. Figure 4a The prediction tree shown is a single-chain prediction tree. Figure 4b This illustrates a prediction tree coding structure in MPEG. Figure 4b The prediction tree shown is a multi-link prediction tree. Each node is connected to every other node, and the tree indicates the number of nodes each node is linked to and one of four prediction modes. The four prediction modes are as follows:

[0240] 1) Do not predict.

[0241] 2) Prediction is based on the parent point (first-generation parent node), i.e., the previous point; for example... Figure 4b Points 401 and 502 are its parent points.

[0242] 3) Prediction is performed using the parent node (first-generation parent node) and the grandparent node (second-generation parent node); for example... Figure 4b Point 401 and point 402 are its parent points, and point 403 is its grandparent point.

[0243] 4) Prediction is performed using parent (first-generation parent node), grandparent (second-generation parent node), and grand-grandparent (third-generation parent node) points; for example... Figure 4b Point 401 and point 402 are its parent points, point 403 is its grandparent point, and point 404 is its grand-grandparent point.

[0244] (5) Entropy coding technology.

[0245] Entropy coding is used to binarize and process the predicted residuals or transform coefficients of signed attributes after quantization (in the lossy case). Specifically:

[0246] 1) Variable-length coding: This method uses codewords of varying lengths to represent the residuals or coefficients to be encoded. The code length needs to be designed based on the probability of the symbols appearing. Commonly used codes include exponential Golomb coding and arithmetic coding.

[0247] 2) CABAC: CABAC can include the following steps:

[0248] ① Binarization: CABAC uses binary arithmetic encoding, meaning that only two numbers (1 or 0) are encoded. A non-binary numerical symbol, such as a transformation coefficient or motion vector, is first binarized or converted into a binary codeword before arithmetic encoding. This process is similar to converting a numerical value into a variable-length codeword, but this binary codeword is further encoded by an arithmetic encoder before transmission.

[0249] ② Context Model Selection: The context model is a probabilistic model selected based on the statistics of the most recently encoded data symbols. This model stores the probability that each "bin" is 1 or 0.

[0250] ③ Arithmetic encoding: The arithmetic encoder encodes each "bin" according to the selected probability model.

[0251] ④ Probability Update: The selected context model will be updated based on the actual encoded value. For example, if the value of "bin" is 1, then the frequency count of 1 will increase.

[0252] Based on the aforementioned fundamental concepts and technologies, this application provides a point cloud processing scheme that can improve the geometric encoding and decoding efficiency of point clouds. In the point cloud encoding stage of this scheme, when encoding is required for a point in the point cloud, encoding data can be set. The encoding mode of the point to be encoded in each direction can be determined based on the encoding data, and the point to be encoded is then encoded according to the determined encoding mode. In the point cloud encoding stage, the encoding data can be used to determine suitable encoding modes for each direction of the point to be encoded, thereby improving the geometric encoding efficiency of the point cloud. Similarly, in the point cloud decoding stage, when decoding is required for a point in the point cloud, encoding data can be acquired. The encoding mode of the point to be decoded in each direction can be determined based on the encoding data, and the point to be decoded is then decoded according to the determined encoding mode. In the point cloud decoding stage, the encoding data can be used to determine suitable encoding modes for each direction of the point to be decoded, thereby improving the geometric decoding efficiency of the point cloud.

[0253] The point cloud processing solution provided in this application embodiment can also be combined with cloud technologies such as cloud computing and cloud storage. Cloud computing is a computing model that distributes computing tasks across a resource pool composed of a large number of computers, enabling various application systems to obtain computing power, storage space, and information services as needed. Cloud computing can provide powerful computing support for the point cloud encoding and decoding stages, thus greatly improving the geometric encoding and decoding efficiency of point clouds. Cloud storage is a new concept that extends and develops from cloud computing. A distributed cloud storage system (hereinafter referred to as a storage system) refers to a storage system that uses cluster applications, grid technology, and distributed storage file systems to aggregate a large number of various types of storage devices (also called storage nodes) in a network through application software or application interfaces to work collaboratively and jointly provide data storage and business access functions. Cloud storage can provide powerful storage support for the point cloud encoding and decoding stages, thus further improving the geometric encoding and decoding efficiency of point clouds.

[0254] The following is combined with Figure 5 A point cloud processing system suitable for implementing the point cloud processing scheme provided in the embodiments of this application is described. For example... Figure 5As shown, the point cloud processing system may include an encoding device 501 and a decoding device 502. The encoding device 501 can be a terminal or a server, and the decoding device 502 can also be a terminal or a server. The encoding device 501 and the decoding device 502 can establish a direct connection through wired communication or an indirect communication connection through wireless communication. The terminal can be a smartphone, tablet, laptop, desktop computer, smart voice interaction device, smartwatch, vehicle terminal, smart home appliance, aircraft, etc., but is not limited to these. The server can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms.

[0255] (1) For encoding device 501:

[0256] Encoding device 501 can acquire point cloud data (i.e., the geometric and attribute information of each point in the point cloud). Point cloud data can be acquired through scene capture or device generation. Scene capture point cloud data refers to acquiring point cloud data from a real-world visual scene through a capture device associated with encoding device 501. The capture device provides point cloud data acquisition services for encoding device 501 and can include, but is not limited to, any of the following: camera equipment, sensing equipment, and scanning equipment. Camera equipment can include ordinary cameras, stereo cameras, and light field cameras, etc. Sensing equipment can include laser equipment, radar equipment, etc., and scanning equipment can include 3D laser scanning equipment, etc. The capture device associated with encoding device 501 can refer to a hardware component installed in encoding device 501, such as a camera or sensor on a terminal. Alternatively, the capture device associated with encoding device 501 can refer to a hardware device connected to encoding device 501, such as a camera connected to a server. Device generation point cloud data refers to encoding device 501 generating point cloud data based on virtual objects (e.g., virtual 3D objects and virtual 3D scenes obtained through 3D modeling).

[0257] Encoding device 501 can encode the geometric information of each point in the point cloud to obtain a geometric bitstream, and can also encode the attribute information of each point in the point cloud to obtain an attribute bitstream. Specifically, the geometric encoding process of encoding device 501 mainly targets the geometric residual information of the points to be encoded in the point cloud. The geometric residual information can include signed residual values ​​of the points to be encoded in various directions (e.g., x, y, and z directions). In this embodiment, the encoding process of signed residual values ​​is decomposed into the encoding process of unsigned residual values ​​(i.e., the absolute value of the signed residual values, hereinafter referred to as residual values) and the encoding process of residual sign information. For the encoding process of unsigned residual values, encoding device 501 can determine a suitable encoding mode for the points to be encoded in each direction, and encode the unsigned residual values ​​of the points to be encoded in each direction according to the determined encoding mode. The geometric bitstream obtained by encoding device 501 can include the encoding of the unsigned residual values ​​of the points to be encoded in each direction, as well as the encoding of the residual sign information of the points to be encoded in each direction. Therefore, the encoding device 501 can transmit the encoded geometric bit stream and attribute bit stream together to the decoding device 502.

[0258] (2) For decoding device 502:

[0259] After receiving the compressed bitstream (i.e., attribute bitstream and geometric bitstream) transmitted by the encoding device 201, the decoding device 502 can decode the geometric bitstream to reconstruct the geometric information of each point in the point cloud, and can decode the attribute bitstream to reconstruct the attribute information of each point in the point cloud. Specifically, the geometric decoding process of decoding device 502 mainly targets the geometric residual encoding of the points to be decoded in the point cloud in various directions (e.g., x, y, and z directions). This geometric residual encoding can include encoding the residual values ​​and residual signs of the points to be decoded in each direction. For encoding the residual values ​​in each direction, decoding device 502 can determine a suitable encoding mode for the points to be decoded in each direction and decode the residual values ​​according to the determined encoding mode to reconstruct the unsigned residual values ​​in each direction. For encoding the residual information in each direction, decoding device 502 can decode the residual sign information of the points to be decoded in each direction. Based on this, decoding device 502 can reconstruct the signed residual values ​​in each direction, i.e., the reconstructed residual information of the points to be decoded, to reconstruct the geometric information of the points to be decoded. Thus, decoding device 202 can map the reconstructed geometric information and attribute information of each point in the point cloud to reconstruct the point cloud itself.

[0260] In this embodiment, the encoding device can determine a suitable encoding mode for the points to be encoded in the point cloud in various directions, thereby improving the geometric encoding efficiency of the point cloud; similarly, the decoding device can determine a suitable encoding mode for the points to be decoded in the point cloud in various directions, thereby improving the geometric decoding efficiency of the point cloud. It is understood that the point cloud processing system described in this embodiment is for the purpose of more clearly illustrating the technical solutions of this embodiment and does not constitute a limitation on the technical solutions provided in this embodiment. Those skilled in the art will recognize that, with the evolution of system architecture and the emergence of new business scenarios, the technical solutions provided in this embodiment are also applicable to similar technical problems.

[0261] The point cloud processing scheme provided in the embodiments of this application will be described in more detail below with reference to the accompanying drawings.

[0262] This application provides a point cloud processing method. This method mainly describes how the decoding end determines a suitable encoding mode for the points to be decoded in the point cloud in various directions, and how the content is decoded according to the determined encoding mode. This point cloud processing method can be executed by a computer device, which can be the decoding device 502 in the aforementioned point cloud processing system. Figure 6 As shown, the point cloud processing method may include the following steps S601-S603:

[0263] S601, acquire the encoded data of the point cloud.

[0264] S602, based on the encoded data, determine the encoding patterns of the points to be decoded in the point cloud in K directions.

[0265] In steps S601-S602, during the parsing of the point cloud, the encoded data of the point cloud can be obtained. Based on the encoded data of the point cloud, the encoding mode of the point to be decoded in the point cloud in K directions is determined. The point to be decoded can adopt the same encoding mode in K directions, or the point to be decoded can adopt the same encoding mode in K directions, where K is a positive integer.

[0266] For points to be decoded that use the same encoding mode in K directions, the encoding mode of the points to be decoded in the point cloud in the K directions is determined based on the encoded data. This can include, but is not limited to, any of the following:

[0267] (1) By default, the encoding and decoding ends use the same encoding mode in all K directions. Specifically, the encoded data may include default setting information, which can be the default settings of the decoding and encoding ends. In this case, the default encoding mode of the point to be decoded can be determined based on the default setting information. The default setting information can indicate that the encoding modes in the K directions are the same, so the point to be decoded uses the same default encoding mode in all K directions. More specifically, the default setting information can also indicate specific default encoding modes. For example, the default setting information indicates that the encoding modes of the point to be decoded are the same in the K directions, and the same encoding modes are the first encoding mode, the second encoding mode, and the third encoding mode.

[0268] (2) Determine the encoding mode by parsing the corresponding mode setting information from the encoding parameter set or encoding bitstream. Specifically, the encoding data may include mode setting information, which can be obtained by parsing the encoding parameter set or encoding bitstream (i.e., the geometric bitstream mentioned above) of the point cloud. In this case, if the mode setting information is shared by the points to be decoded in K directions, it can be determined that the points to be decoded adopt the same encoding mode in K directions. The encoding mode shared by the points to be decoded in K directions can be determined based on the mode setting information shared by the points to be decoded in K directions.

[0269] The mode setting information may include any one or both of the residual difference flag field (ptn_residual_divide_flag) or the placeholder difference flag field (ptn_numbits_divide_flag); based on the mode setting information shared by the point to be decoded in the K directions, the encoding mode shared by the point to be decoded in the K directions is determined, including any of the following cases:

[0270] ① The mode setting information may include a residual difference flag field. When the residual difference flag field is a target value (e.g., it can be 1) (i.e., when ptn_residual_divide_flag = 1), the encoding mode shared by the point to be decoded in K directions is determined to be the first encoding mode; when the residual difference flag field is a reference value (e.g., it can be 0) (i.e., when ptn_residual_divide_flag = 0), the encoding mode shared by the point to be decoded in K directions is determined to be the fourth encoding mode.

[0271] ② The mode setting information may include a placeholder difference flag field. When the placeholder difference flag field is set to a target value (i.e., when ptn_numbits_divide_flag = 1), the encoding mode shared by the point to be decoded in K directions is determined to be the second encoding mode; when the placeholder difference flag field is set to a reference value (i.e., when ptn_numbits_divide_flag = 0), the encoding mode shared by the point to be decoded in K directions is determined to be the fourth encoding mode.

[0272] ③ The mode setting information can include a residual difference flag field and a placeholder difference flag field. When both the residual difference flag field and the placeholder difference flag field are target values ​​(i.e., when ptn_residual_divide_flag = 1 and ptn_numbits_divide_flag = 1), the encoding mode shared by the point to be decoded in the K directions is determined to be the third encoding mode; when the residual difference flag field is a target value and the placeholder difference flag field is a reference value ... When ts_divide_flag = 0, the encoding mode shared by the point to be decoded in K directions is determined to be the first encoding mode; when the residual difference flag field is a reference value and the placeholder difference flag field is a target value (i.e., when ptn_residual_divide_flag = 0 and ptn_numbits_divide_flag = 1), the encoding mode shared by the point to be decoded in K directions is determined to be the second encoding mode; when both the residual difference flag field and the placeholder difference flag field are reference values ​​(i.e., when ptn_residual_divide_flag = 0 and ptn_numbits_divide_flag = 0), the encoding mode shared by the point to be decoded in K directions is determined to be the fourth encoding mode.

[0273] (3) Set a default decision threshold or parse the corresponding decision threshold from the point cloud's encoded bitstream to determine the encoding mode. Specifically, the encoded data may include a decision threshold, which can be a default setting by the decoder and encoder, or it can be obtained by parsing from the point cloud's encoded bitstream. In this case, mode decision information can be parsed from the point cloud's encoded bitstream, and the encoding mode of the point to be decoded in K directions can be determined based on the mode decision information and the decision threshold. Wherein:

[0274] ① The judgment threshold may include an encoding parsing threshold, and the mode judgment information may include the encoding parsing information of the point to be decoded in K directions. In this case, based on the mode judgment information and the judgment threshold, the encoding mode of the point to be decoded in the K directions is determined. This may include: when the point to be decoded uses the same encoding mode in the K directions, the statistical characteristic information of the encoding parsing information of the point to be decoded in the K directions can be determined, and based on the relationship between the statistical characteristic information and the encoding parsing threshold, the encoding mode shared by the point to be decoded in the K directions can be determined. The statistical characteristic information may include any of the following: the average value of the encoding parsing information of the point to be decoded in the K directions, the minimum value of the encoding parsing information of the point to be decoded in the K directions, and the maximum value of the encoding parsing information of the point to be decoded in the K directions.

[0275] In one implementation, the encoding parsing threshold may include a residual threshold (t1 / 2, t1>0), and the encoding parsing information may include residual parsing information. That is, the statistical characteristics of the residual parsing information of the point to be decoded in K directions can be determined, and the encoding mode shared by the point to be decoded in the K directions can be determined based on the relationship between the statistical characteristics and the residual threshold. More specifically, when the statistical characteristics are less than the residual threshold, the encoding mode shared by the point to be decoded in the K directions can be determined as the first encoding mode; when the statistical characteristics are greater than or equal to the residual threshold, the encoding mode shared by the point to be decoded in the K directions can be determined as the fourth encoding mode.

[0276] In another implementation, the encoding parsing threshold may include an occupied bit threshold (t² / 2, t²>0), and the encoding parsing information may include occupied bit parsing information. That is, the statistical characteristics of the occupied bit parsing information of the point to be decoded in K directions can be determined, and the encoding mode shared by the point to be decoded in the K directions can be determined based on the relationship between the statistical characteristics and the occupied bit threshold. More specifically, when the statistical characteristics are less than the occupied bit threshold, the encoding mode shared by the point to be decoded in the K directions can be determined as the second encoding mode; when the statistical characteristics are greater than or equal to the occupied bit threshold, the encoding mode shared by the point to be decoded in the K directions can be determined as the fourth encoding mode.

[0277] ② The determination threshold may include a quantization threshold, and the mode determination information may include quantization parameters shared by the point to be decoded in K directions. The point to be decoded uses the same encoding mode in K directions. In this case, the encoding mode of the point to be decoded in K directions is determined according to the mode determination information and the determination threshold. This may include: determining the encoding mode shared by the point to be decoded in K directions based on the relationship between the quantization parameters and the quantization threshold.

[0278] In one implementation, the quantization threshold may include a first quantization threshold (t3, t3>0). If the quantization parameter is less than the first quantization threshold, the encoding mode shared by the point to be decoded in the K directions can be determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode. If the quantization parameter is greater than or equal to the first quantization threshold, the encoding mode shared by the point to be decoded in the K directions can be determined to be the fourth encoding mode.

[0279] In another implementation, the quantization threshold may include a second quantization threshold (t4, t4>0). If the quantization parameter is greater than the second quantization threshold, the encoding mode shared by the point to be decoded in the K directions can be determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode. If the quantization parameter is less than or equal to the second quantization threshold, the encoding mode shared by the point to be decoded in the K directions can be determined to be the fourth encoding mode.

[0280] In another implementation, the quantization threshold may include a first quantization threshold (t3, t3>0) and a second quantization threshold (t4, t4>0), where the second quantization threshold is less than the first quantization threshold. If the quantization parameter is greater than the second quantization threshold and less than the first quantization threshold, then the encoding mode shared by the point to be decoded in the K directions can be determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode. If the quantization parameter is greater than or equal to the first quantization threshold, or less than or equal to the second quantization threshold, then the encoding mode shared by the point to be decoded in the K directions can be determined to be the fourth encoding mode.

[0281] ③ The decision threshold may include a bounding box threshold (t5), and the mode decision information may include the bounding box size of the prediction tree of the point cloud. The bounding box size may include dimensions in K directions. In this case, based on the mode decision information and the decision threshold, the encoding mode of the point to be decoded in the K directions is determined. This may include: when the point to be decoded uses the same encoding mode in the K directions, the target size feature value can be determined based on the dimensions in the K directions, and the encoding mode shared by the point to be decoded in the K directions can be determined based on the relationship between the target size feature value and the bounding box threshold. The target size feature value may be the ratio between the dimensions in any two of the K directions; for example, the bounding box size includes dimensions in three directions, namely the size in the x-direction (BoundingBoxSize). x BoundingBoxSize in the y-direction y and the size of the BoundingBoxSize in the z-direction z The target size feature value can be the size in the x-direction, BoundingBoxSize. x BoundingBoxSize (with z-axis dimension)z The ratio between (BoundingBoxSize) x / BoundingBoxSize z ).

[0282] For cases where the point to be decoded uses different encoding modes in K directions, the encoding mode of the point to be decoded in the point cloud in the K directions is determined based on the encoded data of the point cloud. This can include, but is not limited to, any of the following:

[0283] (1) The encoding and decoding ends use different encoding modes in the K directions by default. Specifically, the encoded data may include default setting information, which can be the default settings of the decoding and encoding ends. In this case, the default encoding mode of the point to be decoded can be determined according to the default setting information. The default setting information can indicate that the encoding modes in the K directions are different, so the point to be decoded uses different default encoding modes in each of the K directions. More specifically, the default setting information can also indicate specific default encoding modes. For example, the default setting information indicates that the encoding modes in the K directions (e.g., the x direction, y direction, and z direction) are different, and the encoding mode of the point to be decoded in the x direction is the first encoding mode, the encoding mode of the point to be decoded in the y direction is the second encoding mode, and the encoding mode of the point to be decoded in the z direction is the third encoding mode.

[0284] (2) Determine the encoding mode by parsing the corresponding mode setting information from the encoding parameter set or encoding bitstream. Specifically, the encoding data may include mode setting information, which can be obtained by parsing the encoding parameter set or encoding bitstream (i.e., the geometric bitstream mentioned above) of the point cloud. In this case, if the point to be decoded corresponds to a mode setting information in each of the K directions, it can be determined that the point to be decoded adopts different encoding modes in the K directions. The encoding mode of the point to be decoded in the corresponding direction can be determined based on the mode setting information corresponding to the point to be decoded in each direction.

[0285] Taking the k-th direction out of K directions as an example, the mode setting information of the point to be decoded in the k-th direction may include any one or both of the residual difference flag field (ptn_residual_divide_flag[k]) or the placeholder difference flag field (ptn_numbits_divide_flag[k]), where k is a positive integer less than or equal to K; based on the mode setting information of the point to be decoded in each direction, the encoding mode of the point to be decoded in the corresponding direction is determined, which may include:

[0286] ① The mode setting information may include a residual difference flag field. When the value of the residual difference flag field corresponding to the point to be decoded in the k-th direction is a target value (e.g., it can be 1) (i.e., when ptn_residual_divide_flag[k] = 1), the encoding mode of the point to be decoded in the k-th direction can be determined to be the first encoding mode; when the value of the residual difference flag field corresponding to the point to be decoded in the k-th direction is a reference value (e.g., it can be 0) (i.e., when ptn_residual_divide_flag[k] = 0), the encoding mode of the point to be decoded in the k-th direction can be determined to be the fourth encoding mode.

[0287] ② The mode setting information may include a placeholder difference flag field. When the value of the placeholder difference flag field corresponding to the point to be decoded in the k-th direction is the target value (i.e., when ptn_numbits_divide_flag[k] = 1), the encoding mode of the point to be decoded in the k-th direction can be determined to be the second encoding mode; when the value of the placeholder difference flag field corresponding to the point to be decoded in the k-th direction is the reference value (i.e., when ptn_numbits_divide_flag[k] = 0), the encoding mode of the point to be decoded in the k-th direction can be determined to be the fourth encoding mode.

[0288] ③ The mode setting information can include a residual difference flag field and a placeholder difference flag field. When the values ​​of the residual difference flag field and the placeholder difference flag field corresponding to the point to be decoded in the k-th direction are both target values ​​(i.e., when ptn_residual_divide_flag[k] = 1 and ptn_numbits_divide_flag[k] = 1), the encoding mode of the point to be decoded in the k-th direction can be determined to be the third encoding mode. When the value of the residual difference flag field corresponding to the point to be decoded in the k-th direction is the target value, and the values ​​of the placeholder difference flag fields are all reference values ​​(i.e., when ptn_residual_divide_flag[k] = 1 and ptn_numbits_divide_flag[k] = 1), the encoding mode of the point to be decoded in the k-th direction is the third encoding mode. When ts_divide_flag[k] = 0, the encoding mode of the point to be decoded in the k-th direction can be determined to be the first encoding mode; when the value of the residual difference flag field corresponding to the point to be decoded in the k-th direction is a reference value, and the value of the placeholder difference flag field is the target value (i.e., when ptn_residual_divide_flag[k] = 0 and ptn_numbits_divide_flag[k] = 1), the encoding mode of the point to be decoded in the k-th direction can be determined to be the second encoding mode; when the values ​​of the residual difference flag field and the placeholder difference flag field corresponding to the point to be decoded in the k-th direction are both reference values ​​(i.e., when ptn_residual_divide_flag[k] = 0 and ptn_numbits_divide_flag[k] = 0), the encoding mode of the point to be decoded in the k-th direction can be determined to be the fourth encoding mode.

[0289] (3) Set a default decision threshold or parse the corresponding decision threshold from the point cloud's encoded bitstream to determine the encoding mode. Specifically, the encoded data may include a decision threshold, which can be a default setting by the decoder and encoder, or it can be obtained by parsing from the point cloud's encoded bitstream. In this case, mode decision information can be parsed from the point cloud's encoded bitstream, and the encoding mode of the point to be decoded in K directions can be determined based on the mode decision information and the decision threshold. Wherein:

[0290] ① The judgment threshold may include the encoding parsing threshold, and the mode judgment information may include the encoding parsing information of the point to be decoded in K directions. In this case, the encoding mode of the point to be decoded in K directions is determined according to the mode judgment information and the judgment threshold. This may include: when the point to be decoded adopts different encoding modes in K directions, the encoding mode of the point to be decoded in the corresponding direction can be determined according to the relationship between the encoding parsing threshold and the encoding parsing information of the point to be decoded in each direction.

[0291] In one implementation, the encoding resolution threshold may include a residual threshold (t1 / 2, t1>0). Taking the k-th direction out of K directions as an example, the encoding resolution information of the point to be decoded in the k-th direction may include residual resolution information. That is, the encoding mode of the point to be decoded in the k-th direction can be determined based on the relationship between the residual threshold and the residual resolution information of the point to be decoded in the k-th direction. More specifically, when the residual resolution information of the point to be decoded in the k-th direction is less than the residual threshold, the encoding mode of the point to be decoded in the k-th direction can be determined as the first encoding mode; when the residual resolution information of the point to be decoded in the k-th direction is greater than or equal to the residual threshold, the encoding mode of the point to be decoded in the k-th direction can be determined as the fourth encoding mode.

[0292] In another implementation, the encoding parsing threshold may include an occupancy bit threshold (t² / 2, t²>0). Taking the k-th direction out of K directions as an example, the encoding parsing information of the point to be decoded in the k-th direction may include occupancy bit parsing information. That is, the encoding mode of the point to be decoded in the k-th direction can be determined based on the relationship between the occupancy bit threshold and the occupancy bit parsing information of the point to be decoded in the k-th direction. More specifically, when the occupancy bit parsing information of the point to be decoded in the k-th direction is less than the occupancy bit threshold, the encoding mode of the point to be decoded in the k-th direction can be determined as the second encoding mode; when the occupancy bit parsing information of the point to be decoded in the k-th direction is greater than or equal to the occupancy bit threshold, the encoding mode of the point to be decoded in the k-th direction can be determined as the fourth encoding mode.

[0293] ② The decision threshold may include a bounding box threshold (t5), and the mode decision information may include the bounding box size of the prediction tree of the point cloud. The bounding box size may include dimensions in K directions. In this case, based on the mode decision information and the decision threshold, the encoding mode of the point to be decoded in the K directions is determined. This may include: when the point to be decoded adopts different encoding modes in the K directions, determining the size feature value of each of the K directions based on the dimensions in the K directions, and determining the encoding mode of the point to be decoded in the corresponding direction based on the relationship between the bounding box threshold and the size feature value of each direction. The size feature value in the k-th direction may be the ratio between the size in the k-th direction and the size in other directions (any direction other than the k-th direction among the K directions); for example, the bounding box size includes dimensions in three directions, namely the size in the x-direction (BoundingBoxSize). x BoundingBoxSize in the y-direction y and the size of the BoundingBoxSize in the z-direction zThe dimensional characteristic value in the x-direction can be the size BoundingBoxSize in the x-direction. x BoundingBoxSize (with z-axis dimension) z The ratio between (BoundingBoxSize) x / BoundingBoxSize z ).

[0294] S603 decodes the points to be decoded according to the determined encoding pattern.

[0295] After determining the encoding patterns of the point to be decoded in K directions, the point can be decoded according to the determined encoding patterns. Decoding the point according to the determined encoding patterns may include: decoding the residual values ​​of the point to be decoded according to the determined encoding patterns to obtain the reconstructed residual values ​​of the point to be decoded in the K directions; decoding the residual symbols of the point to be decoded to obtain the reconstructed residual symbol information of the point to be decoded in the K directions; determining the reconstructed residual information of the point to be decoded based on the reconstructed residual values ​​and the reconstructed residual symbol information of the point to be decoded in the K directions; and reconstructing the geometric information of the point to be decoded based on the reconstructed residual information of the point to be decoded.

[0296] In other words, after decoding the residual values ​​of the point to be decoded according to a defined encoding pattern, the reconstructed residual values ​​of the point to be decoded in K directions are the reconstructed unsigned residual values ​​(i.e., the absolute values ​​of the residual values). It is also necessary to perform residual sign decoding on the point to be decoded to obtain the reconstructed residual sign information in K directions. Based on the reconstructed residual values ​​and the reconstructed residual sign information in K directions, the residual information of the point to be decoded can be reconstructed. For example, if the reconstructed residual values ​​of the point to be decoded in the x, y, and z directions form the coordinates (2, 5, 3), and the reconstructed residual sign information in the x, y, and z directions indicates that the residual value in the x-direction is negative, the reconstructed residual sign information in the y-direction indicates that the residual value in the z-direction is negative, then the reconstructed residual information of the point to be decoded is (-2, -5, -3).

[0297] Taking the k-th direction out of K directions as an example, this section introduces the residual value decoding process under different encoding modes:

[0298] (1) When the encoding mode of the point to be decoded in the k-th direction is the first encoding mode, the first encoding mode refers to the encoding mode after performing a remainder calculation on the residual value of the point to be decoded in the k-th direction. The decoding process of the residual value in the first encoding mode may include the following: parsing the bit field occupied by the point to be decoded in the k-th direction (i.e., ptn_residual_numbits[k]) to obtain the bit field occupied by the residual quotient A1[k] of the point to be decoded in the k-th direction B[k]; parsing the B[k] bit values ​​in the bit value field corresponding to the point to be decoded in the k-th direction (i.e., B[k] bit p) The residual quotient A1[k] is obtained by analyzing the residual remainder segment (i.e., ptn_residual_abs_remaining[k]) corresponding to the point to be decoded in the k-th direction; the residual remainder A2[k] of the point to be decoded in the k-th direction is obtained by analyzing the residual quotient A1[k] and the residual remainder A2[k]; the reconstructed residual value A[k] of the point to be decoded in the k-th direction is determined based on the residual quotient A1[k] and the residual remainder A2[k] (A[k] = A1[k] × d + A2[k]), where d represents the divisor in the remainder calculation. For example, if the remainder calculation is divided by 2 and the remainder is taken, then d = 2.

[0299] (2) When the encoding mode of the point to be decoded in the k-th direction is the second encoding mode, the second encoding mode refers to the encoding mode after taking the remainder of the number of bits occupied by the residual value of the point to be decoded in the k-th direction. The decoding process of the residual value under the second encoding mode may include the following: parsing the field of the number of bits occupied by the point to be decoded in the k-th direction (i.e., ptn_residual_numbits[k]) to obtain the quotient B1[k] of the point to be decoded in the k-th direction; parsing the field of the remainder of the point to be decoded in the k-th direction (i.e., ptn_numbits_remaining[k]). Obtain the placeholder remainder B2[k] of the point to be decoded in the k-th direction; based on the placeholder quotient B1[k] and the placeholder remainder B2[k], determine the number of bits B[k] occupied by the reconstructed residual value A[k] of the point to be decoded in the k-th direction (B[k] = B1[k] × d + B2[k]); parse the B[k] bit value (i.e., the value of B[k] bits of ptn_residual_value_per[k]) in the bit value field corresponding to the point to be decoded in the k-th direction to obtain the reconstructed residual value A[k] of the point to be decoded in the k-th direction, where d represents the divisor in the remainder calculation, for example, if the remainder calculation is divided by 2 and the remainder is taken, then d = 2.

[0300] (3) When the encoding mode of the point to be decoded in the k-th direction is the third encoding mode, the third encoding mode refers to the encoding mode after performing a remainder calculation on the residual value of the point to be decoded in the k-th direction, and then performing a remainder calculation on the number of bits occupied by the remainder calculation result. The residual value decoding process under the third encoding mode may include the following: parsing the number of bits occupied by the point to be decoded in the k-th direction (i.e., ptn_residual_numbits[k]) to obtain the quotient B1[k] of the point to be decoded in the k-th direction; parsing the quotient number field of the point to be decoded in the k-th direction (i.e., ptn_numbits_ Given the remaining[k]), obtain the remaining bit B2[k] of the point to be decoded in the k-th direction; based on the remaining bit quotient B1[k] and the remaining bit B2[k], determine the number of bits B[k] occupied by the residual quotient A1[k] of the point to be decoded in the k-th direction (B[k] = B1[k] × d + B2[k]); parse the B[k] bit value (i.e., the B[k] bits of ptn_residual_value_per[k]) in the bit value field corresponding to the point to be decoded in the k-th direction to obtain the residual quotient A1[k]; parse the residual remainder field (i.e., ptn_residual_value_per[k]) corresponding to the point to be decoded in the k-th direction. If dual_abs_remaining[k]), then the residual A2[k] of the point to be decoded in the k-th direction is obtained; based on the residual quotient A1[k] and the residual A2[k], the reconstruction residual value A[k] of the point to be decoded in the k-th direction is determined (A[k]=A1[k]×d+A2[k]), where d represents the divisor in the remainder calculation. For example, if the remainder calculation is to divide by 2 and take the remainder, then d=2.

[0301] (4) When the encoding mode of the point to be decoded in the k-th direction is the fourth encoding mode, the fourth encoding mode refers to the encoding mode in which the residual value of the point to be decoded in the k-th direction is not encoded by modulo calculation, that is, the residual value of the point to be decoded in the k-th direction is directly encoded. The residual value decoding process in the fourth encoding mode may include the following: parsing the bit field occupied by the point to be decoded in the k-th direction (i.e., ptn_residual_numbits[k]) to obtain the bit field occupied by the residual value A[k] of the point to be decoded in the k-th direction B[k]; parsing the value of B[k] bits in the bit value field corresponding to the point to be decoded in the k-th direction (i.e., the value of B[k] bits of ptn_residual_value_per[k]) to obtain the residual value A[k] of the point to be decoded in the k-th direction.

[0302] After introducing the residual value decoding process, this section introduces the residual symbol decoding process. By performing residual symbol decoding on the point to be decoded, the reconstructed residual symbol information of the point to be decoded in K directions can be obtained. Specifically, it can include any of the following methods:

[0303] (1) Directly parse the symbol information in the K directions. Specifically, the residual symbol codes of the point to be decoded in the K directions can be read from the encoded bitstream of the point cloud, and then the residual symbol codes of the point to be decoded in the K directions can be parsed to obtain the reconstructed residual symbol information of the point to be decoded in the K directions.

[0304] (2) Determine the symbol association relationship between the point to be decoded and its predecessor (i.e., the first-generation parent node mentioned in the predictive coding technique described above) by default setting or parsing the symbol identifier information. Specifically, the symbol identifier information (signFlag) can be obtained. The symbol identifier information can be the default setting of the encoder and decoder, or it can be parsed from the coding parameter set or coding bitstream of the point cloud. Based on the value of the symbol identifier information, the symbol association relationship between the point to be decoded and its predecessor can be determined. For example, when the value of the symbol identifier information is a target value (e.g., it can be 1) (i.e., when signFlag = 1), it can be determined that there is a symbol association relationship between the point to be decoded and its predecessor. When the value of the symbol identifier information is a reference value (e.g., it can be 0) (i.e., when signFlag = 0), it can be determined that there is a symbol association relationship between the point to be decoded and its predecessor. There is no symbol association relationship. If there is a symbol association relationship between the point to be decoded and its predecessor, the reconstruction residual symbol information of the point to be decoded in the K directions can be determined based on the reconstruction residual symbol information of the predecessor in the K directions. For example, the reconstruction residual symbol information of the point to be decoded in the K directions corresponds to the reconstruction residual symbol information of the predecessor in the K directions in the same direction. If there is no symbol association relationship between the point to be decoded and its predecessor, the residual symbol encoding of the point to be decoded in the K directions is read from the encoded bitstream of the point cloud, and the residual symbol encoding of the point to be decoded in the K directions is parsed to obtain the reconstruction residual symbol information of the point to be decoded in the K directions.

[0305] The process of parsing the residual symbol encoding of the point to be decoded in K directions to obtain the reconstructed residual symbol information of the point to be decoded in K directions can include any of the following:

[0306] The first method is to directly parse the residual symbol encoding of the point to be decoded in the K directions. This can be understood as directly parsing the ptn_residual_sign_flag (i.e., residual symbol field) fields corresponding to the point to be decoded in the K directions.

[0307] The second approach uses a K2-context model to parse the residual symbol encoding of the point to be decoded in K directions. This can be understood as using a K2-context model to parse the ptn_residual_sign_flag (i.e., the residual symbol field) corresponding to the point to be decoded in K directions, where K2 is a positive integer less than or equal to K.

[0308] The third method involves parsing the encoded bitstream of the point to be decoded in K directions based on the reconstructed residual values ​​of the point to be decoded, the distance between the point to be decoded and its predecessor point, and the distance between the predecessor point and its parent node, to obtain the residual symbol information (i.e., symbols) of the point to be decoded in K directions.

[0309] Specifically, let the point to be decoded be P i The preceding point of the point to be decoded is P. i-1 The parent node P of the previous order point i-2 Taking the K directions as three directions—x, y, and z—as an example, based on the point P to be decoded... i The absolute value of the residual x r y r , z r Preorder point P i-1 To the parent node P of the previous order point i-2 The process of decoding the encoded bitstream of the point to be decoded to obtain the symbol of the residual value of the point to be decoded, given the distance d0, can be described as follows:

[0310] If 0 represents a positive sign and 1 represents a negative sign, then the possible sign combinations for the residual values ​​in the x, y, and z directions are 000, 001, 010, 011, 100, 101, 110, and 111, a total of 8. The sign of the residual value is combined with the absolute value of the residual, x. r y r , z r Eight possible combinations of residual values ​​(x) were obtained. r y r , z r ), (x r y r -z r ), (x r , -y r , z r ), (x r , -y r -z r ), (-x r y r , z r ), (-x r y r -z r ), (-x r , -yr , z r ), (-x r , -y r -z r );

[0311] The eight possible combinations of residual values ​​are respectively associated with the preceding point P. i-1 coordinates (x) i-1 y i-1 , z i-1 Adding them together, we get 8 possible points P. j and its coordinate values ​​(x) j y j , z j );

[0312] Calculate each possible point P j to the previous point P i-1 Parent node P i-2 distance d j ;

[0313] Compare d j In the combination of d0 and the sign of the deleted residual value, d j For cases where the value is less than d0, there are N possible signs for the remaining residual value, which are numbered sequentially as 0, 1, 2, ..., N-1.

[0314] Based on the feasibility of the sign of the residual value and its number, the code stream of the point to be decoded is decoded to obtain the point P to be decoded. i The sign of the residual value.

[0315] The actual number of the residual value's symbol is decoded in binary form from high to low bits. When decoding the p-th bit of the actual number, the p-th bit is set to 1, and the remaining undecoded bits are set to 0. The decimal value of the resulting number is denoted as n. If n > N-1, the p-th bit of the number is 0; otherwise, context-based arithmetic decoding is performed to obtain the value of the p-th bit of the actual number. The next bit is decoded until 3 bits are decoded to obtain the actual number of the residual value's symbol. Based on the actual number, the corresponding symbol of the residual value is found among the feasible symbols of the residual value, and the point to be decoded, P, is obtained. i The sign of the residual value.

[0316] After obtaining the reconstruction residual values of the to-be-decoded point in K directions and the reconstruction residual sign information of the to-be-decoded point in K directions, the reconstruction residual information of the to-be-decoded point can be determined according to the reconstruction residual values of the to-be-decoded point in K directions and the reconstruction residual sign information of the to-be-decoded point in K directions. After determining the reconstruction residual information of the to-be-decoded point, the geometric information of the to-be-decoded point can be reconstructed according to the reconstruction residual information of the to-be-decoded point. Specifically, the predicted geometric information of the to-be-decoded point can be obtained, and according to the predicted geometric information of the to-be-decoded point and the reconstruction residual information, the geometric information of the to-be-decoded point is reconstructed, that is, the reconstructed geometric information of the to-be-decoded point is obtained. Among them, the predicted geometric information of the to-be-decoded point can be predicted by means of a prediction tree. Specifically, the prediction tree of the point cloud can be used to reflect the connection relationship between points in the point cloud and can be used to indicate the prediction mode of points in the point cloud (that is, the prediction mode mentioned when introducing the prediction coding technology前文), so that the to-be-decoded point can be predicted according to the prediction mode of the to-be-decoded point to obtain the predicted geometric information of the to-be-decoded point.

[0317] It should be noted that the specific decoding process of the embodiments of the present application is carried out using a context model. Specifically:

[0318] (1) K1 context models ctx_residual_eq0[k] (k = 1, 2,..., K1) can be used to parse the ptn_residual_eq0_flag corresponding to the to-be-decoded point in K directions. Among them, K1 is a positive integer less than or equal to K. When K1 is equal to K, it can be shown that the context models used in different directions are independent of each other. For example, 3 context models (the first context model, the second context model, and the third context model) are used to parse the ptn_residual_eq0_flag corresponding to the x direction, y direction, and z direction. The x direction is associated with the first context model, the y direction is associated with the second context model, and the z direction is associated with the third context model; when K1 < K, it can be shown that there are context models used in different directions that are associated with each other; for example, 2 context models (the first context model and the second context model) are used to parse the ptn_residual_eq0_flag corresponding to the x direction, y direction, and z direction. The x direction and the y direction are associated with the first context model, and the z direction is associated with the second context model.

[0319] (2) K2 context models ctx_residual_sign[k] (k = 1, 2,..., K2) can be used to parse the ptn_residual_sign_flag corresponding to the decoding point in K directions. Here, K2 is a positive integer less than or equal to K. When K2 equals K, it can be shown that the context models used in different directions are independent of each other. When K2 < K, it can be shown that there are correlations between the context models used in different directions.

[0320] (3) For the B[k] bit values in the bit value fields corresponding to the decoding point in K directions, K3 × N context models ctxNumBits[k][N] (k = 1, 2,..., K3) can be used to parse them. Here, K3 is a positive integer less than or equal to K, and N is a positive integer greater than or equal to B[k]. Similarly, when K3 equals K, it can be shown that the groups of context models (including N context models) used in different directions are independent of each other. When K2 < K, it can be shown that there are correlations between the groups of context models (including N context models) used in different directions. Taking the k-th direction among the K directions as an example, N context models can be used to parse the B[k] bit values in the bit value field corresponding to the decoding point in the k-th direction, which can specifically include any of the following situations:

[0321] ① N independent context models can be used to parse the B[k] bit values, where N equals B[k]. That is, the context models used to parse each bit value in the B[k] bit values are independently selected from N context models. For example, assume B[k] = 5, and the 5-bit value can be represented as b4, b3, b2, b1, b0. The first context model is used to parse b4, the second context model is used to parse b3, the third context model is used to parse b2, the fourth context model is used to parse b1, and the fifth context model is used to parse b0.

[0322] ② N fully correlated context models can be used to parse the B[k] bit values, where N is greater than B[k]. That is, the context model used to parse the a-th bit value in the B[k] bit values is selected from N context models depending on the parsing results of the previous a - 1 bit values before the a-th bit value, where a is a positive integer less than or equal to B[k]. For example, assume B[k] = 5, and the 5-bit value can be represented as b4, b3, b2, b1, b0. Using N fully correlated context models to parse the 5-bit value can be expressed as follows:

[0323] For b0, ctxIdx = 0;

[0324] For b1, ctxIdx = 1 + b0;

[0325] For b2, ctxIdx = 3 + b1b0;

[0326] For b3, ctxIdx = 7 + b2b1b0;

[0327] For b4, ctxIdx = 15 + b3b2b1b0;

[0328] Wherein, for b0, ctxIdx = 0, it means that the context model with index 0 among the N context models is used to parse b0; for b1, ctxIdx = 1 + b0, it means that the selection of the context model used to parse b1 depends on the parsing result of b0, that is, the context model with index 1 + b0 among the N context models is used to parse b1; b4, b3, b2 are similar to b1, and will not be described in detail here.

[0329] ③ The B[k]-bit value can be parsed using N partially related context models, where N is greater than B[k]. That is, the context model used to parse the a1-th bit in the B[k]-bit value is selected from N context models, depending on the parsing results of the bits preceding the a1-th bit; the context model used to parse the a2-th bit in the B[k]-bit value is selected independently from the N context models, where a1 and a2 are both positive integers less than or equal to B[k], and a1 is not equal to a2. For example, assuming B[k] = 5, the 5-bit value can be represented as b4, b3, b2, b1, b0. Using N partially related context models to parse the 5-bit value, it can be represented as follows:

[0330] For b0, ctxIdx = 0

[0331] For b1, ctxIdx = 1 + b0

[0332] For b2, ctxIdx = 3 + b1b0

[0333] For b3, ctxIdx = 7

[0334] For b4, ctxIdx = 8

[0335] For b0, ctxIdx = 0, which means that the context model with index 0 out of N context models is used to parse b0. b4 and b3 are similar to b1 and will not be described in detail here. For b1, ctxIdx = 1 + b0, which means that the selection of the context model used to parse b1 depends on the parsing result of b0. That is, the context model with index 1 + b0 out of N context models is used to parse b1. b2 is similar to b1 and will not be described in detail here.

[0336] (4) K4 context models can be used to parse the residual digit fields (ptn_residual_abs_remaining) corresponding to the point to be decoded in K directions. When the coding mode of the point to be decoded in K directions is the first coding mode or the third coding mode, ptn_residual_abs_remaining is involved in the parsing process, and the ptn_residual_abs_remaining corresponding to the point to be decoded in K directions is parsed using K4 context models. Here, K4 is a positive integer less than or equal to K. When K4 equals K, it can indicate that the context models used in different directions are independent of each other. When K4 < K, it can indicate that there are context models used in different directions that are correlated with each other.

[0337] (5) K5 context models can be used to parse the placeholder digit fields (ptn_numbits_remaining) corresponding to the point to be decoded in K directions. When the coding mode of the point to be decoded in K directions is the second coding mode or the third coding mode, ptn_numbits_remaining is involved in the coding process, and the ptn_numbits_remaining corresponding to the point to be decoded in K directions is parsed using K5 context models. Here, K5 is a positive integer less than or equal to K. When K5 equals K, it can indicate that the context models used in different directions are independent of each other. When K5 < K, it can indicate that there are context models used in different directions that are correlated with each other.

[0338] In the embodiments of the present application, when it is necessary to decode the point to be decoded in the point cloud, the encoded data of the point cloud can be obtained, and according to the encoded data, the coding mode of the point to be decoded in the point cloud in each direction can be determined, and the point to be decoded can be decoded according to the determined coding mode. In the embodiments of the present application, the encoded data can determine a suitable coding mode for each direction of the point to be decoded for decoding, which can improve the geometric decoding efficiency of the point cloud.

[0339] The embodiments of the present application provide a point cloud processing method. This point cloud processing method mainly introduces the content of determining a suitable coding mode for the point to be encoded in the point cloud in each direction by the encoding end and encoding according to the determined coding mode. This point cloud processing method can be executed by a computer device, and the computer device can be the encoding device 501 in the above-mentioned point cloud processing system. As Figure 7 shown, this point cloud processing method may include the following steps S701 - step S703:

[0340] S701, set the encoded data of the point cloud.

[0341] S702, based on the encoded data, determine the encoding pattern of the points to be encoded in the point cloud in K directions.

[0342] In steps S701-S702, during the point cloud encoding process, the encoding data of the point cloud can be set. Based on the encoding data of the point cloud, the encoding mode of the point to be encoded in the point cloud in K directions is determined. The point to be encoded can adopt the same encoding mode in K directions, or the point to be encoded can adopt the same encoding mode in K directions, where K is a positive integer.

[0343] For points to be encoded that use the same encoding pattern in K directions, the encoding pattern of the points to be encoded in the point cloud in the K directions is determined based on the encoding data. This can include, but is not limited to, any of the following:

[0344] (1) By default, the encoding and decoding ends use the same encoding mode in all K directions. Specifically, the encoded data may include default setting information, which can be the default settings of the encoding and decoding ends. In this case, the default encoding mode of the point to be encoded in the K directions can be determined based on the default setting information. The default setting information can indicate that the encoding modes in the K directions are the same, so the point to be encoded uses the same default encoding mode in all K directions. More specifically, the default setting information can also indicate a specific default encoding mode. For example, the default setting information indicates that the encoding modes of the point to be encoded in the K directions are the same, and the same encoding mode is the first encoding mode, the second encoding mode, or the third encoding mode.

[0345] (2) The encoding end sets mode setting information to determine the encoding mode. The mode setting information is written into the encoding parameter set or encoding bitstream of the point cloud. Specifically, the encoding data may include mode setting information. In this case, if the mode setting information is shared by the points to be encoded in K directions, it can be determined that the points to be encoded adopt the same encoding mode in K directions. The encoding mode shared by the points to be encoded in K directions can be determined based on the mode setting information shared by the points to be encoded in K directions.

[0346] The mode setting information may include any one or both of the residual difference flag field (ptn_residual_divide_flag) or the placeholder difference flag field (ptn_numbits_divide_flag); based on the mode setting information shared by the point to be encoded in the K directions, the encoding mode shared by the point to be encoded in the K directions is determined, including any of the following cases:

[0347] The mode setting information may include a residual difference flag field. When the residual difference flag field is set to a target value (e.g., 1) (i.e., when ptn_residual_divide_flag is set to 1), the encoding mode shared by the point to be encoded in K directions is determined to be the first encoding mode; when the residual difference flag field is set to a reference value (e.g., 0) (i.e., when ptn_residual_divide_flag is set to 0), the encoding mode shared by the point to be encoded in K directions is determined to be the fourth encoding mode.

[0348] ② The mode setting information may include a placeholder difference flag field. When the placeholder difference flag field is set to the target value (i.e., when ptn_numbits_divide_flag is set to 1), the encoding mode shared by the point to be encoded in K directions is determined to be the second encoding mode; when the placeholder difference flag field is set to the reference value (i.e., when ptn_numbits_divide_flag is set to 0), the encoding mode shared by the point to be encoded in K directions is determined to be the fourth encoding mode.

[0349] ③ The mode setting information may include a residual difference flag field and a placeholder difference flag field. When both the residual difference flag field and the placeholder difference flag field are set to the target value (i.e., when both ptn_residual_divide_flag and ptn_numbits_divide_flag are set to 1), the encoding mode shared by the point to be encoded in K directions is determined to be the third encoding mode; when the residual difference flag field is set to the target value and the placeholder difference flag fields are all set to the reference value (i.e., when ptn_residual_divide_flag is set to 1 and ptn_numbits_divide_flag is set to 0), the encoding mode shared by the point to be encoded in K directions is determined to be the first encoding mode; when the residual difference flag field is set to the reference value and the placeholder difference flag field is set to the reference value, the encoding mode shared by the point to be encoded in K directions is determined to be the first encoding mode; when the residual difference flag field is set to the reference value and the placeholder difference flag field is set to the reference value, the encoding mode shared by the point to be encoded in K directions is determined to be the first encoding mode; when the residual difference flag field is set to the reference value and the placeholder difference flag field is set to the reference value, the encoding mode shared by the point to be encoded in K directions is determined to be the third encoding mode. When all flag fields are set to target values ​​(i.e., when ptn_residual_divide_flag is set to 0 and ptn_numbits_divide_flag is set to 1), the encoding mode shared by the point to be encoded in the K directions is determined to be the second encoding mode; when both the residual difference flag field and the placeholder difference flag field are set to reference values ​​(i.e., when ptn_residual_divide_flag and ptn_numbits_divide_flag are set to 0), the encoding mode shared by the point to be encoded in the K directions is determined to be the fourth encoding mode.

[0350] (3) The encoding end sets a decision threshold to determine the encoding mode. Specifically, the encoding data may include a decision threshold, which can be a default setting of the encoding and decoding ends, or the decision threshold can be written into the encoding parameter set or encoding stream of the point cloud. In this case, mode determination information can be obtained, and the encoding mode of the point to be encoded in K directions can be determined based on the mode determination information and the decision threshold. Wherein:

[0351] ① The judgment threshold may include an encoding information threshold, and the mode judgment information may include the encoding information of the point to be encoded in K directions. In this case, based on the mode judgment information and the judgment threshold, the encoding mode of the point to be encoded in the K directions is determined. This may include: when the point to be encoded uses the same encoding mode in the K directions, the statistical characteristic information of the encoding information of the point to be encoded in the K directions can be determined, and the encoding mode shared by the point to be encoded in the K directions can be determined based on the relationship between the statistical characteristic information and the encoding information threshold. The statistical characteristic information may include any of the following: the average value of the encoding information of the point to be encoded in the K directions, the minimum value of the encoding information of the point to be encoded in the K directions, and the maximum value of the encoding information of the point to be encoded in the K directions.

[0352] In one implementation, the encoding information threshold may include a residual threshold (t1, t1>0), and the information to be encoded may include residual values. That is, the statistical characteristics of the residual values ​​of the point to be encoded in K directions can be determined, and the encoding pattern shared by the point to be encoded in the K directions can be determined based on the relationship between the statistical characteristics and the residual threshold. More specifically, when the statistical characteristics are greater than the residual threshold, the encoding pattern shared by the point to be encoded in the K directions can be determined as the first encoding pattern; when the statistical characteristics are less than or equal to the residual threshold, the encoding pattern shared by the point to be encoded in the K directions can be determined as the fourth encoding pattern.

[0353] In another implementation, the encoding information threshold may include an occupied bit threshold (t2, t2>0), and the information to be encoded may include the occupied bit number of the residual value. That is, the statistical characteristics of the occupied bit number of the residual value of the point to be encoded in K directions can be determined, and the encoding mode shared by the point to be encoded in the K directions can be determined based on the relationship between the statistical characteristics and the occupied bit threshold. More specifically, when the statistical characteristics are greater than the occupied bit threshold, the encoding mode shared by the point to be encoded in the K directions can be determined as the second encoding mode; when the statistical characteristics are less than or equal to the occupied bit threshold, the encoding mode shared by the point to be encoded in the K directions can be determined as the fourth encoding mode.

[0354] ② The determination threshold may include the quantization threshold, and the mode determination information may include the quantization parameters shared by the point to be encoded in K directions. The point to be encoded uses the same encoding mode in K directions. In this case, the encoding mode of the point to be encoded in K directions is determined according to the mode determination information and the determination threshold. This may include: determining the encoding mode shared by the point to be encoded in K directions according to the relationship between the quantization parameters and the quantization threshold.

[0355] In one implementation, the quantization threshold may include a first quantization threshold (t3, t3>0). If the quantization parameter is less than the first quantization threshold, the coding mode shared by the point to be encoded in the K directions can be determined to be any one of the first coding mode, the second coding mode, or the third coding mode. If the quantization parameter is greater than or equal to the first quantization threshold, the coding mode shared by the point to be encoded in the K directions can be determined to be the fourth coding mode.

[0356] In another implementation, the quantization threshold may include a second quantization threshold (t4, t4>0). If the quantization parameter is greater than the second quantization threshold, the coding mode shared by the point to be encoded in the K directions can be determined to be any one of the first coding mode, the second coding mode, or the third coding mode. If the quantization parameter is less than or equal to the second quantization threshold, the coding mode shared by the point to be encoded in the K directions can be determined to be the fourth coding mode.

[0357] In another implementation, the quantization threshold may include a first quantization threshold (t3, t3>0) and a second quantization threshold (t4, t4>0), where the second quantization threshold is less than the first quantization threshold. If the quantization parameter is greater than the second quantization threshold and less than the first quantization threshold, then the coding mode shared by the point to be encoded in the K directions can be determined to be any one of the first coding mode, the second coding mode, or the third coding mode. If the quantization parameter is less than or equal to the second quantization threshold, or greater than or equal to the first quantization threshold, then the coding mode shared by the point to be encoded in the K directions can be determined to be the fourth coding mode.

[0358] ③ The decision threshold may include a bounding box threshold (t5), and the mode decision information may include the bounding box size of the prediction tree of the point cloud. The bounding box size may include dimensions in K directions. In this case, based on the mode decision information and the decision threshold, the encoding mode of the point to be encoded in the K directions is determined. This may include: when the point to be encoded uses the same encoding mode in the K directions, the target size feature value can be determined based on the dimensions in the K directions, and the encoding mode shared by the point to be encoded in the K directions can be determined based on the relationship between the target size feature value and the bounding box threshold. The target size feature value may be the ratio between the dimensions in any two of the K directions; for example, the bounding box size includes dimensions in three directions, namely the size in the x-direction (BoundingBoxSize). x BoundingBoxSize in the y-direction y and the size of the BoundingBoxSize in the z-direction z The target size feature value can be the size in the x-direction, BoundingBoxSize. x BoundingBoxSize (with z-axis dimension) z The ratio between (BoundingBoxSize) x / BoundingBoxSize z ).

[0359] It should be noted that the encoding mode obtained by setting the judgment threshold can be written into the encoding parameter set of the point cloud or the encoding bitstream of the point cloud in the form of mode setting information.

[0360] For cases where different encoding modes are used for the points to be encoded in K directions, the encoding modes of the points to be encoded in the point cloud in the K directions are determined based on the encoded data of the point cloud. These modes may include, but are not limited to, any of the following:

[0361] (1) The encoding and decoding ends use different encoding modes in the K directions by default. Specifically, the encoded data may include default setting information, which can be the default settings of the encoding and decoding ends. In this case, the default encoding mode of the point to be encoded in the K directions can be determined based on the default setting information. The default setting information can indicate that the encoding modes in the K directions are different, so the point to be encoded uses different default encoding modes in each of the K directions. More specifically, the default setting information can also indicate specific default encoding modes. For example, the default setting information indicates that the encoding modes in the K directions (e.g., the x, y, and z directions) are different, and the encoding mode of the point to be encoded in the x direction is the first encoding mode, the encoding mode of the point to be encoded in the y direction is the second encoding mode, and the encoding mode of the point to be encoded in the z direction is the third encoding mode.

[0362] (2) The encoding end sets mode setting information to determine the encoding mode. The mode setting information is written into the encoding parameter set or encoding bitstream of the point cloud. Specifically, the encoding data may include mode setting information. In this case, if the point to be encoded corresponds to a mode setting information in each of the K directions, it can be determined that the point to be encoded adopts different encoding modes in the K directions. The encoding mode of the point to be encoded in the corresponding direction can be determined according to the mode setting information corresponding to the point to be encoded in each direction.

[0363] Taking the k-th direction out of K directions as an example, the mode setting information of the point to be encoded in the k-th direction may include any one or both of the residual difference flag field (ptn_residual_divide_flag[k]) or the placeholder difference flag field (ptn_numbits_divide_flag[k]), where k is a positive integer less than or equal to K; based on the mode setting information of the point to be encoded in each direction, the encoding mode of the point to be encoded in the corresponding direction is determined, which may include:

[0364] ① The mode setting information may include a residual difference flag field. When the residual difference flag field corresponding to the point to be encoded in the k-th direction is set to the target value (e.g., it can be 1) (i.e., when ptn_residual_divide_flag[k] is set to 1), the encoding mode of the point to be encoded in the k-th direction can be determined to be the first encoding mode; when the residual difference flag field corresponding to the point to be encoded in the k-th direction is set to the reference value (e.g., it can be 0) (i.e., when ptn_residual_divide_flag[k] is set to 0), the encoding mode of the point to be encoded in the k-th direction can be determined to be the fourth encoding mode.

[0365] ② The mode setting information may include a placeholder difference flag field. When the placeholder difference flag field corresponding to the point to be encoded in the k-th direction is set to the target value (i.e., when ptn_numbits_divide_flag[k] is set to 1), the encoding mode of the point to be encoded in the k-th direction can be determined to be the second encoding mode; when the placeholder difference flag field corresponding to the point to be encoded in the k-th direction is set to the reference value (i.e., when ptn_numbits_divide_flag[k] is set to 0), the encoding mode of the point to be encoded in the k-th direction can be determined to be the fourth encoding mode.

[0366] ③ The mode setting information can include a residual difference flag field and a placeholder difference flag field. When both the residual difference flag field and the placeholder difference flag field corresponding to the point to be encoded in the k-th direction are set to the target value (i.e., when both ptn_residual_divide_flag[k] and ptn_numbits_divide_flag[k] are set to 1), the encoding mode of the point to be encoded in the k-th direction can be determined to be the third encoding mode. When the residual difference flag field corresponding to the point to be encoded in the k-th direction is set to the target value, and the placeholder difference flag fields are all set to the reference value (i.e., when ptn_residual_divide_flag[k] is set to 1 and ptn_numbits_divide_flag[k] is set to 0), the encoding mode of the point to be encoded in the k-th direction can be determined to be the first encoding mode. When the residual difference flag field corresponding to the point to be encoded in the k-th direction is set to the reference value, and the placeholder difference flag fields are all set to the target value (i.e., when ptn_residual_divide_flag[k] is set to 1 and ptn_numbits_divide_flag[k] is set to 0), the encoding mode of the point to be encoded in the k-th direction can be determined to be the first encoding mode. When dual_divide_flag[k] is set to 0 and ptn_numbits_divide_flag[k] is set to 1, the encoding mode of the point to be encoded in the k-th direction can be determined to be the second encoding mode; when the residual difference flag field and the placeholder difference flag field corresponding to the point to be encoded in the k-th direction are both set to reference values ​​(i.e., when ptn_residual_divide_flag[k] and ptn_numbits_divide_flag[k] are both set to 0), the encoding mode of the point to be encoded in the k-th direction can be determined to be the fourth encoding mode.

[0367] (3) The encoding end sets a decision threshold to determine the encoding mode. Specifically, the encoding data may include a decision threshold, which can be a default setting of the encoding and decoding ends, or the decision threshold can be written into the encoding parameter set or encoding stream of the point cloud. In this case, mode determination information can be obtained, and the encoding mode of the point to be encoded in K directions can be determined based on the mode determination information and the decision threshold. Wherein:

[0368] The determination threshold may include the encoding information threshold, and the mode determination information may include the encoding information of the point to be encoded in K directions. In this case, the encoding mode of the point to be encoded in K directions is determined according to the mode determination information and the determination threshold. This may include: when the point to be encoded adopts different encoding modes in K directions, the encoding mode of the point to be encoded in the corresponding direction can be determined according to the encoding information threshold and the size relationship between the encoding information of the point to be encoded in each direction.

[0369] In one implementation, the encoding information threshold may include a residual threshold (t1, t1>0). Taking the k-th direction out of K directions as an example, the encoding information of the point to be encoded in the k-th direction may include the residual value. That is, the encoding mode of the point to be encoded in the k-th direction can be determined based on the relationship between the residual threshold and the residual value of the point to be encoded in the k-th direction. More specifically, when the residual value of the point to be encoded in the k-th direction is greater than the residual threshold, the encoding mode of the point to be encoded in the k-th direction can be determined as the first encoding mode; when the residual value of the point to be encoded in the k-th direction is less than or equal to the residual threshold, the encoding mode of the point to be encoded in the k-th direction can be determined as the fourth encoding mode.

[0370] In another implementation, the encoding parsing threshold may include an occupancy bit threshold (t2, t2>0). Taking the k-th direction out of K directions as an example, the information to be encoded at the point to be encoded in the k-th direction may include the number of bits occupied by the residual value. That is, the encoding mode of the point to be encoded in the k-th direction can be determined based on the relationship between the occupancy bit threshold and the number of bits occupied by the residual value of the point to be encoded in the k-th direction. More specifically, when the number of bits occupied by the residual value of the point to be encoded in the k-th direction is greater than the occupancy bit threshold, the encoding mode of the point to be encoded in the k-th direction can be determined as the second encoding mode; when the number of bits occupied by the residual value of the point to be encoded in the k-th direction is less than or equal to the occupancy bit threshold, the encoding mode of the point to be encoded in the k-th direction can be determined as the fourth encoding mode.

[0371] ② The decision threshold may include a bounding box threshold (t5), and the mode decision information may include the bounding box size of the prediction tree of the point cloud. The bounding box size may include dimensions in K directions. In this case, based on the mode decision information and the decision threshold, the encoding mode of the point to be encoded in the K directions is determined. This may include: when the point to be encoded adopts different encoding modes in the K directions, determining the size feature value of each of the K directions based on the dimensions in the K directions, and determining the encoding mode of the point to be encoded in the corresponding direction based on the relationship between the bounding box threshold and the size feature value of each direction. The size feature value in the k-th direction may be the ratio between the size in the k-th direction and the size in other directions (any direction other than the k-th direction in the K directions); for example, the bounding box size includes dimensions in three directions, namely the size in the x-direction (BoundingBoxSize). x BoundingBoxSize in the y-direction y and the size of the BoundingBoxSize in the z-direction z The dimensional characteristic value in the x-direction can be the size BoundingBoxSize in the x-direction.x BoundingBoxSize (with z-axis dimension) z The ratio between (BoundingBoxSize) x / BoundingBoxSize z ).

[0372] It should be noted that the encoding mode obtained by setting the judgment threshold can be written into the encoding parameter set of the point cloud or the encoding bitstream of the point cloud in the form of mode setting information.

[0373] S703, encode the points to be encoded according to the determined encoding pattern.

[0374] After determining the encoding patterns of the point to be encoded in K directions, the point can be encoded according to these patterns. Specifically, the geometric residual information of the point to be encoded can be obtained. This geometric residual information can include the residual values ​​and residual sign information of the point in the K directions. Encoding the point according to the determined encoding patterns can include encoding the residual values ​​of the point in the K directions according to the determined encoding patterns. In addition to encoding the residual values ​​of the point in the K directions, it is also necessary to encode the residual signs of the point in the K directions. That is, the geometric residual information of the point to be encoded can include the signed residual values ​​of the point in the K directions. During encoding, the unsigned residual values ​​(i.e., residual values) and residual sign information of the point in the K directions need to be encoded separately.

[0375] The geometric residual information of the point to be encoded can be determined based on the true geometric information and the predicted geometric information of the point. The predicted geometric information of the point can be obtained through prediction trees. Specifically, the prediction tree of the point cloud can reflect the connectivity between points in the point cloud and can indicate the prediction pattern of each point in the point cloud (i.e., the prediction pattern mentioned earlier when introducing predictive coding techniques). Therefore, the point to be encoded can be predicted according to its prediction pattern to obtain the predicted geometric information of the point.

[0376] Taking the k-th direction out of K directions as an example, this section introduces the residual value encoding process under different encoding modes:

[0377] (1) When the encoding mode of the point to be encoded in the k-th direction is the first encoding mode, the first encoding mode refers to the encoding mode after performing a remainder calculation on the residual value of the point to be encoded in the k-th direction. The encoding process of the residual value in the first encoding mode may include the following: performing a remainder calculation on the residual value A[k] of the point to be encoded in the k-th direction to obtain the residual quotient A1[k] and the residual remainder A2[k] (A[k] = A1[k] × d + A2[k]); determining the number of bits B[k] occupied by the residual quotient A1[k], and using the bit field occupied by the point to be encoded in the k-th direction (i.e., ptn_residual_numbits[k]) to represent the number of bits B[k] occupied, and The number of bits occupied is encoded; the residual remainder A2[k] is represented by the residual remainder field corresponding to the point to be encoded in the k-th direction (i.e., ptn_residual_abs_remaining[k]), and the residual remainder field is encoded; the B[k] elements in the bit value field corresponding to the point to be encoded in the k-th direction (i.e., the B[k] elements in ptn_residual_value_per[k]) represent the value of each bit in the B[k] bits occupied by the residual quotient A1[k], and the B[k] elements in the bit value field are encoded; where d represents the divisor in the remainder calculation, for example, if the remainder calculation is divided by 2 and the remainder is taken, then d = 2. In this way, the residual value is encoded after performing the remainder calculation, instead of directly encoding the residual value, which can reduce the amount of encoded data and further improve the geometric encoding efficiency of point clouds.

[0378] (2) When the encoding mode of the point to be encoded in the k-th direction is the second encoding mode, the second encoding mode refers to the encoding mode after taking the remainder of the number of bits occupied by the residual value of the point to be encoded in the k-th direction. The encoding process of the residual value under the second encoding mode may include the following: determining the number of bits occupied by the residual value A[k] of the point to be encoded in the k-th direction B[k]; taking the remainder of the number of bits occupied B[k] to obtain the placeholder quotient B1[k] and the placeholder remainder B2[k] (B[k] = B1[k] × d + B2[k]); and using the field of the number of bits occupied corresponding to the point to be encoded in the k-th direction (i.e., ptn_residual_numbit). s[k]) represents the placeholder quotient B1[k], and the number of occupied bits is encoded in the field; the placeholder remainder field (i.e., ptn_numbits_remaining[k]) corresponding to the point to be encoded in the k-th direction is used to represent the placeholder remainder B2[k], and the placeholder remainder field is encoded; the B[k] elements in the bit value field corresponding to the point to be encoded in the k-th direction (i.e., the B[k] elements in ptn_residual_value_per[k]) represent the value of each bit in the B[k] bits occupied by the residual value A[k] in the k-th direction, and the B[k] elements in the bit value field are encoded; where d represents the divisor in the remainder calculation, for example, if the remainder calculation is division by 2, then d = 2. In this way, the number of occupied bits of the residual value is encoded after the remainder calculation, instead of directly encoding the residual value, which can reduce the amount of encoded data and further improve the geometric encoding efficiency of point clouds.

[0379] (3) When the encoding mode of the point to be encoded in the k-th direction is the third encoding mode, the third encoding mode refers to the encoding mode after performing a remainder calculation on the residual value of the point to be encoded in the k-th direction, and then performing a remainder calculation on the number of bits occupied by the remainder calculation result before encoding. The residual value encoding process in the third encoding mode may include the following: performing a remainder calculation on the residual value A[k] of the point to be encoded in the k-th direction to obtain the residual quotient A1[k] and the residual remainder A2[k] (A[k]=A1[k]×d+A2[k]). The residual remainder A2[k] is represented by the residual remainder field (i.e., ptn_residual_abs_remaining[k]) corresponding to the point to be encoded in the k-th direction, and the residual remainder field is encoded; the number of bits occupied by the residual quotient A1[k] B[k] is used to calculate the remainder quotient B1[k] and the remainder B2[k] (B[k] = B1[k] × d + B2[k]); the number of bits occupied by the point to be encoded in the k-th direction (i.e., ptn_residual_abs_remaining[k]) is used to represent the residual remainder A2[k], and the residual remainder field is encoded; the number of bits occupied by the residual quotient A1[k] B[k] is calculated by taking the remainder, and the remainder B2[k] is obtained by taking the remainder quotient B1[k] and the remainder B2[k] (B[k] = B1[k] × d + B2[k]); the number of bits occupied by the point to be encoded in the k-th direction (i.e., ptn_residual_abs_remaining[k]) is used to represent the residual remainder A2[k], and the residual remainder field is encoded; the number of bits occupied by the point to be encoded in the k-th direction is calculated by taking the remainder quotient B1[k] and the remainder B2[k] (B[k] = B1[k] × d + B2[k]); the number of bits occupied by the point to be encoded in the k-th direction (i.e., ptn_residual_abs_remaining[k]) is represented by the residual remainder field (Pt ... `n_residual_numbits[k]` represents the placeholder quotient B1[k], and the number of bits occupied is encoded. The placeholder remainder B2[k] is represented by the placeholder remainder field corresponding to the point to be encoded in the k-th direction (i.e., `ptn_numbits_remaining[k]`), and the placeholder remainder field is encoded. The B[k] elements in the bit value field corresponding to the point to be encoded in the k-th direction (i.e., the B[k] elements in `ptn_residual_value_per[k]`) represent the value of each bit in the B[k] bits occupied by the residual quotient A1, and the B[k] elements in the bit value field are encoded. In this way, after performing the remainder calculation on the residual value, the number of bits occupied by the remainder calculation result is then calculated again before encoding, instead of directly encoding the residual value, which can reduce the amount of encoded data and further improve the geometric encoding efficiency of point clouds.

[0380] (4) When the encoding mode of the point to be encoded in the k-th direction is the fourth encoding mode, the fourth encoding mode refers to the encoding mode in which the residual value of the point to be encoded in the k-th direction is not encoded by taking the remainder, that is, the residual value of the point to be encoded in the k-th direction is directly encoded. The residual value encoding mode in the fourth encoding mode may include the following: determining the number of bits B[k] occupied by the residual value A[k] of the point to be encoded in the k-th direction; using the bit field occupied by the point to be encoded in the k-th direction (i.e., ptn_residual_numbits[k]) to represent the number of bits B[k] occupied, and encoding the bit field occupied; using the B[k] bit elements in the bit value field corresponding to the point to be encoded in the k-th direction (i.e., the B[k] bit elements in ptn_residual_value_per[k]) to represent the value of each bit in the B[k] bits occupied by the residual value A[k] of the point to be encoded in the k-th direction, and encoding the B[k] bit elements in the bit value field.

[0381] After introducing the residual value encoding process, this section introduces the encoding process for residual symbol information. Residual symbol encoding of the point to be encoded in K directions can include any of the following methods:

[0382] (1) Directly encode the symbol information in the K directions. Specifically, the residual symbol information of the point to be encoded in the K directions can be encoded.

[0383] (2) Set symbol identification information to determine the symbol association relationship with the preceding point. Specifically, symbol indication information can be set. The symbol indication information can be the default setting of the encoder and decoder, or the symbol indication information can be written into the encoding parameter set or encoding bitstream of the point cloud. The symbol association relationship between the point to be encoded and its preceding point can be determined according to the setting value of the symbol identification information. For example, when the value of the symbol identification information is a target value (e.g., it can be 1) (i.e., when signFlag = 1), it can be determined that there is a symbol association relationship between the point to be encoded and its preceding point. When the value of the symbol identification information is a reference value (e.g., it can be 0) (i.e., when signFlag = 1), it can be determined that there is a symbol association relationship between the point to be encoded and its preceding point. When nFlag = 0, it can be determined that there is no symbolic association between the point to be encoded and its predecessor. If there is a symbolic association between the point to be encoded and its predecessor, the residual symbolic encoding of the point to be encoded in the K directions can be determined based on the residual symbolic encoding of the predecessor in the K directions. For example, the residual symbolic encoding of the point to be encoded in the K directions is the same as the residual symbolic encoding of the predecessor in the K directions. If there is no symbolic association between the point to be encoded and its predecessor, the residual symbolic information of the point to be encoded in the K directions can be encoded.

[0384] Encoding the residual symbol information of the point to be encoded in K directions can include any of the following:

[0385] The first approach is to directly encode the residual symbol information of the point to be encoded in the K directions. This can be understood as using the ptn_residual_sign_flag corresponding to the point to be encoded in the K directions to represent the residual symbol information of the point to be encoded in the K directions, and then encoding the ptn_residual_sign_flag corresponding to the point to be encoded in the K directions.

[0386] The second approach is to use a K2 context model to encode the residual symbol information of the point to be encoded in K directions. This can be understood as using the ptn_residual_sign_flag corresponding to the point to be encoded in K directions to represent the residual symbol information of the point to be encoded in K directions, and using a K2 context model to encode the ptn_residual_sign_flag corresponding to the point to be encoded in K directions.

[0387] The third type:

[0388] ① Iterate through the absolute values ​​of the residuals (i.e., unsigned residuals) to obtain feasible signs: such as Figure 8 As shown, assuming P0 is the parent node, P1 is the current point, and P2 is the point to be encoded, after encoding the absolute value of the residual between P2 and P1, the actual position of P2 has four possibilities: 2 white points, 2 gray points, among which 2 white points is impossible and can be directly excluded, and the symbol corresponding to 2 gray points is feasible.

[0389] ② Renumber the feasible symbols and record the total number P of all feasible symbols: Assume the symbols of the residual values ​​are (1, 1, 0), and the symbols that have been eliminated as impossible are (0, 0, 0) and (0, 0, 1). The renumbering results are shown in the table below, where X represents impossible symbols. After renumbering, the number to be encoded is 4, and P = 5.

[0390] 000 001 010 011 100 101 110 111 X X 0 1 2 3 4 5

[0391] ③ Encode the binary bits corresponding to the numbers of the residual values ​​from high to low. When encoding the i-th bit, set the i-th bit to 1, set the remaining unencoded bits to 0, and record the value of the current decimal number as D. If D > P, then the value of this bit cannot be 1 and no encoding is needed. Otherwise, perform context-based arithmetic encoding on the i-th bit.

[0392] Taking the situation in the above table as an example: The number to be encoded is 4, and it is known that P = 5. Then the encoding process is as follows: Convert the number to be encoded into binary representation: 4 = 100. When encoding the first bit of 100, if this bit is 1, then D = 100 = 4, which is less than P, and context encoding is performed on the first bit. When encoding the second bit of 100, if this bit is 1, then D = 110 = 6, which is greater than P, so the second bit must be 0 and no encoding is required.

[0393] Encoding the residual symbol information of the point to be encoded in K directions may include: using K residual symbol fields (i.e., ptn_residual_sign_flag) to represent the residual symbol information of the point to be encoded in K directions, and encoding the K residual symbol fields.

[0394] It should be noted that the specific encoding process in the embodiments of this application is carried out using a context model. Specifically:

[0395] (1) K1 context models ctx_residual_eq0[k] (k = 1, 2,..., K1) can be designed to encode the ptn_residual_eq0_flag (i.e., residual symbol information) corresponding to the point to be encoded in K directions. Among them, K1 is a positive integer less than or equal to K. When K1 is equal to K, it can be shown that the context models adopted in different directions are independent of each other. For example, 3 context models (the first context model, the second context model, and the third context model) are used to encode the ptn_residual_eq0_flag corresponding to the x direction, y direction, and z direction. The x direction is associated with the first context model, the y direction is associated with the second context model, and the z direction is associated with the third context model; when K1 < K, it can be shown that there are context models adopted in different directions that are correlated with each other; for example, 2 context models (the first context model and the second context model) are used to encode the ptn_residual_eq0_flag corresponding to the x direction, y direction, and z direction. The x direction and the y direction are associated with the first context model, and the z direction is associated with the second context model.

[0396] (2) K2 context models ctx_residual_sign[k] (k = 1, 2,..., K2) can be designed to encode the ptn_residual_sign_flag corresponding to the point to be encoded in K directions. Among them, K2 is a positive integer less than or equal to K. When K2 is equal to K, it can be shown that the context models adopted in different directions are independent of each other. When K2 < K, it can be shown that there are context models adopted in different directions that are correlated with each other.

[0397] (3) For the B[k]-bit elements in the bit value fields corresponding to the point to be encoded in K directions, K3×N context models ctxNumBits[k][N] (k = 1, 2,..., K3) can be used to encode them. Among them, K3 is a positive integer less than or equal to K, and N is a positive integer greater than or equal to B[k]. Similarly, when K3 is equal to K, it can be stated that the context model groups (including N context models) adopted in different directions are independent of each other. When K3 < K, it can be stated that there are context model groups (including N context models) adopted in different directions that are related to each other. Taking the k-th direction among the K directions as an example, N context models can be used to encode the B[k]-bit elements in the bit value field corresponding to the point to be encoded in the k-th direction, which can specifically include any of the following situations:

[0398] ① N independent context models can be used to encode the B[k]-bit elements, and N is equal to B[k]. That is to say, the context models used to encode each bit element in the B[k]-bit elements are independently selected from N context models. For example, assume B[k] = 5. The 5-bit elements can be represented as b4, b3, b2, b1, b0. The first context model is used to encode b4, the second context model is used to encode b3, the third context model is used to encode b2, the fourth context model is used to encode b1, and the fifth context model is used to encode b0.

[0399] ② N fully correlated context models can be used to encode the B[k]-bit elements, and N is greater than B[k]. That is to say, the context model used to encode the a-th element in the B[k]-bit elements is selected from N context models depending on the a - 1 elements before the a-th element, where a is a positive integer less than or equal to B[k]. For example, assume B[k] = 5. The 5-bit elements can be represented as b4, b3, b2, b1, b0. Using N fully correlated context models to encode the 5-bit elements can be expressed as follows:

[0400] For b0, ctxIdx = 0;

[0401] For b1, ctxIdx = 1 + b0;

[0402] For b2, ctxIdx = 3 + b1b0;

[0403] For b3, ctxIdx = 7 + b2b1b0;

[0404] For b4, ctxIdx = 15 + b3b2b1b0;

[0405] Wherein, for b0, ctxIdx = 0, it means that the context model with index 0 among the N context models is used to encode b0; for b1, ctxIdx = 1 + b0, it means that the selection of the context model used to encode b1 depends on b0, that is, the context model with index 1 + b0 among the N context models is used to encode b1; b4, b3, b2 are similar to b1, and will not be described in detail here.

[0406] ③ N partially related context models can be used to encode the B[k]-bit elements, where N is greater than B[k]. That is, the context model used to encode the a1-th element in the B[k]-bit elements is selected from the N context models, depending on the elements preceding the a1-th element; the context model used to encode the a2-th element in the B[k]-bit elements is selected independently from the N context models, where a1 and a2 are both positive integers less than or equal to B[k], and a1 is not equal to a2. For example, assuming B[k] = 5, the 5-bit elements can be represented as b4, b3, b2, b1, b0. Encoding the 5-bit elements using N partially related context models can be represented as follows:

[0407] For b0, ctxIdx = 0

[0408] For b1, ctxIdx = 1 + b0

[0409] For b2, ctxIdx = 3 + b1b0

[0410] For b3, ctxIdx = 7

[0411] For b4, ctxIdx = 8

[0412] For b0, ctxIdx = 0, which means that the context model with index 0 among the N context models is used to encode b0. b4 and b3 are similar to b1 and will not be described in detail here. For b1, ctxIdx = 1 + b0, which means that the selection of the context model used to encode b1 depends on b0. That is, the context model with index 1 + b0 among the N context models is used to encode b1. b2 is similar to b1 and will not be described in detail here.

[0413] (4) K4 context models can be designed to encode the residual remaining fields (ptn_residual_abs_remaining) corresponding to the point to be encoded in K directions. When the encoding mode of the point to be encoded in K directions is the first encoding mode or the third encoding mode, ptn_residual_abs_remaining is involved in the encoding process, and the ptn_residual_abs_remaining corresponding to the point to be encoded in K directions is encoded using K4 context models. Here, K4 is a positive integer less than or equal to K. When K4 equals K, it can indicate that the context models used in different directions are independent of each other. When K4 < K, it can indicate that there are context models used in different directions that are correlated with each other.

[0414] (5) K5 context models can be designed to encode the placeholder remaining fields (ptn_numbits_remaining) corresponding to the point to be encoded in K directions. When the encoding mode of the point to be encoded in K directions is the second encoding mode or the third encoding mode, ptn_numbits_remaining is involved in the encoding process, and the ptn_numbits_remaining corresponding to the point to be encoded in K directions is encoded using K5 context models. Here, K5 is a positive integer less than or equal to K. When K5 equals K, it can indicate that the context models used in different directions are independent of each other. When K5 < K, it can indicate that there are context models used in different directions that are correlated with each other.

[0415] In the embodiments of the present application, when encoding a point to be encoded in a point cloud, the encoded data of the point cloud can be set. According to the encoded data, the encoding mode of the point to be encoded in the point cloud in each direction is determined, and the point to be encoded is encoded according to the determined encoding mode. The embodiments of the present application can determine a suitable encoding mode for each direction of the point to be encoded through the encoded data for encoding, which can improve the geometric encoding efficiency of the point cloud. Moreover, by performing a modulo operation on the residual value and / or the number of occupied bits of the residual value and then encoding, the amount of encoded data can be reduced, further improving the geometric encoding efficiency of the point cloud.

[0416] After introducing the point cloud processing solution provided by the embodiments of the present application in detail, the syntax tables corresponding to different encoding modes are introduced here. Table 1 below shows the syntax table corresponding to the first encoding mode:

[0417] Table 1

[0418]

[0419] Table 2 below shows the syntax table corresponding to the second encoding mode:

[0420] Table 2

[0421]

[0422]

[0423] Table 3 below shows the syntax table corresponding to the third encoding mode:

[0424] Table 3

[0425]

[0426] Table 4 below shows the syntax table corresponding to the fourth encoding mode:

[0427] Table 4

[0428]

[0429]

[0430] The following is an explanation of Tables 1-4 above:

[0431] nodeIdx: Indicates the current point to be encoded in the point cloud.

[0432] k: Indicates the k-th direction of the point to be encoded.

[0433] ptn_residual_eq0_flag (residual value indicator field): Indicates whether the current residual value (i.e., the residual value in the k-th direction) is 0; when this field is set to 0, it means that the current residual value is 0, and when this field is set to 1, it means that the current residual value is a non-zero value; this field exists in four encoding modes (i.e., the first encoding mode, the second encoding mode, the third encoding mode, and the fourth encoding mode).

[0434] ptn_residual_sign_flag (residual sign field): Indicates the sign bit of the current residual value; when this field is set to 0, it means that the current residual value is negative, and when this field is set to 1, it means that the current residual value is non-negative; this field exists in four encoding modes (i.e., the first encoding mode, the second encoding mode, the third encoding mode, and the fourth encoding mode).

[0435] ptn_residual_abs_remaining (residual remainder field): Indicates the remainder value after performing a modulo operation on the current residual value (e.g., dividing by 2 and taking the remainder), which is 0 or 1; this field exists in the first encoding mode and the third encoding mode.

[0436] ptn_residual_numbits (occupied bit count field): Indicates the number of bits occupied by the current value to be encoded. The current value to be encoded can be the current residual value, or it can be the quotient value after performing a modulo operation on the current residual value (e.g., dividing by 2 and taking the remainder). This field exists in four encoding modes (i.e., the first encoding mode, the second encoding mode, the third encoding mode, and the fourth encoding mode).

[0437] ptn_numbits_remaining (placeholder remainder field): Indicates the remainder value after performing a remainder calculation (e.g., dividing by 2) on the number of occupied bits (i.e., the placeholder remainder), which is 0 or 1; this field exists in the second encoding mode and the third encoding model.

[0438] ptn_residual_value_per (bit value field): Indicates the value of each bit in the number of bits occupied; this field exists in four encoding modes (i.e., encoding mode 1, encoding mode 2, encoding mode 3, and encoding mode 4).

[0439] The methods of the embodiments of this application have been described in detail above. In order to facilitate better implementation of the above solutions of the embodiments of this application, the apparatus of the embodiments of this application is provided below.

[0440] Please see Figure 9 , Figure 9 This is a schematic diagram of the structure of a point cloud processing device provided in an embodiment of this application. The point cloud processing device can be installed in the computer equipment provided in the embodiment of this application. The computer equipment can be the decoding device mentioned in the above method embodiment. Figure 9 The point cloud processing device shown can be a computer program (including program code) running on a computer device, which can be used to execute... Figure 6 Some or all of the steps in the method embodiments shown. Please refer to [link / reference]. Figure 9 The point cloud processing device may include the following units:

[0441] Acquisition unit 901 is used to acquire the encoded data of the point cloud;

[0442] The processing unit 902 is used to determine the encoding pattern of the point to be decoded in the point cloud in K directions, where K is a positive integer, based on the encoded data; and to decode the point to be decoded according to the determined encoding pattern.

[0443] In one implementation, the encoded data includes default setting information, which is the default setting of the decoding end and the encoding end; the processing unit 902, when determining the encoding mode of the point to be decoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0444] Based on the default settings, the point to be decoded is determined to use the default encoding mode in K directions;

[0445] If the default setting information indicates that the encoding modes in the K directions are the same, then the point to be decoded will use the same default encoding mode in all directions of the K directions; if the default setting information indicates that the encoding modes in the K directions are different, then the point to be decoded will use different default encoding modes in each of the K directions.

[0446] In one implementation, the encoded data includes mode setting information, which is parsed from the encoding parameter set of the point cloud or the encoded bitstream of the point cloud; the processing unit 902, when determining the encoding mode of the point to be decoded in K directions based on the encoded data, specifically performs the following steps:

[0447] If the mode setting information is shared by the point to be decoded in K directions, then it is determined that the point to be decoded adopts the same encoding mode in K directions, and the encoding mode shared by the point to be decoded in K directions is determined according to the mode setting information shared by the point to be decoded in K directions.

[0448] If the point to be decoded corresponds to a mode setting information in each of the K directions, then it is determined that the point to be decoded adopts different encoding modes in the K directions, and the encoding mode of the point to be decoded in the corresponding direction is determined according to the mode setting information corresponding to the point to be decoded in each direction.

[0449] In one implementation, the mode setting information includes one or both of the residual difference flag field and the placeholder difference flag field; the processing unit 902, when determining the encoding mode shared by the point to be decoded in the K directions based on the mode setting information shared by the point to be decoded in the K directions, specifically performs any of the following:

[0450] The mode setting information includes a residual difference flag field. When the value of the residual difference flag field is the target value, the encoding mode shared by the point to be decoded in K directions is determined to be the first encoding mode.

[0451] The mode setting information includes a placeholder difference flag field. When the value of the placeholder difference flag field is the target value, the encoding mode shared by the point to be decoded in K directions is determined to be the second encoding mode.

[0452] The mode setting information includes the residual difference flag field and the placeholder difference flag field. When the values ​​of the residual difference flag field and the placeholder difference flag field are both target values, the encoding mode shared by the point to be decoded in K directions is determined to be the third encoding mode.

[0453] In one implementation, the encoded data includes a decision threshold, which is either set by default at the decoding and encoding ends, or the decision threshold is obtained by parsing from the encoded bitstream of the point cloud; the processing unit 902, when determining the encoding mode of the point to be decoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0454] Parse pattern determination information from the encoded bitstream of the point cloud;

[0455] Based on the pattern determination information and the determination threshold, the encoding pattern of the point to be decoded in K directions is determined.

[0456] In one implementation, the determination threshold includes a quantization threshold, and the mode determination information includes quantization parameters shared by the point to be decoded in K directions, and the point to be decoded uses the same encoding mode in the K directions; the processing unit 902, when determining the encoding mode of the point to be decoded in the K directions based on the mode determination information and the determination threshold, specifically performs the following steps:

[0457] Based on the relationship between the quantization parameters and the quantization threshold, the encoding mode shared by the point to be decoded in K directions is determined.

[0458] In one implementation, the quantization threshold includes any one or both of a first quantization threshold and a second quantization threshold; the processing unit 902, when determining the encoding mode shared by the point to be decoded in K directions based on the relationship between the quantization parameters and the quantization threshold, specifically performs any of the following:

[0459] When the quantization threshold includes the first quantization threshold, if the quantization parameter is less than the first quantization threshold, then the encoding mode shared by the point to be decoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0460] When the quantization threshold includes the second quantization threshold, if the quantization parameter is greater than the second quantization threshold, then the encoding mode shared by the point to be decoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0461] When the quantization threshold includes a first quantization threshold and a second quantization threshold, if the quantization parameter is greater than the second quantization threshold and less than the first quantization threshold, then the encoding mode shared by the point to be decoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0462] In one implementation, the determination threshold includes an encoding parsing threshold, and the mode determination information includes encoding parsing information of the point to be decoded in K directions. The encoding parsing information includes residual parsing information or occupied bit parsing information. The processing unit 902, when determining the encoding mode of the point to be decoded in K directions based on the mode determination information and the determination threshold, specifically performs the following steps:

[0463] When the point to be decoded uses the same encoding mode in K directions, determine the statistical characteristics of the encoded parsing information of the point to be decoded in the K directions, and determine the encoding mode shared by the point to be decoded in the K directions based on the relationship between the statistical characteristics and the encoding parsing threshold; or,

[0464] When the point to be decoded adopts different encoding modes in K directions, the encoding mode of the point to be decoded in the corresponding direction is determined according to the encoding parsing threshold and the magnitude relationship between the encoding parsing information of the point to be decoded in each direction.

[0465] The statistical characteristic information includes any one of the following: the average value of the encoded parsing information of the point to be decoded in K directions, the minimum value of the encoded parsing information of the point to be decoded in K directions, and the maximum value of the encoded parsing information of the point to be decoded in K directions.

[0466] In one implementation, the decision threshold includes a bounding box threshold, and the mode decision information includes the bounding box size of the prediction tree of the point cloud, wherein the bounding box size includes the size in K directions; the processing unit 902, when determining the encoding mode of the point to be decoded in the K directions based on the mode decision information and the decision threshold, specifically performs the following steps:

[0467] When the point to be decoded uses the same encoding pattern in K directions, the target size feature value is determined based on the dimensions in the K directions, and the encoding pattern shared by the point to be decoded in the K directions is determined based on the relationship between the target size feature value and the bounding box threshold; or,

[0468] When the point to be decoded adopts different encoding modes in K directions, the size feature value of each of the K directions is determined according to the size in the K directions, and the encoding mode of the point to be decoded in the corresponding direction is determined according to the relationship between the bounding box threshold and the size feature value of each direction.

[0469] In one implementation, the processing unit 902, when decoding the point to be decoded according to a determined encoding pattern, specifically performs the following steps:

[0470] According to the determined encoding pattern, the residual values ​​of the point to be decoded are decoded to obtain the reconstructed residual values ​​of the point to be decoded in K directions.

[0471] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be decoded in the k-th direction is the first encoding mode, where k is a positive integer less than or equal to K; the processing unit 902 is used to perform residual value decoding on the point to be decoded according to the determined encoding mode, and when obtaining the reconstructed residual values ​​of the point to be decoded in the K directions, it is specifically used to perform the following steps:

[0472] The number of bits occupied in the k-th direction of the point to be decoded is analyzed to obtain the number of bits occupied in the k-th direction of the residual quotient A1[k] of the point to be decoded;

[0473] Analyze the B[k] bit value in the bit value field corresponding to the k-th direction of the point to be decoded to obtain the residual quotient A1[k];

[0474] The residual remainder segment corresponding to the point to be decoded in the k-th direction is analyzed to obtain the residual remainder A2[k] of the point to be decoded in the k-th direction;

[0475] Based on the residual quotient A1[k] and the residual remainder A2[k], determine the reconstructed residual value A[k] of the point to be decoded in the k-th direction.

[0476] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be decoded in the k-th direction is the second encoding mode; the processing unit 902 is used to perform residual value decoding on the point to be decoded according to the determined encoding mode, and to obtain the reconstructed residual values ​​of the point to be decoded in the K directions, specifically performing the following steps:

[0477] The number of bits occupied in the k-th direction of the point to be decoded is analyzed to obtain the quotient B1[k] of the point to be decoded in the k-th direction;

[0478] The placeholder remainder segment corresponding to the point to be decoded in the k-th direction is analyzed to obtain the placeholder remainder B2[k] of the point to be decoded in the k-th direction;

[0479] Based on the placeholder quotient B1[k] and the placeholder remainder B2[k], determine the number of bits B[k] occupied by the reconstructed residual value A[k] of the point to be decoded in the k-th direction;

[0480] The B[k] bit value in the bit value field corresponding to the point to be decoded in the k-th direction is analyzed to obtain the reconstruction residual value A[k] of the point to be decoded in the k-th direction.

[0481] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be decoded in the k-th direction is the third encoding mode; the processing unit 902 is used to perform residual value decoding on the point to be decoded according to the determined encoding mode, and to obtain the reconstructed residual values ​​of the point to be decoded in the K directions, specifically performing the following steps:

[0482] The number of bits occupied in the k-th direction of the point to be decoded is analyzed to obtain the quotient B1[k] of the point to be decoded in the k-th direction;

[0483] The placeholder remainder segment corresponding to the point to be decoded in the k-th direction is analyzed to obtain the placeholder remainder B2[k] of the point to be decoded in the k-th direction;

[0484] Based on the placeholder quotient B1[k] and the placeholder remainder B2[k], determine the number of bits B[k] occupied by the residual quotient A1[k] of the point to be decoded in the k-th direction;

[0485] Analyze the B[k] bit value in the bit value field corresponding to the k-th direction of the point to be decoded to obtain the residual quotient A1[k];

[0486] The residual remainder segment corresponding to the point to be decoded in the k-th direction is analyzed, and the residual remainder A2[k] is obtained from the point to be decoded in the k-th direction.

[0487] Based on the residual quotient A1[k] and the residual remainder A2[k], determine the reconstructed residual value A[k] of the point to be decoded in the k-th direction.

[0488] In one implementation, when the encoding mode of the point to be decoded in the K directions is the first encoding mode or the third encoding mode, the residual number segment corresponding to the point to be decoded in the K directions is parsed using K4 context models, where K4 is a positive integer less than or equal to K.

[0489] In one implementation, when the encoding mode of the point to be decoded in the K directions is the second encoding mode or the third encoding mode, the placeholder remainder number field corresponding to the point to be decoded in the K directions is parsed using K5 context models, where K5 is a positive integer less than or equal to K.

[0490] In one implementation, the processing unit 902, when parsing the B[k] bit value in the bit value field corresponding to the k-th direction of the point to be decoded, specifically performs the following steps:

[0491] The B[k]-bit value is parsed using N context models, where B[k] is a positive integer and N is a positive integer greater than or equal to B[k].

[0492] In one implementation, the processing unit 902, when parsing the B[k]-bit value using N context models, specifically performs the following steps:

[0493] The B[k]-bit value is parsed using N independent context models, where N equals B[k].

[0494] The context model used to parse each bit of the B[k]-bit value is selected independently from N context models.

[0495] In one implementation, the processing unit 902, when parsing the B[k]-bit value using N context models, specifically performs the following steps:

[0496] The B[k]-bit values ​​are parsed using N fully correlated context models, where N is greater than B[k].

[0497] The context model used to parse the a-th digit in the B[k] digit value is selected from N context models based on the parsing results of the a-1 digit values ​​preceding the a-th digit value, where a is a positive integer less than or equal to B[k].

[0498] In one implementation, the processing unit 902, when parsing the B[k]-bit value using N context models, specifically performs the following steps:

[0499] The B[k]-bit value is parsed using a context model with N parts related to each other, where N is greater than B[k].

[0500] The context model used to parse the a1-th digit in the B[k]-bit value is selected from N context models based on the parsing results of the digits preceding the a1-th digit; the context model used to parse the a2-th digit in the B[k]-bit value is selected independently from N context models, where a1 and a2 are both positive integers less than or equal to B[k], and a1 is not equal to a2.

[0501] In one implementation, after decoding the point to be decoded according to a determined encoding pattern, the reconstructed residual values ​​of the point to be decoded in K directions are obtained; the processing unit 902 is further configured to perform the following steps:

[0502] Residual symbol decoding is performed on the point to be decoded in each of the K directions to obtain the reconstructed residual symbol information of the point to be decoded in the K directions;

[0503] Based on the reconstruction residual values ​​of the point to be decoded in K directions and the sign information of the reconstruction residuals of the point to be decoded in K directions, the reconstruction residual information of the point to be decoded is determined.

[0504] Based on the reconstruction residual information of the point to be decoded, the geometric information of the point to be decoded is reconstructed.

[0505] In one implementation, the processing unit 902, when performing residual symbol decoding on the point to be decoded in each of the K directions to obtain the reconstructed residual symbol information of the point to be decoded in the K directions, specifically performs the following steps:

[0506] Read the residual symbol encoding of the point to be decoded in K directions from the encoded bitstream of the point cloud;

[0507] The residual symbol encoding of the point to be decoded in K directions is parsed to obtain the reconstructed residual symbol information of the point to be decoded in K directions.

[0508] In one implementation, the processing unit 902, when performing residual symbol decoding on the point to be decoded in each of the K directions to obtain the reconstructed residual symbol information of the point to be decoded in the K directions, specifically performs the following steps:

[0509] Obtain symbol identification information, which is either set by default at the encoding and decoding ends, or obtained by parsing from the encoding parameter set or encoding bitstream of the point cloud;

[0510] Based on the value of the symbol identification information, determine the symbol association relationship between the point to be decoded and its predecessor point;

[0511] If there is a symbol association relationship between the point to be decoded and its predecessor, then the reconstruction residual symbol information of the point to be decoded in the K directions is determined based on the reconstruction residual symbol information of the predecessor in the K directions.

[0512] If there is no symbol association between the point to be decoded and its predecessor point, the residual symbol encoding of the point to be decoded in K directions is read from the encoded bitstream of the point cloud, and the residual symbol encoding of the point to be decoded in K directions is parsed to obtain the reconstructed residual symbol information of the point to be decoded in K directions.

[0513] In one implementation, the processing unit 902, when parsing the residual symbol encoding of the point to be decoded in K directions to obtain the reconstructed residual symbol information of the point to be decoded in K directions, specifically performs the following steps:

[0514] The residual symbol encoding of the point to be decoded in K directions is parsed using a K2 context model to obtain the reconstructed residual symbol information of the point to be decoded in K directions, where K2 is a positive integer less than or equal to K.

[0515] In one implementation, when processing unit 902 reconstructs the geometric information of the point to be decoded based on the reconstruction residual information of the point to be decoded, it specifically performs the following steps:

[0516] Obtain the predicted geometric information of the point to be decoded;

[0517] Based on the reconstructed residual information and the predicted geometric information of the point to be decoded, the geometric information of the point to be decoded is reconstructed.

[0518] According to another embodiment of this application, Figure 9 The units in the point cloud processing device shown can be individually or entirely merged into one or more other units, or some of the units can be further divided into multiple functionally smaller units. This achieves the same operation without affecting the technical effects of the embodiments of this application. The above units are based on logical function division. In practical applications, the function of one unit can be implemented by multiple units, or the function of multiple units can be implemented by one unit. In other embodiments of this application, the point cloud processing device may also include other units. In practical applications, these functions can also be implemented with the assistance of other units, and can be implemented collaboratively by multiple units.

[0519] According to another embodiment of this application, the following can be achieved by running on a general-purpose computing device, such as a computer, which includes processing elements and storage elements such as a central processing unit (CPU), random access memory (RAM), and read-only memory (ROM), a device capable of performing operations such as... Figure 6 The computer program (including program code) for each step involved in some or all of the methods shown, to construct such... Figure 9 The point cloud processing apparatus shown herein, and the point cloud processing method for implementing the embodiments of this application, are described. A computer program may be recorded on, for example, a computer-readable storage medium, loaded onto the aforementioned computing device via the computer-readable storage medium, and executed therein.

[0520] In this embodiment, when decoding points in a point cloud is required, the encoded data of the point cloud can be obtained. Based on the encoded data, the encoding mode of the points to be decoded in each direction can be determined, and the points to be decoded can be decoded according to the determined encoding mode. This embodiment can determine appropriate encoding modes for each direction of the points to be decoded using encoded data, thereby improving the geometric decoding efficiency of point clouds.

[0521] Please see Figure 10 , Figure 10 This is a schematic diagram of another point cloud processing device provided in the embodiments of this application. The point cloud processing device can be installed in the computer equipment provided in the embodiments of this application. The computer equipment can be the encoding device mentioned in the above method embodiments.Figure 10 The point cloud processing device shown can be a computer program (including program code) running on a computer device, which can be used to execute... Figure 7 Some or all of the steps in the method embodiments shown. Please refer to [link / reference]. Figure 10 The point cloud processing device may include the following units:

[0522] Setting unit 1001 is used to set the encoding data of the point cloud;

[0523] The processing unit 1002 is used to determine the encoding pattern of the point to be encoded in the point cloud in K directions, where K is a positive integer, based on the encoded data; and to encode the point to be encoded according to the determined encoding pattern.

[0524] In one implementation, the encoded data includes default setting information, which is the default setting of the encoding end and the decoding end; the processing unit 1002, when determining the encoding mode of the point to be encoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0525] Based on the default settings, the point to be encoded will use the default encoding mode in K directions;

[0526] If the default setting information indicates that the encoding modes in the K directions are the same, then the point to be encoded will use the same default encoding mode in all of the K directions; if the default setting information indicates that the encoding modes in the K directions are different, then the point to be encoded will use different default encoding modes in each of the K directions.

[0527] In one implementation, the encoded data includes mode setting information, which is written into the encoding parameter set of the point cloud or the encoded bitstream of the point cloud; the processing unit 1002, when determining the encoding mode of the point to be encoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0528] If the mode setting information is shared by the point to be encoded in K directions, then it is determined that the point to be encoded adopts the same encoding mode in K directions, and the encoding mode shared by the point to be encoded in K directions is determined according to the mode setting information shared by the point to be encoded in K directions.

[0529] If the point to be encoded corresponds to a mode setting information in each of the K directions, then it is determined that the point to be encoded adopts different encoding modes in the K directions, and the encoding mode of the point to be encoded in the corresponding direction is determined according to the mode setting information corresponding to the point to be encoded in each direction.

[0530] In one implementation, the mode setting information includes one or both of the residual difference flag field or the placeholder difference flag field; the processing unit 1002, when determining the encoding mode shared by the point to be encoded in the K directions based on the mode setting information shared by the point to be encoded in the K directions, specifically performs any of the following:

[0531] The mode setting information includes the residual difference flag field. When the residual difference flag field is set to the target value, the encoding mode shared by the point to be encoded in K directions is determined to be the first encoding mode.

[0532] The mode setting information includes a placeholder difference flag field. When the placeholder difference flag field is set to the target value, the encoding mode shared by the point to be encoded in K directions is determined to be the second encoding mode.

[0533] The mode setting information includes the residual difference flag field and the placeholder difference flag field. When both the residual difference flag field and the placeholder difference flag field are set to the target value, the encoding mode shared by the point to be encoded in K directions is determined to be the third encoding mode.

[0534] In one implementation, the encoded data includes a decision threshold, which is a default setting at the encoding and decoding ends, or the decision threshold is written into the encoding parameter set or encoding bitstream of the point cloud; the processing unit 1002, when determining the encoding mode of the point to be encoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0535] Obtain pattern determination information;

[0536] Based on the pattern determination information and the determination threshold, the encoding pattern of the point to be encoded in K directions is determined.

[0537] In one implementation, the determination threshold includes a quantization threshold, and the mode determination information includes quantization parameters shared by the point to be encoded in K directions, and the point to be encoded uses the same encoding mode in the K directions; the processing unit 1002, when determining the encoding mode of the point to be encoded in the K directions based on the mode determination information and the determination threshold, specifically performs the following steps:

[0538] Based on the relationship between the quantization parameters and the quantization threshold, the encoding mode shared by the point to be encoded in K directions is determined.

[0539] In one implementation, the quantization parameters include any one or both of a first quantization threshold and a second quantization threshold; the processing unit 1002, when determining the encoding mode shared by the point to be encoded in K directions based on the magnitude relationship between the quantization parameters and the quantization thresholds, specifically performs any of the following:

[0540] When the quantization threshold includes the first quantization threshold, if the quantization parameter is less than the first quantization threshold, then the encoding mode shared by the point to be encoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0541] When the quantization threshold includes the second quantization threshold, if the quantization parameter is greater than the second quantization threshold, then the coding mode shared by the point to be encoded in the K directions is determined to be any one of the first coding mode, the second coding mode, or the third coding mode.

[0542] When the quantization threshold includes a first quantization threshold and a second quantization threshold, if the quantization parameter is greater than the second quantization threshold and less than the first quantization threshold, then the encoding mode shared by the point to be encoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0543] In one implementation, the determination threshold includes an encoding information threshold, and the mode determination information includes the encoding information of the point to be encoded in K directions, wherein the encoding information includes the residual value or the number of bits occupied by the residual value; the processing unit 1002, when determining the encoding mode of the point to be encoded in K directions based on the mode determination information and the determination threshold, specifically performs the following steps:

[0544] When the point to be encoded uses the same encoding pattern in K directions, determine the statistical characteristics of the information to be encoded in the K directions, and determine the encoding pattern shared by the point in the K directions based on the relationship between the statistical characteristics and the encoding information threshold; or,

[0545] When the point to be encoded adopts different encoding modes in K directions, the encoding mode of the point to be encoded in the corresponding direction is determined according to the judgment threshold and the size relationship between the information to be encoded in each direction.

[0546] The statistical characteristic information includes any of the following: the average value of the information to be encoded in K directions, the minimum value of the information to be encoded in K directions, and the maximum value of the information to be encoded in K directions.

[0547] In one implementation, the decision threshold includes a bounding box threshold, and the mode decision information includes the bounding box size of the prediction tree of the point cloud, wherein the bounding box size includes the size in K directions; the processing unit 1002, when determining the encoding mode of the point to be encoded in K directions based on the mode decision information and the decision threshold, specifically performs the following steps:

[0548] When the point to be encoded uses the same encoding pattern in K directions, the target size feature value is determined based on the dimensions in the K directions, and the encoding pattern shared by the point to be encoded in the K directions is determined based on the relationship between the target size feature value and the bounding box threshold; or,

[0549] When the point to be encoded adopts different encoding modes in K directions, the size feature value of each of the K directions is determined according to the size in the K directions, and the encoding mode of the point to be encoded in the corresponding direction is determined according to the relationship between the bounding box threshold and the size feature value of each direction.

[0550] In one implementation, the processing unit 1002 is further configured to perform the following steps:

[0551] Obtain the geometric residual information of the point to be encoded. The geometric residual information includes the residual values ​​of the point to be encoded in K directions and the residual sign information of the point to be encoded in K directions.

[0552] Processing unit 1002, when encoding the point to be encoded according to a determined encoding pattern, specifically performs the following steps:

[0553] According to the determined encoding pattern, the residual values ​​of the point to be encoded in K directions are encoded.

[0554] In one implementation, for the k-th direction among K directions, the encoding pattern of the point to be encoded in the k-th direction is a first encoding pattern, where k is a positive integer less than or equal to K; the processing unit 1002, when encoding the residual values ​​of the point to be encoded in the K directions according to the determined encoding pattern, specifically performs the following steps:

[0555] The residual value A[k] of the point to be encoded in the k-th direction is calculated by taking the remainder, and the residual quotient A1[k] and residual remainder A2[k] are obtained.

[0556] Determine the number of bits occupied by the residual quotient A1[k], use the number of bits occupied in the k-th direction corresponding to the point to be encoded to represent the number of bits occupied B[k], and encode the number of bits occupied field;

[0557] The residual remainder A2[k] is represented by the residual remainder number segment corresponding to the point to be encoded in the k-th direction, and the residual remainder number segment is encoded.

[0558] The B[k] bits in the bit value field corresponding to the point to be encoded in the k-th direction are used to represent the value of each bit in the B[k] bits occupied by the residual quotient A1[k], and the B[k] bits in the bit value field are encoded.

[0559] In one implementation, for the k-th direction among K directions, the encoding pattern of the point to be encoded in the k-th direction is a second encoding pattern, where k is a positive integer less than or equal to K; the processing unit 1002, when encoding the residual values ​​of the point to be encoded in the K directions according to the determined encoding pattern, specifically performs the following steps:

[0560] Determine the number of bits B[k] occupied by the residual value A[k] of the point to be encoded in the k-th direction;

[0561] The remainder of the occupied bit length B[k] is calculated to obtain the placeholder quotient B1[k] and the placeholder remainder B2[k].

[0562] The number of occupies in the k-th direction is used to represent the quotient B1[k], and the number of occupies in the bit field is encoded.

[0563] The placeholder remainder B2[k] is represented by the placeholder remainder number segment corresponding to the point to be encoded in the k-th direction, and the placeholder remainder number segment is encoded.

[0564] The B[k] bits in the bit value field corresponding to the point to be encoded in the k-th direction are used to represent the value of each bit in the B[k] bits occupied by the residual value of the point to be encoded in the k-th direction, and the B[k] bits in the bit value field are encoded.

[0565] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be encoded in the k-th direction is the third encoding mode, where k is a positive integer less than or equal to K; the processing unit 1002, when encoding the residual values ​​of the point to be encoded in the K directions according to the determined encoding mode, specifically performs the following steps:

[0566] The residual value A[k] of the point to be encoded in the k-th direction is calculated by taking the remainder, and the residual quotient A1[k] and residual remainder A2[k] are obtained.

[0567] The residual remainder A2[k] is represented by the residual remainder number segment corresponding to the point to be encoded in the k-th direction, and the residual remainder number segment is encoded.

[0568] The number of bits occupied by the residual quotient A1[k] is calculated by taking the remainder, and the placeholder quotient B1[k] and placeholder remainder B2[k] are obtained.

[0569] The number of occupies in the k-th direction is used to represent the quotient B1[k], and the number of occupies in the bit field is encoded.

[0570] The placeholder remainder B2[k] is represented by the placeholder remainder number segment corresponding to the k-th direction of the point to be encoded, and the placeholder remainder number segment is encoded.

[0571] The B[k] bits in the bit value field corresponding to the point to be encoded in the k-th direction are used to represent the value of each bit in the B[k] bits occupied by the residual quotient A1, and the B[k] bits in the bit value field are encoded.

[0572] In one implementation, when the encoding mode of the point to be encoded in the K directions is the first encoding mode or the third encoding mode, the residual number segment corresponding to the point to be encoded in the K directions is encoded using K4 context models, where K4 is a positive integer less than or equal to K.

[0573] In one implementation, when the encoding mode of the point to be encoded in the K directions is the second encoding mode or the third encoding mode, the placeholder remainder number field corresponding to the point to be encoded in the K directions is encoded using K5 context models, where K5 is a positive integer less than or equal to K.

[0574] In one implementation, when processing unit 1002 encodes the B[k] bit elements in the bit value field, it specifically performs the following steps:

[0575] N context models are used to encode the B[k] bits in the bit value field, where B[k] is a positive integer and N is a positive integer greater than or equal to B[k].

[0576] In one implementation, the processing unit 1002, when encoding the B[k] bit elements in the bit value field using N context models, specifically performs the following steps:

[0577] The B[k] bits in the bit value field are encoded using N independent context models;

[0578] The context model used to encode each element in the bit value field is selected independently from N context models.

[0579] In one implementation, the processing unit 1002, when encoding the B[k] bit elements in the bit value field using N context models, specifically performs the following steps:

[0580] The B[k] bits in the bit value field are encoded using N fully correlated context models;

[0581] The context model used to encode the a-th bit element in the bit value field is selected from N context models, depending on the a-1 bits preceding the a-th bit element, where a is a positive integer less than or equal to B[k].

[0582] In one implementation, the processing unit 1002, when encoding the B[k] bit elements in the bit value field using N context models, specifically performs the following steps:

[0583] The B[k] bits in the bit value field are encoded using an N-part related context model;

[0584] The context model used to encode the a1-th element in the bit value field is selected from N context models, depending on the elements preceding the a1-th element; the context model used to encode the a2-th element in the bit value field is selected independently from N context models. Both a1 and a2 are positive integers less than or equal to B[k], and a1 is not equal to a2.

[0585] In one implementation, when processing unit 1002 acquires the geometric residual information of the point to be encoded, it specifically performs the following steps:

[0586] Obtain the predicted geometric information of the point to be encoded;

[0587] The geometric residual information of the point to be encoded is determined based on the actual geometric information and the predicted geometric information of the point to be encoded.

[0588] In one implementation, the processing unit 1002 is further configured to perform the following steps:

[0589] Perform residual symbol encoding on the point to be encoded in K directions.

[0590] In one implementation, the processing unit 1002, when performing residual symbol encoding on the point to be encoded in K directions, specifically performs the following steps:

[0591] Encode the residual symbol information of the point to be encoded in K directions.

[0592] In one implementation, the processing unit 1002, when performing residual symbol encoding on the point to be encoded in K directions, specifically performs the following steps:

[0593] Set symbol identification information; the symbol identification information is set by default at the encoding end and the decoding end, or the symbol identification information is written into the encoding parameter set or encoding bitstream of the point cloud;

[0594] Based on the setting value of the symbol identification information, determine the symbol association relationship between the point to be encoded and its predecessor point;

[0595] If there is a symbolic association between the point to be encoded and its predecessor, then the residual symbolic encoding of the point to be encoded in the K directions is determined based on the residual symbolic encoding of the predecessor in the K directions.

[0596] If there is no symbol association between the point to be encoded and its predecessor, then the residual symbol information of the point to be encoded in K directions is encoded.

[0597] In one implementation, the processing unit 1002, when encoding the residual symbol information of the point to be encoded in K directions, specifically performs the following steps:

[0598] K2 context models are used to encode the residual symbol information of the point to be encoded in K directions, where K1 is a positive integer less than or equal to K.

[0599] According to another embodiment of this application, Figure 10 The units in the point cloud processing device shown can be individually or entirely merged into one or more other units, or some of the units can be further divided into multiple functionally smaller units. This achieves the same operation without affecting the technical effects of the embodiments of this application. The above units are based on logical function division. In practical applications, the function of one unit can be implemented by multiple units, or the function of multiple units can be implemented by one unit. In other embodiments of this application, the point cloud processing device may also include other units. In practical applications, these functions can also be implemented with the assistance of other units, and can be implemented collaboratively by multiple units.

[0600] According to another embodiment of this application, the following can be achieved by running on a general-purpose computing device, such as a computer, which includes processing elements and storage elements such as a central processing unit (CPU), random access memory (RAM), and read-only memory (ROM), a device capable of performing operations such as... Figure 7 The computer program (including program code) for each step involved in some or all of the methods shown, to construct such... Figure 10 The point cloud processing apparatus shown herein, and the point cloud processing method for implementing the embodiments of this application, are described. A computer program may be recorded on, for example, a computer-readable storage medium, loaded onto the aforementioned computing device via the computer-readable storage medium, and executed therein.

[0601] In this embodiment, when it is necessary to encode points in a point cloud, encoding data for the point cloud can be set. Based on the encoding data, the encoding patterns of the points to be encoded in each direction are determined, and the points to be encoded are encoded according to the determined encoding patterns. This embodiment can determine suitable encoding patterns for each direction of the points to be encoded using encoding data, thereby improving the geometric encoding efficiency of point clouds.

[0602] Based on the above methods and apparatus embodiments, this application provides a computer device, which may be the aforementioned decoding device. Please refer to... Figure 11 , Figure 11 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Figure 11 The computer device shown includes at least a processor 1101, an input interface 1102, an output interface 1103, and a computer-readable storage medium 1104. The processor 1101, input interface 1102, output interface 1103, and computer-readable storage medium 1104 can be connected via a bus or other means.

[0603] The computer-readable storage medium 1104 can be stored in the memory of a computer device. The computer-readable storage medium 1104 is used to store computer programs, which include computer instructions. The processor 1101 is used to execute the program instructions stored in the computer-readable storage medium 1104. The processor 1101 (or CPU (Central Processing Unit)) is the computing and control core of the computer device. It is adapted to implement one or more computer instructions, specifically to load and execute one or more computer instructions to achieve corresponding method flows or corresponding functions.

[0604] This application also provides a computer-readable storage medium (Memory), which is a memory device in a computer device used to store programs and data. It is understood that the computer-readable storage medium here can include both built-in storage media in the computer device and extended storage media supported by the computer device. The computer-readable storage medium provides storage space that stores the operating system of the computer device. Furthermore, the storage space also stores one or more computer instructions suitable for loading and execution by a processor. These computer instructions can be one or more computer programs (including program code). It should be noted that the computer-readable storage medium here can be high-speed RAM or non-volatile memory, such as at least one disk storage device; optionally, it can also be at least one computer-readable storage medium located remotely from the aforementioned processor.

[0605] In some embodiments, the processor 1101 may load and execute one or more computer instructions stored in the computer-readable storage medium 1104 to implement the aforementioned related... Figure 6 The corresponding steps of the point cloud processing method shown are as follows. In a specific implementation, the computer instructions in the computer-readable storage medium 1104 are loaded by the processor 1101 and executed as follows:

[0606] Obtain the encoded data of the point cloud;

[0607] Based on the encoded data, determine the encoding patterns of the points to be decoded in the point cloud in K directions, where K is a positive integer; and decode the points to be decoded according to the determined encoding patterns.

[0608] In one implementation, the encoded data includes default setting information, which is the default setting of the decoding end and the encoding end; when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode of the point to be decoded in the point cloud in K directions according to the encoded data, they are specifically used to perform the following steps:

[0609] Based on the default settings, the point to be decoded is determined to use the default encoding mode in K directions;

[0610] If the default setting information indicates that the encoding modes in the K directions are the same, then the point to be decoded will use the same default encoding mode in all directions of the K directions; if the default setting information indicates that the encoding modes in the K directions are different, then the point to be decoded will use different default encoding modes in each of the K directions.

[0611] In one implementation, the encoded data includes mode setting information, which is parsed from the encoding parameter set of the point cloud or the encoded bitstream of the point cloud; the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101. When determining the encoding mode of the point to be decoded in the point cloud in K directions based on the encoded data, the instructions are specifically used to perform the following steps:

[0612] If the mode setting information is shared by the point to be decoded in K directions, then it is determined that the point to be decoded adopts the same encoding mode in K directions, and the encoding mode shared by the point to be decoded in K directions is determined according to the mode setting information shared by the point to be decoded in K directions.

[0613] If the point to be decoded corresponds to a mode setting information in each of the K directions, then it is determined that the point to be decoded adopts different encoding modes in the K directions, and the encoding mode of the point to be decoded in the corresponding direction is determined according to the mode setting information corresponding to the point to be decoded in each direction.

[0614] In one implementation, the mode setting information includes one or both of the residual difference flag field or the placeholder difference flag field; when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode shared by the point to be decoded in the K directions based on the mode setting information shared by the point to be decoded in the K directions, they are specifically used to execute any of the following:

[0615] The mode setting information includes a residual difference flag field. When the value of the residual difference flag field is the target value, the encoding mode shared by the point to be decoded in K directions is determined to be the first encoding mode.

[0616] The mode setting information includes a placeholder difference flag field. When the value of the placeholder difference flag field is the target value, the encoding mode shared by the point to be decoded in K directions is determined to be the second encoding mode.

[0617] The mode setting information includes the residual difference flag field and the placeholder difference flag field. When the values ​​of the residual difference flag field and the placeholder difference flag field are both target values, the encoding mode shared by the point to be decoded in K directions is determined to be the third encoding mode.

[0618] In one implementation, the encoded data includes a decision threshold, which is either set by default at the decoding and encoding ends, or the decision threshold is obtained by parsing from the encoded bitstream of the point cloud; the processing unit 902, when determining the encoding mode of the point to be decoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0619] Parse pattern determination information from the encoded bitstream of the point cloud;

[0620] Based on the pattern determination information and the determination threshold, the encoding pattern of the point to be decoded in K directions is determined.

[0621] In one implementation, the determination threshold includes a quantization threshold, and the mode determination information includes quantization parameters shared by the point to be decoded in K directions. The point to be decoded uses the same encoding mode in the K directions. When the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode of the point to be decoded in the K directions based on the mode determination information and the determination threshold, they are specifically used to perform the following steps:

[0622] Based on the relationship between the quantization parameters and the quantization threshold, the encoding mode shared by the point to be decoded in K directions is determined.

[0623] In one implementation, the quantization threshold includes any one or both of a first quantization threshold and a second quantization threshold; when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode shared by the point to be decoded in K directions based on the relationship between the quantization parameters and the quantization threshold, they are specifically used to execute any of the following:

[0624] When the quantization threshold includes the first quantization threshold, if the quantization parameter is less than the first quantization threshold, then the encoding mode shared by the point to be decoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0625] When the quantization threshold includes the second quantization threshold, if the quantization parameter is greater than the second quantization threshold, then the encoding mode shared by the point to be decoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0626] When the quantization threshold includes a first quantization threshold and a second quantization threshold, if the quantization parameter is greater than the second quantization threshold and less than the first quantization threshold, then the encoding mode shared by the point to be decoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0627] In one implementation, the determination threshold includes an encoding parsing threshold, and the mode determination information includes encoding parsing information of the point to be decoded in K directions. The encoding parsing information includes residual parsing information or occupied bit parsing information. When the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode of the point to be decoded in K directions based on the mode determination information and the determination threshold, they are specifically used to perform the following steps:

[0628] When the point to be decoded uses the same encoding mode in K directions, determine the statistical characteristics of the encoded parsing information of the point to be decoded in the K directions, and determine the encoding mode shared by the point to be decoded in the K directions based on the relationship between the statistical characteristics and the encoding parsing threshold; or,

[0629] When the point to be decoded adopts different encoding modes in K directions, the encoding mode of the point to be decoded in the corresponding direction is determined according to the encoding parsing threshold and the magnitude relationship between the encoding parsing information of the point to be decoded in each direction.

[0630] The statistical characteristic information includes any one of the following: the average value of the encoded parsing information of the point to be decoded in K directions, the minimum value of the encoded parsing information of the point to be decoded in K directions, and the maximum value of the encoded parsing information of the point to be decoded in K directions.

[0631] In one implementation, the decision threshold includes a bounding box threshold, and the mode decision information includes the bounding box size of the prediction tree of the point cloud, the bounding box size including the size in K directions; the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101. When determining the encoding mode of the point to be decoded in the K directions according to the mode decision information and the decision threshold, the instructions are specifically used to perform the following steps:

[0632] When the point to be decoded uses the same encoding pattern in K directions, the target size feature value is determined based on the dimensions in the K directions, and the encoding pattern shared by the point to be decoded in the K directions is determined based on the relationship between the target size feature value and the bounding box threshold; or,

[0633] When the point to be decoded adopts different encoding modes in K directions, the size feature value of each of the K directions is determined according to the size in the K directions, and the encoding mode of the point to be decoded in the corresponding direction is determined according to the relationship between the bounding box threshold and the size feature value of each direction.

[0634] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to decode the point to be decoded according to a determined encoding pattern, they are specifically used to perform the following steps:

[0635] According to the determined encoding pattern, the residual values ​​of the point to be decoded are decoded to obtain the reconstructed residual values ​​of the point to be decoded in K directions.

[0636] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be decoded in the k-th direction is a first encoding mode, where k is a positive integer less than or equal to K; the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to perform residual value decoding on the point to be decoded according to the determined encoding mode, and to obtain the reconstructed residual values ​​of the point to be decoded in the K directions, specifically for performing the following steps:

[0637] The number of bits occupied in the k-th direction of the point to be decoded is analyzed to obtain the number of bits occupied in the k-th direction of the residual quotient A1[k] of the point to be decoded;

[0638] Analyze the B[k] bit value in the bit value field corresponding to the k-th direction of the point to be decoded to obtain the residual quotient A1[k];

[0639] The residual remainder segment corresponding to the point to be decoded in the k-th direction is analyzed to obtain the residual remainder A2[k] of the point to be decoded in the k-th direction;

[0640] Based on the residual quotient A1[k] and the residual remainder A2[k], determine the reconstructed residual value A[k] of the point to be decoded in the k-th direction.

[0641] In one implementation, for the k-th direction among the K directions, the encoding mode of the point to be decoded in the k-th direction is a second encoding mode; when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 according to the determined encoding mode to decode the residual value of the point to be decoded and obtain the reconstructed residual value of the point to be decoded in the K directions, the following steps are specifically performed:

[0642] The number of bits occupied in the k-th direction of the point to be decoded is analyzed to obtain the quotient B1[k] of the point to be decoded in the k-th direction;

[0643] The placeholder remainder segment corresponding to the point to be decoded in the k-th direction is analyzed to obtain the placeholder remainder B2[k] of the point to be decoded in the k-th direction;

[0644] Based on the placeholder quotient B1[k] and the placeholder remainder B2[k], determine the number of bits B[k] occupied by the reconstructed residual value A[k] of the point to be decoded in the k-th direction;

[0645] The B[k] bit value in the bit value field corresponding to the point to be decoded in the k-th direction is analyzed to obtain the reconstruction residual value A[k] of the point to be decoded in the k-th direction.

[0646] In one implementation, for the k-th direction among the K directions, the encoding mode of the point to be decoded in the k-th direction is the third encoding mode; when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 according to the determined encoding mode to decode the residual value of the point to be decoded and obtain the reconstructed residual value of the point to be decoded in the K directions, the following steps are specifically performed:

[0647] The number of bits occupied in the k-th direction of the point to be decoded is analyzed to obtain the quotient B1[k] of the point to be decoded in the k-th direction;

[0648] The placeholder remainder segment corresponding to the point to be decoded in the k-th direction is analyzed to obtain the placeholder remainder B2[k] of the point to be decoded in the k-th direction;

[0649] Based on the placeholder quotient B1[k] and the placeholder remainder B2[k], determine the number of bits B[k] occupied by the residual quotient A1[k] of the point to be decoded in the k-th direction;

[0650] Analyze the B[k] bit value in the bit value field corresponding to the k-th direction of the point to be decoded to obtain the residual quotient A1[k];

[0651] The residual remainder segment corresponding to the point to be decoded in the k-th direction is analyzed, and the residual remainder A2[k] is obtained from the point to be decoded in the k-th direction.

[0652] Based on the residual quotient A1[k] and the residual remainder A2[k], determine the reconstructed residual value A[k] of the point to be decoded in the k-th direction.

[0653] In one implementation, when the encoding mode of the point to be decoded in the K directions is the first encoding mode or the third encoding mode, the residual number segment corresponding to the point to be decoded in the K directions is parsed using K4 context models, where K4 is a positive integer less than or equal to K.

[0654] In one implementation, when the encoding mode of the point to be decoded in the K directions is the second encoding mode or the third encoding mode, the placeholder remainder number field corresponding to the point to be decoded in the K directions is parsed using K5 context models, where K5 is a positive integer less than or equal to K.

[0655] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to parse the B[k] bit value in the bit value field corresponding to the k-th direction of the point to be decoded, the following steps are specifically performed:

[0656] The B[k]-bit value is parsed using N context models, where B[k] is a positive integer and N is a positive integer greater than or equal to B[k].

[0657] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to parse the B[k]-bit value using N context models, they are specifically used to perform the following steps:

[0658] The B[k]-bit value is parsed using N independent context models, where N equals B[k].

[0659] The context model used to parse each bit of the B[k]-bit value is selected independently from N context models.

[0660] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to parse the B[k]-bit value using N context models, they are specifically used to perform the following steps:

[0661] The B[k]-bit values ​​are parsed using N fully correlated context models, where N is greater than B[k].

[0662] The context model used to parse the a-th digit in the B[k] digit value is selected from N context models based on the parsing results of the a-1 digit values ​​preceding the a-th digit value, where a is a positive integer less than or equal to B[k].

[0663] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to parse the B[k]-bit value using N context models, they are specifically used to perform the following steps:

[0664] The B[k]-bit value is parsed using a context model with N parts related to each other, where N is greater than B[k].

[0665] The context model used to parse the a1-th digit in the B[k]-bit value is selected from N context models based on the parsing results of the digits preceding the a1-th digit; the context model used to parse the a2-th digit in the B[k]-bit value is selected independently from N context models, where a1 and a2 are both positive integers less than or equal to B[k], and a1 is not equal to a2.

[0666] In one implementation, after decoding the point to be decoded according to a determined encoding pattern, the reconstructed residual values ​​of the point to be decoded in K directions are obtained; the computer instructions in the computer-readable storage medium 1104 are loaded by the processor 1101 and are also used to perform the following steps:

[0667] Residual symbol decoding is performed on the point to be decoded in each of the K directions to obtain the reconstructed residual symbol information of the point to be decoded in the K directions;

[0668] Based on the reconstruction residual values ​​of the point to be decoded in K directions and the sign information of the reconstruction residuals of the point to be decoded in K directions, the reconstruction residual information of the point to be decoded is determined.

[0669] Based on the reconstruction residual information of the point to be decoded, the geometric information of the point to be decoded is reconstructed.

[0670] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to perform residual symbol decoding on the point to be decoded in each of the K directions to obtain the reconstructed residual symbol information of the point to be decoded in the K directions, the instructions specifically perform the following steps:

[0671] Read the residual symbol encoding of the point to be decoded in K directions from the encoded bitstream of the point cloud;

[0672] The residual symbol encoding of the point to be decoded in K directions is parsed to obtain the reconstructed residual symbol information of the point to be decoded in K directions.

[0673] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to perform residual symbol decoding on the point to be decoded in each of the K directions to obtain the reconstructed residual symbol information of the point to be decoded in the K directions, the instructions specifically perform the following steps:

[0674] Obtain symbol identification information, which is either set by default at the encoding and decoding ends, or obtained by parsing from the encoding parameter set or encoding bitstream of the point cloud;

[0675] Based on the value of the symbol identification information, determine the symbol association relationship between the point to be decoded and its predecessor point;

[0676] If there is a symbol association relationship between the point to be decoded and its predecessor, then the reconstruction residual symbol information of the point to be decoded in the K directions is determined based on the reconstruction residual symbol information of the predecessor in the K directions.

[0677] If there is no symbol association between the point to be decoded and its predecessor point, the residual symbol encoding of the point to be decoded in K directions is read from the encoded bitstream of the point cloud, and the residual symbol encoding of the point to be decoded in K directions is parsed to obtain the reconstructed residual symbol information of the point to be decoded in K directions.

[0678] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to parse the residual symbol encoding of the point to be decoded in K directions and obtain the reconstructed residual symbol information of the point to be decoded in K directions, the instructions specifically perform the following steps:

[0679] The residual symbol encoding of the point to be decoded in K directions is parsed using a K2 context model to obtain the reconstructed residual symbol information of the point to be decoded in K directions, where K2 is a positive integer less than or equal to K.

[0680] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to reconstruct the geometric information of the point to be decoded based on the reconstructed residual information of the point to be decoded, they are specifically used to perform the following steps:

[0681] Obtain the predicted geometric information of the point to be decoded;

[0682] Based on the reconstructed residual information and the predicted geometric information of the point to be decoded, the geometric information of the point to be decoded is reconstructed.

[0683] In this embodiment, when decoding points in a point cloud is required, the encoded data of the point cloud can be obtained. Based on the encoded data, the encoding mode of the points to be decoded in each direction can be determined, and the points to be decoded can be decoded according to the determined encoding mode. This embodiment can determine appropriate encoding modes for each direction of the points to be decoded using encoded data, thereby improving the geometric decoding efficiency of point clouds.

[0684] This application provides a computer device, which may be the aforementioned decoding device. Please refer to... Figure 11 , Figure 11 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Figure 11 The computer device shown includes at least a processor 1101, an input interface 1102, an output interface 1103, and a computer-readable storage medium 1104. The processor 1101, input interface 1102, output interface 1103, and computer-readable storage medium 1104 can be connected via a bus or other means.

[0685] The computer-readable storage medium 1104 can be stored in the memory of a computer device. The computer-readable storage medium 1104 is used to store computer programs, which include computer instructions. The processor 1101 is used to execute the program instructions stored in the computer-readable storage medium 1104. The processor 1101 (or CPU (Central Processing Unit)) is the computing and control core of the computer device. It is adapted to implement one or more computer instructions, specifically to load and execute one or more computer instructions to achieve corresponding method flows or corresponding functions.

[0686] This application also provides a computer-readable storage medium (Memory), which is a memory device in a computer device used to store programs and data. It is understood that the computer-readable storage medium here can include both built-in storage media in the computer device and extended storage media supported by the computer device. The computer-readable storage medium provides storage space that stores the operating system of the computer device. Furthermore, the storage space also stores one or more computer instructions suitable for loading and execution by a processor. These computer instructions can be one or more computer programs (including program code). It should be noted that the computer-readable storage medium here can be high-speed RAM or non-volatile memory, such as at least one disk storage device; optionally, it can also be at least one computer-readable storage medium located remotely from the aforementioned processor.

[0687] In some embodiments, the processor 1101 may load and execute one or more computer instructions stored in the computer-readable storage medium 1104 to implement the aforementioned related... Figure 7 The corresponding steps of the point cloud processing method shown are as follows. In a specific implementation, the computer instructions in the computer-readable storage medium 1104 are loaded by the processor 1101 and executed as follows:

[0688] Set the encoding data for the point cloud;

[0689] Based on the encoded data, determine the encoding patterns of the points to be encoded in the point cloud in K directions, where K is a positive integer; and encode the points to be encoded according to the determined encoding patterns.

[0690] In one implementation, the encoded data includes default setting information, which is the default setting of the encoding end and the decoding end; the processing unit 1002, when determining the encoding mode of the point to be encoded in the point cloud in K directions based on the encoded data, specifically performs the following steps:

[0691] Based on the default settings, the point to be encoded will use the default encoding mode in K directions;

[0692] If the default setting information indicates that the encoding modes in the K directions are the same, then the point to be encoded will use the same default encoding mode in all of the K directions; if the default setting information indicates that the encoding modes in the K directions are different, then the point to be encoded will use different default encoding modes in each of the K directions.

[0693] In one implementation, the encoded data includes mode setting information, which is written into the encoding parameter set of the point cloud or the encoded bitstream of the point cloud. When the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode of the point to be encoded in the point cloud in K directions based on the encoded data, they are specifically used to perform the following steps:

[0694] If the mode setting information is shared by the point to be encoded in K directions, then it is determined that the point to be encoded adopts the same encoding mode in K directions, and the encoding mode shared by the point to be encoded in K directions is determined according to the mode setting information shared by the point to be encoded in K directions.

[0695] If the point to be encoded corresponds to a mode setting information in each of the K directions, then it is determined that the point to be encoded adopts different encoding modes in the K directions, and the encoding mode of the point to be encoded in the corresponding direction is determined according to the mode setting information corresponding to the point to be encoded in each direction.

[0696] In one implementation, the mode setting information includes one or both of the residual difference flag field or the placeholder difference flag field; when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode shared by the point to be encoded in the K directions based on the mode setting information shared by the point to be encoded in the K directions, they are specifically used to execute any of the following:

[0697] The mode setting information includes the residual difference flag field. When the residual difference flag field is set to the target value, the encoding mode shared by the point to be encoded in K directions is determined to be the first encoding mode.

[0698] The mode setting information includes a placeholder difference flag field. When the placeholder difference flag field is set to the target value, the encoding mode shared by the point to be encoded in K directions is determined to be the second encoding mode.

[0699] The mode setting information includes the residual difference flag field and the placeholder difference flag field. When both the residual difference flag field and the placeholder difference flag field are set to the target value, the encoding mode shared by the point to be encoded in K directions is determined to be the third encoding mode.

[0700] In one implementation, the encoded data includes a decision threshold, which is a default setting at the encoding and decoding ends, or the decision threshold is written into the encoding parameter set or encoding stream of the point cloud; when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode of the point to be encoded in the point cloud in K directions based on the encoded data, they are specifically used to perform the following steps:

[0701] Obtain pattern determination information;

[0702] Based on the pattern determination information and the determination threshold, the encoding pattern of the point to be encoded in K directions is determined.

[0703] In one implementation, the determination threshold includes a quantization threshold, and the mode determination information includes quantization parameters shared by the point to be encoded in K directions. The point to be encoded uses the same encoding mode in the K directions. When the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode of the point to be encoded in the K directions based on the mode determination information and the determination threshold, they are specifically used to perform the following steps:

[0704] Based on the relationship between the quantization parameters and the quantization threshold, the encoding mode shared by the point to be encoded in K directions is determined.

[0705] In one implementation, the quantization parameters include any one or both of a first quantization threshold and a second quantization threshold; when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode shared by the point to be encoded in K directions according to the relationship between the quantization parameters and the quantization thresholds, they are specifically used to execute any of the following:

[0706] When the quantization threshold includes the first quantization threshold, if the quantization parameter is less than the first quantization threshold, then the encoding mode shared by the point to be encoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0707] When the quantization threshold includes the second quantization threshold, if the quantization parameter is greater than the second quantization threshold, then the coding mode shared by the point to be encoded in the K directions is determined to be any one of the first coding mode, the second coding mode, or the third coding mode.

[0708] When the quantization threshold includes a first quantization threshold and a second quantization threshold, if the quantization parameter is greater than the second quantization threshold and less than the first quantization threshold, then the encoding mode shared by the point to be encoded in the K directions is determined to be any one of the first encoding mode, the second encoding mode, or the third encoding mode.

[0709] In one implementation, the determination threshold includes an encoding information threshold, and the mode determination information includes the encoding information of the point to be encoded in K directions. The encoding information includes residual values ​​or the number of bits occupied by the residual values. When the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to determine the encoding mode of the point to be encoded in K directions based on the mode determination information and the determination threshold, they are specifically used to perform the following steps:

[0710] When the point to be encoded uses the same encoding pattern in K directions, determine the statistical characteristics of the information to be encoded in the K directions, and determine the encoding pattern shared by the point in the K directions based on the relationship between the statistical characteristics and the encoding information threshold; or,

[0711] When the point to be encoded adopts different encoding modes in K directions, the encoding mode of the point to be encoded in the corresponding direction is determined according to the judgment threshold and the size relationship between the information to be encoded in each direction.

[0712] The statistical characteristic information includes any of the following: the average value of the information to be encoded in K directions, the minimum value of the information to be encoded in K directions, and the maximum value of the information to be encoded in K directions.

[0713] In one implementation, the decision threshold includes a bounding box threshold, and the pattern decision information includes the bounding box size of the prediction tree of the point cloud, the bounding box size including the size in K directions; the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101. When determining the encoding pattern of the point to be encoded in K directions based on the pattern decision information and the decision threshold, the instructions are specifically used to perform the following steps:

[0714] When the point to be encoded uses the same encoding pattern in K directions, the target size feature value is determined based on the dimensions in the K directions, and the encoding pattern shared by the point to be encoded in the K directions is determined based on the relationship between the target size feature value and the bounding box threshold; or,

[0715] When the point to be encoded adopts different encoding modes in K directions, the size feature value of each of the K directions is determined according to the size in the K directions, and the encoding mode of the point to be encoded in the corresponding direction is determined according to the relationship between the bounding box threshold and the size feature value of each direction.

[0716] In one implementation, the computer instructions in the computer-readable storage medium 1104 are loaded by the processor 1101 and are also used for execution:

[0717] Obtain the geometric residual information of the point to be encoded. The geometric residual information includes the residual values ​​of the point to be encoded in K directions and the residual sign information of the point to be encoded in K directions.

[0718] Processing unit 1002, when encoding the point to be encoded according to a determined encoding pattern, specifically performs the following steps:

[0719] According to the determined encoding pattern, the residual values ​​of the point to be encoded in K directions are encoded.

[0720] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be encoded in the k-th direction is a first encoding mode, where k is a positive integer less than or equal to K; the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101. When encoding the residual values ​​of the point to be encoded in the K directions according to the determined encoding mode, the following steps are specifically performed:

[0721] The residual value A[k] of the point to be encoded in the k-th direction is calculated by taking the remainder, and the residual quotient A1[k] and residual remainder A2[k] are obtained.

[0722] Determine the number of bits occupied by the residual quotient A1[k], use the number of bits occupied in the k-th direction corresponding to the point to be encoded to represent the number of bits occupied B[k], and encode the number of bits occupied field;

[0723] The residual remainder A2[k] is represented by the residual remainder number segment corresponding to the point to be encoded in the k-th direction, and the residual remainder number segment is encoded.

[0724] The B[k] bits in the bit value field corresponding to the point to be encoded in the k-th direction are used to represent the value of each bit in the B[k] bits occupied by the residual quotient A1[k], and the B[k] bits in the bit value field are encoded.

[0725] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be encoded in the k-th direction is a second encoding mode, where k is a positive integer less than or equal to K; the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101. When encoding the residual values ​​of the point to be encoded in the K directions according to the determined encoding mode, the following steps are specifically performed:

[0726] Determine the number of bits B[k] occupied by the residual value A[k] of the point to be encoded in the k-th direction;

[0727] The remainder of the occupied bit length B[k] is calculated to obtain the placeholder quotient B1[k] and the placeholder remainder B2[k].

[0728] The number of occupies in the k-th direction is used to represent the quotient B1[k], and the number of occupies in the bit field is encoded.

[0729] The placeholder remainder B2[k] is represented by the placeholder remainder number segment corresponding to the point to be encoded in the k-th direction, and the placeholder remainder number segment is encoded.

[0730] The B[k] bits in the bit value field corresponding to the point to be encoded in the k-th direction are used to represent the value of each bit in the B[k] bits occupied by the residual value of the point to be encoded in the k-th direction, and the B[k] bits in the bit value field are encoded.

[0731] In one implementation, for the k-th direction among K directions, the encoding mode of the point to be encoded in the k-th direction is a third encoding mode, where k is a positive integer less than or equal to K; the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101. When encoding the residual values ​​of the point to be encoded in the K directions according to the determined encoding mode, the following steps are specifically performed:

[0732] The residual value A[k] of the point to be encoded in the k-th direction is calculated by taking the remainder, and the residual quotient A1[k] and residual remainder A2[k] are obtained.

[0733] The residual remainder A2[k] is represented by the residual remainder number segment corresponding to the point to be encoded in the k-th direction, and the residual remainder number segment is encoded.

[0734] The number of bits occupied by the residual quotient A1[k] is calculated by taking the remainder, and the placeholder quotient B1[k] and placeholder remainder B2[k] are obtained.

[0735] The number of occupies in the k-th direction is used to represent the quotient B1[k], and the number of occupies in the bit field is encoded.

[0736] The placeholder remainder B2[k] is represented by the placeholder remainder number segment corresponding to the k-th direction of the point to be encoded, and the placeholder remainder number segment is encoded.

[0737] The B[k] bits in the bit value field corresponding to the point to be encoded in the k-th direction are used to represent the value of each bit in the B[k] bits occupied by the residual quotient A1, and the B[k] bits in the bit value field are encoded.

[0738] In one implementation, when the encoding mode of the point to be encoded in the K directions is the first encoding mode or the third encoding mode, the residual number segment corresponding to the point to be encoded in the K directions is encoded using K4 context models, where K4 is a positive integer less than or equal to K.

[0739] In one implementation, when the encoding mode of the point to be encoded in the K directions is the second encoding mode or the third encoding mode, the placeholder remainder number field corresponding to the point to be encoded in the K directions is encoded using K5 context models, where K5 is a positive integer less than or equal to K.

[0740] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to encode the B[k] bit elements in the bit value field, they are specifically used to perform the following steps:

[0741] N context models are used to encode the B[k] bits in the bit value field, where B[k] is a positive integer and N is a positive integer greater than or equal to B[k].

[0742] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to encode the B[k] bit elements in the bit value field using N context models, they are specifically used to perform the following steps:

[0743] The B[k] bits in the bit value field are encoded using N independent context models;

[0744] The context model used to encode each element in the bit value field is selected independently from N context models.

[0745] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to encode the B[k] bit elements in the bit value field using N context models, they are specifically used to perform the following steps:

[0746] The B[k] bits in the bit value field are encoded using N fully correlated context models;

[0747] The context model used to encode the a-th bit element in the bit value field is selected from N context models, depending on the a-1 bits preceding the a-th bit element, where a is a positive integer less than or equal to B[k].

[0748] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to encode the B[k] bit elements in the bit value field using N context models, they are specifically used to perform the following steps:

[0749] The B[k] bits in the bit value field are encoded using an N-part related context model;

[0750] The context model used to encode the a1-th element in the bit value field is selected from N context models, depending on the elements preceding the a1-th element; the context model used to encode the a2-th element in the bit value field is selected independently from N context models. Both a1 and a2 are positive integers less than or equal to B[k], and a1 is not equal to a2.

[0751] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to obtain the geometric residual information of the point to be encoded, they are specifically used to perform the following steps:

[0752] Obtain the predicted geometric information of the point to be encoded;

[0753] The geometric residual information of the point to be encoded is determined based on the actual geometric information and the predicted geometric information of the point to be encoded.

[0754] In one implementation, the computer instructions in the computer-readable storage medium 1104 are loaded by the processor 1101 and are also used to perform the following steps:

[0755] Perform residual symbol encoding on the point to be encoded in K directions.

[0756] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to perform residual symbol encoding of the point to be encoded in K directions, they are specifically used to perform the following steps:

[0757] Encode the residual symbol information of the point to be encoded in K directions.

[0758] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to perform residual symbol encoding of the point to be encoded in K directions, they are specifically used to perform the following steps:

[0759] Set symbol identification information; the symbol identification information is set by default at the encoding end and the decoding end, or the symbol identification information is written into the encoding parameter set or encoding bitstream of the point cloud;

[0760] Based on the setting value of the symbol identification information, determine the symbol association relationship between the point to be encoded and its predecessor point;

[0761] If there is a symbolic association between the point to be encoded and its predecessor, then the residual symbolic encoding of the point to be encoded in the K directions is determined based on the residual symbolic encoding of the predecessor in the K directions.

[0762] If there is no symbol association between the point to be encoded and its predecessor, then the residual symbol information of the point to be encoded in K directions is encoded.

[0763] In one implementation, when the computer instructions in the computer-readable storage medium 1104 are loaded and executed by the processor 1101 to encode the residual symbol information of the point to be encoded in K directions, they are specifically used to perform the following steps:

[0764] K2 context models are used to encode the residual symbol information of the point to be encoded in K directions, where K1 is a positive integer less than or equal to K.

[0765] In this embodiment, when it is necessary to encode points in a point cloud, encoding data for the point cloud can be set. Based on the encoding data, the encoding patterns of the points to be encoded in each direction are determined, and the points to be encoded are encoded according to the determined encoding patterns. This embodiment can determine suitable encoding patterns for each direction of the points to be encoded using encoding data, thereby improving the geometric encoding efficiency of point clouds.

[0766] According to one aspect of this application, a computer program product or computer program is provided, comprising computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the point cloud processing method provided in the various alternative embodiments described above.

[0767] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method of point cloud processing, the method comprising: The method comprises: acquiring encoded data of a point cloud, the encoded data comprising default setting information, the default setting information being default setting of a decoding end and an encoding end; determining, according to the default setting information, that a to-be-decoded point adopts a default encoding mode in K directions, K being a positive integer; performing residual value decoding on each of the K directions of the to-be-decoded point according to the determined default encoding mode to obtain a reconstructed residual value of the to-be-decoded point in the K directions; for a kth direction of the K directions, k being a positive integer less than or equal to K, when the default encoding mode of the to-be-decoded point in the kth direction is a first encoding mode, the performing residual value decoding on each of the K directions of the to-be-decoded point according to the determined default encoding mode to obtain the reconstructed residual value of the to-be-decoded point in the K directions comprises: parsing a bit number field corresponding to the kth direction of the to-be-decoded point to obtain a bit number B[k] of a residual quotient A1[k] of the to-be-decoded point in the kth direction; parsing B[k] bit values in a bit value field corresponding to the kth direction of the to-be-decoded point to obtain the residual quotient A1[k]; parsing a residual remainder field corresponding to the kth direction of the to-be-decoded point to obtain a residual remainder A2[k] of the to-be-decoded point in the kth direction; and determining a reconstructed residual value A[k] of the to-be-decoded point in the kth direction according to the residual quotient A1[k] and the residual remainder A2[k].

2. The method of claim 1, wherein, If the default setting information indicates that the encoding modes of the K directions are the same, the to-be-decoded point adopts the same default encoding mode in all of the K directions; if the default setting information indicates that the encoding modes of the K directions are different, the to-be-decoded point adopts different default encoding modes in each of the K directions.

3. The method of claim 1, wherein, When the default encoding mode of the to-be-decoded point in the kth direction is a second encoding mode, the performing residual value decoding on each of the K directions of the to-be-decoded point according to the determined default encoding mode to obtain the reconstructed residual value of the to-be-decoded point in the K directions comprises: parsing a bit number field corresponding to the kth direction of the to-be-decoded point to obtain a bit number B1[k] of a residual quotient of the to-be-decoded point in the kth direction; parsing a residual remainder field corresponding to the kth direction of the to-be-decoded point to obtain a residual remainder B2[k] of the to-be-decoded point in the kth direction; determining a bit number B[k] of a reconstructed residual value A[k] of the to-be-decoded point in the kth direction according to the bit number B1[k] and the residual remainder B2[k]; parsing B[k] bit values in a bit value field corresponding to the kth direction of the to-be-decoded point to obtain the reconstructed residual value A[k] of the to-be-decoded point in the kth direction.

4. The method of claim 1, wherein, When the default coding mode of the to-be-decoded point in the kth direction is the third coding mode, the residual value decoding of each of the K directions of the to-be-decoded point according to the determined default coding mode to obtain the reconstructed residual value of the K directions of the to-be-decoded point comprises: parsing the bit number field corresponding to the to-be-decoded point in the kth direction to obtain the bit number B1[k] of the to-be-decoded point in the kth direction; parsing the bit number field corresponding to the to-be-decoded point in the kth direction to obtain the bit number B1[k] of the to-be-decoded point in the kth direction; determining the bit number B[k] of the residual quotient A1[k] of the to-be-decoded point in the kth direction according to the bit number B1[k] and the bit number B2[k]; parsing the B[k] bit value in the bit number field corresponding to the to-be-decoded point in the kth direction to obtain the residual quotient A1[k]; parsing the residual remainder field corresponding to the to-be-decoded point in the kth direction to obtain the residual remainder A2[k] of the to-be-decoded point in the kth direction; determining the reconstructed residual value A[k] of the to-be-decoded point in the kth direction according to the residual quotient A1[k] and the residual remainder A2[k].

5. The method of claim 1 or 4, wherein, When the default coding mode of the to-be-decoded point in the K directions is the first coding mode or the third coding mode, the residual remainder field corresponding to the to-be-decoded point in the K directions is parsed using K4 context models, K4 being a positive integer less than or equal to K.

6. The method of claim 3 or 4, wherein, When the default coding mode of the to-be-decoded point in the K directions is the second coding mode or the third coding mode, the residual remainder field corresponding to the to-be-decoded point in the K directions is parsed using K5 context models, K5 being a positive integer less than or equal to K.

7. The method of any one of claims 1, 3 or 4, wherein, The parsing of the B[k] bit value in the bit number field corresponding to the to-be-decoded point in the kth direction comprises: parsing the B[k] bit value using N context models, B[k] being a positive integer and N being a positive integer greater than or equal to B[k].

8. The method of claim 7, wherein, The parsing of the B[k] bit value using N context models comprises: parsing the B[k] bit value using N independent context models, N being equal to B[k]; wherein the context model used to parse each bit value in the B[k] bit value is independently selected from the N context models.

9. The method of claim 7, wherein, The parsing of the B[k] bit value using N context models comprises: parsing the B[k] bit value using N fully correlated context models, N being greater than B[k]; wherein the context model used to parse the a-th bit value in the B[k] bit value is selected from the N context models in dependence on the parsing results of the first a-1 bit values, a being a positive integer less than or equal to B[k].

10. The method of claim 7, wherein, The parsing of the B[k] bit value using N context models comprises: The B[k] bit values are parsed using N partial correlation context models, where N is greater than B[k]; The context model used to parse the a1th bit value in the B[k] bit values is selected from the N context models depending on the parsing results of the values before the a1th bit value, and the context model used to parse the a2th bit value in the B[k] bit values is independently selected from the N context models, where a1 and a2 are positive integers less than or equal to B[k], and a1 is not equal to a2.

11. The method of claim 1, wherein, The method further includes: performing residual sign decoding on each of the K directions of the to-be-decoded point to obtain reconstructed residual sign information of the to-be-decoded point in the K directions; determining reconstructed residual information of the to-be-decoded point according to the reconstructed residual values of the to-be-decoded point in the K directions and the reconstructed residual sign information of the to-be-decoded point in the K directions; reconstructing geometric information of the to-be-decoded point according to the reconstructed residual information of the to-be-decoded point.

12. The method of claim 11, wherein, The performing residual sign decoding on each of the K directions of the to-be-decoded point to obtain reconstructed residual sign information of the to-be-decoded point in the K directions includes: reading residual sign codes of the to-be-decoded point in the K directions from an encoded bitstream of the point cloud; parsing the residual sign codes of the to-be-decoded point in the K directions to obtain the reconstructed residual sign information of the to-be-decoded point in the K directions.

13. The method of claim 11, wherein, The performing residual sign decoding on each of the K directions of the to-be-decoded point to obtain reconstructed residual sign information of the to-be-decoded point in the K directions includes: obtaining sign identification information, which is set by default at an encoding end and a decoding end, or is parsed from an encoded parameter set or an encoded bitstream of the point cloud; determining a sign association relationship between the to-be-decoded point and a previous point of the to-be-decoded point according to a value of the sign identification information; if the sign association relationship exists between the to-be-decoded point and the previous point of the to-be-decoded point, determining the reconstructed residual sign information of the to-be-decoded point in the K directions according to reconstructed residual sign information of the previous point of the to-be-decoded point in the K directions; if the sign association relationship does not exist between the to-be-decoded point and the previous point of the to-be-decoded point, reading the residual sign codes of the to-be-decoded point in the K directions from the encoded bitstream of the point cloud, and parsing the residual sign codes of the to-be-decoded point in the K directions to obtain the reconstructed residual sign information of the to-be-decoded point in the K directions.

14. The method of claim 12 or 13, wherein, The parsing the residual sign codes of the to-be-decoded point in the K directions to obtain the reconstructed residual sign information of the to-be-decoded point in the K directions includes: K2 context models are used to parse the residual sign codes of the to-be-decoded point in the K directions to obtain the reconstructed residual sign information of the to-be-decoded point in the K directions, where K2 is a positive integer less than or equal to K.

15. The method of claim 11, wherein, The reconstructing the geometric information of the to-be-decoded point according to the reconstructed residual information of the to-be-decoded point includes: acquiring prediction geometry information of the to-be-decoded point; reconstructing geometry information of the to-be-decoded point according to the reconstructed residual information of the to-be-decoded point and the prediction geometry information of the to-be-decoded point.

16. A method of point cloud processing, the method comprising: The method comprises: setting encoding data of a point cloud, wherein the encoding data comprises default setting information, and the default setting information is set by default at an encoding end and a decoding end; determining that the to-be-encoded point adopts a default encoding mode in K directions according to the default setting information, wherein K is a positive integer; acquiring geometry residual information of the to-be-encoded point, wherein the geometry residual information comprises residual values of the to-be-encoded point in the K directions; encoding the residual values of the to-be-encoded point in the K directions according to the determined default encoding mode; for a kth direction in the K directions, k is a positive integer less than or equal to K, when the default encoding mode of the to-be-encoded point in the kth direction is a first encoding mode, the encoding the residual values of the to-be-encoded point in the K directions according to the determined default encoding mode comprises: performing modulo calculation on the residual value A[k] of the to-be-encoded point in the kth direction to obtain a residual quotient A1[k] and a residual remainder A2[k]; determining a number of occupied bit positions B[k] of the residual quotient A1[k], representing the number of occupied bit positions B[k] by using a number of occupied bit position field corresponding to the to-be-encoded point in the kth direction, and encoding the number of occupied bit position field; representing the residual remainder A2[k] by using a residual remainder field corresponding to the to-be-encoded point in the kth direction, and encoding the residual remainder field; representing a value of each bit position of B[k] bit positions occupied by the residual quotient A1[k] by using B[k] bit elements in a bit value field corresponding to the to-be-encoded point in the kth direction, and encoding the B[k] bit elements in the bit value field.

17. The method of claim 16, wherein, when the default encoding mode of the to-be-encoded point in the kth direction is a second encoding mode, the encoding the residual values of the to-be-encoded point in the K directions according to the determined default encoding mode comprises: determining a number of occupied bit positions B[k] of the residual value A[k] of the to-be-encoded point in the kth direction; performing modulo calculation on the number of occupied bit positions B[k] to obtain a position quotient B1[k] and a position remainder B2[k]; representing the position quotient B1[k] by using a number of occupied bit position field corresponding to the to-be-encoded point in the kth direction, and encoding the number of occupied bit position field; representing the position remainder B2[k] by using a position remainder field corresponding to the to-be-encoded point in the kth direction, and encoding the position remainder field; representing a value of each bit position of B[k] bit positions occupied by the residual value of the to-be-encoded point in the kth direction by using B[k] bit elements in a bit value field corresponding to the to-be-encoded point in the kth direction, and encoding the B[k] bit elements in the bit value field.

18. The method of claim 16, wherein, When the default coding mode of the to-be-coded point in the kth direction is the third coding mode, the coding of the residual value of the to-be-coded point in the K directions according to the determined default coding mode comprises: performing modulo calculation on the residual value A[k] of the to-be-coded point in the kth direction to obtain a residual quotient A1[k] and a residual remainder A2[k]; using a residual remainder field corresponding to the to-be-coded point in the kth direction to represent the residual remainder A2[k] and coding the residual remainder field; performing modulo calculation on the number of occupied bit positions B[k] of the residual quotient A1[k] to obtain a placeholder quotient B1[k] and a placeholder remainder B2[k]; using a placeholder remainder field corresponding to the to-be-coded point in the kth direction to represent the placeholder remainder B2[k] and coding the placeholder remainder field; using a bit number value field corresponding to the to-be-coded point in the kth direction to represent the number value of each bit in the B[k] bit positions of the residual quotient A1[k], and coding the B[k] bit elements in the bit number value field. The geometric residual information further comprises residual sign information of the to-be-coded point in the K directions; the method further comprises:

19. The method of claim 16, wherein, coding the residual sign of the to-be-coded point in the K directions. The coding of the residual sign of the to-be-coded point in the K directions comprises:

20. The method of claim 19, wherein, setting sign identification information; the sign identification information is set by default by the encoding end and the decoding end, or the sign identification information is written into the coding parameter set or the coding code stream of the point cloud; determining the sign association relationship between the to-be-coded point and the predecessor point of the to-be-coded point according to the set value of the sign identification information; if the to-be-coded point and the predecessor point of the to-be-coded point have a sign association relationship, determining the residual sign coding of the to-be-coded point in the K directions according to the residual sign coding of the predecessor point of the to-be-coded point in the K directions; if the to-be-coded point and the predecessor point of the to-be-coded point do not have a sign association relationship, coding the residual sign information of the to-be-coded point in the K directions. The point cloud processing apparatus comprises:

21. A point cloud processing apparatus, characterized by comprising: an acquisition unit configured to acquire coding data of a point cloud, wherein the coding data comprises default setting information, and the default setting information is set by default by a decoding end and an encoding end. ​ The decoding unit is configured to determine, according to the default setting information, that a to-be-decoded point adopts a default encoding mode in K directions, K being a positive integer; and perform residual value decoding on each of the K directions of the to-be-decoded point according to the determined default encoding mode, to obtain reconstructed residual values of the to-be-decoded point in the K directions; for a kth direction of the K directions, k being a positive integer less than or equal to K, when the default encoding mode of the to-be-decoded point in the kth direction is a first encoding mode, the performing residual value decoding on each of the K directions of the to-be-decoded point according to the determined default encoding mode, to obtain the reconstructed residual values of the to-be-decoded point in the K directions, comprises: parsing a bit number field corresponding to the to-be-decoded point in the kth direction, to obtain a bit number B[k] of a residual quotient A1[k] of the to-be-decoded point in the kth direction; parsing B[k] bit values in a bit value field corresponding to the to-be-decoded point in the kth direction, to obtain the residual quotient A1[k]; parsing a residual remainder field corresponding to the to-be-decoded point in the kth direction, to obtain a residual remainder A2[k] of the to-be-decoded point in the kth direction; and determining a reconstructed residual value A[k] of the to-be-decoded point in the kth direction according to the residual quotient A1[k] and the residual remainder A2[k].

22. A point cloud processing apparatus, characterized by comprising: The point cloud processing apparatus comprises: A setting unit is configured to set encoding data of a point cloud, wherein the encoding data comprises default setting information, and the default setting information is set by a decoding end and an encoding end by default. The encoding unit is configured to determine, according to the default setting information, that a to-be-encoded point adopts a default encoding mode in K directions, K being a positive integer; obtain geometric residual information of the to-be-encoded point, the geometric residual information including residual values of the to-be-encoded point in the K directions; encode the residual values of the to-be-encoded point in the K directions according to the determined default encoding mode; for a kth direction in the K directions, k being a positive integer less than or equal to K, when the default encoding mode of the to-be-encoded point in the kth direction is a first encoding mode, the encoding of the residual values of the to-be-encoded point in the K directions according to the determined default encoding mode includes: performing modulo calculation on the residual value A[k] of the to-be-encoded point in the kth direction to obtain a residual quotient A1[k] and a residual remainder A2[k]; determining a number of occupied bits B[k] of the residual quotient A1[k], using a number of occupied bits field corresponding to the to-be-encoded point in the kth direction to represent the number of occupied bits B[k], and encoding the number of occupied bits field; using a residual remainder field corresponding to the to-be-encoded point in the kth direction to represent the residual remainder A2[k], and encoding the residual remainder field; using B[k] bit elements in a bit value field corresponding to the to-be-encoded point in the kth direction to represent a value of each bit in the B[k] bit positions occupied by the residual quotient A1[k], and encoding the B[k] bit elements in the bit value field.

23. A computer device, comprising: The computer device comprises: a processor adapted to implement a computer program; a computer readable storage medium storing a computer program, the computer program being adapted to be loaded and executed by the processor to implement the point cloud processing method according to any one of claims 1-15, or to implement the point cloud processing method according to any one of claims 16-20.

24. A computer-readable storage medium, characterized in that, The computer readable storage medium stores a computer program, the computer program being adapted to be loaded and executed by the processor to implement the point cloud processing method according to any one of claims 1-15, or to implement the point cloud processing method according to any one of claims 16-20.

25. A computer program product, characterised in that, The computer program product comprises computer instructions stored in a computer readable storage medium, and a processor of a computer device reads the computer instructions from the computer readable storage medium, and the processor executes the computer instructions to cause the computer device to implement the point cloud processing method according to any one of claims 1-15, or to implement the point cloud processing method according to any one of claims 16-20.

Citation Information

Patent Citations

  • Method and equipment for point cloud processing and decoding and storage medium

    CN111699697A