[go: up one dir, main page]

WO2023244585A1 - Geometry point cloud coding system and method - Google Patents

Geometry point cloud coding system and method Download PDF

Info

Publication number
WO2023244585A1
WO2023244585A1 PCT/US2023/025167 US2023025167W WO2023244585A1 WO 2023244585 A1 WO2023244585 A1 WO 2023244585A1 US 2023025167 W US2023025167 W US 2023025167W WO 2023244585 A1 WO2023244585 A1 WO 2023244585A1
Authority
WO
WIPO (PCT)
Prior art keywords
point clouds
geometry
encoded
bins
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2023/025167
Other languages
French (fr)
Inventor
Yue Yu
Haoping Yu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Innopeak Technology Inc
Original Assignee
Innopeak Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Innopeak Technology Inc filed Critical Innopeak Technology Inc
Priority to CN202380045821.4A priority Critical patent/CN119343920A/en
Publication of WO2023244585A1 publication Critical patent/WO2023244585A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/42Simultaneous measurement of distance and other co-ordinates

Definitions

  • the present disclosure relates to the field of image/video coding systems, and more particularly, to a geometry point cloud coding system and a method thereof.
  • G-PCC Geometry point cloud coding
  • a typical G-PCC encoding diagram is shown in FIG. 1.
  • a typical G-PCC decoding diagram is shown in FIG. 2.
  • existing G-PCC may have throughput issues for a wide range of PCC input. It is desirable to design a high throughput G-PCC system and method that can be used in many applications.
  • An object of the present disclosure is to propose several high throughput coding methods for geometry point cloud coding (G-PCC).
  • the proposed method may be used for future G-PCC coding standards, especially for audio video coding standard (AVS) G-PCC.
  • AVS audio video coding standard
  • modifications to bitstream structure, syntax, constraints, and mapping for the generation of decoded point cloud are considered for standardizing.
  • a method of encoding geometry point clouds includes encoding attributes of the geometry point clouds with zero-run length code, wherein some bins of the attributes of the geometry point clouds are coded with context code and other remaining bins of the attributes of the geometry point clouds are binarized with bypass code.
  • a method of encoding geometry point clouds includes encoding all bins used to represent number of duplicated points of the geometry point clouds with context code in geometry coding.
  • a method of encoding geometry point clouds includes encoding all bins used to represent value of geometry residual of the geometry point clouds with context code in geometry prediction tree coding.
  • a geometry point cloud encoder is configured to execute the above method.
  • a method of decoding geometry point clouds includes: decoding attributes of the geometry point clouds, wherein the attributes of geometry point clouds are encoded with zero-run length code, and wherein some bins of the attributes of the geometry point clouds are encoded with context code and other remaining bins of the attributes of the geometry point clouds are encoded with bypass code.
  • a geometry point cloud decoder is configured to execute the above method.
  • a system is configured to execute the above method.
  • a network includes a memory, a transceiver, and a processor coupled to the memory and the transceiver.
  • the processor is configured to perform the above method.
  • a user equipment includes a memory, a transceiver, and a processor coupled to the memory and the transceiver.
  • the processor is configured to perform the above method.
  • a wireless communication system comprises a memory, a transceiver, and a processor coupled to the memory and the transceiver. The processor is configured to perform the above method.
  • a non-transitory machine-readable storage medium has stored thereon instructions that, when executed by a computer, cause the computer to perform the above method.
  • a chip includes a processor, configured to call and run a computer program stored in a memory, to cause a device in which the chip is installed to execute the above method.
  • a computer readable storage medium in which a computer program is stored, causes a computer to execute the above method.
  • a computer program product includes a computer program, and the computer program causes a computer to execute the above method.
  • a computer program causes a computer to execute the above method.
  • FIG. 1 is a G-PCC encoding diagram in prior art.
  • FIG. 2 is a G-PCC decoding diagram in prior art.
  • FIG. 3 is a schematic diagram illustrating an octree structure and corresponding digital representation according to an embodiment of the present disclosure.
  • FIG. 4 is a schematic diagram illustrating a structure of cube and relationship with neighboring cubes according to an embodiment of the present disclosure.
  • FIG. 5 is a block diagram of a system for wireless communication according to an embodiment of the present disclosure.
  • FIG. 6 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
  • FIG. 7 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
  • FIG. 8 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
  • FIG. 9 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
  • FIG. 10 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
  • FIG. 11 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
  • a cubical axis-aligned bounding box B is defined by the two extreme points (0,0,0) and (2 A d,2 A d,2 A d) where d is the maximum size of the given point cloud along x, y or z direction.
  • a point of point cloud will be noted as point below. All points are included in this defined cube.
  • a cube is divided into eight sub-cubes, which creates the octree structure allowing one parent cube to have 8 child cubes.
  • the 7 sibling cubes of a given cube are the same size cubes and share at least one same face/edge/point with this given cube.
  • the volume of a cube is 1/8 volume of its parent cube.
  • a cube may contain more than one point and the number of points in a cube is dependent on the size and location of the cube.
  • the size of a smallest cube is pre-defined for a given point cloud.
  • the parent cube of a given point is defined as a minimum size cube which contains this given point.
  • Sibling points of a given point are defined as those points which have the same parent cube with this given point.
  • An octree is a recursive data structure that is often used to describe three-dimensional space in which each internal cube has exactly eight children.
  • the space is recursively subdivided into eight octants to the point where the resolution of the child cube is equal to a size of the point - the smallest element that has no further subdivisions.
  • To represent a cube an 8-bit binary code that follows a space-filling curve pattern (Hilbert, Morton) is used, each child is assigned a “1” or “0” value to indicate if the space in the child cube has any points associated with that child cube, or the child cube is empty. Only the occupied child cubes are further subdivided.
  • FIG. 3 demonstrates a typical octree structure of G-PCC and the corresponding digital representation.
  • one cube may have up to six same-size cubes to share one face as shown in FIG. 4.
  • the current cube may also have some neighboring cubes which share lines or point with the current cube.
  • the parent cube of the current cube also has up to six neighboring cubes with the same size of the parent cube that share one face with the parent cube.
  • the parent cube of the current cube also has up to twelve neighboring cubes with the same size of parent cubes that share an edge.
  • the parent cube of the current cube also has up to eight neighboring cubes with the same size of parent cubes that share a point with the parent cube.
  • the octree-based geometry information may be coded with context-based arithmetic coding.
  • coding is assumed to mean encoding and decoding methods and systems.
  • Morton or Hilbert code/order may be used to convert a point cloud cube into a one-dimension array. Each position in the cube will have a corresponding Morton or Hilbert code, but some positions may not have any corresponding point cloud attribute. In other words, some positions may be empty.
  • the attribute coding will follow the pre-defined Morton or Hilbert order.
  • a predictor may be generated from the previous coded points in Morton or Hilbert order. The attribute difference between the current point and its predictor is coded into the bitstream.
  • some pre-defined number has been specified to limit the number of neighboring points that can be used in generating the prediction. For example, only M data points among previous N consecutively coded points may be used for coding the current attribute. In an embodiment, M and N are set as a fixed number of 3 and 128, respectively. If more than 128 points have already been coded before the current point, only 3 out of the 128 previously coded neighboring points could be used to form the attribute predictor according to a pre-defined order. If there are less than 128 coded points before the current point, all such coded points will be used as candidates to establish the attribute predictor.
  • new Morton or Hilbert codes for these N points will be re-calculated by adding a fixed shift, e.g., 1, to coordinates (x, y, z) of these N data points.
  • the new Morton or Hilbert code for the current position is X.
  • a P-point set before and a Q-point set after the current position according to the new Morton or Hilbert code order will be selected.
  • M points are selected with M closest “distance” between these coded points and the current point.
  • the distance d as one example is defined as follows, other distance metrics can also be used.
  • (xl, yl, zl) and (x2, y2, z2) are coordinates of the current point and pre-selected point, respectively.
  • full search method based on Hilbert code has been applied in attribute coding.
  • the search range is set as 128 and the number of previous points used to form the predictor is set as M. If more than 128 points have already been coded before the current point, only M out of the 128 previously coded neighboring points can be used to form the attribute predictor according to the Hilbert order. If there are fewer than 128 coded points before the current one, all such coded points will be used as candidates to form the attribute predictor.
  • M points are selected with M closest “distance” between these coded points and the current point.
  • the distance d as one example is defined as follows, other distance metrics can also be used.
  • (xl,yl,zl) and (x2,y2,z2) are the coordinates of the current point and the pre-selected point along Hilbert order, respectively.
  • the residual is defined as the difference of attribute values between the current point and its predictor.
  • PCC can be either lossless or lossy.
  • the residual may or may not be quantized by using the predefined quantization step.
  • the residual without or with quantization is called level.
  • the level could be a signed integer and will be coded into the bitstream.
  • the zero run-length of level and non-zero level are coded into bitstream. More specially, in the encoding side, before coding of the first point, the zero run-length counter is set as zero. Starting from the first point along the predefined coding order, the residuals between the predictors and corresponding original points are obtained. Then the corresponding levels are obtained. If current level is zero, zero run-length will be increased by one and the process proceeds to the next point. If the level is not zero, the zero run-length will be coded first and the non-zero level will be coded after the zero run-length coding. After coding a non-zero level, zero run-length counter will be reset to zero and the process proceeds to next point.
  • the number of zero run-length is first decoded and the levels corresponding to the number of zero run-length points are set as zero. Then non-zero level is decoded and the next number of zero run-length is decoded. Process continues until all points are decoded.
  • both the zero-run length and the non-zero reflectance residual may be coded with other similar ways.
  • Color Level Coding There are three color attributes for each point with three color components. If the levels for all three color components are zeros, this point is called as a zero level point. Otherwise, if there is at least one non-zero level for one color component with the point, this point is called as a non-zero level point. In an embodiment, the number of consecutive zero level points is called zero run-length. Zero run-length values and levels for non-zero level points are coded into bitstream. More specifically, in the encoding side, before coding of the first point, the zero run-length value is set as zero. Starting from the first point along the predefined coding order, the residuals between the three color predictors and their corresponding color attributes for the current point can be obtained.
  • the corresponding levels for all three components of the current point also can be obtained. If the current point is a zero level point, the zero run-length value will be increased by one and the process proceeds to the next point. If the current point is a non-zero level point, the zero run-length value will be coded first and all three color levels for this non-zero level point will be coded. After the level coding of a non-zero level point, zero run-length value will be reset to zero and the process proceeds to next point till finishing all points. In the decoding side, the zero run-length value is first decoded and all color levels corresponding to the number of zero run-length points are set as zero. Then the levels for the non-zero level point are 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.
  • a non-zero level point there is at least one non-zero level among the three components.
  • Several one-bit flags plus the remainder of the absolute level may be coded to represent levels of three components.
  • the absolute level or absolute level minus one may be coded and named as coded level in the remaining of this disclosure. If the levels for both the first and the second components are zeros, the coded level for the third component is the absolute level of the third component minus one. Otherwise, the code level for the current component is the absolute level itself.
  • a flag will be coded first to represent if the coded level for the current component is greater than 0 or not. If the current component is the third component and the levels for both the first and the second components are zeros, the sign will be coded for the third component. If the coded level is greater than 0, a flag will be coded to represent if the coded level for the current component is greater than 1 or not. Furthermore, if the current component is the first or the second component, or the current component is the third component and there is at least one non-zero for the first or the second component, the sign will be coded for the current component.
  • a flag will be coded to represent if the coded level for the current component is greater than 2 or not. If the coded level is greater than 2, a flag will be coded to represent if the coded level for the current component is greater than 3 or not when the current component is the first or the second component, or the current component is the third component and there is at least one non-zero for the first or the second component. If the coded level is greater than 3, a remainder will be coded for the current component. If the coded level is greater than 2 and the current component is the third component and the levels for both the first and the second components are zeros, a remainder will be coded for the third component.
  • abs codedlevel _flag0[idx] 0 specifies that the absolute coded level for component idx is not greater than 0.
  • abs codedlevel _flag0[idx] 1 specifies that the absolute coded level for component idx is greater than 0. When not present, it is inferred to be equal to 0.
  • abs_codedlevel_flagl[idx] 0 specifies that the absolute coded level for component idx is not greater than 1.
  • abs codedlevel flag 1 [idx] 1 specifies that the absolute coded level is greater than 1.
  • abs codedlevel _flag2[idx] 0 specifies that the absolute coded level for component idx is not greater than 2.
  • abs codedlevel _flag2[idx] 1 specifies that the absolute coded level for component idx is greater than 2.
  • abs_codedlevel_flag3 [idx] 0 specifies that the absolute coded level for component idx is not greater than 3.
  • abs_codedlevel_flag3 [idx] 1 specifies that the absolute coded level for component idx is greater than 3. When not present, it is inferred to be equal to 0.
  • abs_codedlevel_remainder[idx] specifies the remaining absolute value for coded level for component idx. When not present, it is inferred to be equal to 0.
  • residual_sign[idx] 0 specifies that the sign of the residual for the component idx is negative.
  • residual_sign[idx] specifies that the sign of the residual for the component idx is positive. When not present, it is inferred to be equal to 1.
  • the level will be represented as follows.
  • Level (2* residual_sign[idx] -1) * (abs_codedlevel_flagO[idx] + abs_codedlevel_flagl[idx] + abs_codedlevel_flag2[idx] + abs_codedlevel_flag3 [idx] + abs_codedlevel_remainder[idx])
  • Level (2* residual_sign[idx] -1) * (1 + abs_codedlevel_flagO[idx] + abs_codedlevel_flagl[idx] + abs_codedlevel_flag2[idx] + abs_codedlevel_remainder[idx])
  • both the zero-run length and the zero/non-zero color residual may be coded with other similar ways.
  • This disclosure proposes that all bins binarized by using either K-order exponential Golomb (EG) or unary code in the coding of zero-run length, reflectance and color residual will be coded by using the bypass coding approach.
  • EG K-order exponential Golomb
  • the value of zero-run length could be coded as follows in an embodiment. If the order of EG used for coding an attribute is smaller than a predefined value, the first bin is coded to indicate if the value of zero-run length is zero or not; if it is not zero, the second bin is coded to indicate if the value of zero-run length is one or not; if it is not one, the third bin is coded to indicate if the value of zero-run length is two or not; if it is not two, a parity flag will be coded to indicate if the value of zero-run length is an odd or even number. These three bins plus parity bin are coded with the context coded approach.
  • a remainder which represents the value of (zero-run length - 2)/2 may be coded. No matter what kind of binarization methods is used to binarize this remainder, this disclosure proposes that all the bins for this remainder will be coded by using the bypass approach.
  • the first bin is coded to indicate if the value of reflectance residual is an odd or even number; the second bin is coded to indicate the value of (absolute value of reflectance residual - 1) mod 2; if possible, the third bin is coded to indicate the value of (absolute value of reflectance residual -3) mod 2; if possible, the value of (absolute value of reflectance residual -5 - parity) called as a remainder will be coded.
  • the remainder may be binarized with K-order EG and the value of K is dependent on the value coded in the bitstream or a predefined value. This disclosure proposes to code all the bins of this remainder with the bypass coding approach.
  • This disclosure proposes that a counter is used to control how many bins are coded as context-coded bins for coding the value of zero-run length, the values of reflectance, and color residual, respectively. Once one context-coded bin is generated, the counter increases by one. If the counter reaches a predefined value, all the remaining bins for coding the value of zero-run length, the values of reflectance, and color residual will be coded with the bypass approach.
  • the counter is set to 0.
  • the first bin will be coded to indicate the value of zero-run length is not zero and the counter increases by one; the second bin will be coded to indicate the value of zero-run length is not one and the counter increases by one; the third bin will be coded to indicate the value of zero-run length is not two and the counter increases by one; the fourth bin will be coded to indicate the parity of 62 and the counter increases by one.
  • the number of duplicated points is coded as follows. The first bin is coded to indicate if this number is equal to one; if it is not one, the number of duplicated points minus two will be binarized with a fixed-length code and then each bin of this code is coded with the bypass approach.
  • This disclosure proposes, to improve the coding performance, that all the bins used to represent the number of duplicated points are coded with the context-based approach. In other words, if the number of duplicated points is not one, the number of duplicated points minus two will be binarized with a fixed-length code and each bin of this code is coded with the context-based approach, instead of the bypass approach.
  • the first bin is coded to indicate if the value of geometry residual is zero or not; if it is not zero, a number of bins, e.g., K, for representing geometry residual minus one is binarized with a five fixed-length code and coded with the bypass approach.
  • the value of geometry residual minus one will be binarized with a K-bin fixed-length code and each bin will be coded with the bypass approach.
  • This disclosure proposes to code these K bins with the context-based approach instead of the bypass approach, to improve the coding performance.
  • FIG. 6 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
  • a method of encoding geometry point cloud includes step SI 00: encoding attributes of the geometry point clouds with zero-run length code, wherein some bins of the attributes of the geometry point clouds are encoded with context code and other remaining bins of the attributes of the geometry point clouds are encoded with bypass code.
  • some bins of zero-run length information of the geometry point clouds are encoded with context code and other remaining bins of zero-run length information of the geometry point clouds are encoded with bypass code.
  • the bins of zero-run length information of the geometry point clouds encoded with context code includes: first bin configured to indicated whether value of zero-run length is zero; second bin configured to indicated whether value of zero-run length is one; third bin configured to indicated whether value of zero-run length is two; and parity flag configured to indicate whether value of zero-run length is odd or even, wherein the other remaining bins of zero-run length information of the geometry point clouds encoded with bypass code is (value of zero-run length -2)/2.
  • some bins of reflectance residual information of the geometry point clouds are encoded with context code and other remaining bins of reflectance residual information of the geometry point clouds are encoded with bypass code.
  • the bins of reflectance residual information of the geometry point clouds encoded with context code includes: first bin configured to indicated whether value of reflectance residual is odd or even; second bin configured to indicated whether value of (absolute value of reflectance residual -1) mod 2; and third bin configured to indicated whether value of (absolute value of reflectance residual -3) mod 2, wherein the other remaining bins of reflectance residual information of the geometry point clouds encoded with bypass code is (absolute value of reflectance residual -5 -parity)
  • some bins of color residual information of the geometry point clouds are encoded with context code and other remaining bins of color residual information of the geometry point clouds are encoded with bypass code.
  • the method of coding point clouds further includes a counter to count how many bins of the geometry point clouds are encoded with context-code, and if the counter reaches a predefined value, all remaining bins of the geometry point clouds are encoded with bypass code.
  • FIG. 7 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
  • a method of coding point clouds includes step S200: encoding all bins used to represent number of duplicated points of the geometry point clouds with context code in geometry encoding .
  • all bins used to represent the number of duplicated points minus two are encoded with fixed-length code and encoded with context code if the numbers of duplicated points is greater than one.
  • FIG. 8 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
  • a method of coding point clouds includes step S300: encoding all bins used to represent value of geometry residual of the geometry point clouds with context code in geometry prediction tree coding.
  • all bins used to represent the value of geometry residual minus one are encoded with fixed-length code and encoded with context code if the value of geometry residual is greater than zero.
  • a point cloud encoder is configured to execute the above method.
  • FIG. 9 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
  • a method of decoding geometry point clouds includes step S400: decoding attributes of the geometry point clouds, wherein the attributes of geometry point clouds are encoded with zero-run length code, and wherein some bins of the attributes of the geometry point clouds are encoded with context code and other remaining bins of the attributes of the geometry point clouds are encoded with bypass code.
  • some bins of zero-run length information of the geometry point clouds are encoded with context code and other remaining bins of zero-run length information of the geometry point clouds are encoded with bypass code.
  • the bins of zero-run length information of the geometry point clouds encoded with context code comprises: first bin configured to indicated whether value of zero-run length is zero; second bin configured to indicated whether value of zero-run length is one; third bin configured to indicated whether value of zero-run length is two; and parity flag configured to indicate whether value of zero-run length is odd or even, and wherein the other remaining bins of zero-run length information of the geometry point clouds encoded with bypass code is (value of zero-run length -2)/2.
  • some bins of reflectance residual information of the geometry point clouds are encoded with context code and other remaining bins of reflectance residual information of the geometry point clouds are encoded with bypass code.
  • the bins of reflectance residual information of the geometry point clouds encoded with context code comprises: first bin configured to indicated whether value of reflectance residual is odd or even; second bin configured to indicated whether value of (absolute value of reflectance residual -1) mod 2; and third bin configured to indicated whether value of (absolute value of reflectance residual -3) mod 2, and wherein the other remaining bins of reflectance residual information of the geometry point clouds encoded with bypass code is (absolute value of reflectance residual -5 -parity).
  • some bins of color residual information of the geometry point clouds are encoded with context code and other remaining bins of color residual information of the geometry point clouds are encoded with bypass code.
  • a method of decoding the geometry point clouds further includes a counter to count how many bins of the geometry point clouds are encoded with context-code, and if the counter reaches a predefined value, all remaining bins of the geometry point clouds are encoded with bypass code.
  • FIG. 10 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
  • a method of decoding geometry point clouds includes step S500: decoding all bins used to represent number of duplicated points of the geometry point clouds, wherein the bins used to represent number of duplicated points of the geometry point clouds are all encoding with context code in geometry encoding.
  • all bins used to represent the number of duplicated points minus two are encoded with fixed-length code and encoded with context code if the numbers of duplicated points is greater than one.
  • FIG. 11 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
  • a method of decoding geometry point clouds includes step S600: decoding all bins used to represent value of geometry residual of the geometry point clouds, wherein the bins used to represent value of geometry residual of the geometry point clouds are all encoding with context code in geometry prediction tree coding.
  • all bins used to represent the value of geometry residual minus one are encoded with fixed-length code and encoded with context code if the value of geometry residual is greater than zero.
  • An embodiment of the present disclosure provides a geometry point cloud decoder, wherein the point cloud decoder is configured to execute the above method.
  • a system is configured to execute the above method.
  • 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.
  • 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.
  • An embodiment of the present disclosure provides a non-transitory machine-readable storage medium having stored thereon instructions that, when executed by a computer, cause the computer to perform the above method.
  • a chip includes: a processor, configured to call and run a computer program stored in a memory, to cause a device in which the chip is installed to execute the above method.
  • An embodiment of the present disclosure provides a computer readable storage medium, in which a computer program is stored, wherein the computer program causes a computer to execute the above method.
  • a computer program product includes a computer program, wherein the computer program causes a computer to execute the above method.
  • a computer program causes a computer to execute the above method.
  • FIG. 5 is a block diagram of an example system 700 for wireless communication according to an embodiment of the present disclosure. Embodiments described herein may be implemented into the system using any suitably configured hardware and/or software.
  • FIG. 5 illustrates the system 700 including a radio frequency (RF) circuitry 710, a baseband circuitry 720, an application circuitry 730, a memory/storage 740, a display 750, a camera 760, a sensor 770, and an input/output (I/O) interface 780, coupled with each other at least as illustrated.
  • the application circuitry 730 may include a circuitry such as, but not limited to, one or more single-core or multi-core processors.
  • the processors may include any combination of general-purpose processors and dedicated processors, such as graphics processors, application processors.
  • the processors may be coupled with the memory/storage and configured to execute instructions stored in the memory/storage to enable various applications and/or operating systems running on the system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

