Geometric point cloud coding system and method

By adopting a combination method of zero run length code, context code and bypass code in the geometric point cloud coding system, the problem of insufficient geometric point cloud coding throughput in the existing technology is solved, and high throughput geometric point cloud coding is achieved. , suitable for a variety of application scenarios.

CN119343920APending Publication Date: 2025-01-21GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380045821.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-13
Filing Date
2023-06-13
Publication Date
2025-01-21

AI Technical Summary

Technical Problem

The existing geometric point cloud encoding system has insufficient throughput when processing wide range PCC inputs, making it difficult to meet the high throughput requirements of a variety of applications.

Method used

Multiple high-throughput encoding methods are proposed, including using zero run length codes and context codes to encode geometric point cloud attributes, and using context codes in geometry encoding to encode all bins of the number of repeated points and geometric residual values.

Benefits of technology

Through these methods, the throughput of the geometric point cloud encoding system is significantly improved, and point cloud data can be compressed and decoded more effectively, which is suitable for a variety of application scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119343920A_ABST
    Figure CN119343920A_ABST
Patent Text Reader

Abstract

A method of encoding a geometric point cloud includes encoding an attribute of the geometric point cloud with a zero run length code, where some bins of the attribute of the geometric point cloud are encoded with a context code and other remaining bins of the attribute of the geometric point cloud are encoded with a bypass code. A method of encoding a geometric point cloud includes encoding all bins representing a number of duplicate points of the geometric point cloud with a context code in geometric encoding. A method of encoding a geometric point cloud includes encoding all bins for representing geometric residual values of the geometric point cloud with context codes in geometric prediction tree encoding.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority to U.S. Provisional Application No. 63 / 366,312, filed on June 13, 2022, the entire contents of which are incorporated herein by reference. Background Art

[0002] The present disclosure relates to the field of image / video coding systems, and more particularly, to a geometric point cloud coding system and method thereof.

[0003] Geometry point cloud coding (G-PCC) is widely used in VR / AR for entertainment and industrial applications, such as LiDAR scan compression for cars or robots and HD maps for navigation. MPEG released the first version of the G-PCC standard, and the audio video coding standard (AVS) is also developing the G-PCC standard. In order to effectively compress point cloud data, the geometry of the point cloud is first compressed, and then the corresponding attributes based on the geometric information, including color or reflectivity, are compressed. A typical G-PCC encoding diagram is shown below. Figure 1 A typical G-PCC decoding diagram is shown in Figure 2 shown.

[0004] In the prior art, existing G-PCCs may have throughput issues for a wide range of PCC inputs. It is desirable to design a high throughput G-PCC system and method that can be used for a variety of applications.

[0005] Therefore, based on the above discussion, enhanced encoding methods for geometric point clouds must be studied in different use cases in the future. Summary of the invention

[0006] The purpose of the present disclosure is to propose multiple high-throughput coding methods for geometric point cloud coding (G-PCC). The proposed methods can be used for future G-PCC coding standards, especially for the Audio Video Coding Standard (AVS) G-PCC. With the implementation of the proposed methods, the code stream structure, syntax, constraints, and mapping used to generate decoded point clouds are considered to be modified to achieve standardization.

[0007] In a first aspect of the present disclosure, a method for encoding a geometric point cloud includes encoding attributes of the above-mentioned geometric point cloud using a zero run length code, wherein some bins of the attributes of the geometric point cloud are encoded using a context code, and the other remaining bins of the attributes of the geometric point cloud are binarized using a bypass code.

[0008] In a second aspect of the present disclosure, a method for encoding a geometric point cloud includes encoding all bins for representing the number of repeated points of the geometric point cloud using a context code in geometric coding.

[0009] In a third aspect of the present disclosure, a method for encoding a geometric point cloud includes encoding all bins of geometric residual values ​​used to represent the geometric point cloud using context codes in geometric prediction tree coding.

[0010] In a fourth aspect of the present disclosure, a geometric point cloud encoder is used to execute the above method.

[0011] In a fifth aspect of the present disclosure, a method for decoding a geometric point cloud comprises: decoding the attributes of the above-mentioned geometric point cloud, wherein the attributes of the geometric point cloud are encoded with a zero run length code, and wherein some bins of the attributes of the geometric point cloud are encoded with a context code, and the other remaining bins of the attributes of the geometric point cloud are encoded with a bypass code.

[0012] In a sixth aspect of the present disclosure, a geometric point cloud decoder is used to execute the above method.

[0013] In a seventh aspect of the present disclosure, a system is used to execute the above method.

[0014] In an eighth aspect of the present disclosure, a network includes a memory, a transceiver, and a processor coupled to the memory and the transceiver. The processor is configured to execute the above method.

[0015] In a ninth aspect of the present disclosure, a user equipment includes a memory, a transceiver, and a processor coupled to the memory and the transceiver. The processor is configured to execute the above method.

[0016] In a tenth aspect of the present disclosure, a wireless communication system includes a memory, a transceiver, and a processor coupled to the memory and the transceiver. The processor is configured to execute the above method.

[0017] In an eleventh aspect of the present disclosure, a non-transitory machine-readable storage medium stores instructions, and when the instructions are executed by a computer, the computer executes the above method.

