Decoding method, decoder, encoding method, encoder, and non-transitory computer-readable recording medium

The method addresses decoding errors in cross-attribute prediction for point cloud data by enabling or disabling cross-attribute prediction based on syntax elements, improving accuracy and resource efficiency in decoding.

CN120323019APending Publication Date: 2025-07-15GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380084583.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-12
Filing Date
2023-11-29
Publication Date
2025-07-15

AI Technical Summary

Technical Problem

Existing geometric point cloud encoding methods are prone to errors when predicting cross-attributes, resulting in inefficient encoding of multi-attribute data.

Method used

By designing specific syntax elements and processors, cross-attribute prediction is enabled and disabled, ensuring the order of attribute encoding and consistency of weight parameters, decoding and encoding the code stream is used to simplify cross-attribute prediction processing.

Benefits of technology

Improves the efficiency of geometric point cloud encoding, reduces error rates, ensures data consistency, and saves resources and time during the decoding process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120323019A_ABST
    Figure CN120323019A_ABST
Patent Text Reader

Abstract

The invention provides a decoder, an encoder, and a decoding method and a decoding method thereof. The decoding method comprises the following steps: decoding a code stream; determining whether a syntax element indicating that cross-attribute prediction is enabled exists in the code stream; in response to the syntax element indicating that the cross-attribute prediction is enabled in the code stream, decoding the syntax element indicating the cross-attribute prediction to obtain a coded value of the syntax element indicating the cross-attribute prediction; determining a value indicating a coded value of the syntax element predicted across the attribute; in response to the encoded value of the syntax element indicating the cross-attribute prediction being 1, enabling the cross-attribute prediction; disabling the cross-attribute prediction in response to the encoded value of the syntax element indicating the cross-attribute prediction being 0; in response to the absence of a syntax element in the code stream indicating that cross-attribute prediction is enabled, it is inferred that a coded value of the syntax element indicating cross-attribute prediction is 0.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - reference to related applications

[0002] This application claims the priority benefit of U.S. Provisional Application No. 63 / 387,074, filed on December 12, 2022. The entire content of the above - mentioned patent application is hereby incorporated herein by reference and constitutes a part of this specification. Technical Field

[0003] The present invention generally relates to computer - implemented methods and systems for video processing. Specifically, the present invention relates to supporting cross - attribute coding for multi - attribute data sets used in geometric point cloud coding. Background Art

[0004] The geometry point cloud coding (GPCC) standard is widely used in VR / AR for entertainment and industrial applications, such as LiDAR scan compression for automobiles or robots and HD maps for navigation. MPEG has released the first version of the GPCC standard, and AVS is also developing the GPCC standard. To efficiently compress point cloud data, the geometric information of the point cloud is first compressed, and then the corresponding attributes including color or reflectance are compressed according to the geometric information. However, during cross - attribute prediction, due to the complexity of the data, it is prone to errors when encoding multi - attribute data using existing coding methods. Summary of the Invention

[0005] Technical Problem

[0006] There is a need for new image - processing methods for efficiently decoding the encoded data and bitstreams of point clouds.

[0007] Solution to the Problem

[0008] The decoding method of the present invention includes the following steps: decoding the bitstream; determining whether there is a syntax element in the bitstream indicating that cross - attribute prediction is enabled; in response to the presence of a syntax element in the bitstream indicating that cross - attribute prediction is enabled, decoding the syntax element indicating cross - attribute prediction to obtain the encoded value of the syntax element indicating cross - attribute prediction; determining the value of the encoded value of the syntax element indicating cross - attribute prediction; in response to the encoded value of the syntax element indicating cross - attribute prediction being 1, enabling cross - attribute prediction; in response to the encoded value of the syntax element indicating cross - attribute prediction being 0, disabling cross - attribute prediction; in response to the absence of a syntax element in the bitstream indicating that cross - attribute prediction is enabled, inferring that the encoded value of the syntax element indicating cross - attribute prediction is 0.

[0009] In one embodiment of the present invention, the decoding method further includes the following steps: in response to a plurality of syntax elements indicating cross - attribute prediction being present in different types of attribute predictions, indicating that a plurality of coded values of the plurality of syntax elements indicating cross - attribute prediction have the same value.

[0010] In one embodiment of the present invention, the decoding method further includes: in response to a plurality of syntax elements indicating attribute coding being present in different attribute predictions, indicating that a plurality of coded values of the plurality of syntax elements indicating attribute coding have the same value; in response to the coded value of the syntax element indicating attribute coding being 1, first performing color decoding and then performing reflectivity decoding; in response to the coded value of the syntax element indicating attribute coding being 0, first performing reflectivity decoding and then performing color decoding.

[0011] In one embodiment of the present invention, the decoding method further includes: in response to a plurality of syntax elements indicating a first attribute prediction weight parameter across types being present in different attribute predictions, indicating that a plurality of coded values of the plurality of syntax elements indicating the first attribute prediction weight parameter across types have the same value; and in response to a plurality of syntax elements indicating a second attribute prediction weight parameter across types being present in different attribute predictions, indicating that a plurality of coded values of the plurality of syntax elements indicating the second attribute prediction weight parameter across types have the same value.

[0012] In one embodiment of the present invention, the decoding method further includes: determining whether there is a syntax element in the bitstream indicating the presentation of a specific M - th attribute, where M is an integer between 0 and 15; in response to there being a syntax element in the bitstream indicating the presentation of a specific M - th attribute, decoding the syntax element indicating the presentation of the specific M - th attribute to obtain the coded value of the syntax element indicating the presentation of the specific M - th attribute; determining the value of the coded value of the syntax element indicating the presentation of the specific M - th attribute; in response to the coded value of the syntax element indicating the presentation of the specific M - th attribute being 1, indicating that the M - th attribute indicated in the attribute mapping table exists in the attribute header of the picture of the reference sequence parameter set (SPS); in response to the coded value of the syntax element indicating the presentation of the specific M - th attribute being 0, indicating that the M - th attribute indicated in the attribute mapping table does not exist in the attribute header of the picture referencing the SPS; in response to there being no syntax element in the bitstream indicating the presentation of the specific M - th attribute, inferring that the coded value of the syntax element indicating the presentation of the specific M - th attribute is 0.

[0013] In one embodiment of the present invention, when cross - attribute prediction is enabled, indicating the syntax element of the current data identifier.

[0014] In one embodiment of the present invention, when cross - attribute prediction is enabled, the attribute slice in the bitstream includes a syntax element indicating the identifier of other attribute data for cross - attribute prediction of the current data.

[0015] The decoder of the present invention includes a communication interface, a storage device, and a processor. The communication interface is used to receive a bitstream. The storage device is used to store the bitstream. The processor is electrically connected to the communication interface and the storage device, and is used to decode the bitstream. The processor is used to determine whether there is a syntax element in the bitstream indicating that cross-attribute prediction is enabled. In response to the presence of a syntax element indicating that cross-attribute prediction is enabled in the bitstream, the processor is used to decode the syntax element indicating cross-attribute prediction to obtain the encoded value of the syntax element indicating cross-attribute prediction. The processor is used to determine the value of the encoded value of the syntax element indicating cross-attribute prediction. In response to the encoded value of the syntax element indicating cross-attribute prediction being 1, the processor is used to enable cross-attribute prediction. In response to the encoded value of the syntax element indicating cross-attribute prediction being 0, the processor is used to disable cross-attribute prediction. In response to the absence of a syntax element indicating that cross-attribute prediction is enabled in the bitstream, the processor is used to infer that the encoded value of the syntax element indicating cross-attribute prediction is 0.

[0016] In an embodiment of the present invention, in response to multiple syntax elements indicating cross-attribute prediction being present in different types of attribute prediction, the multiple encoded values of the multiple syntax elements indicating cross-attribute prediction have the same value.

[0017] In an embodiment of the present invention, in response to multiple syntax elements indicating attribute coding being present in different attribute predictions, the multiple encoded values of the multiple syntax elements indicating attribute coding have the same value. In response to the encoded value of the syntax element indicating attribute coding being 1, the processor is used to first perform color decoding and then perform reflectance decoding. In response to the encoded value of the syntax element indicating attribute coding being 0, the processor is used to first perform reflectance decoding and then perform color decoding.

[0018] In an embodiment of the present invention, in response to multiple syntax elements indicating a first cross-type attribute prediction weight parameter being present in different attribute predictions, the multiple encoded values of the multiple syntax elements indicating the first cross-type attribute prediction weight parameter have the same value; and in response to multiple syntax elements indicating a second cross-type attribute prediction weight parameter being present in different attribute predictions, the multiple encoded values of the multiple syntax elements indicating the second cross-type attribute prediction weight parameter have the same value.

[0019] In one embodiment of the present invention, the processor is configured to determine whether there is a syntax element in the bitstream indicating the presentation of a specific M-th attribute, where M is an integer between 0 and 15. In response to the presence of a syntax element in the bitstream indicating the presentation of a specific M-th attribute, the processor is configured to decode the syntax element indicating the presentation of the specific M-th attribute to obtain the coded value of the syntax element indicating the presentation of the specific M-th attribute. The processor is configured to determine the value of the coded value of the syntax element indicating the presentation of the specific M-th attribute. In response to the coded value of the syntax element indicating the presentation of the specific M-th attribute being 1, the processor is configured to indicate that the M-th attribute indicated in the attribute mapping table exists in the attribute header of the picture of the referenced sequence parameter set (SPS). In response to the coded value of the syntax element indicating the presentation of the specific M-th attribute being 0, the processor is configured to indicate that the M-th attribute indicated in the attribute mapping table does not exist in the attribute header of the picture referencing the SPS. In response to the absence of a syntax element in the bitstream indicating the presentation of a specific M-th attribute, the processor is configured to infer that the coded value of the syntax element indicating the presentation of the specific M-th attribute is 0.

[0020] In one embodiment of the present invention, when cross-attribute prediction is enabled, the attribute slice in the bitstream includes a syntax element indicating the identity of the current data.

[0021] In one embodiment of the present invention, when cross-attribute prediction is enabled, the attribute slice in the bitstream includes a syntax element specifying the identity of other attribute data for cross-attribute prediction of the current data.

[0022] The encoding method of the present invention includes the following steps: encoding the bitstream; determining whether to apply cross-attribute prediction; in response to applying cross-attribute prediction, encoding a syntax element indicating that cross-attribute prediction is enabled to generate a corresponding coded value into the bitstream, where the corresponding coded value is 1; and in response to not applying cross-attribute prediction, indicating that the syntax element indicating that cross-attribute prediction is enabled does not exist in the bitstream, or encoding a syntax element indicating that cross-attribute prediction is enabled to generate a corresponding coded value into the bitstream, where the corresponding coded value is 0.