A method of encoding geometry point clouds includes encoding attributes of the geometry point clouds with zero-run length code, wherein some bins of the attributes of the geometry point clouds are encoded with context code and other remaining bins of the attributes of the geometry point clouds are encoded with bypass code. A method of encoding geometry point clouds includes encoding all bins used to represent number of duplicated points of the geometry point clouds with context code in geometry coding. A method of encoding geometry point clouds includes coding all bins used to represent value of geometry residual of the geometry point clouds with context code in geometry prediction tree coding.

Description

GEOMETRY POINT CLOUD CODING SYSTEM AND METHOD
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Application No. 63/366,312, filed on June 13, 2022, which is hereby incorporated in its entirety by this reference.
BACKGROUND
[0002] The present disclosure relates to the field of image/video coding systems, and more particularly, to a geometry point cloud coding system and a method thereof.
[0003] Geometry point cloud coding (G-PCC) is widely used in VR/AR for entertainment and industrial applications, e.g., LiDAR sweep compression for automotive or robotics and HD Map for navigation. MPEG released the first version G-PCC standard and audio video coding standard (AVS) is also developing a G-PCC standard. In order to compress the point cloud data efficiently, the geometry of a point cloud is compressed first, and then the corresponding attributes, including color or reflectance, are compressed based upon the geometry information. A typical G-PCC encoding diagram is shown in FIG. 1. A typical G-PCC decoding diagram is shown in FIG. 2.
[0004] In the existing art, existing G-PCC may have throughput issues for a wide range of PCC input. It is desirable to design a high throughput G-PCC system and method that can be used in many applications.
[0005] Therefore, based on the above discussion, the enhanced coding method of geometry point cloud must be studied in different use cases in the future.
SUMMARY
[0006] An object of the present disclosure is to propose several high throughput coding methods for geometry point cloud coding (G-PCC). The proposed method may be used for future G-PCC coding standards, especially for audio video coding standard (AVS) G-PCC. With the implementation of the proposed method, modifications to bitstream structure, syntax, constraints, and mapping for the generation of decoded point cloud are considered for standardizing.
[0007] In a first aspect of the present disclosure, a method of encoding geometry point clouds, includes encoding attributes of the geometry point clouds with zero-run length code, wherein some bins of the attributes of the geometry point clouds are coded with context code and other remaining bins of the attributes of the geometry point clouds are binarized with bypass code.
[0008] In a second aspect of the present disclosure, a method of encoding geometry point clouds, includes encoding all bins used to represent number of duplicated points of the geometry point clouds with context code in geometry coding.
[0009] In a third aspect of the present disclosure, a method of encoding geometry point clouds, includes encoding all bins used to represent value of geometry residual of the geometry point clouds with context code in geometry prediction tree coding. [0010] In a fourth aspect of the present disclosure, a geometry point cloud encoder is configured to execute the above method.
[0011] In a fifth aspect of the present disclosure, a method of decoding geometry point clouds, includes: decoding attributes of the geometry point clouds, wherein the attributes of geometry point clouds are encoded with zero-run length code, and wherein some bins of the attributes of the geometry point clouds are encoded with context code and other remaining bins of the attributes of the geometry point clouds are encoded with bypass code.
[0012] In a sixth aspect of the present disclosure, a geometry point cloud decoder is configured to execute the above method.
[0013] In a seventh aspect of the present disclosure, a system is configured 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 perform the above method. [0015] In a nineth 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 perform the above method. [0016] In a tenth aspect of the present disclosure, a wireless communication system comprises a memory, a transceiver, and a processor coupled to the memory and the transceiver. The processor is configured to perform the above method.
[0017] In an eleventh aspect of the present disclosure, a non-transitory machine-readable storage medium has stored thereon instructions that, when executed by a computer, cause the computer to perform the above method. [0018] In a twelfth aspect of the present disclosure, a chip includes a processor, configured to call and run a computer program stored in a memory, to cause a device in which the chip is installed to execute the above method.
[0019] In a thirteenth aspect of the present disclosure, a computer readable storage medium, in which a computer program is stored, causes 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 causes 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 DRAWINGS
[0022] In order to illustrate the embodiments of the present disclosure or related art more clearly, the following figures will be described in the embodiments are briefly introduced. It is obvious that the drawings are merely some embodiments of the present disclosure, a person having ordinary skill in this field can obtain other figures according to these figures without paying the premise.
FIG. 1 is a G-PCC encoding diagram in prior art.
FIG. 2 is a G-PCC decoding diagram in prior art.
FIG. 3 is a schematic diagram illustrating an octree structure and corresponding digital representation according to an embodiment of the present disclosure. FIG. 4 is a schematic diagram illustrating a structure of cube and relationship with neighboring cubes according to an embodiment of the present disclosure.
FIG. 5 is a block diagram of a system for wireless communication according to an embodiment of the present disclosure.
FIG. 6 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
FIG. 7 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
FIG. 8 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
FIG. 9 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
FIG. 10 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
FIG. 11 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
DETAILED DESCRIPTION OF EMBODIMENTS
[0023] Embodiments of the present disclosure are described in detail with the technical matters, structural features, achieved objects, and effects with reference to the accompanying drawings as follows. Specifically, the terminologies in the embodiments of the present disclosure are merely for describing the purpose of the certain embodiment, but not to limit the disclosure.
[0024] A cubical axis-aligned bounding box B is defined by the two extreme points (0,0,0) and (2Ad,2Ad,2Ad) where d is the maximum size of the given point cloud along x, y or z direction. A point of point cloud will be noted as point below. All points are included in this defined cube. A cube is divided into eight sub-cubes, which creates the octree structure allowing one parent cube to have 8 child cubes. The 7 sibling cubes of a given cube are the same size cubes and share at least one same face/edge/point with this given cube. The volume of a cube is 1/8 volume of its parent cube. A cube may contain more than one point and the number of points in a cube is dependent on the size and location of the cube. The size of a smallest cube is pre-defined for a given point cloud. As one example, describes one way to define a minimum cube. For a given point, the parent cube of a given point is defined as a minimum size cube which contains this given point. Sibling points of a given point are defined as those points which have the same parent cube with this given point.
[0025] An octree is a recursive data structure that is often used to describe three-dimensional space in which each internal cube has exactly eight children. The space is recursively subdivided into eight octants to the point where the resolution of the child cube is equal to a size of the point - the smallest element that has no further subdivisions. To represent a cube an 8-bit binary code that follows a space-filling curve pattern (Hilbert, Morton) is used, each child is assigned a “1” or “0” value to indicate if the space in the child cube has any points associated with that child cube, or the child cube is empty. Only the occupied child cubes are further subdivided. The process of parent cube subdivision is terminated when the size of the child cube becomes equal to the size of the indivisible element, i.e., spatial resolution of the point cloud, or simply the size of the point. FIG. 3 demonstrates a typical octree structure of G-PCC and the corresponding digital representation.
[0026] Depending on the location of the current cube, one cube may have up to six same-size cubes to share one face as shown in FIG. 4. In addition, the current cube may also have some neighboring cubes which share lines or point with the current cube.
[0027] Similarly, the parent cube of the current cube also has up to six neighboring cubes with the same size of the parent cube that share one face with the parent cube. The parent cube of the current cube also has up to twelve neighboring cubes with the same size of parent cubes that share an edge. The parent cube of the current cube also has up to eight neighboring cubes with the same size of parent cubes that share a point with the parent cube.
[0028] The octree-based geometry information may be coded with context-based arithmetic coding.
[0029] There may also be some corresponding attribute information for point clouds, including color, reflectance etc., that needs to be compressed. Because the neighboring points in a point cloud may have a strong correlation, prediction-based coding methods have been developed and used to compose and code point cloud attributes. More specifically, a prediction is formed from neighboring coded attributes. Then, the difference between the current attribute and the prediction is coded.
[0030] In this disclosure, coding is assumed to mean encoding and decoding methods and systems.
Attribute Coding
[0031] After the geometry information is coded, Morton or Hilbert code/order may be used to convert a point cloud cube into a one-dimension array. Each position in the cube will have a corresponding Morton or Hilbert code, but some positions may not have any corresponding point cloud attribute. In other words, some positions may be empty. The attribute coding will follow the pre-defined Morton or Hilbert order. A predictor may be generated from the previous coded points in Morton or Hilbert order. The attribute difference between the current point and its predictor is coded into the bitstream.
[0032] To reduce the memory usage, some pre-defined number has been specified to limit the number of neighboring points that can be used in generating the prediction. For example, only M data points among previous N consecutively coded points may be used for coding the current attribute. In an embodiment, M and N are set as a fixed number of 3 and 128, respectively. If more than 128 points have already been coded before the current point, only 3 out of the 128 previously coded neighboring points could be used to form the attribute predictor according to a pre-defined order. If there are less than 128 coded points before the current point, all such coded points will be used as candidates to establish the attribute predictor. More specifically, the previous K points, e.g., K = 6, before the current point are selected according to a pre-defined Morton or Hilbert order. Then new Morton or Hilbert codes for these N points will be re-calculated by adding a fixed shift, e.g., 1, to coordinates (x, y, z) of these N data points. Suppose that the new Morton or Hilbert code for the current position is X. A P-point set before and a Q-point set after the current position according to the new Morton or Hilbert code order will be selected. Among these pre-defined K, P and Q point sets, M points are selected with M closest “distance” between these coded points and the current point. The distance d as one example is defined as follows, other distance metrics can also be used.
[0033] d=|xl-x2|+ |yl-y2|+|zl-z2| (1)
[0034] where (xl, yl, zl) and (x2, y2, z2) are coordinates of the current point and pre-selected point, respectively.
[0035] In an embodiment, full search method based on Hilbert code has been applied in attribute coding. In the current software, the search range is set as 128 and the number of previous points used to form the predictor is set as M. If more than 128 points have already been coded before the current point, only M out of the 128 previously coded neighboring points can be used to form the attribute predictor according to the Hilbert order. If there are fewer than 128 coded points before the current one, all such coded points will be used as candidates to form the attribute predictor. Among the up-to 128 previously coded points, M points are selected with M closest “distance” between these coded points and the current point. The distance d as one example is defined as follows, other distance metrics can also be used.
[0036] d=|xl-x2|+ |yl-y2|+|zl-z2| (1)
[0037] where (xl,yl,zl) and (x2,y2,z2) are the coordinates of the current point and the pre-selected point along Hilbert order, respectively. Once M closest points have been selected, a weighted average of attributes from these M points is formed as the predictor to code the attribute of the current point.
[0038] It is known that the points which share the same face/line/point with the current point are close to the current point. Another technology is to consider these points serving as a predictor.
[0039] The residual is defined as the difference of attribute values between the current point and its predictor. Depending on the application, PCC can be either lossless or lossy. Hence, the residual may or may not be quantized by using the predefined quantization step. In this disclosure, the residual without or with quantization is called level. The level could be a signed integer and will be coded into the bitstream.
Reflectance Level Coding
[0040] In an embodiment, the zero run-length of level and non-zero level are coded into bitstream. More specially, in the encoding side, before coding of the first point, the zero run-length counter is set as zero. Starting from the first point along the predefined coding order, the residuals between the predictors and corresponding original points are obtained. Then the corresponding levels are obtained. If current level is zero, zero run-length will be increased by one and the process proceeds to the next point. If the level is not zero, the zero run-length will be coded first and the non-zero level will be coded after the zero run-length coding. After coding a non-zero level, zero run-length counter will be reset to zero and the process proceeds to next point. In the decoding side, the number of zero run-length is first decoded and the levels corresponding to the number of zero run-length points are set as zero. Then non-zero level is decoded and the next number of zero run-length is decoded. Process continues until all points are decoded.
[0041] For a non-zero level, if the current point is not a duplicated point, the sign of level is coded with a syntax element residual sign first. Then a syntax element absolute residual equal one which indicates the current residual is one or not is coded. If the current residual is not equal to one, another syntax element absolute residual equal two will be coded. If the current residual is not equal to two, one more syntax element absohite residual minus three which is used to code the value of absolute residual minus three will be coded. Table 1 is the current syntax table for reflectance level coding.
[0042] Table 1 Reflectance coding
Figure imgf000008_0001
[0043] In addition, both the zero-run length and the non-zero reflectance residual may be coded with other similar ways.
Color Level Coding [0044] There are three color attributes for each point with three color components. If the levels for all three color components are zeros, this point is called as a zero level point. Otherwise, if there is at least one non-zero level for one color component with the point, this point is called as a non-zero level point. In an embodiment, the number of consecutive zero level points is called zero run-length. Zero run-length values and levels for non-zero level points are coded into bitstream. More specifically, in the encoding side, before coding of the first point, the zero run-length value is set as zero. Starting from the first point along the predefined coding order, the residuals between the three color predictors and their corresponding color attributes for the current point can be obtained. Then the corresponding levels for all three components of the current point also can be obtained. If the current point is a zero level point, the zero run-length value will be increased by one and the process proceeds to the next point. If the current point is a non-zero level point, the zero run-length value will be coded first and all three color levels for this non-zero level point will be coded. After the level coding of a non-zero level point, zero run-length value will be reset to zero and the process proceeds to next point till finishing all points. In the decoding side, the zero run-length value is first decoded and all color levels corresponding to the number of zero run-length points are set as zero. Then the levels for the non-zero level point are 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 a non-zero level point, there is at least one non-zero level among the three components. Several one-bit flags plus the remainder of the absolute level may be coded to represent levels of three components. The absolute level or absolute level minus one may be coded and named as coded level in the remaining of this disclosure. If the levels for both the first and the second components are zeros, the coded level for the third component is the absolute level of the third component minus one. Otherwise, the code level for the current component is the absolute level itself.
[0046] Within a coded level coding, a flag will be coded first to represent if the coded level for the current component is greater than 0 or not. If the current component is the third component and the levels for both the first and the second components are zeros, the sign will be coded for the third component. If the coded level is greater than 0, a flag will be coded to represent if the coded level for the current component is greater than 1 or not. Furthermore, if the current component is the first or the second component, or the current component is the third component and there is at least one non-zero for the first or the second component, the sign will be coded for the current component. If the coded level is greater than 1, a flag will be coded to represent if the coded level for the current component is greater than 2 or not. If the coded level is greater than 2, a flag will be coded to represent if the coded level for the current component is greater than 3 or not when the current component is the first or the second component, or the current component is the third component and there is at least one non-zero for the first or the second component. If the coded level is greater than 3, a remainder will be coded for the current component. If the coded level is greater than 2 and the current component is the third component and the levels for both the first and the second components are zeros, a remainder will be coded for the third component.
[0047] Table 2 Color coding
Figure imgf000009_0001
Figure imgf000010_0001
[0048] abs codedlevel _flag0[idx] equal to 0 specifies that the absolute coded level for component idx is not greater than 0. abs codedlevel _flag0[idx] equal to 1 specifies that the absolute coded level for component idx is greater than 0. When not present, it is inferred to be equal to 0.
[0049] abs_codedlevel_flagl[idx] equal to 0 specifies that the absolute coded level for component idx is not greater than 1. abs codedlevel flag 1 [idx] equal to 1 specifies that the absolute coded level is greater than 1.
When not present, it is inferred to be equal to 0. [0050] abs codedlevel _flag2[idx] equal to 0 specifies that the absolute coded level for component idx is not greater than 2. abs codedlevel _flag2[idx] equal to 1 specifies that the absolute coded level for component idx is greater than 2. When not present, it is inferred to be equal to 0.
[0051] abs_codedlevel_flag3 [idx] equal 0 specifies that the absolute coded level for component idx is not greater than 3. abs_codedlevel_flag3 [idx] equal to 1 specifies that the absolute coded level for component idx is greater than 3. When not present, it is inferred to be equal to 0.
[0052] abs_codedlevel_remainder[idx] specifies the remaining absolute value for coded level for component idx. When not present, it is inferred to be equal to 0.
[0053] residual_sign[idx] equal to 0 specifies that the sign of the residual for the component idx is negative. residual_sign[idx] equal to 1 specifies that the sign of the residual for the component idx is positive. When not present, it is inferred to be equal to 1.
[0054] If the current components is the first or the second component, or the current component is the third component and there is at least one non-zero for the first or the second component, the level will be represented as follows.
[0055] Level = (2* residual_sign[idx] -1) * (abs_codedlevel_flagO[idx] + abs_codedlevel_flagl[idx] + abs_codedlevel_flag2[idx] + abs_codedlevel_flag3 [idx] + abs_codedlevel_remainder[idx])
[0056] Otherwise (the current compent is the third componentand and both the absolute levels for the first and the second components are zeros), the level will be represented as follows.
[0057] Level = (2* residual_sign[idx] -1) * (1 + abs_codedlevel_flagO[idx] + abs_codedlevel_flagl[idx] + abs_codedlevel_flag2[idx] + abs_codedlevel_remainder[idx])
[0058] Similarly, both the zero-run length and the zero/non-zero color residual may be coded with other similar ways.
[0059] This disclosure proposes several improvements.
Solution 1:
[0060] This disclosure proposes that all bins binarized by using either K-order exponential Golomb (EG) or unary code in the coding of zero-run length, reflectance and color residual will be coded by using the bypass coding approach.
[0061] More specifically, the value of zero-run length could be coded as follows in an embodiment. If the order of EG used for coding an attribute is smaller than a predefined value, the first bin is coded to indicate if the value of zero-run length is zero or not; if it is not zero, the second bin is coded to indicate if the value of zero-run length is one or not; if it is not one, the third bin is coded to indicate if the value of zero-run length is two or not; if it is not two, a parity flag will be coded to indicate if the value of zero-run length is an odd or even number. These three bins plus parity bin are coded with the context coded approach. After these context coded bins, a remainder which represents the value of (zero-run length - 2)/2 may be coded. No matter what kind of binarization methods is used to binarize this remainder, this disclosure proposes that all the bins for this remainder will be coded by using the bypass approach. [0062] For reflectance attribute coding, the first bin is coded to indicate if the value of reflectance residual is an odd or even number; the second bin is coded to indicate the value of (absolute value of reflectance residual - 1) mod 2; if possible, the third bin is coded to indicate the value of (absolute value of reflectance residual -3) mod 2; if possible, the value of (absolute value of reflectance residual -5 - parity) called as a remainder will be coded. The remainder may be binarized with K-order EG and the value of K is dependent on the value coded in the bitstream or a predefined value. This disclosure proposes to code all the bins of this remainder with the bypass coding approach.
[0063] Similarly, there may be also a remainder after several one-bin flags are coded to indicate whether the current color component is an odd or even number, or larger than some specified value for color attribute coding. This disclosure proposes to code all the bins of this color remainder with the bypass coding approach.
Solution 2:
[0064] This disclosure proposes that a counter is used to control how many bins are coded as context-coded bins for coding the value of zero-run length, the values of reflectance, and color residual, respectively. Once one context-coded bin is generated, the counter increases by one. If the counter reaches a predefined value, all the remaining bins for coding the value of zero-run length, the values of reflectance, and color residual will be coded with the bypass approach.
[0065] As an example, suppose that the value of zero-run length is 62, and a predefined value of context- coded bins for coding the value of zero-run length is set as 10. Before the coding, the counter is set to 0. The first bin will be coded to indicate the value of zero-run length is not zero and the counter increases by one; the second bin will be coded to indicate the value of zero-run length is not one and the counter increases by one; the third bin will be coded to indicate the value of zero-run length is not two and the counter increases by one; the fourth bin will be coded to indicate the parity of 62 and the counter increases by one. After these four bins are coded with the context-based approach, the remainder will be (62-2)/2 = 30, and 30 will be binarized with a 2nd-order EG code as 00001000010 with 11 bins. Because there are six more context-coded bins left in the budget, the first six bins 000010 will be coded with the context-based approach and the remaining five bins 00010 will be coded with the bypass approach. Alternatively, the first five 00001 bins will be coded with the bypass approach, and the rest six bins 000010 will be coded with the context-based approach.
Solution 3 :
[0066] In the current geometry coding, the number of duplicated points is coded as follows. The first bin is coded to indicate if this number is equal to one; if it is not one, the number of duplicated points minus two will be binarized with a fixed-length code and then each bin of this code is coded with the bypass approach.
[0067] This disclosure proposes, to improve the coding performance, that all the bins used to represent the number of duplicated points are coded with the context-based approach. In other words, if the number of duplicated points is not one, the number of duplicated points minus two will be binarized with a fixed-length code and each bin of this code is coded with the context-based approach, instead of the bypass approach. [0068] In the current geometry prediction tree coding, the first bin is coded to indicate if the value of geometry residual is zero or not; if it is not zero, a number of bins, e.g., K, for representing geometry residual minus one is binarized with a five fixed-length code and coded with the bypass approach. The value of geometry residual minus one will be binarized with a K-bin fixed-length code and each bin will be coded with the bypass approach. This disclosure proposes to code these K bins with the context-based approach instead of the bypass approach, to improve the coding performance.
[0069] FIG. 6 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
[0070] In an embodiment of the present disclosure, a method of encoding geometry point cloud, includes step SI 00: encoding attributes of the geometry point clouds with zero-run length code, wherein some bins of the attributes of the geometry point clouds are encoded with context code and other remaining bins of the attributes of the geometry point clouds are encoded with bypass code.
[0071] In an embodiment of the present disclosure, some bins of zero-run length information of the geometry point clouds are encoded with context code and other remaining bins of zero-run length information of the geometry point clouds are encoded with bypass code.
[0072] In an embodiment of the present disclosure, the bins of zero-run length information of the geometry point clouds encoded with context code includes: first bin configured to indicated whether value of zero-run length is zero; second bin configured to indicated whether value of zero-run length is one; third bin configured to indicated whether value of zero-run length is two; and parity flag configured to indicate whether value of zero-run length is odd or even, wherein the other remaining bins of zero-run length information of the geometry point clouds encoded with bypass code is (value of zero-run length -2)/2.
[0073] In an embodiment of the present disclosure, some bins of reflectance residual information of the geometry point clouds are encoded with context code and other remaining bins of reflectance residual information of the geometry point clouds are encoded with bypass code.
[0074] In an embodiment of the present disclosure, the bins of reflectance residual information of the geometry point clouds encoded with context code includes: first bin configured to indicated whether value of reflectance residual is odd or even; second bin configured to indicated whether value of (absolute value of reflectance residual -1) mod 2; and third bin configured to indicated whether value of (absolute value of reflectance residual -3) mod 2, wherein the other remaining bins of reflectance residual information of the geometry point clouds encoded with bypass code is (absolute value of reflectance residual -5 -parity)
[0075] In an embodiment of the present disclosure, some bins of color residual information of the geometry point clouds are encoded with context code and other remaining bins of color residual information of the geometry point clouds are encoded with bypass code.
[0076] In an embodiment of the present disclosure, the method of coding point clouds further includes a counter to count how many bins of the geometry point clouds are encoded with context-code, and if the counter reaches a predefined value, all remaining bins of the geometry point clouds are encoded with bypass code. [0077] FIG. 7 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
[0078] In an embodiment of the present disclosure, a method of coding point clouds, includes step S200: encoding all bins used to represent number of duplicated points of the geometry point clouds with context code in geometry encoding .
[0079] In an embodiment of the present disclosure, all bins used to represent the number of duplicated points minus two are encoded with fixed-length code and encoded with context code if the numbers of duplicated points is greater than one.
[0080] FIG. 8 is a schematic diagram illustrating a flowchart of a method of encoding geometry point clouds according to an embodiment of the present disclosure.
[0081] In an embodiment of the present disclosure, a method of coding point clouds, includes step S300: encoding all bins used to represent value of geometry residual of the geometry point clouds with context code in geometry prediction tree coding.
[0082] In an embodiment of the present disclosure, all bins used to represent the value of geometry residual minus one are encoded with fixed-length code and encoded with context code if the value of geometry residual is greater than zero.
[0083] In an embodiment of the present disclosure, a point cloud encoder is configured to execute the above method.
[0084] FIG. 9 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
[0085] In an embodiment of the present disclosure, a method of decoding geometry point clouds, includes step S400: decoding attributes of the geometry point clouds, wherein the attributes of geometry point clouds are encoded with zero-run length code, and wherein some bins of the attributes of the geometry point clouds are encoded with context code and other remaining bins of the attributes of the geometry point clouds are encoded with bypass code.
[0086] In an embodiment of the present disclosure, some bins of zero-run length information of the geometry point clouds are encoded with context code and other remaining bins of zero-run length information of the geometry point clouds are encoded with bypass code.
[0087] In an embodiment of the present disclosure, the bins of zero-run length information of the geometry point clouds encoded with context code comprises: first bin configured to indicated whether value of zero-run length is zero; second bin configured to indicated whether value of zero-run length is one; third bin configured to indicated whether value of zero-run length is two; and parity flag configured to indicate whether value of zero-run length is odd or even, and wherein the other remaining bins of zero-run length information of the geometry point clouds encoded with bypass code is (value of zero-run length -2)/2.
[0088] In an embodiment of the present disclosure, some bins of reflectance residual information of the geometry point clouds are encoded with context code and other remaining bins of reflectance residual information of the geometry point clouds are encoded with bypass code. [0089] In an embodiment of the present disclosure, the bins of reflectance residual information of the geometry point clouds encoded with context code comprises: first bin configured to indicated whether value of reflectance residual is odd or even; second bin configured to indicated whether value of (absolute value of reflectance residual -1) mod 2; and third bin configured to indicated whether value of (absolute value of reflectance residual -3) mod 2, and wherein the other remaining bins of reflectance residual information of the geometry point clouds encoded with bypass code is (absolute value of reflectance residual -5 -parity).
[0090] In an embodiment of the present disclosure, some bins of color residual information of the geometry point clouds are encoded with context code and other remaining bins of color residual information of the geometry point clouds are encoded with bypass code.
[0091] In an embodiment of the present disclosure, a method of decoding the geometry point clouds further includes a counter to count how many bins of the geometry point clouds are encoded with context-code, and if the counter reaches a predefined value, all remaining bins of the geometry point clouds are encoded with bypass code.
[0092] FIG. 10 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
[0093] In an embodiment of the present disclosure, a method of decoding geometry point clouds, includes step S500: decoding all bins used to represent number of duplicated points of the geometry point clouds, wherein the bins used to represent number of duplicated points of the geometry point clouds are all encoding with context code in geometry encoding.
[0094] In an embodiment of the present disclosure, all bins used to represent the number of duplicated points minus two are encoded with fixed-length code and encoded with context code if the numbers of duplicated points is greater than one.
[0095] FIG. 11 is a schematic diagram illustrating a flowchart of a method of decoding geometry point clouds according to an embodiment of the present disclosure.
[0096] In an embodiment of the present disclosure, a method of decoding geometry point clouds, includes step S600: decoding all bins used to represent value of geometry residual of the geometry point clouds, wherein the bins used to represent value of geometry residual of the geometry point clouds are all encoding with context code in geometry prediction tree coding.
[0097] In an embodiment of the present disclosure, all bins used to represent the value of geometry residual minus one are encoded with fixed-length code and encoded with context code if the value of geometry residual is greater than zero.
[0098] An embodiment of the present disclosure provides a geometry point cloud decoder, wherein the point cloud decoder is configured to execute the above method.
[0099] In an embodiment of the present disclosure, a system is configured to execute the above method. [00100] 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. [00101] 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.
[00102] An embodiment of the present disclosure provides a non-transitory machine-readable storage medium having stored thereon instructions that, when executed by a computer, cause the computer to perform the above method.
[00103] In an embodiment of the present disclosure, a chip, includes: a processor, configured to call and run a computer program stored in a memory, to cause a device in which the chip is installed to execute the above method.
[00104] An embodiment of the present disclosure provides a computer readable storage medium, in which a computer program is stored, wherein the computer program causes a computer to execute the above method. [00105] In an embodiment of the present disclosure, a computer program product, includes a computer program, wherein the computer program causes a computer to execute the above method.
[0100] In an embodiment of the present disclosure, a computer program causes a computer to execute the above method.
[0101] FIG. 5 is a block diagram of an example system 700 for wireless communication according to an embodiment of the present disclosure. Embodiments described herein may be implemented into the system using any suitably configured hardware and/or software. FIG. 5 illustrates the system 700 including a radio frequency (RF) circuitry 710, a baseband circuitry 720, an application circuitry 730, a memory/storage 740, a display 750, a camera 760, a sensor 770, and an input/output (I/O) interface 780, coupled with each other at least as illustrated. The application circuitry 730 may include a circuitry such as, but not limited to, one or more single-core or multi-core processors. The processors may include any combination of general-purpose processors and dedicated processors, such as graphics processors, application processors. The processors may be coupled with the memory/storage and configured to execute instructions stored in the memory/storage to enable various applications and/or operating systems running on the system.
[0102] While the present disclosure has been described in connection with what is considered the most practical and preferred embodiments, it is understood that the present disclosure is not limited to the disclosed embodiments but is intended to cover various arrangements made without departing from the scope of the broadest interpretation of the appended claims.