[0018] In a twelfth aspect of the present disclosure, a chip includes a processor, which is used to call and run a computer program stored in a memory so that a device in which the chip is installed executes the above method.

[0019] In a thirteenth aspect of the present disclosure, a computer-readable storage medium stores a computer program, which enables a computer to execute the above method.

[0020] In a fourteenth aspect of the present disclosure, a computer program product includes a computer program, and the computer program enables a computer to execute the above method.

[0021] In a fifteenth aspect of the present disclosure, a computer program causes a computer to execute the above method. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] In order to more clearly illustrate the embodiments or related technologies of the present disclosure, the following briefly introduces the drawings described in the embodiments. Obviously, the drawings are only some embodiments of the present disclosure, and ordinary technicians in this field can obtain other drawings based on these drawings without any prerequisites. Figure 1 It is the G-PCC coding diagram in the prior art. Figure 2 It is a G-PCC decoding diagram in the prior art. Figure 3 is a schematic diagram showing an octree structure and corresponding digital representation according to an embodiment of the present disclosure. Figure 4 is a schematic diagram showing the structure of a cube and its relationship with adjacent cubes according to an embodiment of the present disclosure. Figure 5 is a block diagram of a system for wireless communication according to an embodiment of the present disclosure. Figure 6 is a schematic diagram showing a flowchart of a method for encoding a geometric point cloud according to an embodiment of the present disclosure. Figure 7 is a schematic diagram showing a flowchart of a method for encoding a geometric point cloud according to an embodiment of the present disclosure. Figure 8 is a schematic diagram showing a flowchart of a method for encoding a geometric point cloud according to an embodiment of the present disclosure. Fig. 9 is a schematic diagram showing a flowchart of a method for decoding a geometric point cloud according to an embodiment of the present disclosure. Fig.10 is a schematic diagram showing a flowchart of a method for decoding a geometric point cloud according to an embodiment of the present disclosure. Fig.11 is a schematic diagram showing a flowchart of a method for decoding a geometric point cloud according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0023] The technical points, structural features, objectives, and effects of various embodiments of the present disclosure are described in detail below in conjunction with the accompanying drawings. Specifically, the terms in various embodiments of the present disclosure are only for the purpose of describing specific embodiments, rather than limiting the present disclosure.

[0024] The cubic axis-aligned bounding box B is defined by two extreme points (0,0,0) and (2^d,2^d,2^d), where d is the maximum size of a given point cloud along the x, y, or z direction. Points in a point cloud will be denoted as points below. All points are included in this defined cube. A cube is divided into eight child cubes, which forms an octree structure that allows a parent cube to have eight child cubes. The seven sibling cubes of a given cube are cubes of the same size and share at least one of the same faces / edges / points with the given cube. The volume of a cube is 1 / 8 of the volume of the parent cube of the cube. A cube can contain multiple points, and the number of points in a cube depends on the size and position of the cube. For a given point cloud, the size of the minimum cube is predefined. As an example, a way to define the minimum cube is described. For a given point, the parent cube of the given point is defined as the minimum size cube that contains the given point. The sibling points of a given point are defined as those points that have the same parent cube as the given point.

[0025] An octree is a recursive data structure commonly used to describe three-dimensional space in which each inner cube has exactly eight child cubes. The space is recursively subdivided into eight octants until the resolution of the child cube is equal to the size of a point (i.e., the smallest element that is not further subdivided). To represent the cube, an 8-bit binary code following a space-filling curve pattern (Hilbert, Morton) is used, with each child cube being assigned a "1" or "0" value to indicate that the space in the child cube has any points associated with the child cube, or that the child cube is empty. Only occupied child cubes are further subdivided. The process of subdividing the parent cube terminates when the size of the child cube becomes equal to the size of the indivisible element (i.e., the spatial resolution of the point cloud) or simply equal to the size of the point. Figure 3 A typical octree structure of G-PCC and the corresponding numerical representation are shown.

[0026] Depending on the current position of the cube, a cube can be Figure 4 The shown cubes have at most six cubes of the same size that share a face. In addition, the current cube may also have some adjacent cubes that share lines or points with the current cube.

[0027] Similarly, the parent cube of the current cube also has up to six neighboring cubes of the same size as the parent cube that share a face with the parent cube. The parent cube of the current cube also has up to twelve neighboring cubes of the same size as the parent cube that share edges with the parent cube. The parent cube of the current cube also has up to eight neighboring cubes of the same size as the parent cube that share points with the parent cube.

[0028] Octree-based geometric information can be encoded using context-based arithmetic coding.

[0029] Point clouds may also have some corresponding attribute information that needs to be compressed, including color, reflectivity, etc. Because adjacent points in a point cloud may have strong correlations, prediction-based encoding methods have been developed and used to synthesize and encode point cloud attributes. More specifically, a prediction is formed from adjacent encoded attributes. Then, the difference between the current attribute and the prediction is encoded.

[0030] In this disclosure, coding is assumed to refer to encoding and decoding methods and systems. Attribute Encoding

[0031] After encoding the geometry information, the point cloud cube can be converted to a one-dimensional array using Morton or Hilbert codes / orders. Each position in the cube will have a corresponding Morton or Hilbert code, but some positions may not have any corresponding point cloud attributes. In other words, some positions may be empty. The attribute encoding will follow a predefined Morton or Hilbert order. A predictor can be generated from a point previously encoded in a Morton or Hilbert order. The attribute difference between the current point and the predictor of the current point is encoded into the bitstream.

