WO2024006436A1 - Bitstream encoding and decoding for geometry point cloud coding - Google Patents

Bitstream encoding and decoding for geometry point cloud coding Download PDF

Info

Publication number
WO2024006436A1
WO2024006436A1 PCT/US2023/026575 US2023026575W WO2024006436A1 WO 2024006436 A1 WO2024006436 A1 WO 2024006436A1 US 2023026575 W US2023026575 W US 2023026575W WO 2024006436 A1 WO2024006436 A1 WO 2024006436A1
Authority
WO
WIPO (PCT)
Prior art keywords
variable
syntax element
data
element associated
attribute
Prior art date
Application number
PCT/US2023/026575
Other languages
French (fr)
Inventor
Yue Yu
Haoping Yu
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.
Publication of WO2024006436A1 publication Critical patent/WO2024006436A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components

Definitions

  • the present disclosure relates generally to computer-implemented methods and systems for bitstream processing, and more particularly, to extension improvements for geometry point cloud coding.
  • Geometry point cloud coding is widely used in VR/AR for entertainment and industrial applications, e.g., LiDAR sweep compression for automotive or robotics and high definition (HD) Map for navigation.
  • GPCC point cloud coding
  • HD high definition Map
  • An object of the present disclosure is to propose bitstream encoding/decoding methods and systems to improve efficiency for geometry point cloud coding.
  • a bitstream decoding method includes: decoding a bitstream associated with geometry point cloud coding (GPCC) including a syntax structure having a syntax element associated with an extension flag to determine extension data.
  • GPCC geometry point cloud coding
  • a bitstream decoding system includes: a processor; and a memory coupled to the processing unit, wherein the processor is configured to execute program instructions stored in the memory to perform the above bitstream decoding method.
  • a non-transitory computer-readable medium having program code stored thereon, the program code executable by a processor to execute the above bitstream decoding method.
  • a bitstream encoding method includes: encoding a bitstream associated with geometry point cloud coding (GPCC) including a syntax structure having a syntax element associated with an extension flag to determine extension data.
  • GPCC geometry point cloud coding
  • a bitstream encoding system includes: a processor; and a memory coupled to the processing unit, wherein the processor is configured to execute program instructions stored in the memory to perform the above bitstream encoding method.
  • a non-transitory computer-readable medium having program code stored thereon, the program code executable by a processor to execute the above bitstream encoding method.
  • FIG. 1 is a schematic diagram illustrating an encoding module and a decoding module for geometry point cloud coding (GPCC) that can be applied to embodiments of the present disclosure.
  • GPCC geometry point cloud coding
  • FIGs. 2A and 2B are schematic diagrams illustrating an octree structure for GPCC and a corresponding digital representation that can be applied to embodiments of the present disclosure.
  • FIG. 3 is a schematic diagram illustrating a structure of cube and relationship with neighboring cubes that can be applied to embodiments of the present disclosure.
  • FIGs. 4A to 4D are schematic diagrams illustrating syntax structures associated with functions of color_residual_coding (), coded_level_coding (isComponentNoneZero), attribute_data_reflectance (), and zero run length code (useGolomb) that can be applied to embodiments of the present disclosure.
  • FIG. 5 is a flowchart illustrating a bitstream decoding method according to an embodiment of the present disclosure.
  • FIG. 6 is a flowchart illustrating a bitstream encoding method according to an embodiment of the present disclosure.
  • FIGs. 7A and 7B are schematic diagrams illustrating syntax structures associated with a sequence header and an attribute header that can be applied to embodiments of the present disclosure.
  • FIGs. 8 A is a schematic diagram illustrating a syntax structure associated with a sequence header that can be applied to embodiments of the present disclosure.
  • FIGs. 8B1 and 8B2 are schematic diagrams illustrating two parts of a syntax structure associated with an attribute header that can be applied to embodiments of the present disclosure.
  • FIGs. 8C is a schematic diagram illustrating an alternative syntax structure associated with a sequence header that can be applied to embodiments of the present disclosure.
  • FIGs. 8D1 and 8D2 are schematic diagrams illustrating two parts of an alternative syntax structure associated with an attribute header that can be applied to embodiments of the present disclosure.
  • FIGs. 9A and 9B are schematic diagrams illustrating syntax structures associated with a general attribute data bitstream that can be applied to embodiments of the present disclosure.
  • FIGs. 10A and 10B are schematic diagrams illustrating syntax structures associated with extensions in a sequence header that can be applied to embodiments of the present disclosure.
  • FIGs. 11A and 11B are schematic diagrams illustrating syntax structures associated with extensions in a geometry header that can be applied to embodiments of the present disclosure.
  • FIGs. 12A and 12B are schematic diagrams illustrating syntax structures associated with extensions in an attribute header that can be applied to embodiments of the present disclosure.
  • FIGs. 13A and 13B are schematic diagrams illustrating syntax structures associated with extensions in a geometry slice header that can be applied to embodiments of the present disclosure.
  • FIGs. 14A and 14B are schematic diagrams illustrating syntax structures associated with extensions in an attribute slice header that can be applied to embodiments of the present disclosure.
  • FIGs. 15A and 15B are schematic diagrams illustrating syntax structures associated with extensions in a general attribute data bitstream that can be applied to embodiments of the present disclosure.
  • FIG. 16 is a schematic block diagram illustrating an example of a computing device according to an embodiment of the present disclosure.
  • Geometry point cloud coding is widely used in VR/AR for entertainment and industrial applications, e.g., LiDAR sweep compression for automotive or robotics and high definition (HD) Map for navigation.
  • MPEG Motion Picture Experts Group
  • MPEG-I Coded Representation of Immersive Media
  • MPEG w 19617_d6 Part 9: Geometry-based Point Cloud Compression
  • AVS Audio Video coding Standard
  • AVS GPCC GPCC standard
  • FIG. 1 illustrates a diagram for a GPCC encoder 101 and a GPCC decoder 102 that can be applied in the present disclosure.
  • a GPCC encoder 101 and a GPCC decoder 102 point cloud positions are coded first, and attribute coding depends on the decoded geometry.
  • some modules such as “Analyze surface approximation,” “RAHT (Region Adaptive Hierarchical Transform),” and “Synthesize surface approximation” modules, are options typically used for static point clouds (category 1) data; some modules, such as “Generate LOD,” “Lifting (update/lifting transform),” and “Inverse lifting” modules, are options typically used for dynamically acquired point clouds (category 3) data; all the other modules are commonly used data between categories 1 and 3. [0034] For example, as shown in FIG.
  • a cubical axis-aligned bounding box is defined by the two extreme points (0,0,0) and (2 d , 2 d , 2 d ) wherein d is a maximum size of a 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 an octree structure allowing one parent cube to have eight child cubes. There are seven sibling cubes of a given cube that 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 the smallest cube is pre-defined for a given point cloud.
  • a minimum cube can be defined.
  • 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.
  • FIGs. 2A and 2B illustrate an octree structure 201 of GPCC and a corresponding digital representation 202 that can be applied in the present disclosure.
  • the octree structure 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.
  • each child is assigned a value such as “1” (i.e., signaling as a first symbol “one”) or “0” (i.e., signaling as a second symbol “zero”) 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 (i.e., assigned as “1”) 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 illustrates a structure of cube and relationship with neighboring cubes that can be applied in the present disclosure.
  • one cube may have up to six samesize cubes to share one face, as shown in FIG. 3.
  • the current cube may also have some neighboring cubes which share lines or points 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, such as cubes 301 and 302 shown as from (a) to (j) in FIG. 3.
  • 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, such as cubes CCo, CCi, CC2, CC3, CC4, CC5, CCe, and CC7 sharing a central point in the parent cube.
  • the octree-based geometry information may be coded with context-based arithmetic coding. 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 atributes. More specifically, a prediction is formed from neighboring coded atributes. Then, the difference between the current atribute and the prediction is coded.
  • 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 atribute. In other words, some positions may be empty.
  • the atribute 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 atribute 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 atribute. In AVS GPCC software, M and N can be 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 atribute 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 atribute 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.
  • d
  • a full search method based on Hilbert code has been applied in the AVS GPCC atribute coding, e.g., 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 atribute 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 atribute 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.
  • d
  • the residual is defined as the difference of attribute values between the current point and its predictor.
  • point cloud coding PCC
  • the residual may or may not be quantized by using the predefined quantization process.
  • the residual without or with quantization is called level.
  • the level can be a signed integer and will be coded into the bitstream.
  • the corresponding levels for the 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 then the three color levels for this non-zero level point will be coded right after. After the level coding of a nonzero level point, the zero-run length value will be reset to zero and the process proceeds to the next point until finishing all points. On the decoding side, the zero-run length value is first decoded and the three color levels corresponding to the number of zero-run length points are set as zero.
  • AVS-GPCC syntax is provided below as examples for illustrative purposes but is not intended to limit the present disclosure.
  • FIG. 4A shows a table 400A illustrating a syntax structure associated with a function, “color_residual_coding (),”
  • color_residual_coding (),
  • ae(v) refers to a descriptor associated with a syntax element for context adaptive arithmetic entropy coding.
  • a syntax element, “color_first_comp_zero,” equal to 0 specifies that the absolute coded level for the first component of color is not zero, and the syntax element, “color_first_comp_zero,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the absolute coded level for the first component is zero; another syntax element, “color_second_comp_zero,” equal to 0, specifies that the absolute coded level for the second component of color is not zero, and the syntax element, “color_second_comp_zero,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the absolute coded level for the second component is zero.
  • FIG. 4B shows a table 400B illustrating a syntax structure associated with a function, “coded_level_coding (isComponentNoneZero),” that is used in the function “color_residual_coding()” for AVS-GPCC, in which “ae(v)” refers to a descriptor associated with a syntax element for context adaptive arithmetic entropy coding.
  • coded_level_coding isComponentNoneZero
  • ae(v) refers to a descriptor associated with a syntax element for context adaptive arithmetic entropy coding.
  • a syntax element, “coded level equal zero,” equal to 0 specifies that the absolute coded level for this component is not zero, and the syntax element, “coded_level_equal_zero,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the absolute coded level for this component is zero; another syntax element, “coded_level_gt 1 ,” equal to 0, specifies that the coded level for this component is one, and the syntax element, “coded _lcvcl_gt I equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the coded level for this component is greater than one; when the syntax element, “coded _lcvcl_gt I is not present, it is inferred to be equal to 0; another syntax element, “coded_level_minus2_parity,” specifies the parity of the coded level minus two for the current component, wherein the syntax element, “code
  • syntax elements “coded_level” and “coded_level_sign,” are return values of a function “coded_level_coding(isComponentminusOne)” which represent the coded level, i.e. absolute level of color residual or absolute level of color residual minus one, and the sign of non-zero color residual.
  • a value of “coded level” can be calculated as follows.
  • coded_level (2* coded_level_sign -1) * (coded_level_equal_zero ? 0 : 1 +(codcd_lcvcl_gt l + codcd lc vcl m i nus2_pari ty+(codcd_lc vcl m i nus2_di v2_gt0+ coded_level_minu2_div2_minus 1 ) « 1 ) [0054] The residual levels of three color components, color_component[idx] in which idx is from 0 to 2 are calculated from the function “color_residual_coding(),” as shown in FIG. 4A.
  • non-zero level point there is at least one non-zero level among the three components.
  • the values of three components are coded in the function “color_residual_coding().”
  • 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 of color residual minus one may be coded in the function “coded_level_coding()” and named as coded level in the remaining of the present disclosure.
  • a first flag “color_first_comp_zero” is coded to indicate if the first component of color is zero or not; if the first component of color is zero, a second flag “color second comp zero” is coded to indicate if the second component of color is zero or not; if the second component of color is zero, the absolute level minus one and the sign of the third component will be coded according to the following coded level method.
  • a first flag is coded to indicate if the first component of color is zero or not; if the first component of color is zero, a second flag is coded to indicate if the second component of color is zero or not; if the second component of color is not zero, the absolute level minus one and sign of the second component will be coded according to the following coded level method, the absolute level and sign of the third component will be coded according to the following coded level method.
  • a first flag is coded to indicate if the first component of color is zero or not; if the first component of color is not zero, the absolute level minus one and sign of the first component will be coded according to the following coded level method, the absolute levels and signs of the second and third components will be coded according to the following coded level method, respectively.
  • a coding method to produce a coded level is designed as follows.
  • the first flag “coded_level_equal_zero” is coded to indicate if the coded level is zero or not; if the coded level is the absolute level of one component minus one, i.e., when a flag “isComponentNoneZero” is equal to true (such as not equal to zero or equal to one), the sign “coded_level_sign” of the level of this component will be coded. If the first flag indicates that the coded level is not zero, and if the coded level is the absolute level of one component itself, i.e., when isComponentNoneZero is equal to false (such as equal to zero), the sign of the level of this component will be coded.
  • the second flag “coded_level_gt 1 ” will be coded to indicate if the coded level is greater than one or not; if the coded level is greater than one, the parity of the coded level minus two is coded and the third flag “coded_le vel_m inus2_di v2_gt0" will be coded to indicate if the coded level minus two dividing two is greater than zero or not; if the coded level minus two dividing two is greater than zero, the coded level minus two dividing two minus one will be coded.
  • the zero-run length of reflectance level and the non-zero reflectance level are coded into bitstream. More specifically, 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.
  • zero-run length counter 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.
  • abbreviations_level_minusl_div2_gt0 is coded to indicate if the value of the absolute level minus one divided by two is greater than zero or not; if “abs_level_minus I di ⁇ 2 gt0" is great than zero, another syntax element “abs_level_minusl_div2_gtl” is coded to indicate if the value of the absolute level minus one divided by two is greater than one or not; if ⁇ abs lcvcljniniis I_div2_gt I" is greater than 1, another syntax element “abs_level_minul_div2_minus2” is coded to indicate the value of the absolute level minus one divided by two minus two.
  • FIG. 4C shows a table 400C illustrating a syntax structure associated with a function, “attribute_data_reflectance ()” for reflectance level coding in AVS-GPCC, in which “ae(v)” refers to a descriptor associated with a syntax element for context adaptive arithmetic entropy coding, and “ae(l)” refers to a descriptor associated with a syntax element for one-bit adaptive arithmetic entropy coding.
  • ae(v) refers to a descriptor associated with a syntax element for context adaptive arithmetic entropy coding
  • ae(l) refers to a descriptor associated with a syntax element for one-bit adaptive arithmetic entropy coding.
  • a syntax element “abs_level_minusl_parity” specifies the parity of absolute reflectance level minus one, wherein the syntax element, “abs_level_minus 1 jiarity.” equal to 0, specifies that the absolute reflectance level minus one is an even number, and the syntax element, “abs_level_minusl_parity,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the absolute reflectance level minus one is an odd number; another syntax element, “abs_level_minus I di ⁇ 2 gt0.” equal to 0, specifies that the value of the absolute reflectance level minus one divided by two is zero, and the syntax element, “abs_level_minusl_div2_gt0,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the value of the absolute reflectance level minus one divided by two is greater than zero; when the syntax element “abs_level_minus I di ⁇ 2 gt
  • a value of “reflectance” can be calculated as follows.
  • FIG. 4D shows a table 400D illustrating a syntax structure associated with a function, “zero_run_length_code (useGolomb),” a syntax element “zero_run_length_level_equal_zero” is coded to indicate if the zero-run length is eqaul to zero or not; if the syntax element “zero_run_length_level_equal_zero” is not zero, another syntax element “zero_run_length_level_equal_one” is coded to indicate if the zero-run length is eqaul to one or not; if the syntax element “zero_run_length_level_equal_one” is not one, another syntax element “zero_run_length_level_equal_two” is coded to indicate if the zero-run length is eqaul to two or not; if the syntax element “zero_run_length_code (useGolomb),” a syntax element “zero_run_length_level_equal_zero” is coded
  • zero_run_length_level_minus3_parity specifies the parity of the zero-run length level minus three
  • zero_run_length_level_minus3_parity 0 specifies that a value of the zero-run length level minus three is an even number
  • zero_run_length_level_minus3_parity a specified value specifies that the value of the zero-run length level minus three is an odd number
  • zero_run_length_level_minus3_parity when “zero_run_length_level_minus3_parity” is not present, it is inferred to be equal to 0
  • zero_run_length_level_equal_zero 0 specifies that the zero-run length level is not zero
  • zero_run_length_level_equal_zero a specified value specifies that the zero-run length level is zero
  • zero_run_length_level_equal_one 0 specifies that the zero-run length level is not one
  • zero_run_length_level zero_run_length_level_equal_zero ? 0 :
  • a value of “zero-run length” can be calculated as follows.
  • zero_run_length useGolomb ? (2 * zero_run_lenght_level + zero_run_length_LSB) : zero_run_length_level
  • GPCC is widely used in VR/AR for entertainment and industrial applications, the GPCC cannot work well for a wide range of PCC input. Thus, there is a need for geometry point cloud coding improvement.
  • the present disclosure provides several improvements, including the support of GPCC extensions, such as used for AVS-GPCC. Examples are provided as follows and are not intended to limit the present disclosure.
  • bitstream decoding method is provided for geometry point cloud coding.
  • FIG. 5 a flowchart illustrating a bitstream decoding method according to an embodiment of the present disclosure is illustrated in FIG. 5, in which an example of a bitstream decoding method 500 is provided.
  • the bitstream decoding method 500 includes: a box 510, decoding a bitstream associated with geometry point cloud coding (GPCC) including a syntax structure having a syntax element associated with an extension flag to determine extension data.
  • GPCC geometry point cloud coding
  • the bitstream associated with GPCC can further includes at least one of: a syntax structure associated with an attribute header having two syntax elements associated with two quantization-parameter codes, a syntax structure associated with a sequence header having an SPS-multiple-data-set-flag code, and a syntax structure associated with a general -attribute-data bitstream having a plurality of syntax elements associated with attribute data.
  • bitstream encoding method is provided for geometry point cloud coding.
  • FIG. 6 a flowchart illustrating a bitstream encoding method according to an embodiment of the present disclosure is illustrated in FIG. 6, in which an example of a bitstream encoding method 600 is provided.
  • the bitstream encoding method 600 includes: a box 610, encoding a bitstream associated with geometry point cloud coding (GPCC) including a syntax structure having a syntax element associated with an extension flag to determine extension data.
  • GPCC geometry point cloud coding
  • the bitstream associated with GPCC can further includes at least one of: a syntax structure associated with an attribute header having two syntax elements associated with two quantization-parameter codes, a syntax structure associated with a sequence header having an SPS-multiple-data-set-flag code, and a syntax structure associated with a general-attribute-data bitstream having a plurality of syntax elements associated with attribute data.
  • the present disclosure provides the following example for improving configuration of quantization parameters such as colorQuantParam and refl QuantParam for AVS-GPCC, for improving efficiency for geometry point cloud coding.
  • bitstream decoding process for improving a configuration of quantization parameters are provided below.
  • the two syntax elements associated with two quantization-parameter codes includes a syntax element associated with a color-quantization-parameter code and a syntax element associated with a reflectance-quantization-parameter code .
  • the decoding the bitstream associated with GPCC including the syntax structure associated with the attribute header having the two syntax elements associated with the two quantization-parameter codes includes: in response to determining that a syntax element associated with the attribute -present-flag code indexed by a first index is not equal to zero, decoding one syntax element associated with a color- quantization-parameter code from the syntax structure associated with the attribute header; and in response to determining that a syntax element associated with the attribute -present-flag code indexed by a second index is not equal to zero, decoding one syntax element associated with a reflectance-quantization- parameter code from the syntax structure associated with the attribute header.
  • the attribute- present-flag code indexed by the first index and the attribute-present-flag code indexed by the second index are attributePresentFlag[O] and attribute PresentFlag[l] for AVS-GPCC.
  • attributePresentFlag[O] and attribute PresentFlag[l] for AVS-GPCC.
  • the present example is provided to move syntax elements colorQuantParam and reflQuantParam from sequence parameter set (SPS)Zsequence header to attribute header.
  • SPS sequence parameter set
  • FIG. 7A shows a table 700A illustrating a syntax structure associated with a function, sequence header(), in which “ue(v)” refers to a descriptor associated with a syntax element for unsigned integer exponential golomb coding, and “u(n),” in which n is equal to a positive integer such as 1, 2, 4, . . . , 8, . . . , 15, . . . , 21, and . . . , is an n-bit(s) unsigned integer.
  • ue(v) refers to a descriptor associated with a syntax element for unsigned integer exponential golomb coding
  • u(n) in which n is equal to a positive integer such as 1, 2, 4, . . . , 8, . . . , 15, . . . , 21, and . . . , is an n-bit(s) unsigned integer.
  • syntax elements colorQuantParam and reflQuantParam are removed in a condition of a syntax element attribute_present_flag equal to a specified value (such as not equal to zero, e.g., equal to “1” or “TRUE”).
  • FIG. 7B shows a table 700B illustrating a syntax structure associated with a function, attribute_header(), in which “ue(v)” refers to a descriptor associated with a syntax element for unsigned integer exponential golomb coding, “se(v)” refers to a descriptor associated with a signed integer exponential golomb coded syntax element bit first, and “u(n),” such as n equal to 1, is an n-bit(s) unsigned integer.
  • the syntax element colorQuantParam is introduced in a condition of a syntax element attributePresentFlag[O] equal to a specified value (such as not equal to zero, e.g., equal to “1” or “TRUE”), and the syntax element reflQuantParam is added in a condition of a syntax element attributcPrcscntFlagl 1 1 equal to a specified value (such as not equal to zero, e.g., equal to “1” or “TRUE”).
  • bitstream encoding process for improving a configuration of quantization parameters are provided below.
  • the two syntax elements associated with two quantization-parameter codes includes a syntax element associated with a color-quantization-parameter code and a syntax element associated with a reflectance-quantization-parameter code .
  • bitstream encoding method 600 shown in FIG. 6 in response to encoding the bitstream associated with GPCC including the syntax structure associated with the attribute header having the two syntax elements associated with the two quantization- parameter codes, includes: in response to determining that a syntax element associated with an attribute- present-flag code indexed by a first index is not equal to zero, encoding one syntax element associated with a color-quantization-parameter code into the syntax structure associated with the attribute header; and in response to determining that a syntax element associated with an attribute-present-flag code indexed by a second index is not equal to zero, encoding one syntax element associated with a reflectance-quantization- parameter code into the syntax structure associated with the attribute header.
  • the present disclosure provides the following example for supporting multiple attribute coding parameter sets for one type of attribute, such as SPS (sequence parameter set) and attribute header to support multiple attribute coding parameter sets, for improving efficiency for geometry point cloud coding.
  • SPS sequence parameter set
  • attribute header to support multiple attribute coding parameter sets
  • bitstream decoding process for the multiple attribute coding parameter sets are provided below.
  • the SPS-multiple-data-set-flag code specifies whether multiple attribute coding parameter sets are allowed for coding a current point cloud.
  • the box 510 in response to decoding the bitstream associated with GPCC including the syntax structure associated with the sequence header having the SPS-multiple-data-set-flag code, includes: decoding a syntax element associated with an attribute-present-flag code from the syntax structure associated with the sequence header; in response to determining the syntax element associated with the attribute-present-flag code being not equal to zero, performing operations including: in response to determining the syntax element associated with the SPS-multiple-data-set-flag code being present in the syntax structure associated with the sequence header, decoding the syntax element associated with the SPS-multiple-data-set-flag code from the syntax structure associated with the sequence header to determine a value of the SPS-multiple- data-set-flag code; and in response to determining the syntax element associated with the SPS-multiple- data-set-flag code being not present in the syntax structure associated with the sequence header, determining the value of the
  • bitstream decoding method 500 shown in FIG. 5 in response to decoding the bitstream associated with GPCC including the syntax structure associated with the sequence header has the SPS-multiple-data-set-flag code, includes: in response to determining the syntax element associated with the attribute-present-flag code being not equal to zero, performing operations including: decoding a syntax element associated with a max-number-attributes- minus-one code from the syntax structure associated with the sequence header after decoding the syntax element associated with the SPS-multiple-data-set-flag code.
  • bitstream decoding method 500 shown in FIG. 5 further includes: performing a respective one of a plurality of operation groups defined by a first iterative loop with a first variable from zero incremental to a maximum integer less than a sum of a value of the max-number-attributes-minus-one code plus one, in a syntax structure associated with an attribute header, including: decoding a syntax element associated with an attribute -present-flag code indexed by the first variable; and in response to determining that the syntax element associated with the attribute-present-flag code indexed by the first variable is not equal to zero, performing operations including: in response to determining that the syntax element of the SPS-multiple-data-set-flag code is not equal to zero, determining a syntax element associated with a multiple -data-set-flag code indexed by the first variable; in response to determining that the syntax element associated with the multiple -data-set-flag code indexed by the first variable is not
  • the in response to determining that the syntax element of the SPS-multiple-data-set-flag code is not equal to zero, determining the syntax element associated with the multiple -data-set-flag code indexed by the first variable includes: determining whether the syntax element associated with the multiple-data- set-flag code indexed by the first variable is present; in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being present, decoding the syntax element associated with the multiple -data-set-flag code indexed by the first variable; and in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being not present, determining that the syntax element associated with the multiple-data-set-flag code indexed by the first variable equal to zero.
  • the in response to determining that the syntax element associated with the multiple-data-set- flag code indexed by the first variable is not equal to zero, determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable includes: in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being present, decoding the syntax element associated with the attribute -number-data-set- minus-one code indexed by the first variable; and in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being not present, determining that the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable equal to zero.
  • the in response to determining the first variable equal to zero or the first variable not equal to zero, decoding the first group of syntax elements indexed by the first variable and the second variable includes: decoding a syntax element associated with a max-number-of-neighbours-log2-minus-seven code indexed by the first variable and the second variable; decoding a syntax element associated with a number- of-level-of-detail code indexed by the first variable and the second variable; decoding a syntax element associated with a max-number-of-predict-neighbours code indexed by the first variable and the second variable; decoding a syntax element associated with an intra-lode-flag code indexed by the first variable and the second variable; decoding a syntax element associated with a cross-attribute-type-prediction code indexed by the first variable and the second variable; and in response to determining that the syntax element associated with the cross-at
  • decoding the second group of syntax elements indexed by the second variable includes: decoding a syntax element associated with a cross-component-prediction code indexed by the second variable; decoding a syntax element associated with an order-switch code indexed by the second variable; decoding a syntax element associated with a half-zero-runlength -enable code indexed by the second variable; decoding a syntax element associated with a chroma-Qp-offset-Cb code indexed by the second variable; decoding a syntax element associated with a chroma-Qp-offset-Cr code indexed by the second variable; decoding a syntax element associated with a color-reorder-mode code indexed by the second variable; and decoding a syntax element associated with a color-golomb-number code indexed by the second variable.
  • decoding the third group of syntax elements indexed by the second variable includes: decoding a syntax element associated with a nearest-prediction-parameter-one code indexed by the second variable; decoding a syntax element associated with a nearest-prediction-parameter-two code indexed by the second variable; decoding a syntax element associated with an axis-bias code indexed by the second variable; decoding a syntax element associated with a reflectance-reorder-mode code indexed by the second variable; and decoding a syntax element associated with a reflectance-golomb-number code indexed by the second variable.
  • the decoding the plurality of syntax elements in the syntax structure associated with the attribute header includes: decoding a fourth group of syntax elements indexed by the first variable and the second variable; in response to determining an attribute -present-flag code indexed by a first index not equal to zero, decoding a fifth group of syntax elements indexed by the second variable; and in response to determining an attribute-present-flag code indexed by a second index not equal to zero, decoding a reflectance-group- prediction code indexed by the second index.
  • the decoding the fourth group of syntax elements indexed by the first variable and the second variable includes: decoding a syntax element associated with a transform code indexed by the first variable and the second variable; in response to determining that the syntax element associated with the transform code indexed by the first variable and the second variable is not equal to zero and the syntax element associated with the attribute-present-flag code indexed by the first variable is not equal to zero, performing operations including: decoding a syntax element associated with a max-number-of-coefficient code indexed by the first variable and the second variable; decoding a syntax element associated with a coefficient-lengthcontrol code indexed by the first variable and the second variable; decoding a syntax element associated with an attribute-transform-Qp-delta code indexed by the first variable and the second variable; decoding a syntax element associated with an initial-predict-transform-ratio code indexed by the first variable and the second variable; decoding
  • decoding the fifth group of syntax elements indexed by the second variable includes: in response to determining that the syntax element associated with the attribute-present-flag code indexed by the first index is not equal to zero, decoding a syntax element associated with a chroma-Qp-offset-DC code indexed by the second variable and a syntax element associated with a chroma-Qp-offset-AC code indexed by the second variable.
  • the decoding the plurality of syntax elements in the syntax structure associated with the attribute header includes: decoding a fourth group of syntax elements; in response to determining an attribute-present-flag code indexed by a first index not equal to zero, decoding a fifth group of syntax elements; and in response to determining an attribute -present-flag code indexed by a second index not equal to zero, decoding a reflectance-group-prediction code.
  • the decoding the fourth group of syntax elements includes: in response to determining that the syntax element associated with the attribute-present-flag code is not equal to zero, decoding a syntax element associated with a transform code; in response to determining that the syntax element associated with the transform code is not equal to zero and an attribute -present-flag code indexed by a first index or an attribute-present-flag code indexed by a second index is not equal to zero, performing operations including: decoding a syntax element associated with a max-number-of-coefficient code; decoding a syntax element associated with a coefficient-length-control code; decoding a syntax element associated with an attribute-transform-Qp-delta code; decoding a syntax element associated with an initial-predict-transform- ratio code; decoding a syntax element associated with a transform-resource-layer code; decoding a syntax element associated with an attribute-transform-number-
  • decoding the fifth group of syntax elements includes: in response to determining that the syntax element associated with the attribute-present-flag code indexed by the first index is not equal to zero, decoding a syntax element associated with a chroma-Qp-offset-DC code and a syntax element associated with a chroma-Qp-offset-AC code.
  • one type of attribute only supporting one parameter set is improved to support a wide range of GPCC applications in the present disclosure, e.g., supporting multiple attribute coding parameter sets for one type of attribute may be desirable.
  • the present disclosure provides to allow multiple attribute coding parameter sets for one type of attribute as shown in FIG. 8A.
  • FIG. 8A shows a table 800A illustrating a syntax structure associated with a function, sequence_header(), as shown in a box 810A, in a condition of a syntax element attribute_present_flag equal to a specified value (such as not equal to zero, e.g., equal to “1” or “TRUE”), a syntax element sps_multi_data_set_flag is introduced.
  • a syntax element sps_multi_data_set_flag a specified value specifies that multiple attribute coding parameter sets are allowed for coding the current point cloud
  • sps_multi_data_set_flag 0 specifies that multiple attribute coding parameter sets are not allowed for coding the current point cloud.
  • a value of sps_multi_data_set_flag is inferred to be equal to 0.
  • FIGs. 8B1 and 8B2 shows a first part and a second part of a table 800B illustrating a syntax structure associated with a function, attribute_header(), in a first iterative loop with a first variable attrldx from 0 incremental to a maximum integer less than a value of (maxNum Attribute sMinusl + 1), operations are performed on each integer (such as 0, 1, maxNum Attribute sMinus 1-1, maxNumAttributesMinusl) of different integers defined by the first variable attrldx, e.g., a syntax element attribute PresentFlagfattrldx] and a condition of attributePresentFlag[ attrldx ] equal to a specified value are maintained.
  • a syntax element attribute PresentFlagfattrldx e.g., a syntax element attribute PresentFlagfattrldx] and a condition of attributePresentFlag[ attrldx ] equal to
  • a syntax element multi data set flag [attrldx] in a condition of the syntax element sps_multi_data_set_flag equal to a specified value and a syntax element attribute num data set minus 1 [attrldx] in a condition of the syntax element multi data set flag [attrldx] equal to a specified value are introduced.
  • a second iterative loop with a second variable i from 0 incremental to a maximum integer less than a value of (attribute num data set minus 1 [attrldx]+l) is introduced.
  • operations are performed on each integer of different integers (such as 0, 1, ...
  • attribute_num_data_set_minusl[attrldx]-l, attribute num data set minus 1 [attrldx]) defined by the second variable i e.g., a syntax element outputBitDepthMinus 1 [attrldx] [i] is modified to be indexed from attrldx to attrldx and i.
  • a plurality of syntax elements are modified to be indexed from attrldx to attrldx and i, such as maxNumOfNeighboursLog2Minus7 [attrldx] [i] , numOflevelOfDetail [attrldx] [i] , maxNumOfPredictNeighbours [attrldx] [i], and intraLodFlag [attrldx] [i].
  • a plurality of syntax elements are modified from no index to be indexed by attrldx and i, such as attrEncode Order [attrldx] [i], crossAttrTypePredParam 1 [attrldx] [i] , and crossAttrTypePredParam2[attrIdx] [i] .
  • a plurality of syntax elements are modified from no index to be indexed by i, such as cross_component_Pred[i], orderSwitchfi], half_zero_runlength_enable[i], chromaQpOffsetCbfi], chromaQpOffsetCrfi], colorReorderModefi], and colorGolombNum
  • Attrldx equal to a specified value (such as a non-zero value “1” or “TRUE”)
  • a plurality of syntax elements are modified from no index to be indexed by i, such as nearestPredParamlfi], nearestPredParam2[i], axisBiasfi], refReorderModefi], and rcfGolombNum
  • a stopping boundary to the condition of attributePresentFlag [attrldx] equal to a specified value and a stopping boundary to the first iterative loop with a first variable attrldx from 0 incremental to maxNumAttributesMinusl + 1 are removed before a syntax element transform, wherein the syntax element transform is modified from no index to be indexed by attrldx and i, shown as syntax elements transform [attrldx] [i],
  • a syntax element transform in which the descriptor is modified to “ue(v)” is modified from no index to be indexed by attrldx and i , and then in a condition of transform [attrldx] [i] equal to a specified value and attribute PresentFlag[attrIdx] equal to a specified value (such as a non-zero value “1” or “TRUE”), instead of attributePresentFlag[O] equal to a specified value and attribute Present Flag 11 ] equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown in a box 860B, a plurality of syntax elements are modified from no index to be indexed by attrldx and i, such as maxNumofCoeff[attr!dx][i], coeffLengthControl [attrldx] [i], attrTrans
  • a plurality of syntax elements are modified from no index to be indexed by i, such as chromaQpOffsetDC[i] and chromaQpOffsetAC[i]; in a condition of attributcPrcscntFlagl 1 1 equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown in a box 880B, a syntax element is modified from no index to be indexed by i, such as RefGroupPredfi] .
  • the syntax element multi data set flag [attrldx] is a specified value (such as equal to “1”) specifies that multiple attribute coding parameter sets are allowed for the current type of attribute and the number of allowed attribute coding parameter sets will be further specified by attribute num data set minus 1 ;
  • the syntax element multi data set flag [attrldx] is 0 specifies that multiple attribute coding parameter sets are not allowed for the current type of attribute and the number of allowed attribute coding parameter sets is equal to a specified value.
  • the value of multi data set flag [attrldx] is inferred to be equal to 0.
  • the syntax element attribute num data set minus 1 [attrldx] plus 1 specifies the allowed number of parameter sets for coding the current, attrldx, type of attribute.
  • the value of attribute num data set minus 1 shall be in the range of 0 to 15, inclusive, when attribute num data set minus 1 [attrldx] is not present, the value of attribute num data set minus 1 [attrldx] is inferred to be equal to 0.
  • FIG. 8C shows a table 800C illustrating a syntax structure associated with a function, sequence_header() with a syntax element sps_multi_data_set_flag, as shown in a box 810C, that is identical to the syntax table in the function sequence_header() shown as the box 810A in FIG. 8A.
  • FIGs. 8D1 and 8D2 shows a first part and a second part of a table 800D illustrating a syntax structure associated with a function, attribute_header() that is similar to the function attribute_header() shown in FIGs. 8B1 and 8B2. As shown in FIG.
  • a syntax element “multi data set flag [attrldx]” in a condition of the syntax element sps multi data set flag equal to a specified value and a syntax element attribute num data set minus 1 [attrldx] in a condition of multi data set flag [attrldx] equal to a specified value are introduced.
  • a second iterative loop with a second variable i from 0 incremental to a maximum integer less than a value of (attribute num data set minus 1 [attrldx]+l) is introduced.
  • operations are performed on each integer of different integers (such as 0, 1, ...
  • attribute_num_data_set_minusl[attrldx]-l, attribute num data set minus 1 [attrldx]) defined by the second variable i e.g., a syntax element outputBitDepthMinus 1 [attrldx] [i] is modified to be indexed from attrldx to attrldx and i.
  • a syntax element outputBitDepthMinus 1 [attrldx] [i] is modified to be indexed from attrldx to attrldx and i.
  • a specified value such as a non-zero value “1” or “TRUE”
  • a plurality of syntax elements are modified to be indexed from attrldx to attrldx and i, such as maxNumOfNeighboursLog2Minus7 [attrldx] [i], numOflevelOfDetail[attrIdx][i], maxNumOfPredictNeighbours[attrIdx][i], and intraLodFlag [attrldx] [i].
  • a plurality of syntax elements are modified from no index to be indexed by attrldx and i, such as attrEncode Order [attrldx] [i], crossAttrTypePredParam 1 [attrldx] [i] , and crossAttrTypePredParam2[attrIdx] [i] .
  • a plurality of syntax elements are modified from no index to be indexed by i, such as cross_component_Pred[i], orderSwitchfi], half_zero_runlength_enable[i], chromaQpOffsetCbfi], chromaQpOffsetCrfi], colorReorderModefi], and colorGolombNum
  • Attrldx equal to a specified value (such as a non-zero value “1” or “TRUE”)
  • a specified value such as a non-zero value “1” or “TRUE”
  • a plurality of syntax elements are modified from no index to be indexed by i, such as nearest PredParam 1 [i ], nearestPredParam2[i], axisBiasfi], refReorderModefi], and refGolombNumfi], [00126]
  • i such as nearest PredParam 1 [i ], nearestPredParam2[i], axisBiasfi], refReorderModefi], and refGolombNumfi]
  • a stopping boundary to the second iterative loop with the second variable i is added before a stopping boundary to the condition of the syntax element attribute PresentFlag[attrIdx] equal to the specified value and a stopping boundary to the first iterative loop with a variable attrldx from 0 incremental to maxNumAttributesMinus 1 + 1.
  • a condition of the syntax element attribute_present_flag equal to a specified value (such as a non-zero value “1” or “TRUE”) is introduced, a syntax element transform in which the descriptor is modified to “ue(v)” is introduced.
  • a plurality of syntax elements before a function, byte_alignment () are maintained, e.g., maxNumofCoeff, coeffLengthControl, attrTransformQpDelta, initPredTransRatio, transResLayer, attrTransformNumPoints, maxTransNum, QpOffsetDC, and QpOffsetAC will be performed in a condition of (transform and (attributcPrcscntFlag
  • the SPS-multiple-data-set-flag code specifies whether multiple attribute coding parameter sets are allowed for coding a current point cloud.
  • bitstream encoding method 600 shown in FIG. 6 in response to encoding the bitstream associated with GPCC including the syntax structure associated with the sequence header having the SPS-multiple-data-set-flag code, includes: encoding a syntax element associated with an attribute-present-flag code into the syntax structure associated with the sequence header based on determining whether attribute data is present; in response to determining the syntax element associated with the attribute-present-flag code being not equal to zero, performing operations including: in response to determining the syntax element associated with the SPS-multiple-data- set-flag code being present in the syntax structure associated with the sequence header, encoding the syntax element associated with the SPS-multiple-data-set-flag code into the syntax structure associated with the sequence header based on a value of the SPS-multiple-data-set-flag code; and in response to determining the syntax element associated with the SPS-multiple-data-set-flag code being not present in
  • bitstream encoding method 600 shown in FIG. 6 in response to encoding the bitstream associated with GPCC including the syntax structure associated with the sequence header has the SPS-multiple-data-set-flag code, includes: in response to determining the syntax element associated with the attribute-present-flag code being not equal to zero, performing operations including: encoding a syntax element associated with a max-number-attribute s- minus-one code into the syntax structure associated with the sequence header after encoding the syntax element associated with the SPS-multiple-data-set-flag code.
  • determining the syntax element associated with the multiple -data-set-flag code indexed by the first variable includes: determining whether the syntax element associated with the multiple -data- set-flag code indexed by the first variable is present; in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being present, encoding the syntax element associated with the multiple -data-set-flag code indexed by the first variable; and in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being not present, determining that the syntax element associated with the multiple -data-set-flag code indexed by the first variable equal to zero.
  • determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable includes: in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being present, encoding the syntax element associated with the attribute-number-data-set- minus-one code indexed by the first variable; and in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being not present, determining that the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable equal to zero.
  • the in response to determining the first variable equal to zero or the first variable not equal to zero, encoding the first group of syntax elements indexed by the first variable and the second variable includes: encoding a syntax element associated with a max-number-of-neighbours-log2-minus-seven code indexed by the first variable and the second variable; encoding a syntax element associated with a number- of-level-of-detail code indexed by the first variable and the second variable; encoding a syntax element associated with a max-number-of-predict-neighbours code indexed by the first variable and the second variable; encoding a syntax element associated with an intra-lode-flag code indexed by the first variable and the second variable; encoding a syntax element associated with a cross-attribute-type-prediction code indexed by the first variable and the second variable; and in response to determining that the syntax
  • the in response to determining the first variable equal to zero, encoding the second group of syntax elements indexed by the second variable includes: encoding a syntax element associated with a cross-component-prediction code indexed by the second variable; encoding a syntax element associated with an order-switch code indexed by the second variable; encoding a syntax element associated with a half-zero-runlength-enable code indexed by the second variable; encoding a syntax element associated with a chroma-Qp-offset-Cb code indexed by the second variable; encoding a syntax element associated with a chroma-Qp-offset-Cr code indexed by the second variable; encoding a syntax element associated with a color-reorder-mode code indexed by the second variable; and encoding a syntax element associated with a color-golomb-number code indexed by the second variable.
  • the in response to determining the first variable not equal to zero, encoding the third group of syntax elements indexed by the second variable includes: encoding a syntax element associated with a nearest-prediction-parameter-one code indexed by the second variable; encoding a syntax element associated with a nearest-prediction-parameter-two code indexed by the second variable; encoding a syntax element associated with an axis-bias code indexed by the second variable; encoding a syntax element associated with a reflectance-reorder-mode code indexed by the second variable; and encoding a syntax element associated with a reflectance-golomb-number code indexed by the second variable.
  • the encoding the plurality of syntax elements in the syntax structure associated with the attribute header includes: performing the respective one of the plurality of operation groups defined by the second iterative loop with the second variable from zero incremental to the maximum integer less than the sum of the value of the attribute-number-data-set-minus-one code indexed by the first variable plus one, including: encoding a fourth group of syntax elements indexed by the first variable and the second variable; in response to determining an attribute-present-flag code indexed by a first index not equal to zero, encoding a fifth group of syntax elements indexed by the second variable; and in response to determining an attribute- present-flag code indexed by a second index not equal to zero, encoding a reflectance-group-prediction code indexed by the second index.
  • the encoding the fourth group of syntax elements indexed by the first variable and the second variable includes: encoding a syntax element associated with a transform code indexed by the first variable and the second variable; in response to determining that the syntax element associated with the transform code indexed by the first variable and the second variable is not equal to zero and the syntax element associated with the attribute-present-flag code indexed by the first variable is not equal to zero, performing operations including: encoding a syntax element associated with a max-number-of-coefficient code indexed by the first variable and the second variable; encoding a syntax element associated with a coefficient-lengthcontrol code indexed by the first variable and the second variable; encoding a syntax element associated with an attribute-transform-Qp-delta code indexed by the first variable and the second variable; encoding a syntax element associated with an initial-predict-transform-ratio code indexed by the first variable and
  • the in response to determining the attribute-present-flag code indexed by the first index not equal to zero, encoding the fifth group of syntax elements indexed by the second variable includes: in response to determining that the syntax element associated with the attribute -present-flag code indexed by the first index is not equal to zero, encoding a syntax element associated with a chroma-Qp-offset-DC code indexed by the second variable and a syntax element associated with a chroma-Qp-offset-AC code indexed by the second variable.
  • the encoding the plurality of syntax elements in the syntax structure associated with the attribute header includes: encoding a fourth group of syntax elements; in response to determining an attribute-present-flag code indexed by a first index not equal to zero, encoding a fifth group of syntax elements; and in response to determining an attribute -present-flag code indexed by a second index not equal to zero, encoding a reflectance-group-prediction code.
  • the encoding the fourth group of syntax elements includes: in response to determining that the syntax element associated with the attribute -present-flag code is not equal to zero, encoding a syntax element associated with a transform code; in response to determining that the syntax element associated with the transform code is not equal to zero and an attribute -present-flag code indexed by a first index or an attribute-present-flag code indexed by a second index is not equal to zero, performing operations including: encoding a syntax element associated with a max-number-of-coefficient code; encoding a syntax element associated with a coefficient-length-control code; encoding a syntax element associated with an attribute-transform-Qp-delta code; encoding a syntax element associated with an initial-predict-transform- ratio code; encoding a syntax element associated with a transform-resource-layer code; encoding a syntax element associated
  • encoding the fifth group of syntax elements includes: in response to determining that the syntax element associated with the attribute-present-flag code indexed by the first index is not equal to zero, encoding a syntax element associated with a chroma-Qp-offset-DC code and a syntax element associated with a chroma-Qp-offset-AC code.
  • the present disclosure provides the following example for supporting more attribute coding data, such as color attribute data and reflectance attribute data, for improving efficiency for geometry point cloud coding.
  • bitstream decoding process for supporting more attribute coding data are provided below.
  • the attribute data includes color attribute data and reflectance attribute data.
  • the box 510 in response to decoding the bitstream associated with GPCC including the syntax structure of the general-attribute-data bitstream having the plurality of syntax elements associated with attribute data, includes: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max- number-attributes-minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, including: in response to determining that the third variable is equal to zero and the attribute- present-flag code indexed by a first index is not equal to zero, performing operations including: performing an attribute -data-color function to decode a syntax element associated with an attribute-data-color code; and performing a byte -alignment function to align data in the bitstream in bytes; and in response to determining that the third variable is not equal to zero and the attribute-present-flag code indexed by a second index is not equal to zero, performing
  • bitstream decoding method 500 shown in FIG. 5 in response to decoding the bitstream associated with GPCC including the syntax structure of the general-attribute-data bitstream having the plurality of syntax elements associated with attribute data, includes: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max- number-attributes-minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, including: in response to determining that the third variable is equal to zero and the attribute- present-flag code indexed by a first index is not equal to zero, performing operations including: performing a respective one of a plurality of operation groups defined by a fourth iterative loop with a fourth variable from zero incremental to a maximum integer less than a sum of a value of a max-number-attributes-minus- one code plus one, including
  • the present disclosure provides that more attribute coding data are supported in the general attribute data bitstreams.
  • the provided syntax is specified as shown in FIG. 9A.
  • FIG. 9A shows a table 900A illustrating a syntax structure associated with a function, general attribute data bitstream (), as shown in a box 910A, a third iterative loop with a third variable attrldx from 0 incremental to a maximum integer less than a value of (maxNumAttributesMinus 1 + 1) is introduced.
  • FIG. 9B shows a table 900B illustrating a syntax structure associated with a function, general attribute data bitstream (), as shown in a box 910B, the third iterative loop with a variable attrldx from 0 incremental to the maximum integer less than the value of (maxNumAttributesMinus 1 + 1) is introduced.
  • a condition is modified from attributcPrcscntFlagl 0
  • a fourth iterative loop with a fourth variable i from 0 incremental to a maximum integer less than a value of (attribute num data set minus 1 [attrldx] +1) is introduced to perform more than one data parameter set, such as performing functions attribute data color () and byte alignment ().
  • a condition is modified from attribute PrcscntFlagl 1 1 equal to the specified value to attrldx equal 1 and attributcPrcscntFlagl 1 1 equal to the specified value.
  • maxNumAttributesMinus 1 could be set no greater than an integer number, e.g., N to reflect profile and level constrain.
  • N could be set as 1.
  • attribute num data set minus 1 [attrldx] could also be set no greater than an integer number, e.g., M to reflect profile and level constrain.
  • M could be set as 0.
  • bitstream encoding process for supporting more attribute coding data are provided below.
  • the attribute data includes color attribute data and reflectance attribute data.
  • the bitstream encoding method 600 shown in FIG. 6 at the box 610, the attribute data includes color attribute data and reflectance attribute data.
  • the box 610 in response to encoding the bitstream associated with GPCC including the syntax structure of the general-attribute-data bitstream having the plurality of syntax elements associated with attribute data, includes: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max- number-attributes-minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, including: in response to determining that the third variable is equal to zero and the attribute- present-flag code indexed by a first index is not equal to zero, performing operations including: performing an attribute -data-color function to encode a syntax element associated with an attribute-data-color code; and performing a byte -alignment function to align data in the bitstream in bytes; and in response to determining that the third variable is not equal to zero and the attribute-present-flag code indexed by a second index is not equal to zero, performing
  • bitstream encoding method 600 shown in FIG. 6 in response to encoding the bitstream associated with GPCC including the syntax structure of the general-attribute-data bitstream having the plurality of syntax elements associated with attribute data, includes: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max- number-attributes-minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, including: in response to determining that the third variable is equal to zero and the attribute- present-flag code indexed by a first index is not equal to zero, performing operations including: performing a respective one of a plurality of operation groups defined by a fourth iterative loop with a fourth variable from zero incremental to a maximum integer less than a sum of a value of a max-number-attributes-minus- one code plus one
  • the interface supporting compatibility with extensions in order to add more coding tools, it is provided that the interface supporting compatibility with extensions.
  • the present disclosure provides the following examples for the extension, for improving efficiency for geometry point cloud coding, such as used in the present version or a further version for AVS-GPCC.
  • bitstream decoding process for the extension purpose For example, embodiments for the bitstream decoding process for the extension purpose are provided below.
  • the decoding the bitstream associated with GPCC including the syntax structure having the syntax element associated with the extension flag to determine the extension data includes: decoding the syntax element associated with the extension flag; in response to determining the syntax element associated with the extension flag being not equal to zero, determining a syntax element associated with an extension length based on the extension data; and decoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length.
  • determining the syntax element associated with the extension length based on the extension data includes: in response to determining the syntax element associated with the extension length not present in the syntax structure, determining a value of the extension length is equal to zero; and in response to determining the syntax element associated with the extension length present in the syntax structure, decoding the syntax element associated with the extension length from the syntax structure to determine the value of the extension length.
  • the value of the extension length is ranged from 0 to 256.
  • the decoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length includes: performing a respective one of a plurality of operation groups defined by an iterative loop with a variable from zero incremental to a maximum integer less than the value of the extension length, including: decoding one syntax element associated with the extension data in a form of byte from the syntax structure.
  • the decoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length includes: iteratively performing: in response to determining that there is more data in a form of bit in the syntax structure based on the extension length, decoding one syntax element associated with the extension data in the form of bit from the syntax structure.
  • the iteratively performing: in response to determining that there is more data in a form of bit in the syntax structure based on the extension length, decoding one syntax element associated with the extension data in the form of bit from the syntax structure includes: iteratively performing: determining that whether a difference between a current position in the syntax structure and a position immediately following the extension length being less than a value calculated by the extension length multiplied by eight is true or false; in response to determining that the difference between the current position in the syntax structure and the position immediately following the extension length being less than the value calculated by the extension length multiplied by eight is true, decoding one syntax element associated with the extension data in the form of one bit from the syntax structure.
  • the syntax structure is associated with a sequence header, a geometry header, an attribute header, a geometry slice header, an attribute slice header, or a general attribute data bitstream for GPCC.
  • FIG. 10A shows a table 1000A illustrating a syntax structure associated with a function, sequence_header(), in which a plurality of syntax elements are maintained, such as profde_id, level_id, . . . , and attribute_present_flag, as well as, in a condition of attribute_present_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), attribute_adapt_pred, colorQuantParam, reflQuantParam, and maxNumAttributesMinus 1 will be performed.
  • syntax elements are introduced before a function, byte_alignment().
  • a syntax element sequence_extension_flag is introduced.
  • a syntax element sequence_extension_flag is introduced, and an iterative loop with a variable i from 0 incremental to sequence_extension_length-l (e.g., i ⁇ sequence_extension_length) is introduced.
  • a syntax element sequence_extension_data_byte[i] are introduced.
  • syntax element sequence_extension_flag 0 specifies that the syntax elements such as sequence_extension_length and sequnce_extension_data_byte are not present in the syntax structure, “sequence header.”
  • syntax element sequence_extension_flag 1 specifies that sequence_extension_length and the syntax element sequnce_extension_data_byte may be present in the syntax structure, “sequence header.”
  • syntax element sequence_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure.
  • some use of the syntax element sequence_extension_flag could be specified in other versions, and decoders conforming to the present disclosure shall allow the value of the syntax element sequence_extension_flag equal to 1 to appear in the syntax.
  • syntax element sequence_extension_length specifies the length of the sequence extension data in bytes, not including the bits used for signalling the syntax element sequnce_extension_length itself. When sequence_extension_length is not present, the value of sequence_extension_length is inferred to be equal to 0.
  • syntax element sequnce_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element sequnce_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element sequence_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive.
  • syntax element sequence_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the values of each of the syntax element sequence_extension_data_byte[i]. Its value does not affect the decoding process specified in the present disclosure
  • FIG. 10B shows a table 1000B illustrating a syntax structure associated with a function, sequence_header(), in which a plurality of syntax elements are maintained, such as profile_id, level_id, . . . , and attribute_present_flag, as well as, in a condition of attribute_present_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), attribute_adapt_pred, colorQuantParam, refl QuantParam, and maxNum Attribute sMinusl will be performed.
  • syntax elements are introduced before a function, byte_alignment(). Similar to FIG. 10A, a syntax element sequence extension data bit is introduced in FIG.
  • a syntax element sequence extension flag is introduced in FIG. 10B.
  • a syntax element sequence extension length is introduced in a condition of the syntax element sequence_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), and a condition of a function, more_data_in_sequence_header_extension() returning a specified value (such as “TRUE”) is introduced.
  • a syntax element sequence_extension_data_bit is introduced in the condition of the function more_data_in_sequence_header_extension() returning the specified value.
  • syntax element sequence_extension_data_bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the values of each of the syntax element sequence_extension_data_bit. Its value does not affect the decoding process specified in the present disclosure.
  • FIG. 11A shows a table 1100A illustrating a syntax structure associated with a function, geometry_header(), in which a plurality of syntax elements are maintained, such as gps_lcu_node_size_log2_minus_one and gps implicit gcom partition flag. as well as, in a condition of gps implicit gcom partition flag equal to a specified value (such as a non-zero value “1” or “TRUE”) before syntax elements gps_single_mode_flag and gps_save_state_flag, gps_max_num_implicit_qtbt_before_ot and gps min size implicit qtbt will be performed.
  • a specified value such as a non-zero value “1” or “TRUE”
  • a syntax element geometry extension flag is introduced.
  • a syntax element geometry_extension_flag a specified value (such as a non-zero value “1” or “TRUE”)
  • a syntax element geometry _extension_length is introduced, and an iterative loop with a variable i from 0 incremental to geometry _extension_length-l (e.g., i ⁇ geometry_extension_length) is introduced.
  • a syntax elements geometry_extension_data_byte[i] are introduced.
  • syntax element geometry_extension_flag 0 specifies that the syntax elements such as geometry_extension_length and geometry_extension_data_byte are not present in the syntax structure, “geometry header.”
  • syntax element geometry_extension_flag 1 specifies that syntax elements such as geometry_extension_length and geometry_extension_data_byte may be present in the syntax structure, “geometry header.”
  • syntax element geometry_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure.
  • some use of the syntax element geometry_extension_flag equal to 1 could be specified in other versions, and decoders conforming to the present disclosure shall allow the value of the syntax element geometry_extension_flag equal to 1 to appear in the syntax.
  • syntax element geometry_extension_length specifies the length of the geometry extension data in bytes, not including the bits used for signalling the syntax element geometry_extension_length itself. When geometry_extension_length is not present, a value of geometry_extension_length is inferred to be equal to 0.
  • syntax element geometry_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element geometry_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element geometry_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive.
  • syntax element geometry_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements geometry_extension_data_byte[i]. Its value does not affect the decoding process specified in the present disclosure.
  • FIG. 1 IB An example of an alternative syntax table is illustrated in FIG. 1 IB.
  • FIG. 11B shows a table 1100B illustrating a syntax structure associated with a function, geometry_header(), in which the extension with geometry_extension_data_bit other than geometry_extension_data_byte is introduced before a function byte_alignment(), e.g., a plurality of syntax elements are maintained, such as gps_lcu_node_size_log2_minus_one and gps implicit gcom partition flag.
  • gps implicit gcom partition flag equal to a specified value (such as a non-zero value “1” or “TRUE”) before syntax elements gps_single_mode_flag and gps save state flag, gps_max_num_implicit_qtbt_before_ot and gps min size implicit qtbt will be performed.
  • a syntax element geometry extension data bit is introduced in FIG. 1 IB other than the syntax element geometry extension data byte in FIG. 11A.
  • FIG. 1 IB as shown in a box 1110B, a syntax element geometry extension flag is introduced.
  • a syntax element geometry_extension_flag In a condition of the syntax element geometry_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element geometry extension length is introduced, and a condition of a function, morc_data_in_gcomctry_hcadcr_cxtcnsion() returning a specified value (such as “TRUE”) is introduced. In the condition of the function morc_data_in_gcomctry_hcadcr_cxtcnsion() returning the specified value, a syntax element geometry_extension_data_bit is introduced.
  • syntax element geometry_extension_data_bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements geometry_header_extension_data_bit. Its value does not affect the decoding process specified in the present disclosure.
  • morc_data_in_gcomctry_hcadcr_cxtcnsion() is specified as follows: [00190] If (the current position in the geometry_header() syntax structure) - (the position immediately following geometry_extension_length) is less than (geometry_extension_length * 8), the return value of morc_data_in_gcomctry_hcadcr_cxtcnsion() is equal to TRUE. Otherwise, the return value of morc_data_in_gcomctry_hcadcr_cxtcnsion() is equal to FALSE.
  • FIG. 12A shows a table 1200A illustrating a syntax structure associated with a function, attribute_header(), in which the extension is introduced before a function byte_alignment(), as shown in a box 1210A, e.g., a syntax element attribute_extension_flag is introduced.
  • a syntax element attribute_extension_flag is introduced in a condition of attribute extension flag equal to a specified value (such as a non-zero value “1” or “TRUE”)
  • a syntax element attribute_extension_length is introduced, and an iterative loop with a variable i from 0 incremental to attribute_extension_length-l (e.g., i ⁇ attribute_extension_length) is introduced.
  • syntax elements attribute_extension_data_byte[i] are introduced.
  • syntax element attribute_extension_flag 0 specifies that syntax elements such as attribute_extension_length and attribute_extension_data_byte are not present in the syntax structure, “attribute header.”
  • syntax element attribute_extension_flag 1 specifies that syntax elements such as attribute_extension_length and attribute_extension_data_byte may be present in the syntax structure, “attribute header.”
  • syntax element attribute_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure.
  • some use of the syntax element attribute_extension_flag equal to 1 could be specified in other versions, and decoders conforming to the present disclosure shall allow the value of the syntax element attribute_extension_flag equal to 1 to appear in the syntax.
  • syntax element attribute_extension_length specifies the length of the attribute extension data in bytes, not including the bits used for signalling the syntax element attribute_extension_length itself.
  • attribute_extension_length is not present, the value of atribute_extension_length is inferred to be equal to 0.
  • syntax element attribute_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element attribute_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element attribute_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive.
  • syntax element attribute_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements attribute_extension_data_byte[i] syntax elements. Its value does not affect the decoding process specified in the present disclosure.
  • FIG. 12B An example of an alternative syntax table is illustrated in FIG. 12B.
  • FIG. 12B shows a table 1200B illustrating a syntax structure associated with a function, attribute_header(), in which the extension with attribute extension data bit other than attribute extension data byte is introduced before a function byte_alignment(), as shown in a box 1210B, e.g., a syntax element attribute_extension_flag is introduced.
  • attribute_extension_flag a syntax element attribute extension length is introduced, and a condition of a function, more_data_in_attribute_header_extension() returning a specified value (such as “TRUE”) is introduced.
  • a syntax element attribute extension data bit is introduced.
  • syntax element attribute extension data bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements attribute_header_extension_data_bit. Its value does not affect the decoding process specified in the present disclosure.
  • FIG. 13A shows a table 1300A illustrating a syntax structure associated with a function, geometry_slice_header(), in which the extension is introduced before a function byte_alignment(), as shown in a box 1310A, e.g., a syntax element geometry_slice_extension_flag is introduced.
  • a syntax element geometry_slice_extension_flag In a condition of the syntax element geometry_slice_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element geometry_slice_extension_length is introduced, and an iterative loop with a variable i from 0 incremental to geometry_slice_extension_length-l (e.g., i ⁇ geometry_slice_extension_length) is introduced. In the iterative loop with the variable i, syntax elements geometry_slice_extension_data_byte[i] are introduced.
  • syntax element geometry_slice_extension_flag 0 specifies that the syntax elements such as geometry_slice_extension_length and geometry_slice_extension_data_byte are not present in the syntax structure, “geometry_slice header.”
  • syntax element geometry_slice_extension_flag 1 specifies that the syntax element geometry_slice_extension_length and the syntax element geometry_slice_extension_data_byte may be present in the syntax structure, “geometry_slice header.”
  • syntax element geometry_slice_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure.
  • syntax element geometry_slice_extension_flag 1
  • decoders conforming to this version of the present disclosure shall allow the value of the syntax element geometry_slice_extension_flag equal to 1 to appear in the syntax.
  • syntax element geometry_slice_extension_length specifies the length of the geometry_slice extension data in bytes, not including the bits used for signalling the syntax element sequnce_extension_length itself. When sequnce_extension_length is not present, the value of geometry_slice_extension_length is inferred to be equal to 0.
  • syntax element geometry_slice_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element sequnce_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element geometry_slice_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive.
  • syntax element geometry_slice_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements geometry_slice_extension_data_byte[i]. Its value does not affect the decoding process specified in the present disclosure.
  • FIG. 13B An example of an alternative syntax table is illustrated in FIG. 13B.
  • FIG. 13B shows a table 13006 illustrating a syntax structure associated with a function, geometry_slice_header(), in which the extension with geometry_slice_extension_data_bit other than geometry_slice_extension_data_byte is introduced before a function byte_alignment(), as shown in a box 1310B, e.g., a syntax element geometry_slice_extension_flag is introduced.
  • a syntax element geometry_slice_extension_length is introduced, and a condition of a function, morc_data_in_gcomctry_slicc_hcadcr_cxtcnsion() returning a specified value (such as “TRUE”) is introduced.
  • a syntax element geometry_slice_extension_data_bit is introduced.
  • syntax element geometry_slice_extension_data_bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements geometry_slice_header_extension_data_bit. Its value does not affect the decoding process specified in the present disclosure.
  • morc_data_in_gcomctry_slicc_hcadcr_cxtcnsion() is specified as follows: [00212] If (the current position in the geometry_slice_header() syntax structure) - (the position immediately following geometry_slice_extension_length) is less than (geometry_slice_extension_length * 8), the return value of morc_data_in_gcomctry_slicc_hcadcr_cxtcnsion() is equal to TRUE. Otherwise, the return value of morc_data_in_gcomctry_slicc_hcadcr_cxtcnsion() is equal to FALSE.
  • FIG. 14A shows a table 1400A illustrating a syntax structure associated with a function, attribute_slice_header(), in which the extension is introduced before a function byte_alignment(), as shown in a box 1410A, e.g., a syntax element attribute_slice_extension_flag is introduced.
  • attribute_slice_extension_flag a syntax element attribute_slice_extension_length is introduced, and an iterative loop with a variable i from 0 incremental to attribute_slice_extension_length-l (e.g., i ⁇ attribute_slice_extension_length) is introduced.
  • a syntax element attribute_slice_extension_data_byte[i] are introduced.
  • syntax element attribute_slice_extension_flag 0 specifies that the syntax elements such as attribute_slice_extension_length and attribute_slice_extension_data_byte are not present in the syntax structure, “attribute_slice header.”
  • syntax element attribute_slice_extension_flag 1 specifies that the syntax elements such as attribute_slice_extension_length and attribute_slice_extension_data_byte may be present in the syntax structure, “attribute_slice header.”
  • syntax element attribute_slice_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure.
  • syntax element attribute_slice_extension_flag 1
  • decoders conforming to the present disclosure shall allow the value of the syntax element attribute_slice_extension_flag equal to 1 to appear in the syntax.
  • syntax element attribute_slice_extension_length specifies the length of the attribute_slice extension data in bytes, not including the bits used for signalling the syntax element sequnce_extension_length itself.
  • attribute_slice_extension_length is not present, the value of attribute_slice_extension_length is inferred to be equal to 0.
  • syntax element attribute_slice_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element sequnce_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element attribute_slice_extension_length to be present and in the range of 0 to N, e.g.
  • N is 256, inclusive.
  • the syntax element attribute_slice_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements attribute_slice_extension_data_byte[i]. Its value does not affect the decoding process specified in the present disclosure.
  • FIG. 14B An example of an alternative syntax table is illustrated in FIG. 14B.
  • FIG. 14B shows a table 1400B illustrating a syntax structure associated with a function, attribute_slice_header(), in which the extension with attribute_slice_extension_data_bit other than attribute slice extension data byte is introduced before a function byte_alignment(), as shown in a box 1410B, e.g., a syntax element attribute_slice_extension_flag is introduced.
  • a syntax element attribute slice extension length is introduced, and a condition of a function, more_data_in_attribute_slice_header_extension() returning a specified value (such as “TRUE”) is introduced.
  • a syntax element attribute_slice_extension_data_bit is introduced.
  • syntax element attribute slice extension data bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements attribute_slice_header_extension_data_bit. Its value does not affect the decoding process specified in the present disclosure.
  • the function more_data_in_attribute_slice_header_extension() is specified as follows: [00223] If (the current position in the attribute_slice_header() syntax structure) - (the position immediately following attribute_slice_extension_length) is less than (attribute_slice_extension_length * 8), the return value of more_data_in_attribute_slice_header_extension() is equal to TRUE. Otherwise, the return value of more_data_in_attribute_slice_header_extension() is equal to FALSE.
  • FIG. 15A shows a table 1500A illustrating a syntax structure associated with a function, general_attribute_data_bitstream(), in which the extension is introduced before a function byte_alignment(), as shown in a box 1510A, e.g., a syntax element attribute_data_extension_flag is introduced.
  • a syntax element attribute data extension length is introduced, and an iterative loop with a variable i from 0 incremental to attribute_data_extension_length-l (e.g., i ⁇ attribute_data_extension_length) is introduced.
  • syntax elements attribute_data_extension_data_byte[i] are introduced.
  • syntax element attribute_data_extension_flag 0 specifies that the syntax elements such as attribute_data_extension_length and attribute_extension_data_byte are not present in the syntax structure, “general attribute data bitstream.”
  • syntax element attribute_data_extension_flag 1 specifies that syntax elements such as attribute_data_extension_length and attribute_extension_data_byte may be present in the syntax structure, “general_attribute_data_bitstream.”
  • syntax element attribute_data_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure.
  • syntax element attribute_data_extension_flag 1
  • decoders conforming to the present disclosure shall allow the value of the syntax element attribute_data_extension_flag equal to 1 to appear in the syntax.
  • syntax element attribute_data_extension_length specifies the length of the attribute extension data in bytes, not including the bits used for signalling the syntax element sequnce_extension_length itself.
  • attribute_data_extension_length is not present, the value of attribute_data_extension_length is inferred to be equal to 0.
  • syntax element attribute_data_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element attribute_data_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element attribute_data_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive.
  • syntax elements attribute_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements attribute_extension_data_byte[i]. Its value does not affect the decoding process specified in the present disclosure.
  • FIG. 15B An example of an alternative syntax table is illustrated in FIG. 15B.
  • FIG. 15B shows a table 1500B illustrating a syntax structure associated with a function, general_attribute_data_bitstream(), in which the extension with attribute extension data bit other than attribute extension data byte is introduced before a function byte_alignment(), as shown in a box 1510B, e.g., a syntax element attribute data extension flag is introduced.
  • a condition of attribute data extension flag equal to a specified value (such as a non-zero value “1” or “TRUE”)
  • a syntax element attribute data extension length is introduced
  • morc_data_in_gcncral_attributc_data_bitstrcam() returning a specified value (such as “TRUE”) is introduced.
  • a syntax element attribute_extension_data_bit is introduced.
  • the syntax element attribute extension data bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements general_attribute_data_bitstream. Its value does not affect the decoding process specified in the present disclosure.
  • morc_data_in_gcncral_attributc_data_bitstrcam() is specified as follows: [00234] If (the current position in the general_attribute_data_bitstream() syntax structure) - (the position immediately following attribute_data_extension_length) is less than (attribute_data_extension_length * 8), the return value of morc_data_in_gcncral_attribiitc_data_bitstrcam() is equal to TRUE. Otherwise, the return value of morc_data_in_gcncral_attributc_data_bitstrcam() is equal to FALSE.
  • the encoding the bitstream associated with GPCC including the syntax structure having the syntax element associated with the extension flag to determine the extension data includes: encoding the syntax element associated with the extension flag based on the extension data; in response to determining the syntax element associated with the extension flag being not equal to zero, determining a syntax element associated with an extension length based on the extension data; and encoding one or more syntax elements associated with the extension data into the syntax structure based on the syntax element associated with the extension length.
  • determining the syntax element associated with the extension length based on the extension data includes: in response to determining a value of the extension length is equal to zero, determining the syntax element associated with the extension length not present in the syntax structure; and in response to determining the syntax element associated with the extension length present in the syntax structure, encoding the syntax element associated with the extension length into the syntax structure based on a length of the extension data in a form of byte. For example, a value of the extension length ranges from 0 to 256.
  • the encoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length includes: performing a respective one of a plurality of operation groups defined by an iterative loop with a variable from zero incremental to a maximum integer less than a value of the extension length, including: encoding one syntax element associated with the extension data in the form of byte into the syntax structure.
  • the encoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length includes: iteratively performing: in response to determining that there is more data in the syntax structure based on the extension length in a form of bit, encoding one syntax element associated with the extension data in the form of bit into the syntax structure.
  • the iteratively performing: in response to determining that there is more data in a form of bit in the syntax structure based on the extension length, encoding one syntax element associated with the extension data in the form of bit into the syntax structure includes: iteratively performing: determining that whether a difference between a current position in the syntax structure and a position immediately following the extension length being less than a value calculated by the extension length multiplied by eight is true or false; and in response to determining that the difference between the current position in the syntax structure and the position immediately following the extension length being less than the value calculated by the extension length multiplied by eight is true, encoding one syntax element associated with the extension data in the form of one bit into the syntax structure.
  • the syntax structure is associated with a sequence header, a geometry header, an attribute header, a geometry slice header, an attribute slice header, or a general attribute data bitstream for GPCC.
  • any suitable computing system can be used for performing the operations for bitstream encoding like a bitstream encoder or bitstream decoding like a bitstream decoder described herein.
  • FIG. 16 depicts an example of a computing device 1600 that can implement methods such as bitstream encoding methods or bitstream decoding methods herein.
  • the computing device 1600 can include a processor 1610 that is coupled to a memory 1612 and is configured to execute program instructions stored in the memory 1612 to perform the operations for implementing a bitstream decoding method associated with a bitstream decoder and/or a bitstream encoding method associated with a bitstream encoder, for GPCC, such as AVS-GPCC.
  • a processor 1610 that is coupled to a memory 1612 and is configured to execute program instructions stored in the memory 1612 to perform the operations for implementing a bitstream decoding method associated with a bitstream decoder and/or a bitstream encoding method associated with a bitstream encoder, for GPCC, such as AVS-GPCC.
  • the processor 1610 may comprise a microprocessor, an application-specific integrated circuit (“ASIC”), a state machine, or other processing device.
  • the processor 1610 can include one or more processing units.
  • Such a processor can include or may be in communication with a computer- readable medium storing instructions that, when executed by the processor 1610, cause the processor to perform the operations described herein.
  • the memory 1612 can include any suitable non-transitory computer-readable medium.
  • the computer-readable medium can include any electronic, optical, magnetic, or other storage device capable of providing a processor with computer-readable instructions or other program code.
  • a computer-readable medium include a magnetic disk, memory chip, ROM, RAM, an ASIC, a configured processor, optical storage, magnetic tape or other magnetic storage, or any other medium from which a computer processor can read instructions.
  • the instructions may include processor-specific instructions generated by a compiler and/or an interpreter from code written in any suitable computer programming language, including, for example, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, and ActionScript.
  • a bitstream decoding system includes: a processor; and a memory coupled to the processing unit, wherein the processor is configured to execute program instructions stored in the memory to perform any one of the above bitstream decoding methods.
  • the present disclosure provides that a non-transitory computer-readable medium having program code stored thereon, the program code executable by a processor to execute any one of the above bitstream decoding methods.
  • a bitstream encoding system includes: a processor; and a memory coupled to the processing unit, wherein the processor is configured to execute program instructions stored in the memory to perform any one of the above bitstream encoding methods.
  • the present disclosure provides that a non-transitory computer-readable medium having program code stored thereon, the program code executable by a processor to execute any one of the above bitstream encoding methods.
  • the units as separating components for explanation are or are not physically separated.
  • the units for display are or are not physical units, that is, located in one place or distributed on a plurality of network units. Some or all of the units are used according to the purposes of the embodiments.
  • each of the functional units in each of the embodiments can be integrated into one processing unit, physically independent, or integrated in one processing unit with two or more than two units.
  • the software function unit is realized and used and sold as a product, it can be stored in a readable storage medium in a computer.
  • the technical plan provided by the present disclosure can be essentially or partially realized as the form of a software product.
  • one part of the technical plan beneficial to the conventional technology can be realized as the form of a software product.
  • the software product in the computer is stored in a storage medium, including a plurality of commands for a computational device (such as a personal computer, a server, or a network device) to run all or some of the steps disclosed by the embodiments of the present disclosure.
  • the storage medium includes a USB disk, a mobile hard disk, a read-only memory (ROM), a random-access memory (RAM), a floppy disk, or other kinds of media capable of storing program codes.