Claims

What is claimed is:
1. A method of encoding geometry point clouds, comprising: encoding attributes of the geometry point clouds with zero-run length code, wherein some bins of the attributes of the geometry point clouds are encoded with context code and other remaining bins of the attributes of the geometry point clouds are encoded with bypass code.
2. The method of encoding point clouds according to claim 1, wherein some bins of zero-run length information of the geometry point clouds are encoded with context code and other remaining bins of zero-run length information of the geometry point clouds are encoded with bypass code.
3. The method of encoding the geometry point clouds according to claim 2, wherein the bins of zero-run length information of the geometry point clouds encoded with context code comprises: first bin configured to indicated whether value of zero-run length is zero; second bin configured to indicated whether value of zero-run length is one; third bin configured to indicated whether value of zero-run length is two; and parity flag configured to indicate whether value of zero-run length is odd or even, and wherein the other remaining bins of zero-run length information of the geometry point clouds encoded with bypass code is (value of zero-run length -2)/2.
4. The method of encoding the geometry point clouds according to claim 1, wherein some bins of reflectance residual information of the geometry point clouds are encoded with context code and other remaining bins of reflectance residual information of the geometry point clouds are encoded with bypass code.
5. The method of encoding the geometry point clouds according to claim 4, wherein the bins of reflectance residual information of the geometry point clouds encoded with context code comprises: first bin configured to indicated whether value of reflectance residual is odd or even; second bin configured to indicated whether value of (absolute value of reflectance residual -1) mod 2; and third bin configured to indicated whether value of (absolute value of reflectance residual -3) mod 2, and wherein the other remaining bins of reflectance residual information of the geometry point clouds encoded with bypass code is (absolute value of reflectance residual -5-parity).
6. The method of encoding the geometry point clouds according to claim 1, wherein some bins of color residual information of the geometry point clouds are encoded with context code and other remaining bins of color residual information of the geometry point clouds are encoded with bypass code.
7. The method of encoding the geometry point clouds according to claim 1, further comprising a counter to count how many bins of the geometry point clouds are encoded with context-code, and if the counter reaches a predefined value, all remaining bins of the geometry point clouds are encoded with bypass code.
8. A method of encoding geometry point clouds, comprising: encoding all bins used to represent number of duplicated points of the geometry point clouds with context code in geometry encoding.
9. The method of encoding the geometry point clouds according to claim 8, wherein all bins used to represent the number of duplicated points minus two are encoded with fixed-length code and encoded with context code if the numbers of duplicated points is greater than one.
10. A method of encoding geometry point clouds, comprising: encoding all bins used to represent value of geometry residual of the geometry point clouds with context code in geometry prediction tree coding.
11. The method of encoding the geometry point clouds according to claim 10, wherein all bins used to represent the value of geometry residual minus one are encoded with fixed-length code and encoded with context code if the value of geometry residual is greater than zero.
12. A point cloud encoder, wherein the point cloud encoder is configured to execute the method of any one of claims 1 to 11.
13. A system to execute the method of any one of claims 1 to 11.
14. A network, comprising : a memory; a transceiver; and a processor coupled to the memory and the transceiver; wherein the processor is configured to execute the method of any one of claims 1 to 11.
15. A user equipment, comprising : a memory; a transceiver; and a processor coupled to the memory and the transceiver; wherein the processor is configured to execute the method of any one of claims 1 to 11.
16. A non -transitory machine-readable storage medium having stored thereon instructions that, when executed by a computer, cause the computer to perform the method of 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, to cause a device in which the chip is installed to execute the method of any one of claims 1 to 11.
18. A computer readable storage medium, in which a computer program is stored, wherein the computer program causes a computer to execute the method of 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 of any one of claims 1 to 11.
20. A computer program, wherein the computer program causes a computer to execute the method of any one of claims 1 to 11.
21. A method of decoding geometry point clouds, comprising: decoding attributes of the geometry point clouds, wherein the attributes of geometry point clouds are encoded with zero-run length code, and wherein some bins of the attributes of the geometry point clouds are encoded with context code and other remaining bins of the attributes of the geometry point clouds are encoded with bypass code.
22. The method of decoding point clouds according to claim 21, wherein some bins of zero-run length information of the geometry point clouds are encoded with context code and other remaining bins of zero-run length information of the geometry point clouds are encoded with bypass code.
23. The method of decoding the geometry point clouds according to claim 22, wherein the bins of zero-run length information of the geometry point clouds encoded with context code comprises: first bin configured to indicated whether value of zero-run length is zero; second bin configured to indicated whether value of zero-run length is one; third bin configured to indicated whether value of zero-run length is two; and parity flag configured to indicate whether value of zero-run length is odd or even, and wherein the other remaining bins of zero-run length information of the geometry point clouds encoded with bypass code is (value of zero-run length -2)/2.
24. The method of decoding the geometry point clouds according to claim 21, wherein some bins of reflectance residual information of the geometry point clouds are encoded with context code and other remaining bins of reflectance residual information of the geometry point clouds are encoded with bypass code.
25. The method of decoding the geometry point clouds according to claim 24, wherein the bins of reflectance residual information of the geometry point clouds encoded with context code comprises: first bin configured to indicated whether value of reflectance residual is odd or even; second bin configured to indicated whether value of (absolute value of reflectance residual -1) mod 2; and third bin configured to indicated whether value of (absolute value of reflectance residual -3) mod 2, and wherein the other remaining bins of reflectance residual information of the geometry point clouds encoded with bypass code is (absolute value of reflectance residual -5-parity).
26. The method of decoding the geometry point clouds according to claim 21, wherein some bins of color residual information of the geometry point clouds are encoded with context code and other remaining bins of color residual information of the geometry point clouds are encoded with bypass code.
27. The method of decoding the geometry point clouds according to claim 21 , further comprising a counter to count how many bins of the geometry point clouds are encoded with context-code, and if the counter reaches a predefined value, all remaining bins of the geometry point clouds are encoded with bypass code.
28. A method of decoding geometry point clouds, comprising: decoding all bins used to represent number of duplicated points of the geometry point clouds, wherein the bins used to represent number of duplicated points of the geometry point clouds are all encoding with context code in geometry encoding.
29. The method of decoding the geometry point clouds according to claim 28, wherein all bins used to represent the number of duplicated points minus two are encoded with fixed-length code and encoded with context code if the numbers of duplicated points is greater than one.
30. A method of decoding geometry point clouds, comprising: decoding all bins used to represent value of geometry residual of the geometry point clouds, wherein the bins used to represent value of geometry residual of the geometry point clouds are all encoding with context code in geometry prediction tree coding.
31. The method of decoding the geometry point clouds according to claim 30, wherein all bins used to represent the value of geometry residual minus one are encoded with fixed-length code and encoded with context code if the value of geometry residual is greater than zero.
32. A geometry point cloud decoder, wherein the point cloud decoder is configured to execute the method of any one of claims 21 to 31.
33. A system to execute the method of any one of claims 21 to 31.
34. A network, comprising : a memory; a transceiver; and a processor coupled to the memory and the transceiver; wherein the processor is configured to execute the method of any one of claims 21 to 31.
35. A user equipment, comprising : a memory; a transceiver; and a processor coupled to the memory and the transceiver; wherein the processor is configured to execute the method of any one of claims 21 to 31.
36. A non-transitory machine-readable storage medium having stored thereon instructions that, when executed by a computer, cause the computer to perform the method of 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, to cause a device in which the chip is installed to execute the method of any one of claims 21 to 31.
38. A computer readable storage medium, in which a computer program is stored, wherein the computer program causes a computer to execute the method of 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 of any one of claims 21 to 31.
40. A computer program, wherein the computer program causes a computer to execute the method of any one of claims 21 to 31.
PCT/US2023/025167 2022-06-13 2023-06-13 Geometry point cloud coding system and method Ceased WO2023244585A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202380045821.4A CN119343920A (en) 2022-06-13 2023-06-13 Geometric point cloud coding system and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202263366312P 2022-06-13 2022-06-13
US63/366,312 2022-06-13