[0032] In order to reduce memory usage, some predefined values ​​have been specified to limit the number of neighboring points that can be used to generate predictions. For example, only M data points out of the previous N consecutive coded points can be used to encode the current attribute. In an embodiment, M and N are set to fixed values ​​of 3 and 128, respectively. If more than 128 points have been encoded before the current point, only 3 of the 128 previously encoded neighboring points can be used to form an attribute predictor according to a predefined order. If there are less than 128 coded points before the current point, all of these coded points will be used as candidates to establish an attribute predictor. More specifically, K points before the current point are selected according to a predefined Morton or Hilbert order, for example K=6. Then the new Morton or Hilbert code of these N points will be recalculated by adding a fixed shift (e.g., 1) to the coordinates (x, y, z) of these N data points. Assume that the new Morton or Hilbert code of the current position is X. A set of P points before the current position and a set of Q points after the current position according to the new Morton or Hilbert code order will be selected. From these predefined K, P, and Q point sets, select M points that have the M closest "distances" to the current point. As an example, the distance d is defined as follows, and other distance metrics can also be used.

[0033] d=|x1-x2|+ |y1-y2|+|z1-z2| (1)

[0034] Among them, (x1, y1, z1) and (x2, y2, z2) are the coordinates of the current point and the pre-selected point respectively.

[0035] In an embodiment, a full search method based on Hilbert codes has been applied to attribute encoding. In the current software, the search range is set to 128, and the number of previous points used to form the predictor is set to M. If more than 128 points have been encoded before the current point, only M of the 128 previously encoded adjacent points can be used to form the attribute predictor according to the Hilbert order. If there are less than 128 encoded points before the current encoded point, all of these encoded points will be used as candidates to form the attribute predictor. Among a maximum of 128 previously encoded points, M points are selected that have the M closest "distances" to the current point. As an example, the distance d is defined as follows, and other distance metrics can also be used.

[0036] d=|x1-x2|+ |y1-y2|+|z1-z2| (1)

[0037] Where (x1, y1, z1) and (x2, y2, z2) are the coordinates of the current point and the pre-selected point along the Hilbert order, respectively. Once the M nearest points have been selected, the weighted average of the attributes of these M points forms a predictor to encode the attributes of the current point.

[0038] Points that are known to share the same face / line / point with the current point are close to the current point. Another technique is to consider these points as predictors.

[0039] The residual is defined as the difference in the property value between the current point and the predictor of the current point. Depending on the application, PCC can be lossless or lossy. Therefore, the residual can be quantized using a predetermined quantization step or not. In the present disclosure, the quantized residual or the unquantized residual is referred to as a level. The level can be a signed integer and will be encoded into the bitstream. Reflectivity level coding

[0040] In an embodiment, a zero run length level and a non-zero level are encoded into a code stream. More specifically, on the encoding side, a zero run length counter is set to zero before encoding the first point. Starting from the first point along the predefined encoding order, the residual between the predictor and the corresponding original point is obtained. The corresponding level is then obtained. If the current level is zero, the zero run length will be increased by one, and the process continues to the next point. If the level is not zero, the zero run length will be encoded first, and the non-zero level will be encoded after the zero run length encoding. After encoding the non-zero level, the zero run length counter will be reset to zero, and the process continues to the next point. On the decoding side, the value of the zero run length is first decoded, and the level corresponding to the number of zero run length points is set to zero. The non-zero level is then decoded, and the next zero run length is decoded. The process continues until all points are decoded.

[0041] For a non-zero level, if the current point is not a repeated point, the sign of the level is first encoded using the syntax element residual_sign. Then the syntax element absolute_residual_equal_one is encoded to indicate whether the current residual is one. If the current residual is not equal to one, another syntax element absolute_residual_equal_two is encoded. If the current residual is not equal to two, another syntax element absolute_residual_minus_three is encoded to encode the value of the absolute residual minus three. Table 1 is the current syntax table for reflectivity level encoding.

[0042] Table 1 Reflectivity coding

[0043] Additionally, zero run length and non-zero reflectivity residuals may be encoded in other similar ways. Color level coding

[0044] Each point with three color components has three color attributes. If the levels of the three color components are all zero, the point is called a zero-level point. Otherwise, if the point has a non-zero level of at least one color component, the point is called a non-zero-level point. In an embodiment, the number of consecutive zero-level points is called a zero-run length. The zero-run length value and the level of the non-zero-level point are encoded into the code stream. More specifically, on the encoding side, before the encoding of the first point, the zero-run length value is set to zero. Starting from the first point along the predefined encoding order, the residuals between the three color predictors of the current point and their corresponding color attributes can be obtained. Then the corresponding levels of all three components of the current point can also be obtained. If the current point is a zero-level point, the zero-run length value will be increased by one, and the process continues to the next point. If the current point is a non-zero-level point, the zero-run length value will be encoded first, and all three color levels of the non-zero-level point will be encoded. After the level encoding of the non-zero-level point, the zero-run length value will be reset to zero, and the process continues to the next point until all points are completed. On the decoding side, the zero run length value is first decoded and all color levels corresponding to the number of zero run points are set to zero. Then the level of the non-zero level point is decoded and the next zero run length value is decoded. This process continues until all points are decoded. Table 1 2 shows the current syntax table.