[0023] In one embodiment of the present invention, the encoding method further includes the following steps: in response to multiple syntax elements indicating cross-attribute prediction existing in different types of attribute prediction, encoding the multiple coded values of the multiple syntax elements indicating cross-attribute prediction as the same value and encoding them into the bitstream.

[0024] In one embodiment of the present invention, the encoding method further comprises the following steps: in response to a plurality of syntax elements indicating attribute encoding existing in different attribute predictions, encoding a plurality of encoding values of the plurality of syntax elements indicating attribute encoding into the same value and encoding them into the bitstream; in response to performing color decoding first and then reflectivity decoding, the encoding value of the syntax element indicating attribute encoding is 1; and in response to performing reflectivity decoding first and then color decoding, the encoding value of the syntax element indicating attribute encoding is 0.

[0025] In one embodiment of the present invention, the encoding method further comprises the following steps: in response to a plurality of syntax elements indicating a first attribute prediction weight parameter across types existing in different attribute predictions, encoding a plurality of encoding values of the plurality of syntax elements indicating the first attribute prediction weight parameter across types into the same value and encoding them into the bitstream; and in response to a plurality of syntax elements indicating a second attribute prediction weight parameter across types existing in different attribute predictions, encoding a plurality of encoding values of the plurality of syntax elements indicating the second attribute prediction weight parameter across types into the same value and encoding them into the bitstream.

[0026] In one embodiment of the present invention, the encoding method further comprises the following steps: encoding a syntax element indicating the presentation of a specific Mth attribute to generate a corresponding encoding value into the bitstream, where M is an integer between 0 and 15 to generate a corresponding encoding value; in response to the Mth attribute indicated in the attribute mapping table existing in the attribute header of the picture of the reference sequence parameter set (SPS), the encoding value of the syntax element indicating the presentation of the specific Mth attribute is 1; and in response to the Mth attribute indicated in the attribute mapping table not existing in the attribute header of the picture referring to the SPS, the encoding value of the syntax element indicating the presentation of the specific Mth attribute is 0.

[0027] In one embodiment of the present invention, the encoding method further comprises the following steps: when cross-attribute prediction is enabled, encoding a syntax element indicating the identity of the current data to generate a corresponding encoding value into the attribute slice of the bitstream.

[0028] In one embodiment of the present invention, the encoding method further comprises the following steps: when cross-attribute prediction is enabled, encoding a syntax element indicating the identity of other attribute data for cross-attribute prediction of the current data to generate a corresponding encoding value into the attribute slice of the bitstream.

[0029] The encoder of the present invention includes a communication interface, a storage device, and a processor. The communication interface is configured to receive point cloud data. The storage device is used to store a bitstream. The processor is electrically connected to the communication interface and the storage device, and is configured to encode the point cloud data and determine whether to apply cross-attribute prediction. In response to applying cross-attribute prediction, the processor is configured to encode a syntax element indicating that cross-attribute prediction is enabled to generate a corresponding encoded value into the bitstream, where the corresponding encoded value is 1. In response to not applying cross-attribute prediction, the syntax element indicating that cross-attribute prediction is enabled does not exist in the bitstream, or the processor is configured to encode a syntax element indicating that cross-attribute prediction is enabled to generate a corresponding encoded value into the bitstream, where the corresponding encoded value is 0.

[0030] In one embodiment of the present invention, in response to a plurality of syntax elements indicating cross-attribute prediction existing in different types of attribute predictions, the processor is configured to encode the plurality of encoded values of the plurality of syntax elements indicating cross-attribute prediction into the same value and encode them into the bitstream.

[0031] In one embodiment of the present invention, in response to a plurality of syntax elements indicating attribute encoding existing in different attribute predictions, the processor is configured to encode the plurality of encoded values of the plurality of syntax elements indicating attribute encoding into the same value and encode them into the bitstream. In response to performing color decoding first and then reflectivity decoding, the encoded value of the syntax element indicating attribute encoding is 1. In response to performing reflectivity decoding first and then color decoding, the encoded value of the syntax element indicating attribute encoding is 0.

[0032] In one embodiment of the present invention, in response to a plurality of syntax elements indicating cross-type of the first attribute prediction weight parameter existing in different attribute predictions, the processor is configured to encode the plurality of encoded values of the plurality of syntax elements indicating cross-type of the first attribute prediction weight parameter into the same value and encode them into the bitstream. In response to a plurality of syntax elements indicating cross-type of the second attribute prediction weight parameter existing in different attribute predictions, the plurality of encoded values of the plurality of syntax elements indicating cross-type of the second attribute prediction weight parameter are encoded into the same value and encoded into the bitstream.

[0033] In one embodiment of the present invention, the processor is configured to encode a syntax element indicating the presentation of a specific M-th attribute to generate a corresponding encoded value into the bitstream, where M is an integer between 0 and 15 to generate a corresponding encoded value. In response to the M-th attribute indicated in the attribute mapping table existing in the picture attribute header of the reference sequence parameter set (SPS), the encoded value of the syntax element indicating the presentation of the specific M-th attribute is 1. In response to the M-th attribute indicated in the attribute mapping table not existing in the picture attribute header of the picture referring to the SPS, the encoded value of the syntax element indicating the presentation of the specific M-th attribute is 0.

[0034] In one embodiment of the present invention, when cross-attribute prediction is enabled, the processor is configured to encode a syntax element indicating the identity of the current data to generate a corresponding encoded value into the attribute slice of the bitstream.

[0035] In one embodiment of the present invention, when cross-attribute prediction is enabled, the processor is configured to encode a syntax element indicating the identity of other attribute data for cross-attribute prediction of the current data to generate a corresponding encoded value into the attribute slice of the bitstream.

[0036] A non-transitory computer-readable recording medium of the present invention stores a program that causes a computer to perform the following operations: decode a bitstream; determine whether there is a syntax element in the bitstream indicating that cross-attribute prediction is enabled; in response to the existence of a syntax element in the bitstream indicating that cross-attribute prediction is enabled, decode the syntax element indicating cross-attribute prediction to obtain the encoded value of the syntax element indicating cross-attribute prediction; determine the value of the encoded value of the syntax element indicating cross-attribute prediction; in response to the encoded value of the syntax element indicating cross-attribute prediction being 1, enable cross-attribute prediction; in response to the encoded value of the syntax element indicating cross-attribute prediction being 0, disable cross-attribute prediction; and in response to the non-existence of a syntax element in the bitstream indicating that cross-attribute prediction is enabled, infer that the encoded value of the syntax element indicating cross-attribute prediction is 0.

[0037] A non-transitory computer-readable recording medium of the present invention stores a program that causes a computer to perform the following operations: encode a bitstream; determine whether to apply cross-attribute prediction; in response to applying cross-attribute prediction, encode a syntax element indicating that cross-attribute prediction is enabled to generate a corresponding encoded value into the bitstream, where the corresponding encoded value is 1; and in response to not applying cross-attribute prediction, either the syntax element indicating that cross-attribute prediction is enabled does not exist in the bitstream, or encode a syntax element indicating that cross-attribute prediction is enabled to generate a corresponding encoded value into the bitstream, where the corresponding encoded value is 0.

[0038] Advantages of the Invention

[0039] Based on the above, the decoding method, decoder, encoding method, encoder, and non-transitory computer-readable recording medium of the present invention propose several support schemes for cross-attribute encoding of a multi-attribute data set for Geometry Point Cloud Coding (GPCC). The proposed method can be used in future GPCC coding standards, especially AVS-GPCC and MPEG GPCC. Through the implementation of the proposed method, modifications to the bitstream structure, syntax, constraints, and mapping for generating the decoded point cloud are considered for standardization.

[0040] To make the above content easier to understand, several embodiments will be described in detail below with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] Figure 1 It is a flowchart of GPCC encoding according to an embodiment of the present invention.

[0042] Figure 2A and Figure 2B Shows an octree structure of GPCC according to an embodiment of the present invention.

[0043] Figure 2C Shows the corresponding digital representation of the octree structure according to an embodiment of the present invention.

[0044] Figure 3 Shows the structure of a cube according to an embodiment of the present invention.

[0045] Figure 4 It is a flowchart of GPCC decoding according to an embodiment of the present invention.

[0046] Figure 5 It is a schematic diagram of a syntax table for color residual encoding according to an embodiment of the present invention.

[0047] Figure 6 It is a schematic diagram of a syntax table for encoding the coding level according to an embodiment of the present invention.

[0048] Figure 7 It is a schematic diagram of a syntax table for reflectivity encoding according to an embodiment of the present invention.

[0049] Figure 8 It is a schematic diagram of a syntax table for zero run-length encoding according to an embodiment of the present invention.

[0050] Figure 9 It is a schematic diagram of a syntax table according to an embodiment of the present invention.

[0051] Figure 10 It is a schematic diagram of a syntax table according to an embodiment of the present invention.

[0052] Figure 11 Schematic diagram of a syntax table according to an embodiment of the present invention.

[0053] Figure 12A and 12B Schematic diagram of a syntax table according to an embodiment of the present invention.

[0054] Figure 13 Schematic diagram of a syntax table according to an embodiment of the present invention.

[0055] Figure 14 Schematic diagram of a syntax table of a slice header according to an embodiment of the present invention.

[0056] Figure 15 Schematic diagram of a syntax table of an attribute slice header according to an embodiment of the present invention.

[0057] Figure 16 Schematic diagram of a syntax table of attribute slice data according to an embodiment of the present invention.

[0058] Figure 17 Schematic diagram of the hardware structure of a decoder according to an embodiment of the present invention.

[0059] Figure 18 Flowchart of a decoding method according to an embodiment of the present invention.

[0060] Figure 19 Schematic diagram of a syntax table according to an embodiment of the present invention.

[0061] Figure 20 Flowchart of a decoding method according to another embodiment of the present invention.

[0062] Figure 21 Schematic diagram of a syntax table according to an embodiment of the present invention.

[0063] Figure 22 Schematic diagram of a syntax table according to an embodiment of the present invention.

[0064] Figure 23 Schematic diagram of a syntax table according to an embodiment of the present invention.

[0065] Figure 24 Schematic diagram of the hardware structure of an encoder according to an embodiment of the present invention.

[0066] Figure 25 Flowchart of an encoding method according to an embodiment of the present invention. Detailed implementation manners

[0067] To understand the features and technical content of the embodiments of the present application in more detail, the implementation manners of the embodiments of the present application will be described in detail below with reference to the accompanying drawings. The accompanying drawings are only for reference and explanation purposes and are not used to limit the embodiments of the present application.