Publications (1)

Publication Number Publication Date
WO2023244585A1 true WO2023244585A1 (en) 2023-12-21

Family

ID=89191882

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2023/025167 Ceased WO2023244585A1 (en) 2022-06-13 2023-06-13 Geometry point cloud coding system and method

Country Status (2)

Country Link
CN (1) CN119343920A (en)
WO (1) WO2023244585A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210104090A1 (en) * 2019-10-03 2021-04-08 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20210306663A1 (en) * 2020-03-30 2021-09-30 Tencent America LLC Methods of coding duplicate and isolated points for point cloud coding
US20210319593A1 (en) * 2020-04-14 2021-10-14 Apple Inc. Significant coefficient flag encoding for point cloud attribute compression
US20210385303A1 (en) * 2020-06-09 2021-12-09 Qualcomm Incorporated Attribute residual coding in g-pcc
US20220058837A1 (en) * 2020-08-18 2022-02-24 Tencent America LLC Predictive tree-based geometry coding for a point cloud
US20220108491A1 (en) * 2020-10-07 2022-04-07 Qualcomm Incorporated Predictive geometry coding in g-pcc

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210104090A1 (en) * 2019-10-03 2021-04-08 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20210306663A1 (en) * 2020-03-30 2021-09-30 Tencent America LLC Methods of coding duplicate and isolated points for point cloud coding
US20210319593A1 (en) * 2020-04-14 2021-10-14 Apple Inc. Significant coefficient flag encoding for point cloud attribute compression
US20210385303A1 (en) * 2020-06-09 2021-12-09 Qualcomm Incorporated Attribute residual coding in g-pcc
US20220058837A1 (en) * 2020-08-18 2022-02-24 Tencent America LLC Predictive tree-based geometry coding for a point cloud
US20220108491A1 (en) * 2020-10-07 2022-04-07 Qualcomm Incorporated Predictive geometry coding in g-pcc