[0045] For non-zero level points, at least one of the three components has a non-zero level. Several one-bit flags plus the remainder of the absolute level can be encoded to represent the levels of the three components. In the remainder of this disclosure, the absolute level or the absolute level minus one can be encoded and named as the encoded level. If the levels of the first component and the second component are both zero, the encoded level of the third component is the absolute level of the third component minus one. Otherwise, the encoded level of the current component is the absolute level itself.

[0046] In the coding level coding, a flag will be firstly coded to indicate whether the coding level of the current component is greater than 0. If the current component is the third component and the levels of the first component and the second component are both zero, a sign will be coded for the third component. If the coding level is greater than 0, a flag will be coded to indicate whether the coding level of the current component is greater than 1. In addition, if the current component is the first component or the second component, or the current component is the third component and at least one of the first component or the second component is non-zero, a sign will be coded for the current component. If the coding level is greater than 1, a flag will be coded to indicate whether the coding level of the current component is greater than 2. If the coding level is greater than 2, when the current component is the first component or the second component, or the current component is the third component and at least one of the first component or the second component is non-zero, a flag will be coded to indicate whether the coding level of the current component is greater than 3. If the coding level is greater than 3, the remainder will be coded for the current component. If the coding level is greater than 2 and the current component is the third component and the levels of the first component and the second component are both zero, the remainder will be coded for the third component.

[0047] Table 2 Color coding

[0048] abs_codedlevel_flag0[idx] equal to 0 indicates that the absolute coding level of component idx is not greater than 0. abs_codedlevel_flag0[idx] equal to 1 indicates that the absolute coding level of component idx is greater than 0. When not present, it is inferred to be equal to 0.

[0049] abs_codedlevel_flag1[idx] equal to 0 indicates that the absolute coding level of component idx is not greater than 1. abs_codedlevel_flag1[idx] equal to 1 indicates that the absolute coding level is greater than 1. When not present, it is inferred to be equal to 0.

[0050] abs_codedlevel_flag2[idx] equal to 0 indicates that the absolute coding level of component idx is not greater than 2. abs_codedlevel_flag2[idx] equal to 1 indicates that the absolute coding level of component idx is greater than 2. When not present, it is inferred to be equal to 0.

[0051] abs_codedlevel_flag3[idx] equal to 0 indicates that the absolute coding level of component idx is not greater than 3. abs_codedlevel_flag3[idx] equal to 1 indicates that the absolute coding level of component idx is greater than 3. When not present, it is inferred to be equal to 0.

[0052] abs_codedlevel_remainder[idx] indicates the remaining absolute value of the coded level of component idx. When not present, it is inferred to be equal to 0.

[0053] residual_sign[idx] equal to 0 indicates that the sign of the residual of component idx is negative. residual_sign[idx] equal to 1 indicates that the sign of the residual of component idx is positive. When not present, it is inferred to be equal to 1.

[0054] If the current component is the first component or the second component, or if the current component is the third component and at least one of the first component or the second component is non-zero, the level will be expressed as follows.

[0055] Level=(2*residual_sign[idx]-1)*(abs_codedlevel_flag0[idx]+abs_codedlevel_flag1[idx]+abs_codedlevel_flag2[idx]+abs_codedlevel_flag3[idx]+abs_codedlevel_remainder[idx])

[0056] Otherwise (the current component is the third component and the absolute levels of the first component and the second component are both zero), the levels will be expressed as follows.

[0057] Level=(2*residual_sign[idx]-1)*(1+abs_codedlevel_flag0[idx]+abs_codedlevel_flag1[idx]+abs_codedlevel_flag2[idx]+abs_codedlevel_remainder[idx])

[0058] Similarly, zero run lengths and zero / non-zero color residuals can be encoded in other similar ways.

[0059] The present disclosure proposes several improvements. Scenario 1:

[0060] The present disclosure proposes to use a bypass coding method to encode all bins binarized using K-order exponential Golomb (EG) or unary codes in the encoding of zero run length, reflectivity, and color residual.

[0061] More specifically, in an embodiment, the value of zero run length can be encoded as follows. If the order of the EG used to encode the attribute is less than a predefined value, the first bin is encoded to indicate whether the value of zero run length is zero; if not zero, the second bin is encoded to indicate whether the value of zero run length is one; if not one, the third bin is encoded to indicate whether the value of zero run length is two; if not two, the parity flag is encoded to indicate whether the value of zero run length is odd or even. These three bins plus the parity bin are encoded using a context coding method. After these context-coded bins, the remainder representing the value of (zero run length-2) / 2 can be encoded. Regardless of which binarization method is used to binarize the remainder, the present disclosure proposes to encode all bins of the remainder using a bypass method.

[0062] For reflectivity attribute encoding, the first bin is encoded to indicate whether the value of the reflectivity residual is odd or even; the second bin is encoded to indicate the value of (absolute value of reflectivity residual -1) modulo 2; if possible, the third bin is encoded to indicate the value of (absolute value of reflectivity residual -3) modulo 2; if possible, the value of (absolute value of reflectivity residual -5-odd) called the remainder is encoded. The remainder can be binarized with K-order EG, and the value of K depends on the value encoded in the code stream or a predefined value. The present disclosure proposes to encode all bins of the remainder using a bypass coding method.