[0068] Figure 1 It is a flowchart of GPCC encoding according to an embodiment of the present invention. Refer to Figure 1 , Figure 1 The process shown is applied to a point cloud encoder. For the point cloud data to be encoded, the point cloud data is divided into multiple slices by slicing. In each slice, the position of the point cloud (i.e., geometric information) and the attributes corresponding to each point cloud are encoded respectively.

[0069] In the geometric encoding process, at step S102, each position is coordinated to convert the point cloud into a bounding box, and then at step S104, quantization is performed. Quantization mainly serves as a scaling function. Due to quantization rounding, some positions of the point cloud are the same, so it is further determined whether to delete duplicate points according to the parameters in step S104. The process of quantization and deleting duplicate points is also called the voxelization process.

[0070] Then, at step S106, the bounding box is divided into an octree for octree analysis in step S106. In the geometric information encoding process based on the octree, the bounding box is divided into 8 sub-cubes, and the non-empty (including the points in the point cloud) sub-cubes are continuously divided into 8 equal parts until a leaf knot is obtained. When the point is a 1×1×1 unit cube, the division stops, and at step S108, the points in the leaf knot are arithmetically encoded to generate a binary geometric code stream, that is, the geometric code stream.

[0071] Figure 2A and Figure 2B shows the octree structure of GPCC according to an embodiment of the present invention, and Figure 2C shows the corresponding digital representation of the octree structure according to an embodiment of the present invention. Refer to Figure 2A , the cube axis-aligned bounding box B is defined by two extreme points (0, 0, 0) and (2 d , 2 d , 2 d ), where d is the maximum size of the given point cloud along the x, y, or z direction. The points of the point cloud will be hereinafter referred to as "points". All points are included in the defined cube B.

[0072] Refer to Figure 2B, cube B is divided into eight sub-cubes B1 to B8, forming an octree structure that allows a parent cube B to have eight sub-cubes B1 to B8. Given that the seven sibling cubes B2 to B8 of cube B1 are cubes of the same size and share at least one same face / edge / point with the given cube. The volume of each of cubes B1 to B8 is 1 / 8 of the volume of its parent cube B. Each of cubes B1 to B8 can contain more than one point, and the number of points in a cube depends on the size and position of the cube. The size of the smallest cube is predefined for a given point cloud. For a given point, the parent cube of the given point is defined as the cube of the smallest size that contains the given point. The sibling points of the given point are defined as the points that have the same parent cube as the given point.

[0073] See Figure 2C , an octree is a recursive data structure commonly used to describe a three-dimensional space where each internal cube has exactly eight offspring. The space is recursively subdivided into eight octants until the resolution of the sub-cube is equal to the size of a point, which is the smallest element that cannot be further subdivided. To represent a cube, an 8-bit binary code following a space-filling curve pattern (Hilbert, Morton) is used, assigning the value "1" or "0" to each offspring to indicate whether the space in the sub-cube has any point associated with the sub-cube or the sub-cube is empty. Only the occupied sub-cubes are further subdivided. When the size of the sub-cube becomes equal to the size of the indivisible element, i.e., the spatial resolution of the point cloud, or simply the size of a point, the subdivision process of the parent cube is terminated.

[0074] Figure 3 shows the structure of a cube according to an embodiment of the present invention. See Figure 3 , depending on the position of the current cube, a cube can have at most six cubes of the same size sharing a face. In addition, the current cube can also have some adjacent cubes that share a line or a point with the current cube.

[0075] Similarly, the parent cube of the current cube also has at most six adjacent cubes of the same size as the parent cube and sharing a face with the parent cube. The parent cube of the current cube also has at most twelve adjacent cubes of the same size as the parent cube and sharing an edge. The parent cube of the current cube also has at most eight adjacent cubes of the same size as the parent cube and sharing a point with the parent cube.

[0076] Return to reference Figure 1, based on the surface formed by the distribution of the point cloud in each block, twelve surfaces and blocks are analyzed in step S110. At most 12 vertices (intersection points) are generated for the edges, and in step S108, arithmetic coding is performed on the vertices (surface fitting based on the intersection points) to generate a binary geometric code stream, that is, the geometric code stream. In step S112, the vertices are also used in the implementation of the geometric reconstruction process, and when encoding the attributes of the point cloud, the reconstructed set information is used.

[0077] During the attribute coding process, after completing the geometric coding and reconstructing the geometric information in step S112, a color transformation is performed in step S114. In the color transformation, the color information (i.e., the attribute information) is transformed from the RGB color space to the YUV color space. Then, in step S116, the point cloud is recolored using the reconstructed geometric information so that the uncoded attribute information corresponds to the reconstructed geometric information. The attribute coding is mainly for color information, but the present invention is not limited thereto. It should be noted that the attribute coding can be used for color information, reflectivity information, or other information, and they can have some common processes or different processes.

[0078] During the process of encoding color information, there are mainly two transformation methods, which can be used for color information encoding and reflectivity information encoding. One is the lifting transformation based on distance, which depends on the level of detail (LOD) division in step S118 and the lifting in step S120; the other is the direct region adaptation. The hierarchical transformation (region-adaptive hierarchical transformation, RAHT) transformation in step S122. These two methods will transform the color information from the spatial domain to the frequency domain, thereby obtaining high-frequency coefficients and low-frequency coefficients through the transformation, and finally quantifying the coefficients in step S124 (i.e., quantifying the coefficients).

[0079] Finally, in step S126, arithmetic coding is performed on the quantized coefficients to generate a binary attribute code stream, that is, the attribute code stream.

[0080] Figure 4 It is a flowchart of GPCC decoding according to an embodiment of the present invention. Figure 4 The process in is applied to the point cloud decoder. For the obtained binary code stream, first, the geometric code stream and the attribute code stream in the binary code stream are decoded in steps S402 and S404 respectively. When decoding the geometric code stream, the position of the point cloud (i.e., the geometric information) is obtained through arithmetic decoding in step S402, octree synthesis in step S406, surface fitting in step S408, geometric reconstruction in step S410, and inverse coordinate transformation in step S412.

[0081] When decoding the attribute bitstream, the attributes of the point cloud are obtained through arithmetic decoding in step S404, inverse quantization in step S414, inverse transforms based on LOD-based lifting in steps S416 and S418, or inverse transforms based on RAHT in step S420, and inverse color conversion in step S422, and a three-dimensional image model of the point cloud data to be encoded is restored based on the position and attributes.

[0082] The octree-based geometric information can be encoded through context-based arithmetic coding. The point cloud can also have some corresponding attribute information, including color, reflectivity, etc., which needs to be compressed. Since adjacent points in the point cloud may have strong correlations, prediction-based coding methods have been developed for synthesizing and coding point cloud attributes. More specifically, the prediction is formed by adjacent encoded attributes. Then, the difference between the current attribute and the prediction is encoded.

[0083] In the present invention, it is assumed that coding refers to encoding and decoding methods and systems.

[0084] [Attribute Encoding in GPCC]

[0085] After encoding the geometric information, the point cloud cube can be converted into a one-dimensional array using Morton or Hilbert code / order. Each position in the cube will have a corresponding Morton or Hilbert code, but some positions may not have corresponding point cloud attributes. In other words, some positions may be empty. The attribute encoding will follow the predefined Morton or Hilbert order. The predicted value can be generated from previously encoded points in the Morton or Hilbert order. The attribute difference between the current point and its predicted value is encoded into the bitstream.

[0086] To reduce memory usage, some predefined numbers have been indicated to limit the number of adjacent points available for generating predictions. For example, only M data points out of the previous N consecutive encoded points can be used to encode the current attribute. In the previous GPCC software, M and N were set to the fixed numbers 3 and 128 respectively.

[0087] If more than 128 points have been encoded before the current point, only 3 out of the 128 previously encoded adjacent points can be used to form an attribute prediction value in a predefined order. If the number of encoded points before the current point is less than 128, all these encoded points will be used as candidates to establish the attribute prediction value. More specifically, according to the predefined Morton or Hilbert order, K points before the current point are selected, for example, K = 6. Then, the new Morton or Hilbert codes of these N points are recalculated by adding a fixed shift, such as 1, to the coordinates (x, y, z) of the N data points. Suppose the new Morton or Hilbert code of the current position is X, then a set of P points before the current position and a set of Q points after the current position are selected according to the new Morton or Hilbert code order. Among these predefined sets of K, P, and Q points, M points are selected, and these M points have the M closest "distances" between these encoded points and the current point. As an example, the distance d1 is defined as follows, and other distance metrics can also be used.

[0088] d1 = |x1 ― x2| + |y1 ― y2| + |z1 ― z2| (1)

[0089] where (x1, y1, z1) and (x2, y2, z2) are the coordinates of the current point and the preselected point, respectively.

[0090] Recently, a full search method based on Hilbert code has been applied in AVS GPCC attribute coding. In the current software, the search range is set to 128, and the number of previous points used to form the prediction value is set to M. If more than 128 points have been encoded before the current point, according to the Hilbert order, only M out of the 128 previously encoded adjacent points can be used to form the attribute prediction value.

[0091] If the number of encoded points before the current encoded point is less than 128, all these encoded points will be used as candidates to form the attribute prediction value. Among up to 128 previously encoded points, M points are selected, and these M points have the M closest "distances" between these encoded points and the current point. As an example of the distance d2 is defined as follows, and other distance metrics can also be used.

[0092] d2 = |x1 ― x3| + |y1 ― y3| + |z1 ― z3| (2)

[0093] where (x1, y1, z1) and (x3, y3, z3) are the coordinates of the current point and the preselected point according to the Hilbert order. Once the M closest points are selected, the weighted average of the attributes from these M points is formed as the prediction value to encode the attribute of the current point.

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

[0095] The residual is defined as the difference in the attribute value between the current point and its predicted value. Depending on the application, the PCC can be lossless or lossy. Thus, the residual can be quantized through a predefined quantization process or not. In the present invention, the residual with or without quantization is called a level. The level can be a signed integer and will be encoded into the bitstream.

[0096] [Color Level Encoding]

[0097] Each point has three color attributes, coming from three color components respectively. If the levels of all three color components are zero, the point is called a zero-level point. Otherwise, if at least one of the color components of the point has a non-zero level, the point is called a non-zero-level point. In GPCC, the number of consecutive zero-level points is called the zero-run length. The zero-run length value and the levels of non-zero-level points are encoded into the bitstream. More specifically, on the encoding side, before encoding the first point, the zero-run length value is set to zero. According to the predefined encoding order, starting from the first point, the residuals between the three color prediction values of the current point and its corresponding color attributes can be obtained. Then, the corresponding levels of the three components of the current point can also be obtained. If the current point is a zero-level point, the zero-run length value will be incremented 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 is first encoded, and then the three color levels of this non-zero-level point are encoded. After encoding the levels of the non-zero-level point, the zero-run length value is reset to zero, and the process proceeds to the next point until all points are completed. 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 to zero. Then, the levels of the non-zero-level points are decoded, and then the next zero-run length value is decoded. This process continues until all points are decoded.