Abstract

Bitstream encoding/decoding methods and systems are disclosed. The bitstream encoding/decoding method includes encoding/decoding a bitstream associated with geometry point cloud coding (GPCC) comprising a syntax structure having a syntax element associated with an extension flag to determine extension data.

Description

BITSTREAM ENCODING AND DECODING FOR GEOMETRY POINT CLOUD CODING
BACKGROUND OF DISCLOSURE
Cross-Reference to Related Applications
[0001] This application claims the benefit of priority to U.S. Provisional Application No. 63/367,576, entitled “EXTENSION IMPROVEMENTS FOR GEOMETRY POINT CLOUD CODING,” filed on July 1, 2022, which is hereby incorporated in its entirety by this reference.
Field of the Disclosure
[0002] The present disclosure relates generally to computer-implemented methods and systems for bitstream processing, and more particularly, to extension improvements for geometry point cloud coding. Description of the Related Art
[0003] Geometry point cloud coding (GPCC) is widely used in VR/AR for entertainment and industrial applications, e.g., LiDAR sweep compression for automotive or robotics and high definition (HD) Map for navigation. However, the existing GPCC cannot work well for a wide range of point cloud coding (PCC) input. Thus, there is a need for geometry point cloud coding improvement.
SUMMARY
[0004] An object of the present disclosure is to propose bitstream encoding/decoding methods and systems to improve efficiency for geometry point cloud coding.
[0005] In a first aspect of the present disclosure, a bitstream decoding method includes: decoding a bitstream associated with geometry point cloud coding (GPCC) including a syntax structure having a syntax element associated with an extension flag to determine extension data.
[0006] In a second aspect of the present disclosure, a bitstream decoding system includes: a processor; and a memory coupled to the processing unit, wherein the processor is configured to execute program instructions stored in the memory to perform the above bitstream decoding method.
[0007] In a third aspect of the present disclosure, a non-transitory computer-readable medium having program code stored thereon, the program code executable by a processor to execute the above bitstream decoding method.
[0008] In a fourth aspect of the present disclosure, a bitstream encoding method includes: encoding a bitstream associated with geometry point cloud coding (GPCC) including a syntax structure having a syntax element associated with an extension flag to determine extension data.
[0009] In a fifth aspect of the present disclosure, a bitstream encoding system includes: a processor; and a memory coupled to the processing unit, wherein the processor is configured to execute program instructions stored in the memory to perform the above bitstream encoding method. [0010] In a sixth aspect of the present disclosure, a non-transitory computer-readable medium having program code stored thereon, the program code executable by a processor to execute the above bitstream encoding method.
BRIEF DESCRIPTION OF DRAWINGS
[0011] 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.
[0012] FIG. 1 is a schematic diagram illustrating an encoding module and a decoding module for geometry point cloud coding (GPCC) that can be applied to embodiments of the present disclosure.
[0013] FIGs. 2A and 2B are schematic diagrams illustrating an octree structure for GPCC and a corresponding digital representation that can be applied to embodiments of the present disclosure.
[0014] FIG. 3 is a schematic diagram illustrating a structure of cube and relationship with neighboring cubes that can be applied to embodiments of the present disclosure.
[0015] FIGs. 4A to 4D are schematic diagrams illustrating syntax structures associated with functions of color_residual_coding (), coded_level_coding (isComponentNoneZero), attribute_data_reflectance (), and zero run length code (useGolomb) that can be applied to embodiments of the present disclosure.
[0016] FIG. 5 is a flowchart illustrating a bitstream decoding method according to an embodiment of the present disclosure.
[0017] FIG. 6 is a flowchart illustrating a bitstream encoding method according to an embodiment of the present disclosure.
[0018] FIGs. 7A and 7B are schematic diagrams illustrating syntax structures associated with a sequence header and an attribute header that can be applied to embodiments of the present disclosure.
[0019] FIGs. 8 A is a schematic diagram illustrating a syntax structure associated with a sequence header that can be applied to embodiments of the present disclosure.
[0020] FIGs. 8B1 and 8B2 are schematic diagrams illustrating two parts of a syntax structure associated with an attribute header that can be applied to embodiments of the present disclosure.
[0021] FIGs. 8C is a schematic diagram illustrating an alternative syntax structure associated with a sequence header that can be applied to embodiments of the present disclosure.
[0022] FIGs. 8D1 and 8D2 are schematic diagrams illustrating two parts of an alternative syntax structure associated with an attribute header that can be applied to embodiments of the present disclosure.
[0023] FIGs. 9A and 9B are schematic diagrams illustrating syntax structures associated with a general attribute data bitstream that can be applied to embodiments of the present disclosure.
[0024] FIGs. 10A and 10B are schematic diagrams illustrating syntax structures associated with extensions in a sequence header that can be applied to embodiments of the present disclosure. [0025] FIGs. 11A and 11B are schematic diagrams illustrating syntax structures associated with extensions in a geometry header that can be applied to embodiments of the present disclosure.
[0026] FIGs. 12A and 12B are schematic diagrams illustrating syntax structures associated with extensions in an attribute header that can be applied to embodiments of the present disclosure.
[0027] FIGs. 13A and 13B are schematic diagrams illustrating syntax structures associated with extensions in a geometry slice header that can be applied to embodiments of the present disclosure.
[0028] FIGs. 14A and 14B are schematic diagrams illustrating syntax structures associated with extensions in an attribute slice header that can be applied to embodiments of the present disclosure.
[0029] FIGs. 15A and 15B are schematic diagrams illustrating syntax structures associated with extensions in a general attribute data bitstream that can be applied to embodiments of the present disclosure. [0030] FIG. 16 is a schematic block diagram illustrating an example of a computing device according to an embodiment of the present disclosure.
DETAILED DESCRIPTION OF EMBODIMENTS
[0031] 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.
[0032] Geometry point cloud coding (GPCC) is widely used in VR/AR for entertainment and industrial applications, e.g., LiDAR sweep compression for automotive or robotics and high definition (HD) Map for navigation. For example, MPEG (Moving Picture Experts Group) released a first version of GPCC standard such as shown in “MPEG-I (Coded Representation of Immersive Media) — Part 9: Geometry-based Point Cloud Compression, MPEG w 19617_d6”, and AVS (Audio Video coding Standard) also develops a GPCC standard (AVS GPCC) such as shown in “GPCC WD7.0, N3331”. In order to compress the point cloud data efficiently, geometry information of a point cloud is compressed first, and then corresponding attributes information, including color or reflectance, are compressed based on the geometry information.
[0033] For example, FIG. 1 illustrates a diagram for a GPCC encoder 101 and a GPCC decoder 102 that can be applied in the present disclosure. As shown in FIG. 1, in both of a GPCC encoder 101 and a GPCC decoder 102, point cloud positions are coded first, and attribute coding depends on the decoded geometry. In the GPCC encoder 101 and the GPCC decoder 102, some modules, such as “Analyze surface approximation,” “RAHT (Region Adaptive Hierarchical Transform),” and “Synthesize surface approximation” modules, are options typically used for static point clouds (category 1) data; some modules, such as “Generate LOD,” “Lifting (update/lifting transform),” and “Inverse lifting” modules, are options typically used for dynamically acquired point clouds (category 3) data; all the other modules are commonly used data between categories 1 and 3. [0034] For example, as shown in FIG. 1, in the GPCC encoder 101 and the GPCC decoder 102, a cubical axis-aligned bounding box is defined by the two extreme points (0,0,0) and (2d, 2d, 2d) wherein d is a maximum size of a 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 an octree structure allowing one parent cube to have eight child cubes. There are seven sibling cubes of a given cube that 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 the smallest cube is pre-defined for a given point cloud. As one example, a minimum cube can be defined. 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.
[0035] For example, FIGs. 2A and 2B illustrate an octree structure 201 of GPCC and a corresponding digital representation 202 that can be applied in the present disclosure. The octree structure 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 value such as “1” (i.e., signaling as a first symbol “one”) or “0” (i.e., signaling as a second symbol “zero”) 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 (i.e., assigned as “1”) 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.
[0036] FIG. 3 illustrates a structure of cube and relationship with neighboring cubes that can be applied in the present disclosure. Depending on the location of the current cube, one cube may have up to six samesize cubes to share one face, as shown in FIG. 3. In addition, the current cube may also have some neighboring cubes which share lines or points with the current cube. 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, such as cubes 301 and 302 shown as from (a) to (j) in FIG. 3. 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, such as cubes CCo, CCi, CC2, CC3, CC4, CC5, CCe, and CC7 sharing a central point in the parent cube.
[0037] The octree-based geometry information may be coded with context-based arithmetic coding. 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 atributes. More specifically, a prediction is formed from neighboring coded atributes. Then, the difference between the current atribute and the prediction is coded.
[0038] In this disclosure, coding is assumed to mean encoding and decoding methods and systems.
[0039] Attribute Coding in AVS GPCC
[0040] 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 atribute. In other words, some positions may be empty. The atribute 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 atribute difference between the current point and its predictor is coded into the bitstream.
[0041] 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 atribute. In AVS GPCC software, M and N can be 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 atribute 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 atribute predictor. More specifically, the previous K points, e.g., K = 6, before the current point are selected according to a predefined 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.
[0042] d = |xl — %2| + |yl — y2 \ + |zl — z2 | (1), wherein (xl, yl, zl) and (x2, y2, z2) are coordinates of the current point and pre-selected point, respectively.
[0043] For example, a full search method based on Hilbert code has been applied in the AVS GPCC atribute coding, e.g., 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 atribute 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 atribute 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.
[0044] d = |xl — %2 | + |yl — y2 | + |zl — z2 | (2), wherein (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.
[0045] 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.
[0046] The residual is defined as the difference of attribute values between the current point and its predictor. Depending on the application, point cloud coding (PCC) can be either lossless or lossy. Hence, the residual may or may not be quantized by using the predefined quantization process. In this disclosure, the residual without or with quantization is called level. The level can be a signed integer and will be coded into the bitstream.
[0047] Color Level Coding
[0048] There are three color attributes for each point, which come from the three color components. If the levels for all the three color components are zeros, this point is called 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 a non-zero level point. In the current AVS-GPCC, the number of consecutive zero level points is called zero-run length. The zero-run length values and levels for non-zero level points are coded into the bitstream. More specifically, on the encoding side, before coding 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 the 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 then the three color levels for this non-zero level point will be coded right after. After the level coding of a nonzero level point, the zero-run length value will be reset to zero and the process proceeds to the next point until finishing all points. On the decoding side, the zero-run length value is first decoded and the three color levels corresponding to the number of zero-run length points are set as zero. Then the levels for the nonzero level point are decoded and then the next zero-run length value is decoded. This process continues until all points are decoded. In addition, AVS-GPCC syntax is provided below as examples for illustrative purposes but is not intended to limit the present disclosure.
[0049] FIG. 4A shows a table 400A illustrating a syntax structure associated with a function, “color_residual_coding (),” For example, in AVS-GPCC, in which “ae(v)” refers to a descriptor associated with a syntax element for context adaptive arithmetic entropy coding. For example, as shown in FIG. 4A, a syntax element, “color_first_comp_zero,” equal to 0, specifies that the absolute coded level for the first component of color is not zero, and the syntax element, “color_first_comp_zero,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the absolute coded level for the first component is zero; another syntax element, “color_second_comp_zero,” equal to 0, specifies that the absolute coded level for the second component of color is not zero, and the syntax element, “color_second_comp_zero,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the absolute coded level for the second component is zero.
[0050] FIG. 4B shows a table 400B illustrating a syntax structure associated with a function, “coded_level_coding (isComponentNoneZero),” that is used in the function “color_residual_coding()” for AVS-GPCC, in which “ae(v)” refers to a descriptor associated with a syntax element for context adaptive arithmetic entropy coding. For example, as shown in FIG. 4B, a syntax element, “coded level equal zero,” equal to 0, specifies that the absolute coded level for this component is not zero, and the syntax element, “coded_level_equal_zero,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the absolute coded level for this component is zero; another syntax element, “coded_level_gt 1 ,” equal to 0, specifies that the coded level for this component is one, and the syntax element, “coded _lcvcl_gt I equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the coded level for this component is greater than one; when the syntax element, “coded _lcvcl_gt I is not present, it is inferred to be equal to 0; another syntax element, “coded_level_minus2_parity,” specifies the parity of the coded level minus two for the current component, wherein the syntax element, “coded_level_minus2_parity,” equal to 0, specifies that the current coded level minus two is an even number, and the syntax element, “coded_level_minus2_parity,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the current coded level minus two is an odd number; when the syntax element, “coded_level_minus2_parity,” is not present, it is inferred to be equal to 0; another syntax element, “coded_level_minus2_di v2_gt0." equal to 0, specifies that the coded level minus two dividing two is zero, and the syntax element, “coded_level_minus2_div2_gt0,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the coded level minus two dividing two is greater than zero; when the syntax element, “coded_level_minus2_div2_gt0,” is not present, it is inferred to be equal to 0; another syntax element, “coded_level_minu2_div2_minusl,” specifies the value of the coded level minus two dividing two minus one; when the syntax element, “coded_level_minu2_div2_minusl,” is not present, it is inferred to be equal to 0.
[0051] In addition, syntax elements, “coded_level” and “coded_level_sign,” are return values of a function “coded_level_coding(isComponentminusOne)” which represent the coded level, i.e. absolute level of color residual or absolute level of color residual minus one, and the sign of non-zero color residual.
[0052] For example, a value of “coded level” can be calculated as follows.
[0053] coded_level = (2* coded_level_sign -1) * (coded_level_equal_zero ? 0 : 1 +(codcd_lcvcl_gt l + codcd lc vcl m i nus2_pari ty+(codcd_lc vcl m i nus2_di v2_gt0+ coded_level_minu2_div2_minus 1 )« 1 ) [0054] The residual levels of three color components, color_component[idx] in which idx is from 0 to 2 are calculated from the function “color_residual_coding(),” as shown in FIG. 4A.
[0055] For a non-zero level point, there is at least one non-zero level among the three components. The values of three components are coded in the function “color_residual_coding().” 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 of color residual minus one may be coded in the function “coded_level_coding()” and named as coded level in the remaining of the present disclosure.
[0056] For example, in one case, a first flag “color_first_comp_zero” is coded to indicate if the first component of color is zero or not; if the first component of color is zero, a second flag “color second comp zero” is coded to indicate if the second component of color is zero or not; if the second component of color is zero, the absolute level minus one and the sign of the third component will be coded according to the following coded level method.
[0057] For example, in another case, a first flag is coded to indicate if the first component of color is zero or not; if the first component of color is zero, a second flag is coded to indicate if the second component of color is zero or not; if the second component of color is not zero, the absolute level minus one and sign of the second component will be coded according to the following coded level method, the absolute level and sign of the third component will be coded according to the following coded level method.
[0058] For example, in another case, a first flag is coded to indicate if the first component of color is zero or not; if the first component of color is not zero, the absolute level minus one and sign of the first component will be coded according to the following coded level method, the absolute levels and signs of the second and third components will be coded according to the following coded level method, respectively. [0059] In addition, a coding method to produce a coded level is designed as follows. The first flag “coded_level_equal_zero” is coded to indicate if the coded level is zero or not; if the coded level is the absolute level of one component minus one, i.e., when a flag “isComponentNoneZero” is equal to true (such as not equal to zero or equal to one), the sign “coded_level_sign” of the level of this component will be coded. If the first flag indicates that the coded level is not zero, and if the coded level is the absolute level of one component itself, i.e., when isComponentNoneZero is equal to false (such as equal to zero), the sign of the level of this component will be coded. The second flag “coded_level_gt 1 ” will be coded to indicate if the coded level is greater than one or not; if the coded level is greater than one, the parity of the coded level minus two is coded and the third flag “coded_le vel_m inus2_di v2_gt0" will be coded to indicate if the coded level minus two dividing two is greater than zero or not; if the coded level minus two dividing two is greater than zero, the coded level minus two dividing two minus one will be coded.
[0060] Reflectance Level Coding
[0061] For example, in AVS-GPCC, the zero-run length of reflectance level and the non-zero reflectance level are coded into bitstream. More specifically, 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.
[0062] 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 “abs_level_minus l_parity” which indicates the parity of the absolute level minus one is coded. Another syntax element “abs_level_minusl_div2_gt0” is coded to indicate if the value of the absolute level minus one divided by two is greater than zero or not; if “abs_level_minus I di \ 2 gt0" is great than zero, another syntax element “abs_level_minusl_div2_gtl” is coded to indicate if the value of the absolute level minus one divided by two is greater than one or not; if ■■abs lcvcljniniis I_div2_gt I" is greater than 1, another syntax element “abs_level_minul_div2_minus2” is coded to indicate the value of the absolute level minus one divided by two minus two.
[0063] FIG. 4C shows a table 400C illustrating a syntax structure associated with a function, “attribute_data_reflectance ()” for reflectance level coding in AVS-GPCC, in which “ae(v)” refers to a descriptor associated with a syntax element for context adaptive arithmetic entropy coding, and “ae(l)” refers to a descriptor associated with a syntax element for one-bit adaptive arithmetic entropy coding. As shown in FIG. 4C, a syntax element “abs_level_minusl_parity” specifies the parity of absolute reflectance level minus one, wherein the syntax element, “abs_level_minus 1 jiarity." equal to 0, specifies that the absolute reflectance level minus one is an even number, and the syntax element, “abs_level_minusl_parity,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the absolute reflectance level minus one is an odd number; another syntax element, “abs_level_minus I di \ 2 gt0." equal to 0, specifies that the value of the absolute reflectance level minus one divided by two is zero, and the syntax element, “abs_level_minusl_div2_gt0,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the value of the absolute reflectance level minus one divided by two is greater than zero; when the syntax element “abs_level_minus I di \ 2 gt0" is not present, it is inferred to be equal to 0; another syntax element, “abs_level_minus I di \ 2 gt 1 ,” equal to 0, specifies that the value of the absolute reflectance level minus one divided by two is one, and the syntax element, “abs_level_minus I di v2_gt 1,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the value of the absolute reflectance level minus one divided by two is greater than one; when the syntax element “abs_level_minusl_div2_gtl” is not present, it is inferred to be equal to 0; another syntax element “abs_level_minul_div2_minus2” specifies the value of the absolute reflectance level minus 1 divided by two minus two; when the syntax element “abs_level_minul_div2_minus2” is not present, it is inferred to be equal to 0; another syntax element, “residual_sign,” equal to 0, specifies that the sign of reflectance level is negative, and the syntax element, “residual_sign,” equal to a specified value (such as a non-zero value “1” or “TRUE”), specifies that the sign of reflectance level is positive; when the syntax element “residual_sign” is not present, it is inferred to be equal to a specified value
[0064] For example, a value of “reflectance” can be calculated as follows.
[0065] reflectance = (2* residual_sign -1) * (1 + abs_level_minusl_parity +(abs_level_minus I di \ 2 gt0 + abs lcvcl minus I_div2_gt I + abs_level_minul_div2_minus2) «1) [0066] Zero-Run Length coding
[0067] For example, in AVS-GPCC, a value of a zero-run length is coded into a bitstream. For example, FIG. 4D shows a table 400D illustrating a syntax structure associated with a function, “zero_run_length_code (useGolomb),” a syntax element “zero_run_length_level_equal_zero” is coded to indicate if the zero-run length is eqaul to zero or not; if the syntax element “zero_run_length_level_equal_zero” is not zero, another syntax element “zero_run_length_level_equal_one” is coded to indicate if the zero-run length is eqaul to one or not; if the syntax element “zero_run_length_level_equal_one” is not one, another syntax element “zero_run_length_level_equal_two” is coded to indicate if the zero-run length is eqaul to two or not; if the syntax element “zero_run_length_level_equal_two” is not two, syntax elements “zero_run_length_level_minus3_parity” and “zero_run_length_level_minus3_div2” are coded to indicate the parity of the zero-run length minus three and a value of the zero-run length minus three divided by two, respectively.
[0068] For example, “zero_run_length_level_minus3_parity” specifies the parity of the zero-run length level minus three, “zero_run_length_level_minus3_parity” equal to 0 specifies that a value of the zero-run length level minus three is an even number, and “zero_run_length_level_minus3_parity” equal to a specified value specifies that the value of the zero-run length level minus three is an odd number; when “zero_run_length_level_minus3_parity” is not present, it is inferred to be equal to 0; “zero_run_length_level_equal_zero” equal to 0 specifies that the zero-run length level is not zero, and “zero_run_length_level_equal_zero” equal to a specified value specifies that the zero-run length level is zero; “zero_run_length_level_equal_one” equal to 0 specifies that the zero-run length level is not one, and “zero_run_length_level_equal_one” equal to a specified value specifies that the zero-run length level is one; “zero_run_length_level_equal_two” equal to 0 specifies that the zero-run length level is not two, and “zero_run_length_level_equal_two” equal to a specified value specifies that the zero-run length level is two; “zero_run_length_level_minus3_div2” specifies the value of the zero-run length level minus three divided by two; when “zero_run_length_level_minus3_div2” is not present, it is inferred to be equal to 0. [0069] For example, a value of “zero_run_length_level” can be calculated as follows.
[0070] zero_run_length_level = zero_run_length_level_equal_zero ? 0 :
(zero_run_length_level_equal_one ? 1 : (zero_run_length_level_equal_two ? 2 : (3 + zero_run_length_level_minus3_parity + ( zero_run_length_level_minus3_div2«l))))
[0071] For example, a value of “zero-run length” can be calculated as follows.
[0072] zero_run_length = useGolomb ? (2 * zero_run_lenght_level + zero_run_length_LSB) : zero_run_length_level
[0073] It should be noted that, although GPCC is widely used in VR/AR for entertainment and industrial applications, the GPCC cannot work well for a wide range of PCC input. Thus, there is a need for geometry point cloud coding improvement. [0074] The present disclosure provides several improvements, including the support of GPCC extensions, such as used for AVS-GPCC. Examples are provided as follows and are not intended to limit the present disclosure.
[0075] Specifically, a bitstream decoding method is provided for geometry point cloud coding.
[0076] For example, a flowchart illustrating a bitstream decoding method according to an embodiment of the present disclosure is illustrated in FIG. 5, in which an example of a bitstream decoding method 500 is provided. The bitstream decoding method 500 includes: a box 510, decoding a bitstream associated with geometry point cloud coding (GPCC) including a syntax structure having a syntax element associated with an extension flag to determine extension data. In the example, as shown at the box 510 in FIG. 5, the bitstream associated with GPCC can further includes at least one of: a syntax structure associated with an attribute header having two syntax elements associated with two quantization-parameter codes, a syntax structure associated with a sequence header having an SPS-multiple-data-set-flag code, and a syntax structure associated with a general -attribute-data bitstream having a plurality of syntax elements associated with attribute data.
[0077] Correspondingly, a bitstream encoding method is provided for geometry point cloud coding.
[0078] For example, a flowchart illustrating a bitstream encoding method according to an embodiment of the present disclosure is illustrated in FIG. 6, in which an example of a bitstream encoding method 600 is provided. The bitstream encoding method 600 includes: a box 610, encoding a bitstream associated with geometry point cloud coding (GPCC) including a syntax structure having a syntax element associated with an extension flag to determine extension data. In the example, as shown at the box 610 in FIG. 6, the bitstream associated with GPCC can further includes at least one of: a syntax structure associated with an attribute header having two syntax elements associated with two quantization-parameter codes, a syntax structure associated with a sequence header having an SPS-multiple-data-set-flag code, and a syntax structure associated with a general-attribute-data bitstream having a plurality of syntax elements associated with attribute data.
[0079] Quantization parameters
[0080] For example, the present disclosure provides the following example for improving configuration of quantization parameters such as colorQuantParam and refl QuantParam for AVS-GPCC, for improving efficiency for geometry point cloud coding.
[0081] For example, embodiments for the bitstream decoding process for improving a configuration of quantization parameters are provided below.
[0082] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the two syntax elements associated with two quantization-parameter codes includes a syntax element associated with a color-quantization-parameter code and a syntax element associated with a reflectance-quantization-parameter code .
[0083] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the decoding the bitstream associated with GPCC including the syntax structure associated with the attribute header having the two syntax elements associated with the two quantization-parameter codes, includes: in response to determining that a syntax element associated with the attribute -present-flag code indexed by a first index is not equal to zero, decoding one syntax element associated with a color- quantization-parameter code from the syntax structure associated with the attribute header; and in response to determining that a syntax element associated with the attribute -present-flag code indexed by a second index is not equal to zero, decoding one syntax element associated with a reflectance-quantization- parameter code from the syntax structure associated with the attribute header. For example, the attribute- present-flag code indexed by the first index and the attribute-present-flag code indexed by the second index are attributePresentFlag[O] and attribute PresentFlag[l] for AVS-GPCC. The example is provided for illustration as below.
[0084] Example 1
[0085] The present example is provided to move syntax elements colorQuantParam and reflQuantParam from sequence parameter set (SPS)Zsequence header to attribute header.
[0086] FIG. 7A shows a table 700A illustrating a syntax structure associated with a function, sequence header(), in which “ue(v)” refers to a descriptor associated with a syntax element for unsigned integer exponential golomb coding, and “u(n),” in which n is equal to a positive integer such as 1, 2, 4, . . . , 8, . . . , 15, . . . , 21, and . . . , is an n-bit(s) unsigned integer. In FIG. 7A, as shown in a box 710A, syntax elements colorQuantParam and reflQuantParam are removed in a condition of a syntax element attribute_present_flag equal to a specified value (such as not equal to zero, e.g., equal to “1” or “TRUE”). [0087] Substitutionally, FIG. 7B shows a table 700B illustrating a syntax structure associated with a function, attribute_header(), in which “ue(v)” refers to a descriptor associated with a syntax element for unsigned integer exponential golomb coding, “se(v)” refers to a descriptor associated with a signed integer exponential golomb coded syntax element bit first, and “u(n),” such as n equal to 1, is an n-bit(s) unsigned integer. In FIG. 7B, as shown in boxes 710B and 720B, the syntax element colorQuantParam is introduced in a condition of a syntax element attributePresentFlag[O] equal to a specified value (such as not equal to zero, e.g., equal to “1” or “TRUE”), and the syntax element reflQuantParam is added in a condition of a syntax element attributcPrcscntFlagl 1 1 equal to a specified value (such as not equal to zero, e.g., equal to “1” or “TRUE”).
[0088] Correspondingly, embodiments for the bitstream encoding process for improving a configuration of quantization parameters are provided below.
[0089] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the two syntax elements associated with two quantization-parameter codes includes a syntax element associated with a color-quantization-parameter code and a syntax element associated with a reflectance-quantization-parameter code .
[0090] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, in response to encoding the bitstream associated with GPCC including the syntax structure associated with the attribute header having the two syntax elements associated with the two quantization- parameter codes, includes: in response to determining that a syntax element associated with an attribute- present-flag code indexed by a first index is not equal to zero, encoding one syntax element associated with a color-quantization-parameter code into the syntax structure associated with the attribute header; and in response to determining that a syntax element associated with an attribute-present-flag code indexed by a second index is not equal to zero, encoding one syntax element associated with a reflectance-quantization- parameter code into the syntax structure associated with the attribute header.
[0091] SPS-multiple-data-set-flag
[0092] In addition, the present disclosure provides the following example for supporting multiple attribute coding parameter sets for one type of attribute, such as SPS (sequence parameter set) and attribute header to support multiple attribute coding parameter sets, for improving efficiency for geometry point cloud coding.
[0093] For example, embodiments for the bitstream decoding process for the multiple attribute coding parameter sets are provided below.
[0094] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the SPS-multiple-data-set-flag code specifies whether multiple attribute coding parameter sets are allowed for coding a current point cloud.
[0095] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, in response to decoding the bitstream associated with GPCC including the syntax structure associated with the sequence header having the SPS-multiple-data-set-flag code, includes: decoding a syntax element associated with an attribute-present-flag code from the syntax structure associated with the sequence header; in response to determining the syntax element associated with the attribute-present-flag code being not equal to zero, performing operations including: in response to determining the syntax element associated with the SPS-multiple-data-set-flag code being present in the syntax structure associated with the sequence header, decoding the syntax element associated with the SPS-multiple-data-set-flag code from the syntax structure associated with the sequence header to determine a value of the SPS-multiple- data-set-flag code; and in response to determining the syntax element associated with the SPS-multiple- data-set-flag code being not present in the syntax structure associated with the sequence header, determining the value of the SPS-multiple-data-set-flag code is equal to zero.
[0096] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, in response to decoding the bitstream associated with GPCC including the syntax structure associated with the sequence header has the SPS-multiple-data-set-flag code, includes: in response to determining the syntax element associated with the attribute-present-flag code being not equal to zero, performing operations including: decoding a syntax element associated with a max-number-attributes- minus-one code from the syntax structure associated with the sequence header after decoding the syntax element associated with the SPS-multiple-data-set-flag code.
[0097] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, further includes: performing a respective one of a plurality of operation groups defined by a first iterative loop with a first variable from zero incremental to a maximum integer less than a sum of a value of the max-number-attributes-minus-one code plus one, in a syntax structure associated with an attribute header, including: decoding a syntax element associated with an attribute -present-flag code indexed by the first variable; and in response to determining that the syntax element associated with the attribute-present-flag code indexed by the first variable is not equal to zero, performing operations including: in response to determining that the syntax element of the SPS-multiple-data-set-flag code is not equal to zero, determining a syntax element associated with a multiple -data-set-flag code indexed by the first variable; in response to determining that the syntax element associated with the multiple -data-set-flag code indexed by the first variable is not equal to zero, determining a syntax element associated with an attribute- number-data-set-minus-one code indexed by the first variable; and performing a respective one of a plurality of operation groups defined by a second iterative loop with a second variable from zero incremental to a maximum integer less than a sum of a value of the attribute -number-data-set-minus -one code indexed by the first variable plus one, including: decoding a syntax element associated with an output- bit-depth-minus-one code indexed by the first variable and the second variable; in response to determining the first variable equal to zero or the first variable not equal to zero, decoding a first group of syntax elements indexed by the first variable and the second variable; in response to determining the first variable equal to zero, decoding a second group of syntax elements indexed by the second variable; and in response to determining the first variable not equal to zero, decoding a third group of syntax elements indexed by the second variable; and decoding a plurality of syntax elements in the syntax structure associated with the attribute header.
[0098] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the in response to determining that the syntax element of the SPS-multiple-data-set-flag code is not equal to zero, determining the syntax element associated with the multiple -data-set-flag code indexed by the first variable, includes: determining whether the syntax element associated with the multiple-data- set-flag code indexed by the first variable is present; in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being present, decoding the syntax element associated with the multiple -data-set-flag code indexed by the first variable; and in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being not present, determining that the syntax element associated with the multiple-data-set-flag code indexed by the first variable equal to zero.
[0099] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the in response to determining that the syntax element associated with the multiple-data-set- flag code indexed by the first variable is not equal to zero, determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable, includes: in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being present, decoding the syntax element associated with the attribute -number-data-set- minus-one code indexed by the first variable; and in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being not present, determining that the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable equal to zero.
[00100] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the in response to determining the first variable equal to zero or the first variable not equal to zero, decoding the first group of syntax elements indexed by the first variable and the second variable includes: decoding a syntax element associated with a max-number-of-neighbours-log2-minus-seven code indexed by the first variable and the second variable; decoding a syntax element associated with a number- of-level-of-detail code indexed by the first variable and the second variable; decoding a syntax element associated with a max-number-of-predict-neighbours code indexed by the first variable and the second variable; decoding a syntax element associated with an intra-lode-flag code indexed by the first variable and the second variable; decoding a syntax element associated with a cross-attribute-type-prediction code indexed by the first variable and the second variable; and in response to determining that the syntax element associated with the cross-attribute-type-prediction code indexed by the first variable and the second variable is not equal to zero, performing operations including: decoding a syntax element associated with an attribute-encode-order code indexed by the first variable and the second variable; decoding a syntax element associated with a cross-attribute-type-predict-parameter-one code indexed by the first variable and the second variable; and decoding a syntax element associated with a cross-attribute-type-predict-parameter- two code indexed by the first variable and the second variable.
[00101] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the in response to determining the first variable equal to zero, decoding the second group of syntax elements indexed by the second variable includes: decoding a syntax element associated with a cross-component-prediction code indexed by the second variable; decoding a syntax element associated with an order-switch code indexed by the second variable; decoding a syntax element associated with a half-zero-runlength -enable code indexed by the second variable; decoding a syntax element associated with a chroma-Qp-offset-Cb code indexed by the second variable; decoding a syntax element associated with a chroma-Qp-offset-Cr code indexed by the second variable; decoding a syntax element associated with a color-reorder-mode code indexed by the second variable; and decoding a syntax element associated with a color-golomb-number code indexed by the second variable.
[00102] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the in response to determining the first variable not equal to zero, decoding the third group of syntax elements indexed by the second variable includes: decoding a syntax element associated with a nearest-prediction-parameter-one code indexed by the second variable; decoding a syntax element associated with a nearest-prediction-parameter-two code indexed by the second variable; decoding a syntax element associated with an axis-bias code indexed by the second variable; decoding a syntax element associated with a reflectance-reorder-mode code indexed by the second variable; and decoding a syntax element associated with a reflectance-golomb-number code indexed by the second variable. [00103] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the decoding the plurality of syntax elements in the syntax structure associated with the attribute header includes: decoding a fourth group of syntax elements indexed by the first variable and the second variable; in response to determining an attribute -present-flag code indexed by a first index not equal to zero, decoding a fifth group of syntax elements indexed by the second variable; and in response to determining an attribute-present-flag code indexed by a second index not equal to zero, decoding a reflectance-group- prediction code indexed by the second index.
[00104] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the decoding the fourth group of syntax elements indexed by the first variable and the second variable includes: decoding a syntax element associated with a transform code indexed by the first variable and the second variable; in response to determining that the syntax element associated with the transform code indexed by the first variable and the second variable is not equal to zero and the syntax element associated with the attribute-present-flag code indexed by the first variable is not equal to zero, performing operations including: decoding a syntax element associated with a max-number-of-coefficient code indexed by the first variable and the second variable; decoding a syntax element associated with a coefficient-lengthcontrol code indexed by the first variable and the second variable; decoding a syntax element associated with an attribute-transform-Qp-delta code indexed by the first variable and the second variable; decoding a syntax element associated with an initial-predict-transform-ratio code indexed by the first variable and the second variable; decoding a syntax element associated with a transform-resource-layer code indexed by the first variable and the second variable; decoding a syntax element associated with an attribute-transform- number-points code indexed by the first variable and the second variable; decoding a syntax element associated with a max-transform -number code indexed by the first variable and the second variable; decoding a syntax element associated with a Qp-offset-DC code indexed by the first variable and the second variable; and decoding a syntax element associated with a Qp-offset-AC code indexed by the first variable and the second variable.
[00105] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the in response to determining the attribute-present-flag code indexed by the first index not equal to zero, decoding the fifth group of syntax elements indexed by the second variable includes: in response to determining that the syntax element associated with the attribute-present-flag code indexed by the first index is not equal to zero, decoding a syntax element associated with a chroma-Qp-offset-DC code indexed by the second variable and a syntax element associated with a chroma-Qp-offset-AC code indexed by the second variable.
[00106] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the decoding the plurality of syntax elements in the syntax structure associated with the attribute header includes: decoding a fourth group of syntax elements; in response to determining an attribute-present-flag code indexed by a first index not equal to zero, decoding a fifth group of syntax elements; and in response to determining an attribute -present-flag code indexed by a second index not equal to zero, decoding a reflectance-group-prediction code.
[00107] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the decoding the fourth group of syntax elements includes: in response to determining that the syntax element associated with the attribute-present-flag code is not equal to zero, decoding a syntax element associated with a transform code; in response to determining that the syntax element associated with the transform code is not equal to zero and an attribute -present-flag code indexed by a first index or an attribute-present-flag code indexed by a second index is not equal to zero, performing operations including: decoding a syntax element associated with a max-number-of-coefficient code; decoding a syntax element associated with a coefficient-length-control code; decoding a syntax element associated with an attribute-transform-Qp-delta code; decoding a syntax element associated with an initial-predict-transform- ratio code; decoding a syntax element associated with a transform-resource-layer code; decoding a syntax element associated with an attribute-transform-number-points code; decoding a syntax element associated with a max-transform-number code; decoding a syntax element associated with a Qp-offset-DC code; and decoding a syntax element associated with a Qp-offset-AC code.
[00108] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the in response to determining the attribute-present-flag code indexed by the first index not equal to zero, decoding the fifth group of syntax elements includes: in response to determining that the syntax element associated with the attribute-present-flag code indexed by the first index is not equal to zero, decoding a syntax element associated with a chroma-Qp-offset-DC code and a syntax element associated with a chroma-Qp-offset-AC code. The example is provided below.
[00109] Example 2
[00110] For example, in AVS-GPCC, one type of attribute only supporting one parameter set is improved to support a wide range of GPCC applications in the present disclosure, e.g., supporting multiple attribute coding parameter sets for one type of attribute may be desirable. For example, the present disclosure provides to allow multiple attribute coding parameter sets for one type of attribute as shown in FIG. 8A.
[00111] FIG. 8A shows a table 800A illustrating a syntax structure associated with a function, sequence_header(), as shown in a box 810A, in a condition of a syntax element attribute_present_flag equal to a specified value (such as not equal to zero, e.g., equal to “1” or “TRUE”), a syntax element sps_multi_data_set_flag is introduced. For example, the syntax element sps_multi_data_set_flag equal to a specified value specifies that multiple attribute coding parameter sets are allowed for coding the current point cloud, and sps_multi_data_set_flag equal to 0 specifies that multiple attribute coding parameter sets are not allowed for coding the current point cloud. When sps_multi_data_set_flag is not present, a value of sps_multi_data_set_flag is inferred to be equal to 0.
[00112] FIGs. 8B1 and 8B2 shows a first part and a second part of a table 800B illustrating a syntax structure associated with a function, attribute_header(), in a first iterative loop with a first variable attrldx from 0 incremental to a maximum integer less than a value of (maxNum Attribute sMinusl + 1), operations are performed on each integer (such as 0, 1, maxNum Attribute sMinus 1-1, maxNumAttributesMinusl) of different integers defined by the first variable attrldx, e.g., a syntax element attribute PresentFlagfattrldx] and a condition of attributePresentFlag[ attrldx ] equal to a specified value are maintained. In the condition of attributePresentFlag [attrldx] equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown in a box 610B, a syntax element multi data set flag [attrldx] in a condition of the syntax element sps_multi_data_set_flag equal to a specified value and a syntax element attribute num data set minus 1 [attrldx] in a condition of the syntax element multi data set flag [attrldx] equal to a specified value are introduced.
[00113] Further, in FIG. 8B1, as shown at the box 810B, a second iterative loop with a second variable i from 0 incremental to a maximum integer less than a value of (attribute num data set minus 1 [attrldx]+l) is introduced. In the second iterative loop with the second variable i, operations are performed on each integer of different integers (such as 0, 1, ... , attribute_num_data_set_minusl[attrldx]-l, attribute num data set minus 1 [attrldx]) defined by the second variable i, e.g., a syntax element outputBitDepthMinus 1 [attrldx] [i] is modified to be indexed from attrldx to attrldx and i. In a condition of attrldx equal to 0 or attrldx equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown in a box 820B, a plurality of syntax elements are modified to be indexed from attrldx to attrldx and i, such as maxNumOfNeighboursLog2Minus7 [attrldx] [i] , numOflevelOfDetail [attrldx] [i] , maxNumOfPredictNeighbours [attrldx] [i], and intraLodFlag [attrldx] [i]. Besides, there are syntax elements crossAttrTypePred[attrIdx][i] modified from no index to be indexed by attrldx and i.
[00114] For example, in FIG. 8B1, as shown the box 820B, in a condition of crossAttrTypePred[attrIdx][i] equal to a specified value (such as a non-zero value “1” or “TRUE”), a plurality of syntax elements are modified from no index to be indexed by attrldx and i, such as attrEncode Order [attrldx] [i], crossAttrTypePredParam 1 [attrldx] [i] , and crossAttrTypePredParam2[attrIdx] [i] .
[00115] In addition, in FIG. 8B1, in a condition of attrldx equal to 0, as shown in a box 830B, a plurality of syntax elements are modified from no index to be indexed by i, such as cross_component_Pred[i], orderSwitchfi], half_zero_runlength_enable[i], chromaQpOffsetCbfi], chromaQpOffsetCrfi], colorReorderModefi], and colorGolombNum|i |. Similarly, in another condition of attrldx equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown in a box 840B, a plurality of syntax elements are modified from no index to be indexed by i, such as nearestPredParamlfi], nearestPredParam2[i], axisBiasfi], refReorderModefi], and rcfGolombNum| i |.
[00116] Further, in FIG. 8B2, as shown in a box 850B, a stopping boundary to the condition of attributePresentFlag [attrldx] equal to a specified value and a stopping boundary to the first iterative loop with a first variable attrldx from 0 incremental to maxNumAttributesMinusl + 1 are removed before a syntax element transform, wherein the syntax element transform is modified from no index to be indexed by attrldx and i, shown as syntax elements transform [attrldx] [i],
[00117] Furthermore, in FIG. 8B2, as shown at the box 850B, a syntax element transform in which the descriptor is modified to “ue(v)” is modified from no index to be indexed by attrldx and i , and then in a condition of transform [attrldx] [i] equal to a specified value and attribute PresentFlag[attrIdx] equal to a specified value (such as a non-zero value “1” or “TRUE”), instead of attributePresentFlag[O] equal to a specified value and attribute Present Flag 11 ] equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown in a box 860B, a plurality of syntax elements are modified from no index to be indexed by attrldx and i, such as maxNumofCoeff[attr!dx][i], coeffLengthControl [attrldx] [i], attrTransformQpDeltafattrldx] [i] , initPredTransRatio [attrldx] [i] , transResLayer [attrldx] [i] , attrTransformNumPoints [attrldx] [i], maxTransNum[attr!dx][i], QpOffsetDC[attrIdx][i], and QpOffsctAC’l attrldx | [i] .
[00118] Moreover, in FIG. 8B2, in a condition of attributePresentFlag[O] equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown a box 870B, a plurality of syntax elements are modified from no index to be indexed by i, such as chromaQpOffsetDC[i] and chromaQpOffsetAC[i]; in a condition of attributcPrcscntFlagl 1 1 equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown in a box 880B, a syntax element is modified from no index to be indexed by i, such as RefGroupPredfi] . Furthermore, in FIG. 8B2, as shown in a box 890B, stopping boundaries to the second iterative loop with the second variable i, the condition of attributePresentFlagfattrldx] equal to a specified value (such as a non-zero value “1” or “TRUE”), and the first iterative loop with the first variable attrldx are added before a function, byte_alignment().
[00119] For example, as shown in FIGs. 8B1 and 8B2, the syntax element multi data set flag [attrldx] equal to a specified value (such as equal to “1”) specifies that multiple attribute coding parameter sets are allowed for the current type of attribute and the number of allowed attribute coding parameter sets will be further specified by attribute num data set minus 1 ; the syntax element multi data set flag [attrldx] equal to 0 specifies that multiple attribute coding parameter sets are not allowed for the current type of attribute and the number of allowed attribute coding parameter sets is equal to a specified value. When multi data set flag [attrldx] is not present, the value of multi data set flag [attrldx] is inferred to be equal to 0.
[00120] For example, as shown in FIGs. 8B1 and 8B2, the syntax element attribute num data set minus 1 [attrldx] plus 1 specifies the allowed number of parameter sets for coding the current, attrldx, type of attribute. The value of attribute num data set minus 1 shall be in the range of 0 to 15, inclusive, when attribute num data set minus 1 [attrldx] is not present, the value of attribute num data set minus 1 [attrldx] is inferred to be equal to 0. In addition, a number of allowed attribute coding parameter sets will be calculated as: num allowed attribute coding = attribute num data set minus 1 + 1.
[00121] In addition, all attributes may use the same transform-related syntax, an alternative table could be specified as follows. For example, FIG. 8C shows a table 800C illustrating a syntax structure associated with a function, sequence_header() with a syntax element sps_multi_data_set_flag, as shown in a box 810C, that is identical to the syntax table in the function sequence_header() shown as the box 810A in FIG. 8A. [00122] FIGs. 8D1 and 8D2 shows a first part and a second part of a table 800D illustrating a syntax structure associated with a function, attribute_header() that is similar to the function attribute_header() shown in FIGs. 8B1 and 8B2. As shown in FIG. 8D1, in a first iterative loop with a first variable attrldx from 0 incremental to a maximum integer less than a value of (maxNumAttributesMinus 1 + 1), operations are performed on each integer of different integers (such as 0, 1, ... , maxNumAttributesMinus 1-1, maxNumAttributesMinus 1) defined by the first variable attrldx, e.g., a syntax element attributePresentFlag [attrldx] and a condition of attributePresentFlag [attrldx] equal to a specified value are maintained. In a condition of attributePresentFlag [attrldx] equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown in a box 810D (that is identical to the box 810B in the FIG. 8B 1), a syntax element “multi data set flag [attrldx]” in a condition of the syntax element sps multi data set flag equal to a specified value and a syntax element attribute num data set minus 1 [attrldx] in a condition of multi data set flag [attrldx] equal to a specified value are introduced.
[00123] Further, in FIG. 8D1, as shown at the box 810D, a second iterative loop with a second variable i from 0 incremental to a maximum integer less than a value of (attribute num data set minus 1 [attrldx]+l) is introduced. In the second iterative loop with the second variable i, operations are performed on each integer of different integers (such as 0, 1, ... , attribute_num_data_set_minusl[attrldx]-l, attribute num data set minus 1 [attrldx]) defined by the second variable i, e.g., a syntax element outputBitDepthMinus 1 [attrldx] [i] is modified to be indexed from attrldx to attrldx and i. In a condition of attrldx equal to 0 or attrldx equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown in a box 820D (that is identical to the box 820B in the FIG. 8B 1), a plurality of syntax elements are modified to be indexed from attrldx to attrldx and i, such as maxNumOfNeighboursLog2Minus7 [attrldx] [i], numOflevelOfDetail[attrIdx][i], maxNumOfPredictNeighbours[attrIdx][i], and intraLodFlag [attrldx] [i]. Besides, there are syntax elements crossAttrTypePred[attrIdx][i] modified from no index to be indexed by attrldx and i.
[00124] For example, in FIG. 8D1, as shown the box 820D, in a condition of crossAttrTypePred[attrIdx][i] equal to a specified value (such as a non-zero value “1” or “TRUE”), a plurality of syntax elements are modified from no index to be indexed by attrldx and i, such as attrEncode Order [attrldx] [i], crossAttrTypePredParam 1 [attrldx] [i] , and crossAttrTypePredParam2[attrIdx] [i] .
[00125] In addition, in FIGs. 8D1 and 8D2, in a condition of attrldx equal to 0, as shown in a box 830D (that is identical to the box 830B in the FIG. 8B1), a plurality of syntax elements are modified from no index to be indexed by i, such as cross_component_Pred[i], orderSwitchfi], half_zero_runlength_enable[i], chromaQpOffsetCbfi], chromaQpOffsetCrfi], colorReorderModefi], and colorGolombNum| i |. Similarly, in another condition of attrldx equal to a specified value (such as a non-zero value “1” or “TRUE”), as shown in a box 840D (that is identical to the box 840B in the FIG. 8B 1), a plurality of syntax elements are modified from no index to be indexed by i, such as nearest PredParam 1 [i ], nearestPredParam2[i], axisBiasfi], refReorderModefi], and refGolombNumfi], [00126] Further, in FIG. 8D2, as shown in a box 850D, a stopping boundary to the second iterative loop with the second variable i is added before a stopping boundary to the condition of the syntax element attribute PresentFlag[attrIdx] equal to the specified value and a stopping boundary to the first iterative loop with a variable attrldx from 0 incremental to maxNumAttributesMinus 1 + 1.
[00127] Furthermore, in FIG. 8D2, as shown in a box 860D, a condition of the syntax element attribute_present_flag equal to a specified value (such as a non-zero value “1” or “TRUE”) is introduced, a syntax element transform in which the descriptor is modified to “ue(v)” is introduced. Then, a plurality of syntax elements before a function, byte_alignment () are maintained, e.g., maxNumofCoeff, coeffLengthControl, attrTransformQpDelta, initPredTransRatio, transResLayer, attrTransformNumPoints, maxTransNum, QpOffsetDC, and QpOffsetAC will be performed in a condition of (transform and (attributcPrcscntFlag|O| or attributcPrcscntFlagl 1 1)) equal to a specified value (such as anon-zero value “1” or “TRUE”); chromaQpOffsetDC and chromaQpOffsetAC will be performed in a condition of attributcPrcscntFlagl 01 equal to a specified value (such as a non-zero value “1” or “TRUE”); RefGroupPred will be performed in a condition of attributcPrcscntFlagl 1 1 equal to a specified value (such as a non-zero value “1” or “TRUE”).
[00128] Correspondingly, embodiments for the bitstream encoding process for the multiple attribute coding parameter sets are provided below.
[00129] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the SPS-multiple-data-set-flag code specifies whether multiple attribute coding parameter sets are allowed for coding a current point cloud.
[00130] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, in response to encoding the bitstream associated with GPCC including the syntax structure associated with the sequence header having the SPS-multiple-data-set-flag code, includes: encoding a syntax element associated with an attribute-present-flag code into the syntax structure associated with the sequence header based on determining whether attribute data is present; in response to determining the syntax element associated with the attribute-present-flag code being not equal to zero, performing operations including: in response to determining the syntax element associated with the SPS-multiple-data- set-flag code being present in the syntax structure associated with the sequence header, encoding the syntax element associated with the SPS-multiple-data-set-flag code into the syntax structure associated with the sequence header based on a value of the SPS-multiple-data-set-flag code; and in response to determining the syntax element associated with the SPS-multiple-data-set-flag code being not present in the syntax structure associated with the sequence header, determining the value of the SPS-multiple-data-set-flag code is equal to zero.
[00131] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, in response to encoding the bitstream associated with GPCC including the syntax structure associated with the sequence header has the SPS-multiple-data-set-flag code, includes: in response to determining the syntax element associated with the attribute-present-flag code being not equal to zero, performing operations including: encoding a syntax element associated with a max-number-attribute s- minus-one code into the syntax structure associated with the sequence header after encoding the syntax element associated with the SPS-multiple-data-set-flag code.
[00132] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, further includes: performing a respective one of a plurality of operation groups defined by a first iterative loop with a first variable from zero incremental to a maximum integer less than a sum of a value of the max-number-attributes-minus-one code plus one, in a syntax structure associated with an attribute header, including: encoding a syntax element associated with an attribute-present-flag code indexed by the first variable; and in response to determining that the syntax element associated with the attribute -present-flag code indexed by the first variable is not equal to zero, performing operations including: in response to determining that the syntax element of the SPS-multiple-data-set-flag code is not equal to zero, determining a syntax element associated with a multiple -data-set-flag code indexed by the first variable; in response to determining that the syntax element associated with the multiple -data-set-flag code indexed by the first variable is not equal to zero, determining a syntax element associated with an attribute- number-data-set-minus-one code indexed by the first variable; and performing a respective one of a plurality of operation groups defined by a second iterative loop with a second variable from zero incremental to a maximum integer less than a sum of a value of the attribute-number-data-set-minus-one code indexed by the first variable plus one, including: encoding a syntax element associated with an output- bit-depth-minus-one code indexed by the first variable and the second variable; in response to determining the first variable equal to zero or the first variable not equal to zero, encoding a first group of syntax elements indexed by the first variable and the second variable; in response to determining the first variable equal to zero, encoding a second group of syntax elements indexed by the second variable; and in response to determining the first variable not equal to zero, encoding a third group of syntax elements indexed by the second variable; and encoding a plurality of syntax elements in the syntax structure associated with the attribute header.
[00133] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the in response to determining that the syntax element of the SPS-multiple-data-set-flag code is not equal to zero, determining the syntax element associated with the multiple -data-set-flag code indexed by the first variable includes: determining whether the syntax element associated with the multiple -data- set-flag code indexed by the first variable is present; in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being present, encoding the syntax element associated with the multiple -data-set-flag code indexed by the first variable; and in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being not present, determining that the syntax element associated with the multiple -data-set-flag code indexed by the first variable equal to zero.
[00134] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the in response to determining that the syntax element associated with the multiple -data-set- flag code indexed by the first variable is not equal to zero, determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable, includes: in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being present, encoding the syntax element associated with the attribute-number-data-set- minus-one code indexed by the first variable; and in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being not present, determining that the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable equal to zero.
[00135] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the in response to determining the first variable equal to zero or the first variable not equal to zero, encoding the first group of syntax elements indexed by the first variable and the second variable includes: encoding a syntax element associated with a max-number-of-neighbours-log2-minus-seven code indexed by the first variable and the second variable; encoding a syntax element associated with a number- of-level-of-detail code indexed by the first variable and the second variable; encoding a syntax element associated with a max-number-of-predict-neighbours code indexed by the first variable and the second variable; encoding a syntax element associated with an intra-lode-flag code indexed by the first variable and the second variable; encoding a syntax element associated with a cross-attribute-type-prediction code indexed by the first variable and the second variable; and in response to determining that the syntax element associated with the cross-attribute-type-prediction code indexed by the first variable and the second variable is not equal to zero, performing operations including: encoding a syntax element associated with an attribute-encode-order code indexed by the first variable and the second variable; encoding a syntax element associated with a cross-attribute-type-predict-parameter-one code indexed by the first variable and the second variable; and encoding a syntax element associated with a cross-attribute-type-predict-parameter- two code indexed by the first variable and the second variable.
[00136] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the in response to determining the first variable equal to zero, encoding the second group of syntax elements indexed by the second variable includes: encoding a syntax element associated with a cross-component-prediction code indexed by the second variable; encoding a syntax element associated with an order-switch code indexed by the second variable; encoding a syntax element associated with a half-zero-runlength-enable code indexed by the second variable; encoding a syntax element associated with a chroma-Qp-offset-Cb code indexed by the second variable; encoding a syntax element associated with a chroma-Qp-offset-Cr code indexed by the second variable; encoding a syntax element associated with a color-reorder-mode code indexed by the second variable; and encoding a syntax element associated with a color-golomb-number code indexed by the second variable.
[00137] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the in response to determining the first variable not equal to zero, encoding the third group of syntax elements indexed by the second variable includes: encoding a syntax element associated with a nearest-prediction-parameter-one code indexed by the second variable; encoding a syntax element associated with a nearest-prediction-parameter-two code indexed by the second variable; encoding a syntax element associated with an axis-bias code indexed by the second variable; encoding a syntax element associated with a reflectance-reorder-mode code indexed by the second variable; and encoding a syntax element associated with a reflectance-golomb-number code indexed by the second variable.
[00138] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the encoding the plurality of syntax elements in the syntax structure associated with the attribute header includes: performing the respective one of the plurality of operation groups defined by the second iterative loop with the second variable from zero incremental to the maximum integer less than the sum of the value of the attribute-number-data-set-minus-one code indexed by the first variable plus one, including: encoding a fourth group of syntax elements indexed by the first variable and the second variable; in response to determining an attribute-present-flag code indexed by a first index not equal to zero, encoding a fifth group of syntax elements indexed by the second variable; and in response to determining an attribute- present-flag code indexed by a second index not equal to zero, encoding a reflectance-group-prediction code indexed by the second index.
[00139] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the encoding the fourth group of syntax elements indexed by the first variable and the second variable includes: encoding a syntax element associated with a transform code indexed by the first variable and the second variable; in response to determining that the syntax element associated with the transform code indexed by the first variable and the second variable is not equal to zero and the syntax element associated with the attribute-present-flag code indexed by the first variable is not equal to zero, performing operations including: encoding a syntax element associated with a max-number-of-coefficient code indexed by the first variable and the second variable; encoding a syntax element associated with a coefficient-lengthcontrol code indexed by the first variable and the second variable; encoding a syntax element associated with an attribute-transform-Qp-delta code indexed by the first variable and the second variable; encoding a syntax element associated with an initial-predict-transform-ratio code indexed by the first variable and the second variable; encoding a syntax element associated with a transform-resource-layer code indexed by the first variable and the second variable; encoding a syntax element associated with an attribute-transform- number-points code indexed by the first variable and the second variable; encoding a syntax element associated with a max-transform -number code indexed by the first variable and the second variable; encoding a syntax element associated with a Qp-offset-DC code indexed by the first variable and the second variable; and encoding a syntax element associated with a Qp-offset-AC code indexed by the first variable and the second variable.
[00140] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the in response to determining the attribute-present-flag code indexed by the first index not equal to zero, encoding the fifth group of syntax elements indexed by the second variable includes: in response to determining that the syntax element associated with the attribute -present-flag code indexed by the first index is not equal to zero, encoding a syntax element associated with a chroma-Qp-offset-DC code indexed by the second variable and a syntax element associated with a chroma-Qp-offset-AC code indexed by the second variable.
[00141] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the encoding the plurality of syntax elements in the syntax structure associated with the attribute header includes: encoding a fourth group of syntax elements; in response to determining an attribute-present-flag code indexed by a first index not equal to zero, encoding a fifth group of syntax elements; and in response to determining an attribute -present-flag code indexed by a second index not equal to zero, encoding a reflectance-group-prediction code.
[00142] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the encoding the fourth group of syntax elements includes: in response to determining that the syntax element associated with the attribute -present-flag code is not equal to zero, encoding a syntax element associated with a transform code; in response to determining that the syntax element associated with the transform code is not equal to zero and an attribute -present-flag code indexed by a first index or an attribute-present-flag code indexed by a second index is not equal to zero, performing operations including: encoding a syntax element associated with a max-number-of-coefficient code; encoding a syntax element associated with a coefficient-length-control code; encoding a syntax element associated with an attribute-transform-Qp-delta code; encoding a syntax element associated with an initial-predict-transform- ratio code; encoding a syntax element associated with a transform-resource-layer code; encoding a syntax element associated with an attribute-transform-number-points code; encoding a syntax element associated with a max-transform-number code; encoding a syntax element associated with a Qp-offset-DC code; and encoding a syntax element associated with a Qp-offset-AC code.
[00143] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the in response to determining the attribute-present-flag code indexed by the first index not equal to zero, encoding the fifth group of syntax elements includes: in response to determining that the syntax element associated with the attribute-present-flag code indexed by the first index is not equal to zero, encoding a syntax element associated with a chroma-Qp-offset-DC code and a syntax element associated with a chroma-Qp-offset-AC code.
[00144] Attribute data
[00145] In addition, the present disclosure provides the following example for supporting more attribute coding data, such as color attribute data and reflectance attribute data, for improving efficiency for geometry point cloud coding.
[00146] For example, embodiments for the bitstream decoding process for supporting more attribute coding data are provided below.
[00147] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the attribute data includes color attribute data and reflectance attribute data. [00148] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, in response to decoding the bitstream associated with GPCC including the syntax structure of the general-attribute-data bitstream having the plurality of syntax elements associated with attribute data, includes: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max- number-attributes-minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, including: in response to determining that the third variable is equal to zero and the attribute- present-flag code indexed by a first index is not equal to zero, performing operations including: performing an attribute -data-color function to decode a syntax element associated with an attribute-data-color code; and performing a byte -alignment function to align data in the bitstream in bytes; and in response to determining that the third variable is not equal to zero and the attribute-present-flag code indexed by a second index is not equal to zero, performing operations including: performing an attribute-data-reflectance function to decode a syntax element associated with an attribute-data-reflectance code; and performing the byte -alignment function.
[00149] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, in response to decoding the bitstream associated with GPCC including the syntax structure of the general-attribute-data bitstream having the plurality of syntax elements associated with attribute data, includes: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max- number-attributes-minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, including: in response to determining that the third variable is equal to zero and the attribute- present-flag code indexed by a first index is not equal to zero, performing operations including: performing a respective one of a plurality of operation groups defined by a fourth iterative loop with a fourth variable from zero incremental to a maximum integer less than a sum of a value of a max-number-attributes-minus- one code plus one, including: performing an attribute-data-color function to decode a syntax element associated with an attribute-data-color code; and performing a byte-alignment function to align data in the bitstream in bytes; and in response to determining that the first variable is not equal to zero and the attribute- present-flag code indexed by a second index is not equal to zero, performing operations including: performing the respective one of the plurality of operation groups defined by the fourth iterative loop with the fourth variable from zero incremental to the maximum integer less than the sum of the value of the max- number-attributes-minus-one code plus one, including: performing an attribute-data-reflectance function to decode a syntax element associated with an attribute-data-reflectance code; and performing the bytealignment function. The example is provided below.
[00150] The present disclosure provides that more attribute coding data are supported in the general attribute data bitstreams. The provided syntax is specified as shown in FIG. 9A.
[00151] FIG. 9A shows a table 900A illustrating a syntax structure associated with a function, general attribute data bitstream (), as shown in a box 910A, a third iterative loop with a third variable attrldx from 0 incremental to a maximum integer less than a value of (maxNumAttributesMinus 1 + 1) is introduced. In the third iterative loop with the third variable attrldx, functions such as attribute_data_color() and byte_alignment() will be performed in a condition that is modified from attributePresentFlag[O] equal to a specified value (such as a non-zero value “1” or “TRUE”) to attrldx equal 0 and attribute PresentFlag[O] equal to a specified value (such as a non-zero value “1” or “TRUE”); as shown in a box 920A, functions such as attribute data reflectance () and byte_alignment() will be performed in a condition that is modified from attributcPrcscntFlagl 1 1 equal to the specified value to attrldx equal 1 and attributePresentFlagf 1 ] equal to the specified value. In addition, as shown in a box 930 A, a stopping boundary to the iterative loop with the third variable attrldx is correspondingly introduced.
[00152] Alternatively, if more than one data parameter set are supported for one type of attribute, the corresponding syntax changes are specified as shown in FIG. 9B.
[00153] FIG. 9B shows a table 900B illustrating a syntax structure associated with a function, general attribute data bitstream (), as shown in a box 910B, the third iterative loop with a variable attrldx from 0 incremental to the maximum integer less than the value of (maxNumAttributesMinus 1 + 1) is introduced. In the third iterative loop with the variable attrldx, as shown at the box 910B, a condition is modified from attributcPrcscntFlagl 0| equal to the specified value to attrldx equal 0 and attributcPrcscntFlagl 01 equal to the specified value. In the condition of attrldx equal 0 and attributcPrcscntFlagl 01 equal to the specified value, as shown at the box 81 OF, a fourth iterative loop with a fourth variable i from 0 incremental to a maximum integer less than a value of (attribute num data set minus 1 [attrldx] +1) is introduced to perform more than one data parameter set, such as performing functions attribute data color () and byte alignment (). In the third iterative loop with the variable attrldx, as shown in a box 920B, a condition is modified from attribute PrcscntFlagl 1 1 equal to the specified value to attrldx equal 1 and attributcPrcscntFlagl 1 1 equal to the specified value. In the condition of attrldx equal 1 and attributcPrcscntFlagl 1 1 equal to the specified value, as shown at the box 920B, another fourth iterative loop with the fourth variable i from 0 incremental to a maximum integer less than a value of (attribute num data set minus 1 [attrldx] +1) is introduced to perform more than one data parameter set, such as performing functions attribute data reflectance () and byte alignment (). In addition, as shown in boxes 930B and 940B, stopping boundaries to the third and fourth iterative loops are correspondingly introduced.
[00154] For example, maxNumAttributesMinus 1 could be set no greater than an integer number, e.g., N to reflect profile and level constrain. For example, in AVS-GPCC, N could be set as 1. Similarly, attribute num data set minus 1 [attrldx] could also be set no greater than an integer number, e.g., M to reflect profile and level constrain. For example, in AVS-GPCC, M could be set as 0.
[00155] Correspondingly, embodiments for the bitstream encoding process for supporting more attribute coding data are provided below.
[00156] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the attribute data includes color attribute data and reflectance attribute data. [00157] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, in response to encoding the bitstream associated with GPCC including the syntax structure of the general-attribute-data bitstream having the plurality of syntax elements associated with attribute data, includes: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max- number-attributes-minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, including: in response to determining that the third variable is equal to zero and the attribute- present-flag code indexed by a first index is not equal to zero, performing operations including: performing an attribute -data-color function to encode a syntax element associated with an attribute-data-color code; and performing a byte -alignment function to align data in the bitstream in bytes; and in response to determining that the third variable is not equal to zero and the attribute-present-flag code indexed by a second index is not equal to zero, performing operations including: performing an attribute-data-reflectance function to encode a syntax element associated with an attribute-data-reflectance code; and performing the byte -alignment function.
[00158] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, in response to encoding the bitstream associated with GPCC including the syntax structure of the general-attribute-data bitstream having the plurality of syntax elements associated with attribute data, includes: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max- number-attributes-minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, including: in response to determining that the third variable is equal to zero and the attribute- present-flag code indexed by a first index is not equal to zero, performing operations including: performing a respective one of a plurality of operation groups defined by a fourth iterative loop with a fourth variable from zero incremental to a maximum integer less than a sum of a value of a max-number-attributes-minus- one code plus one, including: performing an attribute-data-color function to encode a syntax element associated with an attribute-data-color code; and performing a byte -alignment function to align data in the bitstream in bytes; and in response to determining that the first variable is not equal to zero and the attribute- present-flag code indexed by a second index is not equal to zero, performing operations including: performing the respective one of the plurality of operation groups defined by the fourth iterative loop with the fourth variable from zero incremental to the maximum integer less than the sum of the value of the max- number-attributes-minus-one code plus one, including: performing an attribute-data-reflectance function to encode a syntax element associated with an attribute-data-reflectance code; and performing the bytealignment function.
[00159] Extensions
[00160] In addition, in order to add more coding tools, it is provided that the interface supporting compatibility with extensions. The present disclosure provides the following examples for the extension, for improving efficiency for geometry point cloud coding, such as used in the present version or a further version for AVS-GPCC.
[00161] For example, embodiments for the bitstream decoding process for the extension purpose are provided below.
[00162] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the decoding the bitstream associated with GPCC including the syntax structure having the syntax element associated with the extension flag to determine the extension data includes: decoding the syntax element associated with the extension flag; in response to determining the syntax element associated with the extension flag being not equal to zero, determining a syntax element associated with an extension length based on the extension data; and decoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length.
[00163] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, in response to determining the syntax element associated with the extension flag being not equal to zero, determining the syntax element associated with the extension length based on the extension data, includes: in response to determining the syntax element associated with the extension length not present in the syntax structure, determining a value of the extension length is equal to zero; and in response to determining the syntax element associated with the extension length present in the syntax structure, decoding the syntax element associated with the extension length from the syntax structure to determine the value of the extension length. For example, the value of the extension length is ranged from 0 to 256.
[00164] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the decoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length includes: performing a respective one of a plurality of operation groups defined by an iterative loop with a variable from zero incremental to a maximum integer less than the value of the extension length, including: decoding one syntax element associated with the extension data in a form of byte from the syntax structure.
[00165] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the decoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length includes: iteratively performing: in response to determining that there is more data in a form of bit in the syntax structure based on the extension length, decoding one syntax element associated with the extension data in the form of bit from the syntax structure. [00166] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the iteratively performing: in response to determining that there is more data in a form of bit in the syntax structure based on the extension length, decoding one syntax element associated with the extension data in the form of bit from the syntax structure includes: iteratively performing: determining that whether a difference between a current position in the syntax structure and a position immediately following the extension length being less than a value calculated by the extension length multiplied by eight is true or false; in response to determining that the difference between the current position in the syntax structure and the position immediately following the extension length being less than the value calculated by the extension length multiplied by eight is true, decoding one syntax element associated with the extension data in the form of one bit from the syntax structure.
[00167] In some embodiments, as illustrated by the bitstream decoding method 500 shown in FIG. 5, at the box 510, the syntax structure is associated with a sequence header, a geometry header, an attribute header, a geometry slice header, an attribute slice header, or a general attribute data bitstream for GPCC.
[00168] Examples 3 to 8 for illustrating different extensions are provided below.
[00169] Example 3
[00170] The extension for a sequence header is illustrated in FIG. 10A.
[00171] FIG. 10A shows a table 1000A illustrating a syntax structure associated with a function, sequence_header(), in which a plurality of syntax elements are maintained, such as profde_id, level_id, . . . , and attribute_present_flag, as well as, in a condition of attribute_present_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), attribute_adapt_pred, colorQuantParam, reflQuantParam, and maxNumAttributesMinus 1 will be performed. In addition, syntax elements are introduced before a function, byte_alignment(). In addition, in FIG. 10A, as shown in a box 1010A, a syntax element sequence_extension_flag is introduced. In a condition of the syntax element sequence_extension_flag equal to a specified value (such as a non-zero value “1 ” or “TRUE”), a syntax element sequence_extension_length is introduced, and an iterative loop with a variable i from 0 incremental to sequence_extension_length-l (e.g., i < sequence_extension_length) is introduced. In the iterative loop with the variable i, syntax elements sequence_extension_data_byte[i] are introduced.
[00172] For example, the syntax element sequence_extension_flag equal to 0 specifies that the syntax elements such as sequence_extension_length and sequnce_extension_data_byte are not present in the syntax structure, “sequence header.” In addition, the syntax element sequence_extension_flag equal to 1 specifies that sequence_extension_length and the syntax element sequnce_extension_data_byte may be present in the syntax structure, “sequence header.” Further, the syntax element sequence_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure. However, some use of the syntax element sequence_extension_flag equal to 1 could be specified in other versions, and decoders conforming to the present disclosure shall allow the value of the syntax element sequence_extension_flag equal to 1 to appear in the syntax.
[00173] In addition, the syntax element sequence_extension_length specifies the length of the sequence extension data in bytes, not including the bits used for signalling the syntax element sequnce_extension_length itself. When sequence_extension_length is not present, the value of sequence_extension_length is inferred to be equal to 0. Although the syntax element sequnce_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element sequnce_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element sequence_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive. [00174] Further, the syntax element sequence_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the values of each of the syntax element sequence_extension_data_byte[i]. Its value does not affect the decoding process specified in the present disclosure
[00175] In addition, an example of an alternative syntax table is illustrated as follows.
[00176] FIG. 10B shows a table 1000B illustrating a syntax structure associated with a function, sequence_header(), in which a plurality of syntax elements are maintained, such as profile_id, level_id, . . . , and attribute_present_flag, as well as, in a condition of attribute_present_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), attribute_adapt_pred, colorQuantParam, refl QuantParam, and maxNum Attribute sMinusl will be performed. In addition, syntax elements are introduced before a function, byte_alignment(). Similar to FIG. 10A, a syntax element sequence extension data bit is introduced in FIG. 10B other than the syntax elements sequence extension data byte in FIG. 10A. For example, in FIG. 10B, as shown in a box 1010B, a syntax element sequence extension flag is introduced. In a condition of the syntax element sequence_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element sequence extension length is introduced, and a condition of a function, more_data_in_sequence_header_extension() returning a specified value (such as “TRUE”) is introduced. In the condition of the function more_data_in_sequence_header_extension() returning the specified value, a syntax element sequence_extension_data_bit is introduced.
[00177] For example, the syntax element sequence_extension_data_bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the values of each of the syntax element sequence_extension_data_bit. Its value does not affect the decoding process specified in the present disclosure.
[00178] In addition, more_data_in_sequence_header_extension() is specified as follows:
[00179] If (the current position in the sequence_header() syntax structure) - (the position immediately following sequence_extension_length) is less than (sequence_extension_length * 8), the return value of more_data_in_sequence_header_extension() is equal to TRUE. Otherwise, the return value of more_data_in_sequence_header_extension() is equal to FALSE.
[00180] Example 4
[00181] The extension for a geometry header is illustrated in FIG. 11A.
[00182] FIG. 11A shows a table 1100A illustrating a syntax structure associated with a function, geometry_header(), in which a plurality of syntax elements are maintained, such as gps_lcu_node_size_log2_minus_one and gps implicit gcom partition flag. as well as, in a condition of gps implicit gcom partition flag equal to a specified value (such as a non-zero value “1” or “TRUE”) before syntax elements gps_single_mode_flag and gps_save_state_flag, gps_max_num_implicit_qtbt_before_ot and gps min size implicit qtbt will be performed. In addition, in FIG. 11 A, as shown in a box 1110A, a syntax element geometry extension flag is introduced. In a condition of the syntax element geometry_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element geometry _extension_length is introduced, and an iterative loop with a variable i from 0 incremental to geometry _extension_length-l (e.g., i < geometry_extension_length) is introduced. In the iterative loop with the variable i, syntax elements geometry_extension_data_byte[i] are introduced.
[00183] For example, the syntax element geometry_extension_flag equal to 0 specifies that the syntax elements such as geometry_extension_length and geometry_extension_data_byte are not present in the syntax structure, “geometry header.” In addition, the syntax element geometry_extension_flag equal to 1 specifies that syntax elements such as geometry_extension_length and geometry_extension_data_byte may be present in the syntax structure, “geometry header.” Further, the syntax element geometry_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure. However, some use of the syntax element geometry_extension_flag equal to 1 could be specified in other versions, and decoders conforming to the present disclosure shall allow the value of the syntax element geometry_extension_flag equal to 1 to appear in the syntax.
[00184] In addition, the syntax element geometry_extension_length specifies the length of the geometry extension data in bytes, not including the bits used for signalling the syntax element geometry_extension_length itself. When geometry_extension_length is not present, a value of geometry_extension_length is inferred to be equal to 0. Although the syntax element geometry_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element geometry_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element geometry_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive.
[00185] Further, the syntax element geometry_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements geometry_extension_data_byte[i]. Its value does not affect the decoding process specified in the present disclosure.
[00186] In addition, an example of an alternative syntax table is illustrated in FIG. 1 IB.
[00187] FIG. 11B shows a table 1100B illustrating a syntax structure associated with a function, geometry_header(), in which the extension with geometry_extension_data_bit other than geometry_extension_data_byte is introduced before a function byte_alignment(), e.g., a plurality of syntax elements are maintained, such as gps_lcu_node_size_log2_minus_one and gps implicit gcom partition flag. as well as, in a condition of gps implicit gcom partition flag equal to a specified value (such as a non-zero value “1” or “TRUE”) before syntax elements gps_single_mode_flag and gps save state flag, gps_max_num_implicit_qtbt_before_ot and gps min size implicit qtbt will be performed. Similar to FIG. 11A, a syntax element geometry extension data bit is introduced in FIG. 1 IB other than the syntax element geometry extension data byte in FIG. 11A. For example, in FIG. 1 IB, as shown in a box 1110B, a syntax element geometry extension flag is introduced. In a condition of the syntax element geometry_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element geometry extension length is introduced, and a condition of a function, morc_data_in_gcomctry_hcadcr_cxtcnsion() returning a specified value (such as “TRUE”) is introduced. In the condition of the function morc_data_in_gcomctry_hcadcr_cxtcnsion() returning the specified value, a syntax element geometry_extension_data_bit is introduced.
[00188] For example, the syntax element geometry_extension_data_bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements geometry_header_extension_data_bit. Its value does not affect the decoding process specified in the present disclosure.
[00189] In addition, the function morc_data_in_gcomctry_hcadcr_cxtcnsion() is specified as follows: [00190] If (the current position in the geometry_header() syntax structure) - (the position immediately following geometry_extension_length) is less than (geometry_extension_length * 8), the return value of morc_data_in_gcomctry_hcadcr_cxtcnsion() is equal to TRUE. Otherwise, the return value of morc_data_in_gcomctry_hcadcr_cxtcnsion() is equal to FALSE.
[00191] Example 5
[00192] The extension for an attribute header is illustrated in FIG. 12A.
[00193] FIG. 12A shows a table 1200A illustrating a syntax structure associated with a function, attribute_header(), in which the extension is introduced before a function byte_alignment(), as shown in a box 1210A, e.g., a syntax element attribute_extension_flag is introduced. In a condition of attribute extension flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element attribute_extension_length is introduced, and an iterative loop with a variable i from 0 incremental to attribute_extension_length-l (e.g., i < attribute_extension_length) is introduced. In the iterative loop with the variable i, syntax elements attribute_extension_data_byte[i] are introduced.
[00194] For example, the syntax element attribute_extension_flag equal to 0 specifies that syntax elements such as attribute_extension_length and attribute_extension_data_byte are not present in the syntax structure, “attribute header.” In addition, the syntax element attribute_extension_flag equal to 1 specifies that syntax elements such as attribute_extension_length and attribute_extension_data_byte may be present in the syntax structure, “attribute header.” Further, the syntax element attribute_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure. However, some use of the syntax element attribute_extension_flag equal to 1 could be specified in other versions, and decoders conforming to the present disclosure shall allow the value of the syntax element attribute_extension_flag equal to 1 to appear in the syntax.
[00195] In addition, the syntax element attribute_extension_length specifies the length of the attribute extension data in bytes, not including the bits used for signalling the syntax element attribute_extension_length itself. When attribute_extension_length is not present, the value of atribute_extension_length is inferred to be equal to 0. Although the syntax element attribute_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element attribute_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element attribute_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive.
[00196] Further, the syntax element attribute_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements attribute_extension_data_byte[i] syntax elements. Its value does not affect the decoding process specified in the present disclosure.
[00197] In addition, an example of an alternative syntax table is illustrated in FIG. 12B.
[00198] FIG. 12B shows a table 1200B illustrating a syntax structure associated with a function, attribute_header(), in which the extension with attribute extension data bit other than attribute extension data byte is introduced before a function byte_alignment(), as shown in a box 1210B, e.g., a syntax element attribute_extension_flag is introduced. In a condition of attribute_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element attribute extension length is introduced, and a condition of a function, more_data_in_attribute_header_extension() returning a specified value (such as “TRUE”) is introduced. In the condition of the function morc_data_in_gcomctry_hcadcr_cxtcnsion() returning the specified value, a syntax element attribute extension data bit is introduced.
[00199] For example, the syntax element attribute extension data bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements attribute_header_extension_data_bit. Its value does not affect the decoding process specified in the present disclosure.
[00200] In addition, the function more_data_in_attribute_header_extension() is specified as follows:
[00201] If (the current position in the attribute_header() syntax structure) - (the position immediately following attribute_extension_length) is less than (attribute_extension_length * 8), the return value of more_data_in_attribute_header_extension() is equal to TRUE. Otherwise, the return value of more_data_in_attribute_header_extension() is equal to FALSE.
[00202] Example 6
[00203] The extension for a geometry slice header is illustrated in FIG. 13 A.
[00204] FIG. 13A shows a table 1300A illustrating a syntax structure associated with a function, geometry_slice_header(), in which the extension is introduced before a function byte_alignment(), as shown in a box 1310A, e.g., a syntax element geometry_slice_extension_flag is introduced. In a condition of the syntax element geometry_slice_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element geometry_slice_extension_length is introduced, and an iterative loop with a variable i from 0 incremental to geometry_slice_extension_length-l (e.g., i < geometry_slice_extension_length) is introduced. In the iterative loop with the variable i, syntax elements geometry_slice_extension_data_byte[i] are introduced.
[00205] For example, the syntax element geometry_slice_extension_flag equal to 0 specifies that the syntax elements such as geometry_slice_extension_length and geometry_slice_extension_data_byte are not present in the syntax structure, “geometry_slice header.” In addition, the syntax element geometry_slice_extension_flag equal to 1 specifies that the syntax element geometry_slice_extension_length and the syntax element geometry_slice_extension_data_byte may be present in the syntax structure, “geometry_slice header.” In addition, the syntax element geometry_slice_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure. However, some use of the syntax element geometry_slice_extension_flag equal to 1 could be specified in other versions, and decoders conforming to this version of the present disclosure shall allow the value of the syntax element geometry_slice_extension_flag equal to 1 to appear in the syntax.
[00206] In addition, the syntax element geometry_slice_extension_length specifies the length of the geometry_slice extension data in bytes, not including the bits used for signalling the syntax element sequnce_extension_length itself. When sequnce_extension_length is not present, the value of geometry_slice_extension_length is inferred to be equal to 0. Although the syntax element geometry_slice_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element sequnce_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element geometry_slice_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive.
[00207] Further, the syntax element geometry_slice_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements geometry_slice_extension_data_byte[i]. Its value does not affect the decoding process specified in the present disclosure.
[00208] In addition, an example of an alternative syntax table is illustrated in FIG. 13B.
[00209] FIG. 13B shows a table 13006 illustrating a syntax structure associated with a function, geometry_slice_header(), in which the extension with geometry_slice_extension_data_bit other than geometry_slice_extension_data_byte is introduced before a function byte_alignment(), as shown in a box 1310B, e.g., a syntax element geometry_slice_extension_flag is introduced. In a condition of geometry_slice_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element geometry_slice_extension_length is introduced, and a condition of a function, morc_data_in_gcomctry_slicc_hcadcr_cxtcnsion() returning a specified value (such as “TRUE”) is introduced. In the condition of the function morc_data_in_gcomctry_slicc_hcadcr_cxtcnsion() returning the specified value, a syntax element geometry_slice_extension_data_bit is introduced.
[00210] For example, the syntax element geometry_slice_extension_data_bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements geometry_slice_header_extension_data_bit. Its value does not affect the decoding process specified in the present disclosure.
[00211] In addition, the function morc_data_in_gcomctry_slicc_hcadcr_cxtcnsion() is specified as follows: [00212] If (the current position in the geometry_slice_header() syntax structure) - (the position immediately following geometry_slice_extension_length) is less than (geometry_slice_extension_length * 8), the return value of morc_data_in_gcomctry_slicc_hcadcr_cxtcnsion() is equal to TRUE. Otherwise, the return value of morc_data_in_gcomctry_slicc_hcadcr_cxtcnsion() is equal to FALSE.
[00213] Example 7
[00214] The extension for an attribute slice header is illustrated in FIG. 14A.
[00215] FIG. 14A shows a table 1400A illustrating a syntax structure associated with a function, attribute_slice_header(), in which the extension is introduced before a function byte_alignment(), as shown in a box 1410A, e.g., a syntax element attribute_slice_extension_flag is introduced. In a condition of attribute_slice_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element attribute_slice_extension_length is introduced, and an iterative loop with a variable i from 0 incremental to attribute_slice_extension_length-l (e.g., i < attribute_slice_extension_length) is introduced. In the iterative loop with the variable i, syntax elements attribute_slice_extension_data_byte[i] are introduced.
[00216] For example, the syntax element attribute_slice_extension_flag equal to 0 specifies that the syntax elements such as attribute_slice_extension_length and attribute_slice_extension_data_byte are not present in the syntax structure, “attribute_slice header.” In addition, the syntax element attribute_slice_extension_flag equal to 1 specifies that the syntax elements such as attribute_slice_extension_length and attribute_slice_extension_data_byte may be present in the syntax structure, “attribute_slice header.” Further, the syntax element attribute_slice_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure. However, some use of the syntax element attribute_slice_extension_flag equal to 1 could be specified in other versions, and decoders conforming to the present disclosure shall allow the value of the syntax element attribute_slice_extension_flag equal to 1 to appear in the syntax.
[00217] In addition, the syntax element attribute_slice_extension_length specifies the length of the attribute_slice extension data in bytes, not including the bits used for signalling the syntax element sequnce_extension_length itself. When attribute_slice_extension_length is not present, the value of attribute_slice_extension_length is inferred to be equal to 0. Although the syntax element attribute_slice_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element sequnce_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element attribute_slice_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive. [00218] Further, the syntax element attribute_slice_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements attribute_slice_extension_data_byte[i]. Its value does not affect the decoding process specified in the present disclosure.
[00219] In addition, an example of an alternative syntax table is illustrated in FIG. 14B.
[00220] FIG. 14B shows a table 1400B illustrating a syntax structure associated with a function, attribute_slice_header(), in which the extension with attribute_slice_extension_data_bit other than attribute slice extension data byte is introduced before a function byte_alignment(), as shown in a box 1410B, e.g., a syntax element attribute_slice_extension_flag is introduced. In a condition of attribute_slice_extension_flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element attribute slice extension length is introduced, and a condition of a function, more_data_in_attribute_slice_header_extension() returning a specified value (such as “TRUE”) is introduced. In the condition of the function more_data_in_attribute_slice_header_extension() returning the specified value, a syntax element attribute_slice_extension_data_bit is introduced.
[00221] For example, the syntax element attribute slice extension data bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements attribute_slice_header_extension_data_bit. Its value does not affect the decoding process specified in the present disclosure.
[00222] In addition, the function more_data_in_attribute_slice_header_extension() is specified as follows: [00223] If (the current position in the attribute_slice_header() syntax structure) - (the position immediately following attribute_slice_extension_length) is less than (attribute_slice_extension_length * 8), the return value of more_data_in_attribute_slice_header_extension() is equal to TRUE. Otherwise, the return value of more_data_in_attribute_slice_header_extension() is equal to FALSE.
[00224] Example 8
[00225] The extension for a general attribute data bitstream is illustrated in FIG. 15 A.
[00226] FIG. 15A shows a table 1500A illustrating a syntax structure associated with a function, general_attribute_data_bitstream(), in which the extension is introduced before a function byte_alignment(), as shown in a box 1510A, e.g., a syntax element attribute_data_extension_flag is introduced. In a condition of attribute data extension flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element attribute data extension length is introduced, and an iterative loop with a variable i from 0 incremental to attribute_data_extension_length-l (e.g., i < attribute_data_extension_length) is introduced. In the iterative loop with the variable i, syntax elements attribute_data_extension_data_byte[i] are introduced.
[00227] For example, the syntax element attribute_data_extension_flag equal to 0 specifies that the syntax elements such as attribute_data_extension_length and attribute_extension_data_byte are not present in the syntax structure, “general attribute data bitstream.” In addition, the syntax element attribute_data_extension_flag equal to 1 specifies that syntax elements such as attribute_data_extension_length and attribute_extension_data_byte may be present in the syntax structure, “general_attribute_data_bitstream.” Further, the syntax element attribute_data_extension_flag shall be equal to 0 in bitstreams conforming to the present disclosure. However, some use of the syntax element attribute_data_extension_flag equal to 1 could be specified in other versions, and decoders conforming to the present disclosure shall allow the value of the syntax element attribute_data_extension_flag equal to 1 to appear in the syntax.
[00228] In addition, the syntax element attribute_data_extension_length specifies the length of the attribute extension data in bytes, not including the bits used for signalling the syntax element sequnce_extension_length itself. When attribute_data_extension_length is not present, the value of attribute_data_extension_length is inferred to be equal to 0. Although the syntax element attribute_data_extension_length is not present in bitstreams conforming to the present disclosure, some use of the syntax element attribute_data_extension_length could be specified in other versions, and decoders conforming to the present disclosure shall allow the syntax element attribute_data_extension_length to be present and in the range of 0 to N, e.g. N is 256, inclusive.
[00229] Further, the syntax elements attribute_extension_data_byte[i] could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements attribute_extension_data_byte[i]. Its value does not affect the decoding process specified in the present disclosure.
[00230] In addition, an example of an alternative syntax table is illustrated in FIG. 15B.
[00231] FIG. 15B shows a table 1500B illustrating a syntax structure associated with a function, general_attribute_data_bitstream(), in which the extension with attribute extension data bit other than attribute extension data byte is introduced before a function byte_alignment(), as shown in a box 1510B, e.g., a syntax element attribute data extension flag is introduced. In a condition of attribute data extension flag equal to a specified value (such as a non-zero value “1” or “TRUE”), a syntax element attribute data extension length is introduced, and a condition of a function, morc_data_in_gcncral_attributc_data_bitstrcam() returning a specified value (such as “TRUE”) is introduced. In the condition of the function morc_data_in_gcncral_attributc_data_bitstrcam() returning the specified value, a syntax element attribute_extension_data_bit is introduced.
[00232] For example, the syntax element attribute extension data bit could have any value. Its presence and value do not affect the decoding process specified in the present disclosure. Decoders conforming to the present disclosure shall ignore the value of each of the syntax elements general_attribute_data_bitstream. Its value does not affect the decoding process specified in the present disclosure.
[00233] In addition, the function morc_data_in_gcncral_attributc_data_bitstrcam() is specified as follows: [00234] If (the current position in the general_attribute_data_bitstream() syntax structure) - (the position immediately following attribute_data_extension_length) is less than (attribute_data_extension_length * 8), the return value of morc_data_in_gcncral_attribiitc_data_bitstrcam() is equal to TRUE. Otherwise, the return value of morc_data_in_gcncral_attributc_data_bitstrcam() is equal to FALSE.
[00235] Correspondingly, embodiments for the bitstream encoding process for the extension purpose are provided below.
[00236] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the encoding the bitstream associated with GPCC including the syntax structure having the syntax element associated with the extension flag to determine the extension data, includes: encoding the syntax element associated with the extension flag based on the extension data; in response to determining the syntax element associated with the extension flag being not equal to zero, determining a syntax element associated with an extension length based on the extension data; and encoding one or more syntax elements associated with the extension data into the syntax structure based on the syntax element associated with the extension length.
[00237] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, in response to determining the syntax element associated with the extension flag being not equal to zero, determining the syntax element associated with the extension length based on the extension data, includes: in response to determining a value of the extension length is equal to zero, determining the syntax element associated with the extension length not present in the syntax structure; and in response to determining the syntax element associated with the extension length present in the syntax structure, encoding the syntax element associated with the extension length into the syntax structure based on a length of the extension data in a form of byte. For example, a value of the extension length ranges from 0 to 256. [00238] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the encoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length includes: performing a respective one of a plurality of operation groups defined by an iterative loop with a variable from zero incremental to a maximum integer less than a value of the extension length, including: encoding one syntax element associated with the extension data in the form of byte into the syntax structure.
[00239] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the encoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length includes: iteratively performing: in response to determining that there is more data in the syntax structure based on the extension length in a form of bit, encoding one syntax element associated with the extension data in the form of bit into the syntax structure. [00240] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the iteratively performing: in response to determining that there is more data in a form of bit in the syntax structure based on the extension length, encoding one syntax element associated with the extension data in the form of bit into the syntax structure includes: iteratively performing: determining that whether a difference between a current position in the syntax structure and a position immediately following the extension length being less than a value calculated by the extension length multiplied by eight is true or false; and in response to determining that the difference between the current position in the syntax structure and the position immediately following the extension length being less than the value calculated by the extension length multiplied by eight is true, encoding one syntax element associated with the extension data in the form of one bit into the syntax structure.
[00241] In some embodiments, as illustrated by the bitstream encoding method 600 shown in FIG. 6, at the box 610, the syntax structure is associated with a sequence header, a geometry header, an attribute header, a geometry slice header, an attribute slice header, or a general attribute data bitstream for GPCC.
[00242] Computing device
[00243] Further, any suitable computing system can be used for performing the operations for bitstream encoding like a bitstream encoder or bitstream decoding like a bitstream decoder described herein. For example, FIG. 16 depicts an example of a computing device 1600 that can implement methods such as bitstream encoding methods or bitstream decoding methods herein.
[00244] In some embodiments, the computing device 1600 can include a processor 1610 that is coupled to a memory 1612 and is configured to execute program instructions stored in the memory 1612 to perform the operations for implementing a bitstream decoding method associated with a bitstream decoder and/or a bitstream encoding method associated with a bitstream encoder, for GPCC, such as AVS-GPCC.
[00245] For example, the processor 1610 may comprise a microprocessor, an application-specific integrated circuit (“ASIC”), a state machine, or other processing device. The processor 1610 can include one or more processing units. Such a processor can include or may be in communication with a computer- readable medium storing instructions that, when executed by the processor 1610, cause the processor to perform the operations described herein. The memory 1612 can include any suitable non-transitory computer-readable medium.
[00246] For example, the computer-readable medium can include any electronic, optical, magnetic, or other storage device capable of providing a processor with computer-readable instructions or other program code. Non-limiting examples of a computer-readable medium include a magnetic disk, memory chip, ROM, RAM, an ASIC, a configured processor, optical storage, magnetic tape or other magnetic storage, or any other medium from which a computer processor can read instructions. The instructions may include processor-specific instructions generated by a compiler and/or an interpreter from code written in any suitable computer programming language, including, for example, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, and ActionScript.
[00247] In some embodiments, the present disclosure provides that a bitstream decoding system includes: a processor; and a memory coupled to the processing unit, wherein the processor is configured to execute program instructions stored in the memory to perform any one of the above bitstream decoding methods.
[00248] In some embodiments, the present disclosure provides that a non-transitory computer-readable medium having program code stored thereon, the program code executable by a processor to execute any one of the above bitstream decoding methods. [00249] In some embodiments, the present disclosure provides that a bitstream encoding system includes: a processor; and a memory coupled to the processing unit, wherein the processor is configured to execute program instructions stored in the memory to perform any one of the above bitstream encoding methods.
[00250] In some embodiments, the present disclosure provides that a non-transitory computer-readable medium having program code stored thereon, the program code executable by a processor to execute any one of the above bitstream encoding methods.
[00251] A person having ordinary skill in the art understands that each of the units, algorithm, and steps described and disclosed in the embodiments of the present disclosure are realized using electronic hardware or combinations of software for computers and electronic hardware. Whether the functions run in hardware or software depends on the condition of application and design requirement for a technical plan. A person having ordinary skill in the art can use different ways to realize the function for each specific application while such realizations should not go beyond the scope of the present disclosure. It is understood by a person having ordinary skill in the art that he/she can refer to the working processes of the system, device, and unit in the above-mentioned embodiment since the working processes of the above-mentioned system, device, and unit are basically the same. For easy description and simplicity, these working processes will not be detailed.
[00252] It is understood that the disclosed system, device, and method in the embodiments of the present disclosure can be realized in other ways. The above-mentioned embodiments are exemplary only. The division of the units is merely based on logical functions while other divisions exist in realization. It is possible that a plurality of units or components are combined or integrated in another system. It is also possible that some characteristics are omitted or skipped. On the other hand, the displayed or discussed mutual coupling, direct coupling, or communicative coupling operate through some ports, devices, or units whether indirectly or communicatively by ways of electrical, mechanical, or other kinds of forms.
[00253] The units as separating components for explanation are or are not physically separated. The units for display are or are not physical units, that is, located in one place or distributed on a plurality of network units. Some or all of the units are used according to the purposes of the embodiments. Moreover, each of the functional units in each of the embodiments can be integrated into one processing unit, physically independent, or integrated in one processing unit with two or more than two units.
[00254] If the software function unit is realized and used and sold as a product, it can be stored in a readable storage medium in a computer. Based on this understanding, the technical plan provided by the present disclosure can be essentially or partially realized as the form of a software product. Or, one part of the technical plan beneficial to the conventional technology can be realized as the form of a software product. The software product in the computer is stored in a storage medium, including a plurality of commands for a computational device (such as a personal computer, a server, or a network device) to run all or some of the steps disclosed by the embodiments of the present disclosure. The storage medium includes a USB disk, a mobile hard disk, a read-only memory (ROM), a random-access memory (RAM), a floppy disk, or other kinds of media capable of storing program codes. [00255] 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 bitstream decoding method, comprising: decoding a bitstream associated with geometry point cloud coding (GPCC) comprising a syntax structure having a syntax element associated with an extension flag to determine extension data.
2. The method of claim 1, wherein the decoding the bitstream associated with GPCC comprising the syntax structure having the syntax element associated with the extension flag to determine the extension data comprises: decoding the syntax element associated with the extension flag; in response to determining the syntax element associated with the extension flag being not equal to zero, determining a syntax element associated with an extension length based on the extension data; and decoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length.
3. The method of claim 2, wherein in response to determining the syntax element associated with the extension flag being not equal to zero, determining the syntax element associated with the extension length based on the extension data, comprises: in response to determining the syntax element associated with the extension length not present in the syntax structure, determining a value of the extension length is equal to zero; and in response to determining the syntax element associated with the extension length present in the syntax structure, decoding the syntax element associated with the extension length from the syntax structure to determine the value of the extension length.
4. The method of claim 3, wherein the decoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length comprises: performing a respective one of a plurality of operation groups defined by an iterative loop with a variable from zero incremental to a maximum integer less than the value of the extension length, comprising: decoding one syntax element associated with the extension data in a form of byte from the syntax structure.
5. The method of claim 3, wherein the decoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length comprises: iteratively performing, in response to determining that there is more data in a form of bit in the syntax structure based on the extension length, decoding one syntax element associated with the extension data in the form of bit from the syntax structure.
6. The method of claim 5, wherein the iteratively performing: in response to determining that there is more data in a form of bit in the syntax structure based on the extension length, decoding one syntax element associated with the extension data in the form of bit from the syntax structure comprises: iteratively performing: determining that whether a difference between a current position in the syntax structure and a position immediately following the extension length being less than a value calculated by the extension length multiplied by eight is true or false; and in response to determining that the difference between the current position in the syntax structure and the position immediately following the extension length being less than the value calculated by the extension length multiplied by eight is true, decoding one syntax element associated with the extension data in the form of one bit from the syntax structure.
7. The method of any one of claims 1 to 6, wherein the syntax structure is associated with a sequence header, a geometry header, an attribute header, a geometry slice header, an attribute slice header, or a general attribute data bitstream for GPCC.
8. The method of claim 1, further comprising: performing a respective one of a plurality of operation groups defined by a first iterative loop with a first variable from zero incremental to a maximum integer less than a sum of a value of the max-number- attribute s-minus-one code plus one, in a syntax structure associated with an attribute header, comprising: decoding a syntax element associated with an attribute-present-flag code indexed by the first variable; and in response to determining that the syntax element associated with the attribute-present-flag code indexed by the first variable is not equal to zero, performing operations comprising: in response to determining that a syntax element of an SPS-multiple-data-set-flag code is not equal to zero, determining a syntax element associated with a multiple-data-set-flag code indexed by the first variable; in response to determining that the syntax element associated with the multiple-data-set-flag code indexed by the first variable is not equal to zero, determining a syntax element associated with an attribute-number-data-set-minus-one code indexed by the first variable; and performing a respective one of a plurality of operation groups defined by a second iterative loop with a second variable from zero incremental to a maximum integer less than a sum of a value of the attribute-number-data-set-minus-one code indexed by the first variable plus one, comprising: decoding a syntax element associated with an output-bit-depth-minus-one code indexed by the first variable and the second variable; in response to determining the first variable equal to zero or the first variable not equal to zero, decoding a first group of syntax elements indexed by the first variable and the second variable; in response to determining the first variable equal to zero, decoding a second group of syntax elements indexed by the second variable; and in response to determining the first variable not equal to zero, decoding a third group of syntax elements indexed by the second variable; and decoding a plurality of syntax elements in the syntax structure associated with the attribute header.
9. The method of claim 8, wherein the in response to determining that the syntax element of the SPS- multiple-data-set-flag code is not equal to zero, determining the syntax element associated with the multiple-data-set-flag code indexed by the first variable, comprises: determining whether the syntax element associated with the multiple-data-set-flag code indexed by the first variable is present; in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being present, decoding the syntax element associated with the multiple -data-set-flag code indexed by the first variable; and in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being not present, determining that the syntax element associated with the multiple-data-set-flag code indexed by the first variable equal to zero.
10. The method of claim 8, wherein the in response to determining that the syntax element associated with the multiple-data-set-flag code indexed by the first variable is not equal to zero, determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable, comprises: in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being present, decoding the syntax element associated with the attribute- number-data-set-minus-one code indexed by the first variable; and in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being not present, determining that the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable equal to zero.
11. The method of claim 8, wherein the in response to determining the first variable equal to zero or the first variable not equal to zero, decoding the first group of syntax elements indexed by the first variable and the second variable comprises: decoding a syntax element associated with a max-number-of-neighbours-log2-minus-seven code indexed by the first variable and the second variable; decoding a syntax element associated with a number-of-level-of-detail code indexed by the first variable and the second variable; decoding a syntax element associated with a max-number-of-predict-neighbours code indexed by the first variable and the second variable; decoding a syntax element associated with an intra-lode-flag code indexed by the first variable and the second variable; decoding a syntax element associated with a cross-attribute-type-prediction code indexed by the first variable and the second variable; and in response to determining that the syntax element associated with the cross-attribute-type-prediction code indexed by the first variable and the second variable is not equal to zero, performing operations comprising: decoding a syntax element associated with an attribute-encode-order code indexed by the first variable and the second variable; decoding a syntax element associated with a cross-attribute-type-predict-parameter-one code indexed by the first variable and the second variable; and decoding a syntax element associated with a cross-attribute-type-predict-parameter-two code indexed by the first variable and the second variable.
12. The method of claim 8, wherein the in response to determining the first variable equal to zero, decoding the second group of syntax elements indexed by the second variable comprises: decoding a syntax element associated with a cross-component-prediction code indexed by the second variable; decoding a syntax element associated with an order-switch code indexed by the second variable; decoding a syntax element associated with a half-zero-runlength-enable code indexed by the second variable; decoding a syntax element associated with a chroma-Qp-offset-Cb code indexed by the second variable; decoding a syntax element associated with a chroma-Qp-offset-Cr code indexed by the second variable; decoding a syntax element associated with a color-reorder-mode code indexed by the second variable; and decoding a syntax element associated with a color-golomb-number code indexed by the second variable.
13. The method of claim 8, wherein the in response to determining the first variable not equal to zero, decoding the third group of syntax elements indexed by the second variable comprises: decoding a syntax element associated with a nearest-prediction-parameter-one code indexed by the second variable; decoding a syntax element associated with a nearest-prediction-parameter-two code indexed by the second variable; decoding a syntax element associated with an axis-bias code indexed by the second variable; decoding a syntax element associated with a reflectance-reorder-mode code indexed by the second variable; and decoding a syntax element associated with a reflectance-golomb-number code indexed by the second variable.
14. The method of claim 8, wherein the decoding the plurality of syntax elements in the syntax structure associated with the attribute header comprises: decoding a fourth group of syntax elements indexed by the first variable and the second variable; in response to determining an attribute-present-flag code indexed by a first index not equal to zero, decoding a fifth group of syntax elements indexed by the second variable; and in response to determining an attribute-present-flag code indexed by a second index not equal to zero, decoding a reflectance-group-prediction code indexed by the second index.
15. The method of claim 14, wherein the decoding the fourth group of syntax elements indexed by the first variable and the second variable comprises: decoding a syntax element associated with a transform code indexed by the first variable and the second variable; in response to determining that the syntax element associated with the transform code indexed by the first variable and the second variable is not equal to zero and the syntax element associated with the attribute- present-flag code indexed by the first variable is not equal to zero, performing operations comprising: decoding a syntax element associated with a max-number-of-coefficient code indexed by the first variable and the second variable; decoding a syntax element associated with a coefficient-length-control code indexed by the first variable and the second variable; decoding a syntax element associated with an attribute-transform-Qp-delta code indexed by the first variable and the second variable; decoding a syntax element associated with an initial-predict-transform-ratio code indexed by the first variable and the second variable; decoding a syntax element associated with a transform-resource-layer code indexed by the first variable and the second variable; decoding a syntax element associated with an attribute-transform-number-points code indexed by the first variable and the second variable; decoding a syntax element associated with a max-transform-number code indexed by the first variable and the second variable; decoding a syntax element associated with a Qp-offset-DC code indexed by the first variable and the second variable; and decoding a syntax element associated with a Qp-offset-AC code indexed by the first variable and the second variable.
16. The method of claim 14, wherein the in response to determining the attribute-present-flag code indexed by the first index not equal to zero, decoding the fifth group of syntax elements indexed by the second variable comprises: in response to determining that the syntax element associated with the attribute-present-flag code indexed by the first index is not equal to zero, decoding a syntax element associated with a chroma-Qp-offset-DC code indexed by the second variable and a syntax element associated with a chroma-Qp-offset-AC code indexed by the second variable.
17. The method of claim 1, further comprising: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max-number-attribute s- minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, comprising: in response to determining that the third variable is equal to zero and the attribute-present-flag code indexed by a first index is not equal to zero, performing operations comprising: performing an attribute-data-color function to decode a syntax element associated with an attribute- data-color code; and performing a byte-alignment function to align data in the bitstream in bytes; and in response to determining that the third variable is not equal to zero and the attribute-present-flag code indexed by a second index is not equal to zero, performing operations comprising: performing an attribute-data-reflectance function to decode a syntax element associated with an attribute-data-reflectance code; and performing the byte -alignment function.
18. The method of claim 1, further comprises: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max-number-attribute s- minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, comprising: in response to determining that the third variable is equal to zero and the attribute-present-flag code indexed by a first index is not equal to zero, performing operations comprising: performing a respective one of a plurality of operation groups defined by a fourth iterative loop with a fourth variable from zero incremental to a maximum integer less than a sum of a value of a max- number-atributes-minus-one code plus one, comprising: performing an atribute -data-color function to decode a syntax element associated with an atribute-data-color code; and performing a byte-alignment function to align data in the bitstream in bytes; and in response to determining that the first variable is not equal to zero and the atribute-present-flag code indexed by a second index is not equal to zero, performing operations comprising: performing the respective one of the plurality of operation groups defined by the fourth iterative loop with the fourth variable from zero incremental to the maximum integer less than the sum of the value of the max-number-atributes-minus-one code plus one, comprising: performing an atribute-data-reflectance function to decode a syntax element associated with an attribute-data-reflectance code; and performing the byte -alignment function.
19. A bitstream decoding system comprising: a processor; and a memory coupled to the processing unit, wherein the processing unit is configured to execute program instructions stored in the memory to perform the method of any one of claims 1 to 18.
20. A non-transitory computer-readable medium having program code stored thereon, the program code executable by a processor to execute the method of any one of claims 1 to 18.
21. A bitstream encoding method, comprising: encoding a bitstream associated with geometry point cloud coding (GPCC) comprising a syntax structure having a syntax element associated with an extension flag to determine extension data.
22. The method of claim 21, wherein the encoding the bitstream associated with GPCC comprising the syntax structure having the syntax element associated with the extension flag to determine the extension data, comprises: encoding the syntax element associated with the extension flag based on the extension data; in response to determining the syntax element associated with the extension flag being not equal to zero, determining a syntax element associated with an extension length based on the extension data; and encoding one or more syntax elements associated with the extension data into the syntax structure based on the syntax element associated with the extension length.
23. The method of claim 22, wherein in response to determining the syntax element associated with the extension flag being not equal to zero, determining the syntax element associated with the extension length based on the extension data, comprises: in response to determining a value of the extension length is equal to zero, determining the syntax element associated with the extension length not present in the syntax structure; and in response to determining the syntax element associated with the extension length present in the syntax structure, encoding the syntax element associated with the extension length into the syntax structure based on a length of the extension data in a form of byte.
24. The method of claim 23, wherein the encoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length comprises: performing a respective one of a plurality of operation groups defined by an iterative loop with a variable from zero incremental to a maximum integer less than a value of the extension length, comprising: encoding one syntax element associated with the extension data in the form of byte into the syntax structure.
25. The method of claim 23, wherein the encoding one or more syntax elements associated with the extension data based on the syntax element associated with the extension length comprises: iteratively performing: in response to determining that there is more data in the syntax structure based on the extension length in a form of bit, encoding one syntax element associated with the extension data in the form of bit into the syntax structure.
26. The method of claim 25, wherein the iteratively performing: in response to determining that there is more data in a form of bit in the syntax structure based on the extension length, encoding one syntax element associated with the extension data in the form of bit into the syntax structure comprises: iteratively performing: determining that whether a difference between a current position in the syntax structure and a position immediately following the extension length being less than a value calculated by the extension length multiplied by eight is true or false; and in response to determining that the difference between the current position in the syntax structure and the position immediately following the extension length being less than the value calculated by the extension length multiplied by eight is true, encoding one syntax element associated with the extension data in the form of one bit into the syntax structure.
27. The method of any one of claims 21 to 26, wherein the syntax structure is associated with a sequence header, a geometry header, an attribute header, a geometry slice header, an attribute slice header, or a general atribute data bitstream for GPCC.
28. The method of claim 21, further comprising: performing a respective one of a plurality of operation groups defined by a first iterative loop with a first variable from zero incremental to a maximum integer less than a sum of a value of the max-number- atribute s-minus-one code plus one, in a syntax structure associated with an atribute header, comprising: encoding a syntax element associated with an atribute-present-flag code indexed by the first variable; and in response to determining that the syntax element associated with the atribute-present-flag code indexed by the first variable is not equal to zero, performing operations comprising: in response to determining that a syntax element of an SPS-multiple-data-set-flag code is not equal to zero, determining a syntax element associated with a multiple-data-set-flag code indexed by the first variable; in response to determining that the syntax element associated with the multiple-data-set-flag code indexed by the first variable is not equal to zero, determining a syntax element associated with an atribute-number-data-set-minus-one code indexed by the first variable; and performing a respective one of a plurality of operation groups defined by a second iterative loop with a second variable from zero incremental to a maximum integer less than a sum of a value of the atribute-number-data-set-minus-one code indexed by the first variable plus one, comprising: encoding a syntax element associated with an output-bit-depth-minus-one code indexed by the first variable and the second variable; in response to determining the first variable equal to zero or the first variable not equal to zero, encoding a first group of syntax elements indexed by the first variable and the second variable; in response to determining the first variable equal to zero, encoding a second group of syntax elements indexed by the second variable; and in response to determining the first variable not equal to zero, encoding a third group of syntax elements indexed by the second variable; and encoding a plurality of syntax elements in the syntax structure associated with the atribute header.
29. The method of claim 28, wherein the in response to determining that the syntax element of the SPS- multiple-data-set-flag code is not equal to zero, determining the syntax element associated with the multiple-data-set-flag code indexed by the first variable comprises: determining whether the syntax element associated with the multiple-data-set-flag code indexed by the first variable is present; in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being present, encoding the syntax element associated with the multiple-data-set-flag code indexed by the first variable; and in response to the syntax element associated with the multiple-data-set-flag code indexed by the first variable being not present, determining that the syntax element associated with the multiple-data-set-flag code indexed by the first variable equal to zero.
30. The method of claim 28, wherein the in response to determining that the syntax element associated with the multiple-data-set-flag code indexed by the first variable is not equal to zero, determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable, comprises: in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being present, encoding the syntax element associated with the attribute- number-data-set-minus-one code indexed by the first variable; and in response to determining the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable being not present, determining that the syntax element associated with the attribute-number-data-set-minus-one code indexed by the first variable equal to zero.
31. The method of claim 21, further comprising: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max-number-attribute s- minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, comprising: in response to determining that the third variable is equal to zero and the attribute-present-flag code indexed by a first index is not equal to zero, performing operations comprising: performing an attribute -data-color function to encode a syntax element associated with an attribute- data-color code; and performing a byte-alignment function to align data in the bitstream in bytes; and in response to determining that the third variable is not equal to zero and the attribute-present-flag code indexed by a second index is not equal to zero, performing operations comprising: performing an attribute-data-reflectance function to encode a syntax element associated with an attribute-data-reflectance code; and performing the byte -alignment function.
32. The method of claim 21, further comprising: performing a respective one of a plurality of operation groups defined by a third iterative loop with a third variable from zero incremental to a maximum integer less than a sum of a value of a max-number-attribute s- minus-one code plus one, in a syntax structure associated with a general attribute data bitstream, comprising: in response to determining that the third variable is equal to zero and the attribute-present-flag code indexed by a first index is not equal to zero, performing operations comprising: performing a respective one of a plurality of operation groups defined by a fourth iterative loop with a fourth variable from zero incremental to a maximum integer less than a sum of a value of a max- number-attributes-minus-one code plus one, comprising: performing an attribute -data-color function to encode a syntax element associated with an attribute-data-color code; and performing a byte-alignment function to align data in the bitstream in bytes; and in response to determining that the first variable is not equal to zero and the attribute-present-flag code indexed by a second index is not equal to zero, performing operations comprising: performing the respective one of the plurality of operation groups defined by the fourth iterative loop with the fourth variable from zero incremental to the maximum integer less than the sum of the value of the max-number-attributes-minus-one code plus one, comprising: performing an attribute-data-reflectance function to encode a syntax element associated with an attribute-data-reflectance code; and performing the byte-alignment function.
33. A bitstream encoding system comprising: a processor; and a memory coupled to the processing unit, wherein the processing unit is configured to execute program instructions stored in the memory to perform the method of any one of claims 21 to 32.
34. A non-transitory computer-readable medium having program code stored thereon, the program code executable by a processor to execute the method of any one of claims 21 to 32.
PCT/US2023/026575 2022-07-01 2023-06-29 Bitstream encoding and decoding for geometry point cloud coding WO2024006436A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202263367576P 2022-07-01 2022-07-01
US63/367,576 2022-07-01