[0063] Similarly, for color attribute encoding, after multiple bin flags are encoded to indicate whether the current color component is odd or even or greater than some specified value, there may still be a remainder. The present disclosure proposes to encode all bins of the color remainder using a bypass encoding method. Scenario 2:

[0064] The present disclosure proposes to use a counter to control how many bins are encoded as context-coded bins to encode the value of zero run length, reflectivity, and color residual, respectively. Once a context-coded bin is generated, the counter is increased by one. If the counter reaches a predefined value, all remaining bins for encoding the value of zero run length, reflectivity, and color residual are encoded using a bypass method.

[0065] As an example, assume that the value of zero run length is 62, and the predefined value of the context-coded bin for encoding the value of zero run length is set to 10. Before encoding, the counter is set to 0. The first bin will be encoded to indicate that the value of zero run length is not zero, and the counter is increased by one; the second bin will be encoded to indicate that the value of zero run length is not one, and the counter is increased by one; the third bin will be encoded to indicate that the value of zero run length is not two, and the counter is increased by one; the fourth bin will be encoded to indicate the parity of 62, and the counter is increased by one. After encoding these four bins with the context-based method, the remainder will be (62-2) / 2=30, and 30 will be binarized to 00001000010 with 11 bins with the second-order EG code. Because there are six context-coded bins left in the budget, the first six bins 000010 will be encoded with the context-based method, and the remaining five bins 00010 will be encoded with the bypass method. Optionally, the first five bins 00001 will be encoded with the bypass method, and the remaining six bins 000010 will be encoded with the context-based method. Scenario 3:

[0066] In the current geometric coding, the number of repeated points is encoded as follows: The first bin is encoded to indicate whether the number is equal to one; if it is not one, the number of repeated points minus two is binarized using a fixed-length code, and then each bin of the code is encoded using a bypass method.

[0067] The present disclosure proposes that, in order to improve coding performance, all bins used to represent the number of repeated points are encoded using a context-based method. In other words, if the number of repeated points is not one, the number of repeated points minus two is binarized using a fixed-length code, and each bin of the code is encoded using a context-based method rather than a bypass method.

[0068] In the current geometry prediction tree coding, the first bin is encoded to indicate whether the geometry residual value is zero; if not zero, a certain number (e.g., K) of bins representing the geometry residual minus one are binarized with a five-bit fixed-length code and encoded with a bypass method. The geometry residual value minus one will be binarized with a K-bin fixed-length code, and each bin will be encoded with a bypass method. The present disclosure proposes encoding these K bins with a context-based method instead of a bypass method to improve coding performance.

[0069] Figure 6 is a schematic diagram showing a flowchart of a method for encoding a geometric point cloud according to an embodiment of the present disclosure.

[0070] In an embodiment of the present disclosure, a method for encoding a geometric point cloud includes step S100: encoding attributes of the geometric point cloud using a zero run length code, wherein some bins of the attributes of the geometric point cloud are encoded using a context code, and other remaining bins of the attributes of the geometric point cloud are encoded using a bypass code.

[0071] In an embodiment of the present disclosure, some bins of zero-runlength information of a geometric point cloud are encoded with context codes, and other remaining bins of zero-runlength information of the geometric point cloud are encoded with bypass codes.

[0072] In an embodiment of the present disclosure, the bins of zero run length information of a geometric point cloud encoded using a context code include: a first bin for indicating whether the value of the zero run length is zero; a second bin for indicating whether the value of the zero run length is one; a third bin for indicating whether the value of the zero run length is two; and a parity flag for indicating whether the value of the zero run length is an odd number or an even number, and wherein the other remaining bins of the zero run length information of the geometric point cloud encoded using a bypass code are (the value of the zero run length - 2) / 2.

[0073] In an embodiment of the present disclosure, some bins of the reflectivity residual information of the geometric point cloud are encoded using context codes, and other remaining bins of the reflectivity residual information of the geometric point cloud are encoded using bypass codes.

[0074] In an embodiment of the present disclosure, the bins of the reflectivity residual information of the geometric point cloud encoded with the context code include: a first bin, used to indicate whether the value of the reflectivity residual is an odd number or an even number; a second bin, used to indicate whether the value of (the absolute value of the reflectivity residual -1) modulo 2 is; and a third bin, used to indicate whether the value of (the absolute value of the reflectivity residual -3) modulo 2 is, wherein the other remaining bins of the reflectivity residual information of the geometric point cloud encoded with the bypass code are (absolute value of the reflectivity residual -5-odd number).

[0075] In an embodiment of the present disclosure, some bins of the color residual information of the geometric point cloud are encoded using context codes, and other remaining bins of the color residual information of the geometric point cloud are encoded using bypass codes.

[0076] In an embodiment of the present disclosure, the method for encoding a point cloud also includes a counter for counting how many bins of the geometric point cloud are encoded with a context code, and if the counter reaches a predefined value, all remaining bins of the geometric point cloud are encoded with a bypass code.