[0098] Figure 5 Schematic diagram of the syntax table for color residual encoding according to an embodiment of the present invention. Figure 6 Schematic diagram of the syntax table for encoding levels according to an embodiment of the present invention. Refer to Figure 5 and Figure 6 The syntax structures 500 and 600 are used to design the encoding method for generating the encoded levels as follows.

[0099] For non-zero level points, at least one of the three components has a non-zero level. The values of the three components are coded in the syntax element "color_residual_coding()". The remaining part of the absolute level can be coded with several one-bit flags to represent the levels of the three components. The absolute level of the color residual or the absolute level minus 1 can be coded in the function "coded_level_coding()", and it will be referred to as the coded level in the remaining part of this disclosure.

[0100] In one case, the first flag (i.e., the syntax element "color_first_comp_zero") is coded to indicate whether the first component of the color is zero. If the first component of the color is zero, the second flag (i.e., the syntax element "color_second_comp_zero") is coded to indicate whether the second component of the color is zero. If the second component of the color is zero, the absolute level is decreased by 1, and the sign of the third component is coded according to the following coded level method.

[0101] In another case, the first flag is coded to indicate whether the first component of the color is zero. If the first component of the color is zero, the second flag is coded to indicate whether the second component of the color is zero. If the second component of the color is not zero, the absolute level is decreased by 1, and the sign of the second component is coded according to the following coded level method, and the absolute level and sign of the third component are coded according to the following coded level method.

[0102] In another case, the first flag is coded to indicate whether the first component of the color is zero. If the first component of the color is not zero, the absolute level is decreased by 1, and the sign of the first component is coded according to the following coded level method, and the absolute levels and signs of the second and third components are coded respectively according to the following coded level methods.

[0103] The encoding method for generating the encoding level is designed as follows. Encode the first flag (i.e., the syntax element "coded_level_equal_zero") to indicate whether the encoding level is zero. If the encoding level is the absolute level of a component minus 1, that is, when "isComponentNoneZero" is equal to true, the sign of the level of the component (i.e., the syntax element "coded_level_sign") will be encoded. If the first flag indicates that the encoding level is not zero and the encoding level is the absolute level of a component itself, that is, when "isComponentNoneZero" is equal to false, the sign of the level of the component will be encoded. Encode the second flag (i.e., the syntax element "coded_level_gt1") to indicate whether the encoding level is greater than 1. If the encoding level is greater than 1, then encode the parity of the encoding level minus 2, and encode the third flag (i.e., the syntax element "coded_level_minus2_div2_gt0") to indicate whether the encoding level minus 2 and then divided by 2 is greater than zero. If the encoding level minus 2 and then divided by 2 is greater than zero, then encode the encoding level minus 2 and then divided by 2 and then minus 1.

[0104] If the encoded value of the syntax element "color_first_comp_zero" is equal to 0, it indicates that the absolute encoding level of the first component of the color is not zero. If the encoded value of the syntax element "color_first_comp_zero" is equal to 1, it indicates that the absolute encoding level of the first component is zero.

[0105] If the encoded value of the syntax element "color_second_comp_zero" is equal to 0, it indicates that the absolute encoding level of the second component of the color is not zero. If the encoded value of the syntax element "color_second_comp_zero" is equal to 1, it indicates that the absolute encoding level of the second component is zero.

[0106] If the encoded value of the syntax element "coded_level_equal_zero" is equal to 0, it indicates that the absolute encoding level of the component is not zero. If the encoded value of the syntax element "coded_level_equal_zero" is equal to 1, it indicates that the absolute encoding level of the component is zero.

[0107] If the encoded value of the syntax element "coded_level_gt1" is equal to 0, it indicates that the encoding level of the component is 1. If the encoded value of the syntax element "coded_level_gt1" is equal to 1, it indicates that the encoding level of the component is greater than 1. When it does not exist, it is inferred to be equal to 0.

[0108] The syntax element "coded_level_minus2_parity" indicates the parity of the coding level of the current component minus 2. If the syntax element "coded_level_minus2_parity" is equal to 0, it indicates that the current coding level minus 2 is even. If the syntax element "coded_level_minus2_parity" is equal to 1, it indicates that the current coding level minus 2 is odd. When it does not exist, it is inferred to be equal to 0.

[0109] If the syntax element "coded_level_minus2_div2_gt0" is equal to 0, it indicates that the coding level minus 2 divided by 2 is zero. If the syntax element "coded_level_minus2_div2_gt0" is equal to 1, it indicates that the coding level minus 2 divided by 2 is greater than zero. When it does not exist, it is inferred to be equal to 0.

[0110] The syntax element "coded_level_minu2_div2_minus1" indicates the value of the coding level minus 2 divided by 2 and then minus 1. When it does not exist, it is inferred to be equal to 0.

[0111] The syntax elements "coded_level" and "coded_level_sign" are the return values of the function coded_level_coding (i.e., "isComponentminusOne"), which represent the coding level (i.e., the absolute level of the color residual or the absolute level of the color residual minus 1) and the sign of the non-zero color residual.

[0112] coded_level = (2 * coded_level_sign - 1) * (coded_level_equal_zero? 0 : 1 + (coded_level_gt1 + coded_level_minus2_parity + (coded_level_minus2_div2_gt0 + coded_level_minu2_div2_minus1) << 1)

[0113] For the residual levels of the three color components, the syntax element "color_component[idx]" is calculated according to color_residual_coding(), where idx ranges from 0 to 2.

[0114] [Reflectance level coding]

[0115] In the GPCC specification, the zero run length of the reflectivity level and the non-zero reflectivity level are encoded into the bitstream. More specifically, on the encoding side, before encoding the first point, the zero run length counter is set to zero. Along the predefined encoding order, starting from the first point, the residual between the predicted value and the corresponding original point is obtained. Then the corresponding level is obtained. If the current level is zero, the zero run length is incremented by one, and the process proceeds to the next point. If the level is non-zero, the zero run length is first encoded, and after encoding the zero run length, the non-zero level is encoded. After encoding the non-zero level, the zero run length counter is reset to zero, and the process proceeds to the next point. On the decoding side, the zero run length number is first decoded, and the level corresponding to the zero run length number of points is set to zero. Then the non-zero level is decoded, and the next zero run length number is decoded. This process continues until all points are decoded.

[0116] For a non-zero level, if the current point is not a repeated point, first the level sign is encoded using the syntax element "residual_sign". Then, the syntax element "abs_level_minus1_parity" is encoded, which indicates the parity of the absolute level minus 1. Another syntax element "abs_level_minus1_div2_gt0" is encoded to indicate whether the value of the absolute level minus 1 divided by 2 is greater than zero. If the syntax element "abs_level_minus1_div2_gt0" is greater than zero, another syntax element "abs_level_minus1_div2_gt1" is encoded to indicate whether the value of the absolute level minus 1 divided by 2 is greater than 1. If the syntax element "abs_level_minus1_div2_gt1" is greater than 1, another syntax element "abs_level_minu1_div2_minus2" is encoded to indicate the value of the absolute level minus 1 divided by 2 and then minus 2.

[0117] See Figure 7 the syntax structure 700, Figure 7 which is a schematic diagram of the syntax table for reflectivity encoding according to an embodiment of the present invention. The syntax element "abs_level_minus1_parity" indicates the parity of the absolute reflectivity level minus 1. If the encoded value of the syntax element "abs_level_minus1_parity" is equal to 0, it indicates that the absolute reflectivity level minus 1 is even. If the encoded value of the syntax element "abs_level_minus1_parity" is equal to 1, it indicates that the absolute reflectivity level minus 1 is odd.

[0118] If the coding value of the syntax element "abs_level_minus1_div2_gt0" is equal to 0, it indicates that the value obtained by subtracting 1 from the absolute reflectance level and then dividing by 2 is zero. If the coding value of the syntax element "abs_level_minus1_div2_gt0" is equal to 1, it indicates that the value obtained by subtracting 1 from the absolute reflectance level and then dividing by 2 is greater than zero. When it does not exist, it is inferred to be equal to 0.

[0119] If the coding value of the syntax element "abs_level_minus1_div2_gt1" is equal to 0, it indicates that the value obtained by subtracting 1 from the absolute reflectance level and then dividing by 2 is 1. If the coding value of the syntax element "abs_level_minus1_div2_gt1" is equal to 1, it indicates that the value obtained by subtracting 1 from the absolute reflectance level and then dividing by 2 is greater than 1. When it does not exist, it is inferred to be equal to 0.

[0120] The syntax element "abs_level_minu1_div2_minus2" indicates the value obtained by subtracting 1 from the absolute reflectance level, then dividing by 2, and then subtracting 2. When it does not exist, it is inferred to be equal to 0. If the syntax element "residual_sign" is equal to 0, it indicates that the sign of the reflectance level is negative. If the syntax element "residual_sign" is equal to 1, it indicates that the sign of the reflectance level is positive. When it does not exist, it is inferred to be equal to 1.

[0121] The reflectance is calculated as follows: Reflectance = (2 * residual_sign - 1) * (1 + abs_level_minus1_parity + (abs_level_minus1_div2_gt0) + aabs_level_minus1_div2_gt1 + abs_level_minu1_div2_minus2) << 1)

[0122] [Zero Run-Length Encoding]

[0123] In the GPCC specification, the value of the zero run length is encoded into the bitstream. More specifically, the first syntax element "zero_run_length_level_equal_zero" is encoded to indicate whether the zero run length is equal to zero. If it is not zero, then the second syntax element "zero_run_length_level_equal_one" is encoded to indicate whether the zero run length is equal to 1; if it is not 1, then the third syntax element "zero_run_length_level_equal_two" is encoded to indicate whether the zero run length is equal to 2. If it is not 2, then the fourth syntax element "zero_run_length_level_minus3_parity" and the fifth syntax element "zero_run_length_level_minus3_div2" are encoded to indicate the parity of the zero run length minus 3 and the value of the zero run length minus 3 divided by 2, respectively.

[0124] See Figure 8 the syntax structure 800 of Figure 8 is a schematic diagram of the syntax table for zero run length encoding according to an embodiment of the present invention. The syntax element "zero_run_length_level_minus3_parity" indicates the parity check of the zero run length level minus 3. If the encoded value of the syntax element "zero_run_length_level_minus3_parity" is equal to 0, it indicates that the zero run length level minus 3 is even. If the encoded value of the syntax element "zero_run_length_level_minus3_parity" is equal to 1, it indicates that the zero run length level minus 3 is odd. When it does not exist, it is inferred to be equal to 0.