Publications (1)

Publication Number Publication Date
WO2024006436A1 true WO2024006436A1 (en) 2024-01-04

Family

ID=89381486

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2023/026575 WO2024006436A1 (en) 2022-07-01 2023-06-29 Bitstream encoding and decoding for geometry point cloud coding

Country Status (1)

Country Link
WO (1) WO2024006436A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160100168A1 (en) * 2014-10-07 2016-04-07 Qualcomm Incorporated Qp derivation and offset for adaptive color transform in video coding
US20210319571A1 (en) * 2020-04-14 2021-10-14 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20220109816A1 (en) * 2020-10-06 2022-04-07 Qualcomm Incorporated Inter-component residual prediction for color attributes in geometry point cloud compression coding
US20220159298A1 (en) * 2019-05-14 2022-05-19 Intel Corporation IMMERSIVE VIDEO CODING TECHNIQUES FOR THREE DEGREE OF FREEDOM PLUS/METADATA FOR IMMERSIVE VIDEO (3DoF+/MIV) AND VIDEO-POINT CLOUD CODING (V-PCC)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160100168A1 (en) * 2014-10-07 2016-04-07 Qualcomm Incorporated Qp derivation and offset for adaptive color transform in video coding
US20220159298A1 (en) * 2019-05-14 2022-05-19 Intel Corporation IMMERSIVE VIDEO CODING TECHNIQUES FOR THREE DEGREE OF FREEDOM PLUS/METADATA FOR IMMERSIVE VIDEO (3DoF+/MIV) AND VIDEO-POINT CLOUD CODING (V-PCC)
US20210319571A1 (en) * 2020-04-14 2021-10-14 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20220109816A1 (en) * 2020-10-06 2022-04-07 Qualcomm Incorporated Inter-component residual prediction for color attributes in geometry point cloud compression coding