[0077] Figure 7is a schematic diagram showing a flowchart of a method for encoding a geometric point cloud according to an embodiment of the present disclosure.

[0078] In an embodiment of the present disclosure, a method for encoding a point cloud includes step S200: encoding all bins for representing the number of repeated points of a geometric point cloud using a context code in geometric coding.

[0079] In an embodiment of the present disclosure, if the number of repeated points is greater than one, all bins used to represent the number of repeated points minus two are encoded with a fixed-length code and are encoded with a context code.

[0080] Figure 8 is a schematic diagram showing a flowchart of a method for encoding a geometric point cloud according to an embodiment of the present disclosure.

[0081] In an embodiment of the present disclosure, a method for encoding a point cloud includes step S300: encoding all bins of geometric residual values ​​used to represent a geometric point cloud using context codes in a geometric prediction tree encoding.

[0082] In an embodiment of the present disclosure, if the geometric residual value is greater than zero, all bins used to represent the geometric residual value minus one are encoded with a fixed-length code and are encoded with a context code.

[0083] In an embodiment of the present disclosure, a point cloud encoder is used to execute the above method.

[0084] Fig. 9 is a schematic diagram showing a flowchart of a method for decoding a geometric point cloud according to an embodiment of the present disclosure.

[0085] In an embodiment of the present disclosure, a method for decoding a geometric point cloud includes step S400: decoding attributes of a geometric point cloud, wherein the attributes of the geometric point cloud are encoded using a zero run-length code, and wherein some bins of the attributes of the geometric point cloud are encoded using a context code, and the other remaining bins of the attributes of the geometric point cloud are encoded using a bypass code.

[0086] In an embodiment of the present disclosure, some bins of zero-runlength information of a geometric point cloud are encoded with context codes, and other remaining bins of zero-runlength information of the geometric point cloud are encoded with bypass codes.

[0087] In an embodiment of the present disclosure, the bins of zero run length information of a geometric point cloud encoded using a context code include: a first bin for indicating whether the value of the zero run length is zero; a second bin for indicating whether the value of the zero run length is one; a third bin for indicating whether the value of the zero run length is two; and a parity flag for indicating whether the value of the zero run length is an odd number or an even number, and wherein the other remaining bins of the zero run length information of the geometric point cloud encoded using a bypass code are (the value of the zero run length - 2) / 2.

[0088] In an embodiment of the present disclosure, some bins of the reflectivity residual information of the geometric point cloud are encoded using context codes, and other remaining bins of the reflectivity residual information of the geometric point cloud are encoded using bypass codes.

[0089] In an embodiment of the present disclosure, the bins of the reflectivity residual information of the geometric point cloud encoded with the context code include: a first bin, used to indicate whether the value of the reflectivity residual is an odd number or an even number; a second bin, used to indicate whether the value of (the absolute value of the reflectivity residual -1) modulo 2 is; and a third bin, used to indicate whether the value of (the absolute value of the reflectivity residual -3) modulo 2 is, and wherein the other remaining bins of the reflectivity residual information of the geometric point cloud encoded with the bypass code are (absolute value of the reflectivity residual -5-odd).

[0090] In an embodiment of the present disclosure, some bins of the color residual information of the geometric point cloud are encoded using context codes, and other remaining bins of the color residual information of the geometric point cloud are encoded using bypass codes.

[0091] In an embodiment of the present disclosure, a method for decoding a geometric point cloud also includes a counter, which is used to count how many bins of the geometric point cloud are encoded with a context code, and if the counter reaches a predefined value, all remaining bins of the geometric point cloud are encoded with a bypass code.

[0092] Fig.10 is a schematic diagram showing a flowchart of a method for decoding a geometric point cloud according to an embodiment of the present disclosure.

[0093] In an embodiment of the present disclosure, a method for decoding a geometric point cloud includes step S500: decoding all bins used to represent the number of repeated points of the geometric point cloud, wherein the bins used to represent the number of repeated points of the geometric point cloud are all encoded using context codes in geometric coding.

[0094] In an embodiment of the present disclosure, if the number of repeated points is greater than one, all bins used to represent the number of repeated points minus two are encoded with a fixed-length code and are encoded with a context code.

[0095] Fig.11 is a schematic diagram showing a flowchart of a method for decoding a geometric point cloud according to an embodiment of the present disclosure.

[0096] In an embodiment of the present disclosure, a method for decoding a geometric point cloud includes step S600: decoding all bins of geometric residual values ​​used to represent the geometric point cloud, wherein the bins of geometric residual values ​​used to represent the geometric point cloud are all encoded using context codes in the geometric prediction tree encoding.

[0097] In an embodiment of the present disclosure, if the geometric residual value is greater than zero, all bins used to represent the geometric residual value minus one are encoded with a fixed-length code and are encoded with a context code.

[0098] An embodiment of the present disclosure provides a geometric point cloud decoder, wherein the point cloud decoder is used to execute the above method.

[0099] In an embodiment of the present disclosure, a system is used to execute the above method.

[0100] In an embodiment of the present disclosure, a network includes: a memory; a transceiver; and a processor coupled to the memory and the transceiver; wherein the processor is configured to execute the above method.