[0125] If the encoded value of the syntax element "zero_run_length_level_equal_zero" is equal to 0, it indicates that the zero run length level is not zero. If the encoded value of the syntax element "zero_run_length_level_equal_zero" is equal to 1, it indicates that the zero run length level is 0.

[0126] If the encoded value of the syntax element "zero_run_length_level_equal_one" is equal to 0, it indicates that the zero run length level is not 1. If the encoded value of the syntax element "zero_run_length_level_equal_one" is equal to 1, it indicates that the zero run length level is 1.

[0127] If the coding value of the syntax element "zero_run_length_level_equal_two" is equal to 0, it indicates that the zero run - length level is not 2. If the coding value of the syntax element "zero_run_length_level_equal_two" is equal to 1, it indicates that the zero run - length level is 2.

[0128] If the coding value of the syntax element "zero_run_length_level_minus3_div2", it indicates the value of (zero run - length level minus 3) divided by 2. When it does not exist, it is inferred to be equal to 0.

[0129] The variable zero_run_length_level is calculated as follows:

[0130] 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 < 1))))

[0131] The value of zero_run_length is calculated as follows:

[0132] zero_run_length = useGolomb? (2 * zero_run_lenght_level+zero_run_length_LSB) : zero_run_length_level

[0133] [Cross - attribute prediction]

[0134] In GPCC, there is a coding tool that utilizes cross - attribute information to generate better predictions. See Figure 9 the syntax structure 900 of Figure 9Schematic diagram of a syntax table according to an embodiment of the present invention. If the encoding value of the syntax element "crossAttrTypePred" is equal to 1, it indicates that cross-attribute prediction is enabled. If the encoding value of the syntax element "crossAttrTypePred" is equal to 0, it indicates that cross-attribute prediction is disabled. If the encoding value of the syntax element "attrEncodeOrder" is equal to 1, it indicates that color is encoded first, and then reflectance is encoded. If the encoding value of the syntax element "attrEncodeOrder" is equal to 0, it indicates that reflectance is encoded first, and then color is encoded.

[0135] More specifically, when the encoding value of the syntax element "crossAttrTypePred" is equal to 1, cross-attribute prediction is enabled. If the encoding value of the syntax element "attrEncodeOrder" is equal to 1, color is encoded first, and then reflectance prediction will be generated using the encoded color information. If the encoding value of the syntax element "attrEncodeOrder" is equal to 0, reflectance is encoded first, and color prediction will be generated using the encoded reflectance information.

[0136] [Multi-attribute data encoding]

[0137] See Figure 10 Syntax structure 1000 of Figure 10 Schematic diagram of a syntax table according to an embodiment of the present invention. The first scheme uses one syntax element to indicate the number of attribute data sets of a specific attribute. All attribute data of the specific attribute use the same attribute parameter information, such as Figure 10 shown.

[0138] The syntax element "attribute_num_data_set_minus1[attrIdx] plus 1" indicates the number of attribute data sets of the attrIdx-th attribute. The encoding value of the syntax element "attribute_num_data_set_minus1[attrIdx]" should be in the range of 0 to N (including the endpoints), for example, N is 15. When it does not exist, it is inferred that the value of attribute_num_data_set_minus1[attrIdx] is equal to -1.

[0139] The number of attribute data sets num_attr_data[attrIdx] of the attIdx-th attribute is calculated as follows:

[0140] num_attr_data[attrIdx] = attribute_num_data_set_minus1[attrIdx] + 1

[0141] Refer to Figure 11 the syntax structure 1100 in Figure 11 which is a schematic diagram of the syntax table according to an embodiment of the present invention. Accordingly, the attribute slices can be modified as follows to allow multiple attribute data sets to be encoded in the bitstream. This design allows multiple attribute data sets of one type of attribute to use the same (one) attribute information indicated in the attribute header.

[0142] Refer to Figure 12A and Figure 12B the syntax structure 1200 in Figure 12A and Figure 12B which is a schematic diagram of the syntax table of the attribute header according to an embodiment of the present invention. In order to allow different attribute data of a specific attribute to use different sets of attribute parameters, another scheme as shown in Figure 12A and Figure 12B is proposed.

[0143] If the encoded value of the syntax element "sps_multi_data_set_flag" is equal to 1, it indicates that multiple sets of attribute encoding parameters are allowed for the current point cloud encoding. If the encoded value of the syntax element "sps_multi_data_set_flag" is equal to 0, it indicates that multiple sets of attribute encoding parameters are not allowed for the current point cloud encoding. When it does not exist, it is inferred that the encoded value of the syntax element "sps_multi_data_set_flag" is equal to 0.

[0144] The syntax element "attribute_num_data_set_minus1[attrIdx]plus 1" indicates the number of attribute data sets of the attrIdx-th attribute. The encoded value of the syntax element "attribute_num_data_set_minus1[attrIdx]" should be in the range from 0 to N (including the endpoints), for example, N is 15. When it does not exist, it is inferred that the encoded value of the syntax element "attribute_num_data_set_minus1[attrIdx]" is equal to -1.

[0145] The syntax element "multi_set_flag" is equal to 1, which indicates that multiple sets of attribute encoding parameters are allowed for the current type of attribute, and the number of allowed sets of attribute encoding parameters will be further indicated by the syntax element "attribute_num_set_minus1". If the encoded value of the syntax element "multi_set_flag" is equal to 0, it indicates that multiple sets of attribute encoding parameters are not allowed for the current type of attribute, and the number of allowed sets of attribute encoding parameters is equal to 1. When it does not exist, it is inferred that the encoded value of the syntax element "multi_set_flag" is equal to 0.

[0146] Incrementing the syntax element "attribute_num_set_minus1[attrIdx]" by 1 indicates the number of parameter sets allowed for encoding the attribute of the current type attrIdx. The coded value of the syntax element "attribute_num_set_minus1" shall be in the range of 0 to N (inclusive of the endpoints), e.g., N is 15. When it is absent, it is inferred that the coded value of the syntax element "attribute_num_set_minus1" is equal to 0.

[0147] The number of attribute coding parameter sets allowed for a specific attribute shall be calculated as follows:

[0148] num_allowed_attribute_coding = attribute_num_set_minus1[attrIdx] + 1

[0149] Reference Figure 13 to the syntax structure 1300 Figure 13 is a schematic diagram of the syntax table for attribute slices according to an embodiment of the present invention. The syntax element "attributeID[attrIdx]" indicates the identification of the attribute parameter set of the attribute indexed by attrIdx, which is an integer between 0 and the coded value of the syntax element "attribute_num_set_minus1[attrIdx]". When it is absent, it is inferred to be zero.

[0150] See Figure 14 to the syntax structure 1400 Figure 14 is a schematic diagram of the syntax table according to an embodiment of the present invention. Another scheme attempts to use a unique identification of the attribute parameter set for each possible attribute data, as Figure 14 shown. Incrementing the syntax element "num_attr_minus_one" by 1 indicates the number of attribute data of the current point cloud. When it is absent, it is inferred that the coded value of the syntax element "num_attr_minus_one" is equal to -1.

[0151] The syntax element "AttributeType" indicates the attribute type of the current attribute data. The coded value 0 of the syntax element "AttributeType" indicates that the current attribute data is color. The coded value 1 of the syntax element "AttributeType" indicates that the current attribute data is reflectivity. Another coded value of the syntax element "AttributeType" is reserved for future use. The syntax element "AttributeID" represents the identification of the attribute parameter set of the current attribute data.

[0152] Reference Figure 15 to the syntax structure 1500 andFigure 16 The syntax structure 1600 Figure 15 is a schematic diagram of the syntax table of the attribute slice header according to an embodiment of the present invention Figure 16 is a schematic diagram of the syntax table of the attribute slice data according to an embodiment of the present invention. The syntax element "abh_attr_id" indicates the identifier of the attribute parameter set of the current slice attribute header

[0153] For both the color attribute and the reflectance attribute in the GPCC standard, the cross-attribute prediction-related syntax may appear multiple times. Therefore, the coded values of these syntax elements presented for color and reflectance may be different

[0154] [Decoder]

[0155] Figure 17 is a schematic diagram of the hardware structure of the decoder according to an embodiment of the present invention Figure 17 is a schematic diagram of the hardware structure of the decoder according to an embodiment of the present invention. Refer to Figure 17 , the decoder 1700 includes a processor 1710, a storage device 1720, a communication interface 1730, and a data bus 1740. The processor 1710 is electrically connected to the storage device 1720 and the communication interface 1730 through the data bus 1740. In an embodiment of the present invention, the storage device 1720 may store relevant instructions and may also store the relevant image decoder of the algorithm. The processor 1710 may receive a bitstream from the communication interface 1730. The processor 1710 may execute the relevant image decoder and / or relevant instructions to implement the decoding method of the present invention. In an embodiment of the present invention, the decoder 1700 may be implemented by one or more personal computers (PCs), one or more server computers, and one or more workstation computers, or may be composed of multiple computing devices, but the present invention is not limited thereto. In an embodiment of the present invention, the decoder 1700 may include more processors for executing the relevant image decoder and / or relevant instructions to implement the image data processing method of the present invention. In an embodiment of the present invention, the decoder 1700 may implement Figure 4 the GPCC decoding method in

[0156] In an embodiment of the present invention, the processor 1710 may include, for example, a central processing unit (CPU), a graphic processing unit (GPU), or other programmable general-purpose or special-purpose microprocessors, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a programmable logic device (PLD), other similar processing circuits, or a combination of these devices. In an embodiment of the present invention, the storage device 1720 may be a non-transitory computer-readable recording medium, such as a read-only memory (ROM), an erasable programmable read-only memory (EPROM), an electrically-erasable programmable read-only memory (EEPROM), or a non-volatile memory (NVM), but the present invention is not limited thereto. In an embodiment of the present invention, the relevant image decoder and / or relevant instructions may also be stored in the non-transitory computer-readable recording medium of one device and executed by the processor of another device. For example, the communication interface 1730 is a network card supporting a wired network connection such as Ethernet, a wireless network card supporting wireless communication standards such as Institute of Electrical and Electronics Engineers (IEEE) 802.11n / b / g / ac / ax / be, or any other network connection device, but the embodiments are not limited thereto. The communication interface 1730 is configured to obtain a bitstream. In an embodiment of the present invention, the bitstream may include encoded values of a geometric bitstream and an attribute bitstream. The attribute bitstream may further include encoded values of color levels, reflectance levels, and / or zero run lengths. The processor 1710 may be configured to decode the bitstream to obtain corresponding data of the point cloud. In an embodiment of the present invention, the storage device 1720 may be a non-transitory computer-readable recording medium for storing a program that causes the processor 1710 to execute the decoding method shown below.