Similar Documents

Publication Publication Date Title
US11750839B2 (en) Method and apparatus for point cloud compression
CN113615181A (en) Implicit quadtree or binary tree geometry segmentation for point cloud coding
US11451835B2 (en) Method and device for entropy coding and decoding using mapping of matching relationship parameters
CN113632142A (en) Method and device for point cloud compression
CN112399181B (en) Image coding and decoding method, device and storage medium
CN113179411A (en) Point cloud attribute coding and decoding method and device, computer equipment and storage medium
WO2023241107A1 (en) Point cloud processing method and apparatus, computer device and storage medium
WO2024006436A1 (en) Bitstream encoding and decoding for geometry point cloud coding
EP4066213A1 (en) In-tree geometry quantization of point clouds
WO2023172703A1 (en) Geometry point cloud coding
WO2023244585A1 (en) Geometry point cloud coding system and method
WO2023172704A1 (en) Attribute level coding for geometry point cloud coding
WO2024037091A1 (en) Point cloud processing method and apparatus, computer device, and storage medium
WO2023132331A1 (en) Point cloud decoding device, point cloud decoding method, and program
WO2023244551A1 (en) Color component coding method, encoder and decoder
WO2023250100A1 (en) System and method for geometry point cloud coding
WO2023132329A1 (en) Point cloud decoding device, point cloud decoding method, and program
RU2778864C1 (en) Implicit geometric division based on a quad-tree or binary tree for encoding a point cloud
WO2023132330A1 (en) Point cloud decoding device, point cloud decoding method, and program
WO2023213074A1 (en) Point cloud processing method and apparatus, device, storage medium, and product
WO2024035762A1 (en) Dynamic mesh geometry refinement component adaptive coding
WO2024059232A1 (en) Point cloud decoding method, point cloud encoding method, decoder and encoder
WO2023107868A1 (en) Adaptive attribute coding for geometry point cloud coding
JP2024058011A (en) Point group decoding device, point group decoding method and program
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: 23832345

Country of ref document: EP

Kind code of ref document: A1