[0101] In an embodiment of the present disclosure, a user equipment includes: a memory; a transceiver; and a processor coupled to the memory and the transceiver; wherein the processor is configured to execute the above method.

[0102] An embodiment of the present disclosure provides a non-transitory machine-readable storage medium having instructions stored thereon, which, when executed by a computer, causes the computer to perform the above method.

[0103] In an embodiment of the present disclosure, a chip includes: a processor, configured to call and run a computer program stored in a memory, so that a device in which the chip is installed executes the above method.

[0104] An embodiment of the present disclosure provides a computer-readable storage medium, in which a computer program is stored, wherein the computer program enables a computer to execute the above method.

[0105] In an embodiment of the present disclosure, a computer program product includes a computer program, wherein the computer program enables a computer to execute the above method.

[0106] In an embodiment of the present disclosure, a computer program enables a computer to execute the above method.

[0107] Figure 5is a block diagram of an example system 700 for wireless communications according to an embodiment of the present disclosure. The embodiments described herein may be implemented into a system using any suitably configured hardware and / or software. Figure 5 A system 700 is shown, which includes a radio frequency (RF) circuit 710, a baseband circuit 720, an application circuit 730, a memory / storage device 740, a display 750, a camera 760, a sensor 770, and an input / output (I / O) interface 780, coupled to each other at least as shown. The application circuit 730 may include circuits, such as but not limited to one or more single-core or multi-core processors. The processor may include any combination of a general-purpose processor and a special-purpose processor (such as a graphics processor, an application processor). The processor may be coupled to the memory / storage device and used to execute instructions stored in the memory / storage device to enable various applications and / or operating systems running on the system.

[0108] While the present disclosure has been described in connection with what is considered to be the most practical and preferred embodiments, it is to be understood that the disclosure is not limited to the disclosed embodiments but is intended to cover various arrangements that may be made without departing from the broadest interpretation of the appended claims.

Claims

1. A method for encoding a geometric point cloud, comprising: The attributes of the geometric point cloud are encoded using a zero run length code, wherein some bins of the attributes of the geometric point cloud are encoded using a context code and other remaining bins of the attributes of the geometric point cloud are encoded using a bypass code.

2. The method for encoding a point cloud according to claim 1, wherein: Some bins of zero-run-length information of the geometric point cloud are encoded using context codes, and other remaining bins of zero-run-length information of the geometric point cloud are encoded using bypass codes.

3. The method for encoding the geometric point cloud according to claim 2, wherein: The bin of zero run length information of the geometric point cloud encoded with context code includes: The first bin is used to indicate whether the value of the zero run length is zero; The second bin is used to indicate whether the value of the zero run length is one; a third bin for indicating whether the value of the zero run length is two; and A parity flag is used to indicate whether the value of the zero run length is an odd number or an even number, and wherein the other remaining bins of the zero run length information of the geometric point cloud encoded with the bypass code are (the value of the zero run length - 2) / 2.

4. The method for encoding the geometric point cloud according to claim 1, wherein: Some bins of the reflectivity residual information of the geometric point cloud are encoded using context codes, and other remaining bins of the reflectivity residual information of the geometric point cloud are encoded using bypass codes.

5. The method for encoding the geometric point cloud according to claim 4, wherein: The bin of reflectivity residual information of the geometric point cloud encoded with context code includes: The first bin is used to indicate whether the value of the reflectivity residual is an odd number or an even number; The second bin is used to indicate whether the value of (absolute value of reflectivity residual - 1) modulo 2 is; and The third bin is used to indicate whether the value of (absolute value of reflectivity residual - 3) modulo 2 is, and wherein the other remaining bins of the reflectivity residual information of the geometric point cloud encoded with the bypass code are (absolute value of reflectivity residual - 5 - parity).

6. The method for encoding the geometric point cloud according to claim 1, wherein: Some bins of the color residual information of the geometric point cloud are encoded using context codes, and other remaining bins of the color residual information of the geometric point cloud are encoded using bypass codes.

7. The method for encoding the geometric point cloud according to claim 1 further includes a counter, which is used to count how many bins of the geometric point cloud are encoded with a context code, and if the counter reaches a predefined value, all remaining bins of the geometric point cloud are encoded with a bypass code.

8. A method for encoding a geometric point cloud, comprising: In geometric coding, context codes are used to encode all bins representing the number of repeated points of the geometric point cloud.

9. The method for encoding the geometric point cloud according to claim 8, wherein: If the number of repeated points is greater than one, all bins used to represent the number of repeated points minus two are encoded using a fixed-length code and are encoded using a context code.

10. A method for encoding a geometric point cloud, comprising: In the geometric prediction tree coding, context codes are used to encode all bins of geometric residual values ​​used to represent the geometric point cloud.

11. The method for encoding the geometric point cloud according to claim 10, wherein: If the geometric residual value is greater than zero, all bins used to represent the geometric residual value minus one are encoded with a fixed length code and are encoded with a context code.

12. A point cloud encoder, wherein: The point cloud encoder is used to perform the method according to any one of claims 1 to 11.

13. A system for performing the method according to any one of claims 1 to 11.

14. A network comprising: Memory; Transceiver; as well as a processor coupled to the memory and the transceiver; The processor is configured to execute the method according to any one of claims 1 to 11.