[0157] Figure 18 It is a flowchart of a decoding method according to an embodiment of the present invention. Refer to Figure 17 and Figure 18, in an embodiment of the present invention, the decoder 1700 may receive an attribute bitstream from the communication interface 1730, and may decode the attribute bitstream to obtain the corresponding attribute information of the point cloud. During the process of decoding the attribute bitstream, the decoder 1700 may perform the following steps S1810 to S1870. In step S1810, the processor 1710 decodes the bitstream. In step S1820, the processor 1710 determines whether there is a syntax element in the bitstream indicating that cross-attribute prediction is enabled. In step S1830, in response to the absence of a syntax element in the bitstream indicating that cross-attribute prediction is enabled, the processor 1710 infers that the coded value of the syntax element indicating cross-attribute prediction is 0. In step S1840, in response to the presence of a syntax element in the bitstream indicating that cross-attribute prediction is enabled, the processor 1710 decodes the syntax element indicating cross-attribute prediction to obtain the coded value of the syntax element indicating cross-attribute prediction. In step S1850, the processor 1710 determines the value of the coded value of the syntax element indicating cross-attribute prediction. In step S1860, in response to the coded value of the syntax element indicating cross-attribute prediction being 0, the processor 1710 disables cross-attribute prediction. In step S1870, in response to the coded value of the syntax element indicating cross-attribute prediction being 1, the processor 1710 enables cross-attribute prediction.

[0158] In an embodiment of the present invention, in response to multiple syntax elements indicating cross-attribute prediction existing in different types of attribute predictions, the multiple coded values of the multiple syntax elements indicating cross-attribute prediction have the same value. In one embodiment of the present invention, in response to multiple syntax elements "attrEncodeOrder" indicating attribute coding existing in different attribute predictions, the multiple coded values of the multiple syntax elements "attrEncodeOrder" indicating attribute coding "attrEncodeOrder" have the same value. In response to the coded value of the syntax element "attrEncodeOrder" indicating attribute coding being 1, color decoding is performed first, and then reflectance decoding is performed. In response to the coded value of the syntax element "attrEncodeOrder" indicating attribute coding being 0, reflectance decoding is performed first, and then color decoding is performed.

[0159] In another embodiment of the present invention, in response to indicating that multiple syntax elements of the first attribute prediction weight parameter across types "crossAttrTypePredParam1" exist in different attribute predictions, it is indicated that multiple encoded values of the multiple syntax elements of the first attribute prediction weight parameter across types have the same value. In response to indicating that multiple syntax elements of the second attribute prediction weight parameter across types "crossAttrTypePredParam2" exist in different attribute predictions, it is indicated that multiple encoded values of the multiple syntax elements of the second attribute prediction weight parameter across types have the same value. The first attribute prediction weight parameter across types "crossAttrTypePredParam1" and the second attribute prediction weight parameter across types "crossAttrTypePredParam2" can be used to control weight parameters 1 and 2, and weight parameters 1 and 2 are used to calculate the geometric information distance and the attribute information distance in cross-type attribute prediction.

[0160] Specifically, with further reference to Figure 19 the syntax structure 1900 of Figure 19 which is a schematic diagram of a syntax table according to an embodiment of the present invention. In an embodiment of the present invention, the decoder 1700 may propose that cross-attribute prediction-related syntax is only allowed to be presented / parsed once. As Figure 19 shown, if the encoded value of the syntax element "crossAttrTypePred" is equal to 1, it indicates that cross-attribute prediction is enabled. If the encoded value of the syntax element "crossAttrTypePred" is equal to 0, it indicates that cross-attribute prediction is disabled. When it does not exist, it is inferred to be 0.

[0161] In addition, the decoder 1700 may also propose that regardless of how many times the cross-attribute prediction-related syntax is presented / parsed, the encoded values of the same syntax presented / parsed are the same. As Figure 19 shown, if the syntax element "attribute prediction-related syntax" is presented / parsed twice for color and reflectance respectively, the encoded values of the two syntax elements "crossAttrTypePred" have the same value. Similarly, the encoded values of the two syntax elements "attrEncodeOrder" also have the same value. The encoded values of the two syntax elements "crossAttrTypePredParam1" also have the same value. The encoded values of the two syntax elements "crossAttrTypePredParam2" also have the same value.

[0162] Referring to Figure 17 and Figure 20 , Figure 20A flowchart of a decoding method according to another embodiment of the present invention. In one embodiment of the present invention, decoder 1700 may further perform the following steps S2010 to S2060. In step S2010, during the decoding process, processor 1700 may determine whether there is a syntax element in the bitstream indicating the presentation of a specific M-th attribute (i.e., the following attrIdx-attribute), where M is an integer between 0 and 15. In step S2020, in response to there being no syntax element in the bitstream indicating the presentation of a specific M-th attribute, processor 1700 may infer the coded value of the syntax element indicating the presentation of a specific M-th attribute as 0. In step S2030, in response to there being a syntax element in the bitstream indicating the presentation of a specific M-th attribute, processor 1700 may decode the syntax element indicating the presentation of a specific M-th attribute to obtain the coded value of the syntax element indicating the presentation of a specific M-th attribute. In step S2040, processor 1700 may determine the value of the coded value of the syntax element indicating the presentation of a specific M-th attribute. In step S2050, in response to the coded value of the syntax element indicating the presentation of a specific M-th attribute being 0, processor 1700 may indicate that the M-th attribute indicated in the attribute mapping table does not exist in the attribute header of the picture referring to the SPS. In step S2060, in response to the coded value of the syntax element indicating the presentation of a specific M-th attribute being 1, processor 1700 may indicate that the M-th attribute indicated in the attribute mapping table exists in the attribute header of the picture referring to the sequence parameter set (SPS).

[0163] Specifically, referring again to Figure 19 , the syntax element "attributePresentFlag[attrIdx]" is used to present a specific attrIdx-attribute. It is parsed under certain conditions. If the coded value of the syntax element "AttributePresentFlag[attrIdx]" is equal to 1, it indicates that the attrIdx-th attribute indicated in the attribute mapping table exists in the attribute header of the picture referring to the SPS. If the coded value of the syntax element "attributePresentFlag[attrIdx]" is equal to 0, it indicates that the attrIdx-th attribute indicated in the attribute mapping table does not exist in the attribute header of the picture referring to the SPS. When the syntax element "attributePresentFlag[attrIdx]" does not exist, it is inferred as 0.

[0164] In addition, referring additionally to Figures 21 to 23 the syntax structures 2100 to 2300 of Figures 21 to 23Schematic diagram of a syntax table according to an embodiment of the present invention. The decoder 1700 can also be implemented to determine how to identify two attribute data for cross-attribute prediction, such as Figures 21 to 23 shown. The syntax element "attribute_data_id[attrIdx][attr]" indicates the identity of the current data when cross-attribute prediction is enabled, and the syntax element "attribute_data_cross_id[attrIdx][attr]" indicates the identity of other attribute data for cross-attribute prediction of the current data when cross-attribute prediction is enabled. For the reflectance attribute, the other attribute represents color. Similarly, for the color attribute, the other attribute refers to reflectance. As Figures 21 to 23 shown, the syntax element "attribute_data_id[attrIdx][attr]" and the syntax element "attribute_data_cross_id[attrIdx][attr]" can be encoded to different encoding positions.

[0165] Therefore, according to the above embodiments, the decoder 1700 and the decoding method of the present invention can simplify the processing of cross-attribute prediction, reduce the error rate, ensure data consistency, and potentially save parsing time and resources during the decoding process.

[0166] [Encoder]

[0167] Figure 24 Schematic diagram of the hardware structure of an encoder according to an embodiment of the present invention. Refer to Figure 24 , the encoder 2400 includes a processor 2410, a storage device 2420, a communication interface 2430, and a data bus 2440. The processor 2410 is electrically connected to the storage device 2420 and the communication interface 2430 through the data bus 2440. In an embodiment of the present invention, the storage device 2420 can store relevant instructions and can also store relevant image encoders of the algorithm. The processor 2410 can receive a bitstream from the communication interface 2430. The processor 2410 can execute the relevant image encoder and / or relevant instructions to implement the encoding method of the present invention. In an embodiment of the present invention, the encoder 2400 can be implemented by one or more personal computers (PCs), one or more server computers, and one or more workstation computers, or composed of multiple computing devices, but the present invention is not limited thereto. In an embodiment of the present invention, the encoder 2400 can include more processors for executing the relevant image encoder and / or relevant instructions to implement the image data processing method of the present invention. In an embodiment of the present invention, the decoder 2400 can implement Figure 1 the GPCC encoding method in