Also Published As

Publication number Publication date
CN119343920A (en) 2025-01-21

Similar Documents

Publication Publication Date Title
US11895307B2 (en) Block-based predictive coding for point cloud compression
US20030147470A1 (en) Apparatus for encoding and decoding key data and key value data of coordinate interpolator and recording medium containing bitstream into which coordinate interpolator is encoded
CN113632142A (en) Method and device for point cloud compression
WO2023241107A1 (en) Point cloud processing method and apparatus, computer device and storage medium
CN115088017B (en) In-tree geometric quantization of point clouds
CN118947108A (en) Device for encoding and decoding vertex positions of point cloud and data stream comprising vertex positions
CN119013994B (en) Method and apparatus for encoding and decoding presence markers of point clouds, and a data stream including presence markers.
CN116320352A (en) Point cloud processing method and device, computer equipment and storage medium
US20250234038A1 (en) Motion Compensation Recoloring of Point Clouds
US20250234024A1 (en) Approximation for Recoloring of Point Clouds
WO2023244585A1 (en) Geometry point cloud coding system and method
CN119366178A (en) Color component encoding method, encoder and decoder
WO2024123568A1 (en) Geometry point cloud coding method, encoder and decoder
US20250225680A1 (en) System and method for geometry point cloud coding
CN119866509A (en) Point cloud decoding method, point cloud encoding method, decoder and encoder
WO2024006436A1 (en) Bitstream encoding and decoding for geometry point cloud coding
WO2024186552A1 (en) Point cloud decoding method, point cloud encoding method, decoder and encoder
WO2024044082A2 (en) Decoding method, encoding method, decoder and endoder
CN118805202A (en) Attribute level encoding for geometric point cloud encoding
CN119318141A (en) Method, system and device for point cloud encoding and decoding
CN119318143A (en) Decoding method, encoding method, decoder and encoder
WO2023172705A1 (en) Attribute level coding for geometry point cloud coding
JP2024058011A (en) Point group decoding device, point group decoding method and program
HK40086886A (en) Point cloud processing method, apparatus, and computer device, storage medium
JP2024058012A (en) Point group decoding device, point group decoding method and program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23824499

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202380045821.4

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 202380045821.4

Country of ref document: CN

122 Ep: pct application non-entry in european phase

Ref document number: 23824499

Country of ref document: EP

Kind code of ref document: A1