15. A user equipment, comprising: Memory; Transceiver; as well as a processor coupled to the memory and the transceiver; The processor is configured to execute the method according to any one of claims 1 to 11. 16 . A non-transitory machine-readable storage medium having stored thereon instructions which, when executed by a computer, cause the computer to perform the method according to any one of claims 1 to 11.

17. A chip, comprising: A processor, configured to call and run a computer program stored in a memory so that a device in which the chip is installed executes a method according to any one of claims 1 to 11.

18. A computer-readable storage medium having a computer program stored therein, wherein: The computer program causes a computer to execute the method according to any one of claims 1 to 11.

19. A computer program product comprising a computer program, wherein: The computer program causes a computer to execute the method according to any one of claims 1 to 11.

20. A computer program, wherein The computer program causes a computer to execute the method according to any one of claims 1 to 11.

21. A method for decoding a geometric point cloud, comprising: Decoding attributes of the geometric point cloud, wherein the attributes of the geometric point cloud are encoded using a zero run-length code, and wherein some bins of the attributes of the geometric point cloud are encoded using a context code, and other remaining bins of the attributes of the geometric point cloud are encoded using a bypass code.

22. The method for decoding a point cloud according to claim 21, wherein: Some bins of zero-run-length information of the geometric point cloud are encoded using context codes, and other remaining bins of zero-run-length information of the geometric point cloud are encoded using bypass codes.

23. The method for decoding the geometric point cloud according to claim 22, wherein: The bin of zero run length information of the geometric point cloud encoded with context code includes: The first bin is used to indicate whether the value of the zero run length is zero; The second bin is used to indicate whether the value of the zero run length is one; a third bin for indicating whether the value of the zero run length is two; and A parity flag is used to indicate whether the value of the zero run length is an odd number or an even number, and wherein the other remaining bins of the zero run length information of the geometric point cloud encoded with the bypass code are (the value of the zero run length - 2) / 2.

24. The method for decoding the geometric point cloud according to claim 21, wherein: Some bins of the reflectivity residual information of the geometric point cloud are encoded using context codes, and other remaining bins of the reflectivity residual information of the geometric point cloud are encoded using bypass codes.

25. The method for decoding the geometric point cloud according to claim 24, wherein the bin of reflectivity residual information of the geometric point cloud encoded with a context code comprises: The first bin is used to indicate whether the value of the reflectivity residual is an odd number or an even number; The second bin is used to indicate whether the value of (absolute value of reflectivity residual - 1) modulo 2 is; and The third bin is used to indicate whether the value of (absolute value of reflectivity residual - 3) modulo 2 is, and wherein the other remaining bins of the reflectivity residual information of the geometric point cloud encoded with the bypass code are (absolute value of reflectivity residual - 5 - parity).

26. The method for decoding the geometric point cloud according to claim 21, wherein: Some bins of the color residual information of the geometric point cloud are encoded using context codes, and other remaining bins of the color residual information of the geometric point cloud are encoded using bypass codes.

27. The method for decoding the geometric point cloud according to claim 21 further includes a counter, which is used to count how many bins of the geometric point cloud are encoded with a context code, and if the counter reaches a predefined value, all remaining bins of the geometric point cloud are encoded with a bypass code.

28. A method for decoding a geometric point cloud, comprising: All bins used to represent the number of repeated points of the geometric point cloud are decoded, wherein the bins used to represent the number of repeated points of the geometric point cloud are all encoded using context codes in geometric coding.

29. The method for decoding the geometric point cloud according to claim 28, wherein: If the number of repeated points is greater than one, all bins used to represent the number of repeated points minus two are encoded using a fixed-length code and are encoded using a context code.

30. A method for decoding a geometric point cloud, comprising: All bins of geometric residual values ​​used to represent the geometric point cloud are decoded, wherein the bins of geometric residual values ​​used to represent the geometric point cloud are all encoded using context codes in geometric prediction tree encoding.

31. The method for decoding the geometric point cloud according to claim 30, wherein: If the geometric residual value is greater than zero, all bins used to represent the geometric residual value minus one are encoded with a fixed length code and are encoded with a context code.

32. A geometric point cloud decoder, wherein: The point cloud decoder is used to perform the method according to any one of claims 21 to 31.

33. A system for performing the method according to any one of claims 21 to 31.

34. A network comprising: Memory; Transceiver; as well as a processor coupled to the memory and the transceiver; The processor is configured to execute the method according to any one of claims 21 to 31.

35. A user equipment, comprising: Memory; Transceiver; as well as a processor coupled to the memory and the transceiver; The processor is configured to execute the method according to any one of claims 21 to 31.

36. A non-transitory machine-readable storage medium having stored thereon instructions which, when executed by a computer, cause the computer to perform the method according to any one of claims 21 to 31.

37. A chip, comprising: A processor, configured to call and run a computer program stored in a memory so that a device in which the chip is installed executes a method according to any one of claims 21 to 31.

38. A computer-readable storage medium having a computer program stored therein, wherein: The computer program causes a computer to execute the method according to any one of claims 21 to 31.

39. A computer program product comprising a computer program, wherein: The computer program causes a computer to execute the method according to any one of claims 21 to 31.

40. A computer program, wherein: The computer program causes a computer to execute the method according to any one of claims 21 to 31.