[0168] In an embodiment of the present invention, the processor 2410 may include, for example, a central processing unit (CPU), a graphics processing unit (GPU), or other programmable general or special microprocessors, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a programmable logic device (PLD), other similar processing circuits, or a combination of these devices. In an embodiment of the present invention, the storage device 2420 may be a non-transitory computer-readable recording medium, such as a read-only memory (ROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a non-volatile memory (NVM), but the present invention is not limited thereto. In an embodiment of the present invention, the relevant image encoder and / or relevant instructions may also be stored in the non-transitory computer-readable recording medium of one device and executed by the processor of another device. For example, the communication interface 2430 is a network card supporting a wired network connection such as Ethernet, a wireless network card supporting wireless communication standards such as Institute of Electrical and Electronics Engineers (IEEE) 802.11n / b / g / ac / ax / be, or any other network connection device, but the embodiment is not limited thereto. The communication interface 2430 is configured to acquire the data of the point cloud. In an embodiment of the present invention, the processor 2410 may encode the data of the point cloud to generate a corresponding bitstream. In an embodiment of the present invention, the storage device 2420 may be a non-transitory computer-readable recording medium for storing a program that causes the processor 2410 to execute the encoding method shown below.

[0169] Figure 25 It is a flowchart of an encoding method according to an embodiment of the present invention. Refer to Figure 24 and Figure 25 , in an embodiment of the present invention, the encoder 2400 may receive the data of the point cloud from the communication interface 2430 and may encode the attribute information of the point cloud to generate a corresponding attribute bitstream. During the encoding process of the point cloud data, the encoder 2400 may perform the following steps S2510 to S2540. In step S2510, the processor 2410 may encode the bitstream. The bitstream may be provided to the decoder of the above embodiment for decoding. In step S2520, the processor 2410 may determine whether to apply cross-attribute prediction. In step S2530, in response to not applying cross-attribute prediction, the processor 2410 may process the syntax element indicating that cross-attribute prediction is enabled (i.e., Figure 19Encode the syntax element "crossAttrTypePred" in it to generate the corresponding encoded value into the bitstream, where the corresponding encoded value is 0. In an embodiment of the present invention, in response to not applying cross-attribute prediction, the syntax element indicating that cross-attribute prediction is enabled does not exist in the bitstream. In step S2540, in response to applying cross-attribute prediction, the processor 2410 may encode the syntax element indicating that cross-attribute prediction is enabled to generate the corresponding encoded value into the bitstream, where the corresponding encoded value is 1.

[0170] In an embodiment of the present invention, in response to multiple syntax elements indicating cross-attribute prediction existing in different types of attribute predictions, the processor 2410 may encode the multiple encoded values of the multiple syntax elements indicating cross-attribute prediction as the same value and encode them into the bitstream.

[0171] In an embodiment of the present invention, in response to multiple syntax elements indicating attribute encoding (i.e., Figure 19 the syntax element "attrEncodeOrder" in it) existing in different attribute predictions, the processor 2410 may encode the multiple encoded values of the multiple syntax elements indicating attribute encoding as the same value and encode them into the bitstream. In response to performing color decoding first and then reflectance decoding, the encoded value of the syntax element indicating attribute encoding is 1. In response to performing reflectance decoding first and then color decoding, the encoded value of the syntax element indicating attribute encoding is 0.

[0172] In another embodiment of the present invention, in response to multiple syntax elements indicating the cross-type of the first attribute prediction weight parameter (i.e., Figure 19 the syntax element "crossAttrTypePredParam1" in it) existing in different attribute predictions, the processor 2410 may encode the multiple encoded values of the multiple syntax elements indicating the cross-type of the first attribute prediction weight parameter as the same value and encode them into the bitstream. In response to multiple syntax elements indicating the cross-type of the second attribute prediction weight parameter (i.e., Figure 19 the syntax element "crossAttrTypePredParam2" in it) existing in different attribute predictions, the processor 2410 may encode the multiple encoded values of the multiple syntax elements indicating the cross-type of the second attribute prediction weight parameter as the same value and encode them into the bitstream.

[0173] In an embodiment of the present invention, the processor 2410 may also encode the syntax element indicating the presentation of the specific M-th attribute (i.e., Figure 19The syntax element “attributePresentFlag[attrIdx]” therein is used to generate a corresponding coded value into the bitstream, where M (i.e., “attrIdx”) is an integer between 0 and 15 to generate a corresponding coded value. In response to the Mth attribute indicated in the attribute mapping table being present in the picture attribute header of the reference sequence parameter set (SPS), the coded value of the syntax element indicating the presentation of the specific Mth attribute is 1. In response to the Mth attribute specified in the attribute mapping table not being present in the picture attribute header of the reference SPS, the coded value of the syntax element indicating the presentation of the specific Mth attribute is 0.

[0174] In one embodiment of the present invention, when cross-attribute prediction is enabled, the processor 2410 may also code a syntax element (i.e., Figures 21 to 23 the syntax element “attribute_data_id[attrIdx][attr]” therein) to generate a corresponding coded value into the attribute slice of the bitstream, and when cross-attribute prediction is enabled, the processor 2410 may also code a syntax element (i.e., Figures 21 to 23 the syntax element “attribute_data_cross_id[attrIdx][attr]” therein) indicating the identity of other attribute data for cross-attribute prediction of the current data to generate a corresponding coded value into the attribute slice of the bitstream.

[0175] Therefore, according to the above embodiments, the encoding end 2400 and the encoding method of the present invention can generate an encoded bitstream for the above decoding to simplify the processing of cross-attribute prediction, reduce the error rate, ensure data consistency, and potentially save parsing time and resources during the decoding process.

[0176] In summary, the decoder, decoding method, encoder, encoding method, and non-transitory computer-readable recording medium of the present invention can achieve better prediction by designing specific syntax elements in the attribute bitstream, thereby effectively simplifying the processing of cross-attribute prediction of the attribute bitstream, reducing the error rate, ensuring data consistency, and potentially saving parsing time and resources during the decoding process.

[0177] Numerous specific details are set forth herein to provide a thorough understanding of the subject matter. However, those skilled in the art will understand that the subject matter may be practiced without these specific details. In other instances, methods, devices, or systems known to those of ordinary skill in the art have not been described in detail so as not to obscure the subject matter.

[0178] Unless otherwise specifically stated, it should be understood that throughout the specification, discussions using terms such as "processing", "computing", "operation", "determining", and "identifying" refer to actions or processes of a computing device (e.g., one or more computers or similar one or more electronic computing devices), which manipulate or transform data represented as physical electronic or magnetic quantities within the memory, registers, or other information storage devices, transmission devices, or display devices of the computing platform.

[0179] One or more systems discussed herein are not limited to any particular hardware architecture or configuration. A computing device can include any suitable arrangement of components that provide results conditioned on one or more inputs. Suitable computing devices include computer systems based on general-purpose microprocessors that access stored software that programs or configures the computing system from a general computing device into a special-purpose computing device for implementing one or more embodiments of the present subject matter. Any suitable programming, scripting, or other type of language or combination of languages can be used to implement the teachings contained herein as software for programming or configuring the computing device.

[0180] Method embodiments disclosed herein can be executed in the operation of such a computing device. The order of the blocks presented in the above examples can be changed, e.g., the blocks can be reordered, combined, and / or decomposed into sub-blocks. Certain blocks or processes can be executed in parallel.

[0181] The use of "adapted to" or "configured to" herein refers to open and inclusive language that does not exclude a device adapted to or configured to perform additional tasks or steps. Additionally, the use of "based on" is intended to be open and inclusive because a process, step, computation, or other action "based on" one or more stated conditions or values can actually be based on additional conditions or values beyond the stated conditions or values. The headings, lists, and numbers contained herein are for ease of illustration only and not for limitation.

[0182] Although the present subject matter has been described in detail in connection with specific embodiments of the subject matter, it should be understood that those skilled in the art can readily make alterations, changes, and equivalents to these embodiments after understanding the above. Accordingly, it should be understood that the present disclosure is presented for purposes of illustration and not limitation, and does not exclude such modifications, changes, and / or additions to the present subject matter that are obvious to those of ordinary skill in the art.

[0183] List of Reference Numerals

[0184] 1700: Decoder

[0185] 1710, 2410: Processor

[0186] 1720, 2420: Storage Device

[0187] 1730, 2430: Communication interfaces

[0188] 1740, 2440: Data buses

[0189] 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1900, 2100, 2200, 2300: Syntax structures

[0190] 700: Geometric head component

[0191] 800: Geometric data component

[0192] 2400: Encoder

[0193] B1 to B8: Cubes

[0194] S102, S104, S106, S108, S110, S112, S114, S116, S118, S120, S122, S124, S126, S402, S404, S406, S408, S410, S412, S414, S416, S418, S420, S422, S1810, S1820, S1830, S1840, S1850, S1860, S1870, S2010, S2020, S2030, S2040, S2050, S2060, S2510, S2520, S2530, S2540: Steps.

Claims

1. A decoding method, characterized in that, Comprising: Decoding the bitstream; Determining whether there is a syntax element in the bitstream indicating that cross-attribute prediction is enabled; In response to there being a syntax element in the bitstream indicating that cross-attribute prediction is enabled, decoding the syntax element indicating cross-attribute prediction to obtain the encoded value of the syntax element indicating cross-attribute prediction; Determining the value of the encoded value of the syntax element indicating cross-attribute prediction; In response to the encoded value of the syntax element indicating cross-attribute prediction being 1, enabling cross-attribute prediction; In response to the encoded value of the syntax element indicating cross-attribute prediction being 0, disabling cross-attribute prediction; In response to there being no syntax element in the bitstream indicating that cross-attribute prediction is enabled, inferring that the encoded value of the syntax element indicating cross-attribute prediction is 0.

2. The decoding method according to claim 1, wherein Further comprising: In response to multiple syntax elements indicating cross-attribute prediction existing in different types of attribute predictions, the multiple encoded values of the multiple syntax elements indicating cross-attribute prediction having the same value.

3. The decoding method according to claim 1, characterized in that, Further comprising: In response to multiple syntax elements indicating attribute coding existing in different attribute predictions, the multiple encoded values of the multiple syntax elements indicating attribute coding having the same value; wherein, in response to the encoded value of the syntax element indicating attribute coding being 1, first performing color decoding and then performing reflectance decoding; wherein, in response to the encoded value of the syntax element indicating attribute coding being 0, first performing reflectance decoding and then performing color decoding.

4. The decoding method according to claim 1, wherein Further comprising: In response to multiple syntax elements indicating the first attribute prediction weight parameter across types existing in different attribute predictions, the multiple encoded values of the multiple syntax elements indicating the first attribute prediction weight parameter across types having the same value; and In response to multiple syntax elements indicating the second attribute prediction weight parameter across types existing in different attribute predictions, the multiple encoded values of the multiple syntax elements indicating the second attribute prediction weight parameter across types having the same value.

5. The decoding method according to claim 1, wherein Further comprising: Determining whether there is a syntax element in the bitstream indicating the presentation of a specific M-th attribute, where M is an integer between 0 and 15; In response to there being a syntax element in the bitstream indicating the presentation of a specific M-th attribute, decoding the syntax element indicating the presentation of a specific M-th attribute to obtain the encoded value of the syntax element indicating the presentation of a specific M-th attribute; Determining the value of the encoded value of the syntax element indicating the presentation of a specific M-th attribute; In response to the encoded value of the syntax element indicating the presentation of a specific M-th attribute being 1, indicating that the M-th attribute indicated in the attribute mapping table exists in the attribute header of the picture of the reference sequence parameter set (SPS); In response to the encoded value of the syntax element indicating the presentation of a specific M-th attribute being 0, indicating that the M-th attribute indicated in the attribute mapping table does not exist in the attribute header of the picture referring to the SPS; In response to there being no syntax element in the bitstream indicating the presentation of a specific M-th attribute, inferring that the encoded value of the syntax element indicating the presentation of a specific M-th attribute is 0.

6. The decoding method according to claim 1, wherein When cross-attribute prediction is enabled, the attribute slice in the bitstream includes a syntax element indicating the identity of the current data.

7. The decoding method according to claim 6, wherein When cross-attribute prediction is enabled, the attribute slice in the bitstream includes a syntax element indicating the identity of other attribute data for cross-attribute prediction of the current data.

8. A decoder, characterized in that, Comprising: A communication interface for receiving a bitstream; A storage device for storing the bitstream; And A processor electrically connected to the communication interface and the storage device for decoding the bitstream; The processor is configured to determine whether there is a syntax element in the bitstream indicating that cross - attribute prediction is enabled; In response to the existence of a syntax element indicating that cross - attribute prediction is enabled in the bitstream, the processor is configured to decode the syntax element indicating cross - attribute prediction to obtain the encoded value of the syntax element indicating cross - attribute prediction; The processor is configured to determine the value of the encoded value of the syntax element indicating cross - attribute prediction; In response to the encoded value of the syntax element indicating cross - attribute prediction being 1, the processor is configured to enable cross - attribute prediction, and in response to the encoded value of the syntax element indicating cross - attribute prediction being 0, the processor is configured to disable cross - attribute prediction; In response to the non - existence of a syntax element indicating that cross - attribute prediction is enabled in the bitstream, the processor is configured to infer that the encoded value of the syntax element indicating cross - attribute prediction is 0.

9. The decoder according to claim 8, wherein In response to multiple syntax elements indicating cross - attribute prediction existing in different types of attribute predictions, the multiple encoded values of the multiple syntax elements indicating cross - attribute prediction have the same value.

10. The decoder according to claim 8, characterized in that In response to multiple syntax elements indicating attribute coding existing in different attribute predictions, the multiple encoded values of the multiple syntax elements indicating attribute coding have the same value; Wherein, in response to the encoded value of the syntax element indicating attribute coding being 1, the processor is configured to first perform color decoding and then perform reflectivity decoding; Wherein, in response to the encoded value of the syntax element indicating attribute coding being 0, the processor is configured to first perform reflectivity decoding and then perform color decoding.

11. The decoder according to claim 8, characterized in that, In response to multiple syntax elements indicating the cross - type of the first attribute prediction weight parameter existing in different attribute predictions, the multiple encoded values of the multiple syntax elements indicating the cross - type of the first attribute prediction weight parameter have the same value; And In response to multiple syntax elements indicating the cross - type of the second attribute prediction weight parameter existing in different attribute predictions, the multiple encoded values of the multiple syntax elements indicating the cross - type of the second attribute prediction weight parameter have the same value.

12. The decoder according to claim 8, wherein The processor is configured to determine whether there is a syntax element in the bitstream indicating the presentation of a specific M - th attribute, where M is an integer between 0 and 15; In response to the existence of a syntax element indicating the presentation of a specific M - th attribute in the bitstream, the processor is configured to decode the syntax element indicating the presentation of a specific M - th attribute to obtain the encoded value of the syntax element indicating the presentation of a specific M - th attribute; Wherein, the processor is configured to determine the value of the encoded value of the syntax element indicating the presentation of a specific M - th attribute; In response to the encoded value of the syntax element indicating the presentation of a specific M - th attribute being 1, the processor is configured to indicate that the M - th attribute indicated in the attribute mapping table exists in the attribute header of the picture of the reference sequence parameter set (SPS); In response to the encoded value of the syntax element indicating the presentation of a specific M - th attribute being 0, the processor is configured to indicate that the M - th attribute indicated in the attribute mapping table does not exist in the attribute header of the picture referring to the SPS; In response to the absence of a syntax element indicating the presentation of a specific M-th attribute in the bitstream, the processor is configured to infer that the coded value of the syntax element indicating the presentation of the specific M-th attribute is 0.

13. The decoder according to claim 1, characterized in that, When cross-attribute prediction is enabled, an attribute slice in the bitstream includes a syntax element indicating the identity of the current data.

14. The decoder according to claim 13, characterized in that, When cross-attribute prediction is enabled, an attribute slice in the bitstream includes a syntax element indicating the identity of other attribute data for cross-attribute prediction of the current data.

15. A coding method, characterized in that, Comprising: Encoding the bitstream; Determining whether to apply cross-attribute prediction; In response to applying cross-attribute prediction, encoding a syntax element indicating that cross-attribute prediction is enabled to generate a corresponding coded value into the bitstream, wherein the corresponding coded value is 1; and In response to not applying cross-attribute prediction, either the syntax element indicating that cross-attribute prediction is enabled does not exist in the bitstream, or encoding a syntax element indicating that cross-attribute prediction is enabled to generate a corresponding coded value into the bitstream, wherein the corresponding coded value is 0.

16. The encoding method according to claim 15, wherein Further comprising: In response to multiple syntax elements indicating cross-attribute prediction being present in different types of attribute prediction, encoding multiple coded values of the multiple syntax elements indicating cross-attribute prediction as the same value and encoding them into the bitstream.

17. The encoding method according to claim 15, characterized in that, Further comprising: In response to multiple syntax elements indicating attribute encoding being present in different attribute predictions, encoding multiple coded values of the multiple syntax elements indicating attribute encoding as the same value and encoding them into the bitstream; In response to performing color decoding first and then reflectance decoding, the coded value of the syntax element indicating attribute encoding is 1; and And In response to performing reflectance decoding first and then color decoding, the coded value of the syntax element indicating attribute encoding is 0.

18. The encoding method according to claim 15, characterized in that, Further comprising: In response to multiple syntax elements indicating a first attribute prediction weight parameter across types being present in different attribute predictions, encoding multiple coded values of the multiple syntax elements indicating the first attribute prediction weight parameter across types as the same value and encoding them into the bitstream; And In response to multiple syntax elements indicating a second attribute prediction weight parameter across types being present in different attribute predictions, encoding multiple coded values of the multiple syntax elements indicating the second attribute prediction weight parameter across types as the same value and encoding them into the bitstream.

19. The encoding method according to claim 15, wherein Further comprising: Encoding a syntax element indicating the presentation of a specific M-th attribute to generate a corresponding coded value into the bitstream, where M is an integer between 0 and 15 to generate a corresponding coded value; In response to the M-th attribute indicated in the attribute mapping table being present in the attribute header of a picture in a referenced sequence parameter set (SPS), the coded value of the syntax element indicating the presentation of the specific M-th attribute is 1; and In response to the M-th attribute indicated in the attribute mapping table not being present in the attribute header of a picture referencing the SPS, the coded value of the syntax element indicating the presentation of the specific M-th attribute is 0.

20. The encoding method according to claim 15, characterized in that, Further comprising: When cross-attribute prediction is enabled, encoding a syntax element indicating the identity of the current data to generate a corresponding coded value into the attribute slice of the bitstream.

21. The encoding method according to claim 20, wherein Further comprising: When cross - attribute prediction is enabled, a syntax element indicating the identification of other attribute data for cross - attribute prediction of the current data is encoded to generate a corresponding encoded value into the attribute slice of the bitstream.

22. An encoder, characterized in that, Including: A communication interface for receiving point cloud data; A storage device for storing the bitstream; And A processor electrically connected to the communication interface and the storage device, for encoding the point cloud data and determining whether to apply cross - attribute prediction; Wherein In response to applying cross - attribute prediction, the processor is used to encode a syntax element indicating that cross - attribute prediction is enabled to generate a corresponding encoded value into the bitstream, wherein the corresponding encoded value is 1; and In response to not applying cross - attribute prediction, the syntax element indicating that cross - attribute prediction is enabled does not exist in the bitstream, or the processor is used to encode a syntax element indicating that cross - attribute prediction is enabled to generate a corresponding encoded value into the bitstream, wherein the corresponding encoded value is 0.

23. The encoder according to claim 22, characterized in that, In response to multiple syntax elements indicating cross - attribute prediction existing in different types of attribute predictions, the processor is used to encode multiple encoded values of the multiple syntax elements indicating cross - attribute prediction into the same value and encode them into the bitstream.

24. The encoder according to claim 22, characterized in that, In response to multiple syntax elements indicating attribute encoding existing in different attribute predictions, the processor is used to encode multiple encoded values of the multiple syntax elements indicating attribute encoding into the same value and encode them into the bitstream; In response to performing color decoding first and then reflectance decoding, the encoded value of the syntax element indicating attribute encoding is 1; And In response to performing reflectance decoding first and then color decoding, the encoded value of the syntax element indicating attribute encoding is 0.

25. The encoder according to claim 22, characterized in that, In response to multiple syntax elements indicating cross - type first - attribute prediction weight parameters existing in different attribute predictions, the processor is used to encode multiple encoded values of the multiple syntax elements indicating cross - type first - attribute prediction weight parameters into the same value and encode them into the bitstream; And In response to multiple syntax elements indicating cross - type second - attribute prediction weight parameters existing in different attribute predictions, encode multiple encoded values of the multiple syntax elements indicating cross - type second - attribute prediction weight parameters into the same value and encode them into the bitstream.

26. The encoder according to claim 22, wherein, The processor is used to encode a syntax element indicating the presentation of a specific M - th attribute to generate a corresponding encoded value into the bitstream, where M is an integer between 0 and 15 to generate a corresponding encoded value; In response to the M - th attribute indicated in the attribute mapping table existing in the attribute header of the picture of the reference sequence parameter set (SPS), the encoded value of the syntax element indicating the presentation of the specific M - th attribute is 1; and In response to the M - th attribute indicated in the attribute mapping table not existing in the attribute header of the picture referring to the SPS, the encoded value of the syntax element indicating the presentation of the specific M - th attribute is 0.

27. The encoding method according to claim 22, wherein When cross - attribute prediction is enabled, the processor is used to encode a syntax element indicating the identification of the current data to generate a corresponding encoded value into the attribute slice of the bitstream.

28. The encoding method according to claim 27, characterized in that, When cross - attribute prediction is enabled, the processor is used to encode a syntax element indicating the identity of other attribute data for cross - attribute prediction of current data to generate a corresponding encoded value into an attribute slice of the bitstream.

29. A non - transitory computer - readable recording medium stores a program that causes a computer to perform the following operations: Decode a bitstream; Determine whether there is a syntax element in the bitstream indicating that cross - attribute prediction is enabled; In response to the existence of a syntax element indicating that cross - attribute prediction is enabled in the bitstream, decode the syntax element indicating cross - attribute prediction to obtain the encoded value of the syntax element indicating cross - attribute prediction; Determine the value of the encoded value of the syntax element indicating cross - attribute prediction; In response to the encoded value of the syntax element indicating cross - attribute prediction being 1, enable cross - attribute prediction; In response to the encoded value of the syntax element indicating cross - attribute prediction being 0, disable cross - attribute prediction; In response to the non - existence of a syntax element indicating that cross - attribute prediction is enabled in the bitstream, infer that the encoded value of the syntax element indicating cross - attribute prediction is 0.

30. A non - transitory computer - readable recording medium stores a program that causes a computer to perform the following operations: Encode a bitstream; Determine whether to apply cross - attribute prediction; In response to applying cross - attribute prediction, encode a syntax element indicating that cross - attribute prediction is enabled to generate a corresponding encoded value into the bitstream, where the corresponding encoded value is 1; and In response to not applying cross - attribute prediction, either the syntax element indicating that cross - attribute prediction is enabled does not exist in the bitstream, or encode a syntax element indicating that cross - attribute prediction is enabled to generate a corresponding encoded value into the bitstream, where the corresponding encoded value is 0.