System and method for geometry point cloud coding

By implementing novel syntax element representation and organization schemes, such as using a single coding order syntax element and ensuring consistent slice_id values across geometry and attribute slice headers, the challenges of flexibility and generality in existing G-PCC standards are addressed, resulting in improved decoding efficiency and consistency.

WO2025108070A1PCT designated stage expired Publication Date: 2025-05-30GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/129791
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-22
Filing Date
2024-11-04
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

Existing geometry-based point cloud coding (G-PCC) standards face challenges in flexibility and generality, particularly in handling a wide range of point cloud inputs across different applications, due to complex syntax element representation and organization.

Method used

The proposed solution introduces novel schemes for syntax element representation and organization, including the use of a single syntax element to specify a coding order for all attributes, and ensuring that the slice_id syntax element in the attribute slice header matches the slice_id syntax element in the geometry slice header, to simplify the decoding process.

Benefits of technology

These innovations enhance the flexibility and generality of point cloud coding, improving the efficiency and consistency of decoding across various point cloud inputs and applications, while reducing complexity in syntax element management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024129791_30052025_PF_FP_ABST
    Figure CN2024129791_30052025_PF_FP_ABST
Patent Text Reader

Abstract

According to one aspect of the present disclosure, a method for decoding a point cloud is provided. The method may include parsing, by a processor, a bitstream to obtain a first syntax element. The method may include, in response to the first syntax element having a first value, determining, by the processor, cross-attribute prediction is enabled. The method may include, in response to the first syntax element having a first value, decoding, by the processor, the point cloud using a same coding order for multiple attributes.
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEM AND METHOD FOR GEOMETRY POINT CLOUD CODING

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of priority to U.S. Provisional Application No. 63 / 602,107, filed November 22, 2023, entitled “IMPROVEMENTS FOR GEOMETRY POINT-CLOUD CODING, ” which is incorporated by reference herein in its entirety.BACKGROUND

[0003] Embodiments of the present disclosure relate to point cloud coding.

[0004] Point clouds are one of the major three-dimension (3D) data representations, which provide, in addition to spatial coordinates, attributes associated with the points in a 3D world. Point clouds in their raw format require a huge amount of memory for storage or bandwidth for transmission. Furthermore, the emergence of higher resolution point cloud capture technology imposes, in turn, even a higher requirement on the size of point clouds. In order to make point clouds usable, compression is necessary. Two compression technologies have been proposed for point cloud compression / coding (PCC) standardization activities: video-based PCC (V-PCC) and geometry-based PCC (G-PCC) . V-PCC approach is based on 3D to two-dimension (2D) projections, while G-PCC, on the contrary, encodes the content directly in 3D space. In order to achieve that, G-PCC utilizes data structures, such as an octree that describes the point locations in 3D space.SUMMARY

[0005] According to one aspect of the present disclosure, a method for decoding a point cloud is provided. The method may include parsing, by a processor, a bitstream to obtain a first syntax element. The method may include, in response to the first syntax element having a first value, determining, by the processor, cross-attribute prediction is enabled. The method may include, in response to the first syntax element having a first value, decoding, by the processor, the point cloud using a same coding order for multiple attributes.

[0006] According to another aspect of the present disclosure, a method of decoding a point cloud is provided. The method may include parsing, by a processor, a bitstream to obtain at least one geometry slice header and an attribute slice header. The method may include obtaining, by the processor, at least one slice_id syntax element from the at least one geometry slice header. The method may include obtaining, by the processor, a slice_id syntax element from the attribute slice header. The method may include obtaining, by the processor, a slice_id syntax element from the geometry slice header. The method may include identifying, by the processor, a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header. The method may include decoding, by the processor, a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.

[0007] According to a further aspect of the present disclosure, a decoder is provided. The decoder may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to parse a bitstream to obtain a first syntax element. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The memory storing instructions, which when  executed by the processor, may cause the processor to, in response to the first syntax element having a first value, decode a point cloud using a same coding order for multiple attributes.

[0008] According to still another aspect of the present disclosure, a decoder is provided. The decoder may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to parse a bitstream to obtain at least one geometry slice header and an attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to obtain at least one slice_id syntax element from the at least one geometry slice header. The memory storing instructions, which when executed by the processor, may cause the processor to obtain a slice_id syntax element from the attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to identify a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to decode a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.

[0009] According to a further aspect of the present disclosure, an apparatus for decoding is provided. The apparatus for decoding may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to parse a bitstream to obtain a first syntax element. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, decode a point cloud using a same coding order for multiple attributes.

[0010] According to still another aspect of the present disclosure, an apparatus for decoding is provided. The decoder may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to parse a bitstream to obtain at least one geometry slice header and an attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to obtain at least one slice_id syntax element from the at least one geometry slice header. The memory storing instructions, which when executed by the processor, may cause the processor to obtain a slice_id syntax element from the attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to identify a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to decode a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.

[0011] According to still a further aspect of the present disclosure, a non-transitory computer-readable medium storing instructions is provided. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to parse a bitstream to obtain a first syntax element. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to, in response to the first syntax element having a first value, decode a point cloud using a same coding order for multiple attributes.

[0012] According to yet another aspect of the present disclosure, a non-transitory computer-readable medium storing instructions is provided. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to parse a bitstream to obtain at least one geometry slice header and an attribute slice header. The instructions, which when executed by the processor, may cause the processor to obtain at least one slice_id  syntax element from the at least one geometry slice header. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to obtain a slice_id syntax element from the attribute slice header. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to identify a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to decode a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.

[0013] According to one aspect of the present disclosure, a method for encoding a point cloud is provided. The method may include encoding, by a processor, a first syntax element. The method may include, in response to the first syntax element having a first value, determining, by the processor, cross-attribute prediction is enabled. The method may include, in response to the first syntax element having a first value, encoding, by the processor, the point cloud using a same coding order for multiple attributes.

[0014] According to a further aspect of the present disclosure, a encoder is provided. The encoder may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to encode a first syntax element. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, encode a point cloud using a same coding order for multiple attributes.

[0015] According to a further aspect of the present disclosure, an apparatus for encoding is provided. The apparatus for encoding may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to encode a first syntax element. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, encode a point cloud using a same coding order for multiple attributes.

[0016] According to still a further aspect of the present disclosure, a non-transitory computer-readable medium storing instructions is provided. The instructions, which when executed by the processor of the encoder, may cause the processor of the encoder to encode a first syntax element. The instructions, which when executed by the processor of the encoder, may cause the processor of the encoder to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The instructions, which when executed by the processor of the encoder, may cause the processor of the encoder to, in response to the first syntax element having a first value, encode a point cloud using a same coding order for multiple attributes.

[0017] According to still another aspect of the present disclosure, a non-transitory computer-readable medium storing a bitstream is provided. The bitstream may be generated using one or more operations described herein.

[0018] These illustrative embodiments are mentioned not to limit or define the present disclosure, but to provide examples to aid understanding thereof. Additional embodiments are described in the Detailed Description, and further description is provided there.BRIEF DESCRIPTION OF THE DRAWINGS

[0019] The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate embodiments of the present disclosure and, together with the description,  further serve to explain the principles of the present disclosure and to enable a person skilled in the pertinent art to make and use the present disclosure.

[0020] FIG. 1 illustrates a block diagram of an exemplary encoding system, according to some embodiments of the present disclosure.

[0021] FIG. 2 illustrates a block diagram of an exemplary decoding system, according to some embodiments of the present disclosure.

[0022] FIG. 3 illustrates a detailed block diagram of an exemplary encoder in the encoding system in FIG. 1, according to some embodiments of the present disclosure.

[0023] FIG. 4 illustrates a detailed block diagram of an exemplary decoder in the decoding system in FIG. 2, according to some embodiments of the present disclosure.

[0024] FIGs. 5A and 5B illustrate an exemplary octree structure of G-PCC and the corresponding digital representation, respectively, according to some embodiments of the present disclosure.

[0025] FIG. 6 illustrates an exemplary structure of cube and the relationship with neighboring cubes in an octree structure of G-PCC, according to some embodiments of the present disclosure.

[0026] FIG. 7 illustrates an exemplary 1D array of points representing a point cloud, a set of candidate points, and a set of prediction points, according to some embodiments of the present disclosure.

[0027] FIG. 8 illustrates an exemplary hierarchy of parameter sets of G-PCC, according to some embodiments of the present disclosure.

[0028] FIGs. 9A and 9B illustrate a flow chart of a first exemplary method for decoding a point cloud, according to some embodiments of the present disclosure.

[0029] FIG. 10 illustrates a flow chart of a second exemplary method for decoding a point cloud, according to some embodiments of the present disclosure.

[0030] FIG. 11 illustrates a flow chart of an exemplary method for encoding a point cloud, according to some embodiments of the present disclosure.

[0031] Embodiments of the present disclosure will be described with reference to the accompanying drawings.DETAILED DESCRIPTION

[0032] Although some configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the pertinent art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of the present disclosure. It will be apparent to a person skilled in the pertinent art that the present disclosure can also be employed in a variety of other applications.

[0033] It is noted that references in the specification to “one embodiment, ” “an embodiment, ” “an example embodiment, ” “some embodiments, ” “certain embodiments, ” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of a person skilled in the pertinent art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

[0034] In general, terminology may be understood at least in part from usage in context. For example, the term “one or more” as used herein, depending at least in part upon context, may be used to describe any feature, structure, or characteristic in a singular sense or may be used to describe combinations of features, structures or characteristics in a plural sense. Similarly, terms,  such as “a, ” “an, ” or “the, ” again, may be understood to convey a singular usage or to convey a plural usage, depending at least in part upon context. In addition, the term “based on” may be understood as not necessarily intended to convey an exclusive set of factors and may, instead, allow for existence of additional factors not necessarily expressly described, again, depending at least in part on context.

[0035] Various aspects of point cloud coding systems will now be described with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various modules, components, circuits, steps, operations, processes, algorithms, etc. (collectively referred to as “elements” ) . These elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends upon the particular application and design constraints imposed on the overall system. The techniques described herein may be used for various point cloud coding applications. As described herein, point cloud coding includes both encoding and decoding a point cloud.

[0036] A point cloud is composed of a collection of points in a 3D space. Each point in the 3D space is associated with a geometry position together with the associated attribute information (e.g., color, reflectance, intensity, classification, etc. ) . In order to compress the point cloud data efficiently, the geometry of a point cloud can be compressed first, and then the corresponding attributes, including color or reflectance, can be compressed based upon the geometry information according to a point cloud coding technique, such as G-PCC. G-PCC has been widely used in virtual reality / augmented reality (VR / AR) , telecommunication, autonomous vehicle, etc., for entertainment and industrial applications, e.g., light detection and ranging (LiDAR) sweep compression for automotive or robotics and high-definition (HD) map for navigation. Moving Picture Experts Group (MPEG) released the first version G-PCC standard, and Audio Video Coding Standard (AVS) is also developing a G-PCC standard.

[0037] The existing G-PCC standards, however, cannot work well for a wide range of PCC inputs for many different applications. For example, besides the representation of levels (or coefficients in some cases) , the representation of other information (e.g., parameters) used for G-PCC may be coded in the forms of syntax elements in the bitstream as well. Since G-PCC is organized in different levels by dividing a collection of points into different pieces (e.g., sequence, slices, etc. ) associated with different properties (e.g., geometry, attributes, etc. ) , the parameter sets are also arranged in different levels (e.g., sequence-level, property-level, slice-level, etc. ) , for example, in the different headers. Moreover, multiple condition checks may be required for parsing some syntax elements in G-PCC, which further increases the complexity of organizing and parsing the representation of syntax elements

[0038] To improve the flexibility and generality of point cloud coding, the present disclosure provides various novel schemes of syntax element representation and organization, which are compatible with any suitable G-PCC standards, including, but not limited to, AVS G-PCC standards and MPEG G-PCC standards.

[0039] FIG. 1 illustrates a block diagram of an exemplary encoding system 100, according to some embodiments of the present disclosure. FIG. 2 illustrates a block diagram of an exemplary decoding system 200, according to some embodiments of the present disclosure. Each system 100 or 200 may be applied or integrated into various systems and apparatuses capable of data processing, such as computers and wireless communication devices. For example, system 100 or 200 may be the entirety or part of a mobile phone, a desktop computer, a laptop computer, a tablet, a vehicle computer, a gaming console, a printer, a positioning device, a wearable electronic device, a smart sensor, a virtual reality (VR) device, an argument reality (AR) device, or any other suitable electronic devices having data processing capability. As shown in FIGs. 1 and 2, system 100 or 200 may include a processor 102, a memory 104, and an interface 106. These components are shown as connected one to another by a bus, but other connection types are also permitted. It is  understood that system 100 or 200 may include any other suitable components for performing functions described here.

[0040] Processor 102 may include microprocessors, such as graphic processing unit (GPU) , image signal processor (ISP) , central processing unit (CPU) , digital signal processor (DSP) , tensor processing unit (TPU) , vision processing unit (VPU) , neural processing unit (NPU) , synergistic processing unit (SPU) , or physics processing unit (PPU) , microcontroller units (MCUs) , application-specific integrated circuits (ASICs) , field-programmable gate arrays (FPGAs) , programmable logic devices (PLDs) , state machines, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functions described throughout the present disclosure. Although only one processor is shown in FIGs. 1 and 2, it is understood that multiple processors can be included. Processor 102 may be a hardware device having one or more processing cores. Processor 102 may execute software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. Software can include computer instructions written in an interpreted language, a compiled language, or machine code. Other techniques for instructing hardware are also permitted under the broad category of software.

[0041] Memory 104 can broadly include both memory (a.k.a, primary / system memory) and storage (a.k.a. secondary memory) . For example, memory 104 may include random-access memory (RAM) , read-only memory (ROM) , static RAM (SRAM) , dynamic RAM (DRAM) , ferro-electric RAM (FRAM) , electrically erasable programmable ROM (EEPROM) , compact disc read-only memory (CD-ROM) or other optical disk storage, hard disk drive (HDD) , such as magnetic disk storage or other magnetic storage devices, Flash drive, solid-state drive (SSD) , or any other medium that can be used to carry or store desired program code in the form of instructions that can be accessed and executed by processor 102. Broadly, memory 104 may be embodied by any computer-readable medium, such as a non-transitory computer-readable medium. Although only one memory is shown in FIGs. 1 and 2, it is understood that multiple memories can be included.

[0042] Interface 106 can broadly include a data interface and a communication interface that is configured to receive and transmit a signal in a process of receiving and transmitting information with other external network elements. For example, interface 106 may include input / output (I / O) devices and wired or wireless transceivers. Although only one memory is shown in FIGs. 1 and 2, it is understood that multiple interfaces can be included.

[0043] Processor 102, memory 104, and interface 106 may be implemented in various forms in system 100 or 200 for performing point cloud coding functions. In some embodiments, processor 102, memory 104, and interface 106 of system 100 or 200 are implemented (e.g., integrated) on one or more system-on-chips (SoCs) . In one example, processor 102, memory 104, and interface 106 may be integrated on an application processor (AP) SoC that handles application processing in an operating system (OS) environment, including running point cloud encoding and decoding applications. In another example, processor 102, memory 104, and interface 106 may be integrated on a specialized processor chip for point cloud coding, such as a GPU or ISP chip dedicated to graphic processing in a real-time operating system (RTOS) .

[0044] As shown in FIG. 1, in encoding system 100, processor 102 may include one or more modules, such as an encoder 101. Although FIG. 1 shows that encoder 101 is within one processor 102, it is understood that encoder 101 may include one or more sub-modules that can be implemented on different processors located closely or remotely with each other. Encoder 101 (and any corresponding sub-modules or sub-units) can be hardware units (e.g., portions of an integrated circuit) of processor 102 designed for use with other components or software units implemented by processor 102 through executing at least part of a program, i.e., instructions. The  instructions of the program may be stored on a computer-readable medium, such as memory 104, and when executed by processor 102, it may perform a process having one or more functions related to point cloud encoding, such as voxelization, transformation, quantization, arithmetic encoding, etc., as described below in detail.

[0045] Similarly, as shown in FIG. 2, in decoding system 200, processor 102 may include one or more modules, such as a decoder 201. Although FIG. 2 shows that decoder 201 is within one processor 102, it is understood that decoder 201 may include one or more sub-modules that can be implemented on different processors located closely or remotely with each other. Decoder 201 (and any corresponding sub-modules or sub-units) can be hardware units (e.g., portions of an integrated circuit) of processor 102 designed for use with other components or software units implemented by processor 102 through executing at least part of a program, i.e., instructions. The instructions of the program may be stored on a computer-readable medium, such as memory 104, and when executed by processor 102, it may perform a process having one or more functions related to point cloud decoding, such as arithmetic decoding, dequantization, inverse transformation, reconstruction, synthesis, as described below in detail.

[0046] FIG. 3 illustrates a detailed block diagram of exemplary encoder 101 in encoding system 100 in FIG. 1, according to some embodiments of the present disclosure. As shown in FIG. 3, encoder 101 may include a coordinate transform module 302, a voxelization module 304, a geometry analysis module 306, and an arithmetic encoding module 308, together configured to encode positions associated with points of a point cloud into a geometry bitstream (i.e., geometry encoding) . As shown in FIG. 3, encoder 101 may also include a color transform module 310, an attribute transform module 312, a quantization module 314, and an arithmetic encoding module 316, together configured to encode attributes associated with points of a point cloud into an attribute bitstream (i.e., attribute encoding) . It is understood that each of the elements shown in FIG. 3 is independently shown to represent characteristic functions different from each other in a point cloud encoder, and it does not mean that each component is formed by the configuration unit of separate hardware or single software. That is, each element is included to be listed as an element for convenience of explanation, and at least two of the elements may be combined to form a single element, or one element may be divided into a plurality of elements to perform a function. It is also understood that some of the elements are not necessary elements that perform functions described in the present disclosure but instead may be optional elements for improving performance. It is further understood that these elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends upon the particular application and design constraints imposed on encoder 101. It is still further understood that the modules shown in FIG. 3 are for illustrative purposes only, and in some examples, different modules may be included in encoder 101 for point cloud encoding.

[0047] As shown in FIG. 3, geometry positions and attributes associated with points may be encoded separately. A point cloud may be a collection of points with positions Xk= (xk, yk, zk) , k=1, …, K, where K is the number of points in the point cloud, and attributes Ak = (A1k, A2k, …, ADk) , k=1, …, K, where D is the number of attributes for each point. In some embodiments, attribute coding depends on decoded geometry. As a consequence, point cloud positions may be coded first. Since geometry positions may be represented by floating-point numbers in an original coordinate system, coordinate transform module 302 and a voxelization module 304 may be configured to perform a coordinate transformation followed by voxelization that quantizes and removes duplicate points. The process of position quantization, duplicate point removal, and assignment of attributes to the remaining points is called voxelization. The voxelized point cloud may be represented using, for example, an octree structure in a lossless manner. Geometry analysis module 306 may be configured to perform geometry analysis using, for example, the octree or trisoup scheme. Arithmetic encoding module 308 may be configured to arithmetically encode the resulting structure from geometry analysis module 306 into the geometry  bitstream.

[0048] In some embodiments, geometry analysis module 306 is configured to perform geometry analysis using the octree scheme. Under the octree scheme, a cubical axis-aligned bounding box B may be defined by the two extreme points (0, 0, 0) and (2d, 2d, 2d) where d is the maximum size of the given point cloud along the x, y, or z direction. All point cloud points may be included in this defined cube. A cube may be divided into eight sub-cubes, which creates the octree structure allowing one parent to have 8 children, and an octree structure may then be built by recursively subdividing sub-cubes, as shown in FIG. 5A. As shown in FIG. 5B, an 8-bit code may be generated by associating a 1-bit value with each sub-cube to indicate whether it contains points (i.e., full and has value 1) or not (i.e., empty and has value 0) . Only full sub-cubes with a size greater than 1 (i.e., non-voxels) may be further subdivided. The geometry information (x, y, z) for one position may be represented by this defined octree structure. Since points may be duplicated, multiple points may be mapped to the same sub-cube of size 1 (i.e., the same voxel) . In order to handle such a situation, the number of points for each sub-cube of dimension 1 is also arithmetically encoded. By construction of the octree, a current cube associated with a current node may be surrounded by six cubes of the same depth sharing a face with it. Depending on the location of the current cube, one cube may have up to six same-sized cubes to share one face, as shown in FIG. 6. In addition, the current cube may also have some neighboring cubes which share lines or points with the current cube.

[0049] Referring back to FIG. 3, as to attribute encoding, optionally, color transform module 310 may be configured to convert red / green / blue (RGB) color attributes of each point to YCbCr color attributes if the attributes include color. Attribute transform module 312 may be configured to perform attribute transformation based on the results from geometry analysis module 306 (e.g., using the octree scheme) , including but not limited to, the region adaptive hierarchical transform (RAHT) , interpolation-based hierarchical nearest-neighbor prediction (predicting transform) , and interpolation-based hierarchical nearest-neighbor prediction with an update / lifting step (lifting transform) . Optionally, quantization module 314 may be configured to quantize the transformed coefficients of attributes from attribute transform module 312 to generate quantization levels of the attributes associated with each point to reduce the dynamic range. Arithmetic encoding module 316 may be configured to arithmetically encode the resulting transformed coefficients of attributes associated with each point or the quantization levels thereof into the attribute bitstream.

[0050] In some embodiments, a prediction may be formed from neighboring coded attributes, for example, in predicting transform and lifting transform by attribute transform module 312. Then, the difference between the current attribute and the prediction may be coded. According to some aspects of the present disclosure, in the AVS G-PCC standard, after the geometry positions are coded, a Morton code or Hilbert code may be used to convert a point cloud in a 3D space (e.g., a point cloud cube) into a 1D array, as shown in FIG. 7. Each position in the cube will have a corresponding Morton or Hilbert code, but some positions may not have any corresponding point cloud attribute. In other words, some positions may be empty. The attribute coding may follow the predefined Morton order or Hilbert order. A predictor may be generated from the previous coded points in the 1D array following the Morton order or Hilbert order. The attribute difference between the current point and its prediction points may be encoded into the bitstream. In some embodiments, the point cloud in the 3D space (e.g., a point cloud cube) is converted into a 1D array without any pre-defined order, but instead in its native input order, for example, the order in which the point cloud data is collected. That is, in some examples, the attribute coding may follow the native input order of the point cloud, instead of the predefined Morton order or Hilbert order. In other words, the order followed by the points in the 1D array may be either a Morton order, a Hilbert order, or the native input order.

[0051] As shown in FIG. 7, to reduce the memory usage, some predefined numbers may be specified to limit the number of neighboring points that can be used in generating the prediction.  For example, only at most M points among previous at most N consecutively coded points may be used for coding the current attribute. That is, a set of n candidate points may be used as the candidates to select a set of m prediction points (m ≤ n) for predicting the current point in attribute coding. The number n of candidate points in the set is equal to or smaller than the maximum number N of candidate points (n ≤ N) , and the number m of prediction points in the set is equal to or smaller than the maximum number M of prediction points (m ≤ M) . As shown in FIG. 7, if the number of neighboring points prior to the current point in the 1D array following the Morton order, the Hilbert order, or the native input order is larger than the maximum number N of candidate points, then the number n of candidate points in the set of candidate points for the current point (shaded in grey) is equal to the maximum number N; if the number of neighboring points prior to the current point in the 1D array following the Morton order, the Hilbert order, or the native input order is larger than or equal to the maximum number N of candidate points, then the number n of candidate points in the set of candidate points for the current point (shaded in grey) is smaller to the maximum number N, then all the neighboring points prior to the current point are used as the set of candidate points for the current point. In FIG. 7, the maximum number M of prediction points is set to be 3, and a set of 3 prediction points (P, bolded and underlined) may be selected from the set of n candidate points, for example, based on the positions associated with the n candidate points and the current points (e.g., the distances between each candidate point and the current point) .

[0052] In some embodiments, M and N are set as a fixed number of 3 and 128, respectively. If more than 128 points before the current point are already coded, only 3 out of the previous 128 neighboring points could be used to form attribute predictors (prediction points) according to a predefined order. If there are less than 128 coded points before the current point, all coded points before the current point will be used as candidate points to find the prediction points. Among the previous up to 128 candidate points, up to 3 prediction points are selected, which have the closest “distance” (e.g., Euclidean distance) between these candidate points and the current point. The Euclidean distance d as one example may be defined as follows, while other distance metrics can also be used in other examples: d= |x1-x2| + |y1-y2| + |z1-z2|     (1) ,

[0053] where (x1, y1, z1) and (x2, y2, z2) are the coordinates of the current point and the candidate point along the Morton order, the Hilbert order, or the native input order, respectively. Once m prediction points (e.g., the 3 closest candidate points) have been selected, a weighted attribute average from these m points may be formed as the predictor to code the attribute of the current point, according to some embodiments. It is understood that in some examples, the prediction points may be selected from the candidate points that are in the cubes sharing the same face / line / point with the current point cloud.

[0054] Since the set of n candidate points needs to be stored in the memory and traversed in order to select the set of m prediction points for coding the attributes associated with the current position, the maximum number M of candidate points is introduced to limit the size of memory and amount of computation resources that may be occupied by the candidate points storage and searching.

[0055] According to some aspects of the present disclosure, the difference in attribute values between the current point and its predictor may be referred to as a “residual. ” Depending on the application, PCC can be either lossless or lossy. Hence, the residual may or may not be quantized by using the predefined quantization process. According to the present disclosure, the residual without or with quantization may be referred to as a “level, ” which is a signed integer (e.g., a positive or negative integer value) coded into the bitstream.

[0056] The zero-run length of the reflectance level and the non-zero reflectance-level may be coded into the bitstream. More specifically, before coding the first point, encoder 101 may set the zero-run length counter as zero. Starting from the first point along the predefined coding order, the residuals between the predictors and corresponding original points are obtained. Then, the  corresponding reflectance-levels may be obtained. If the current reflectance-level is zero, encoder 101 increases the value of the zero-run length counter by one, and the process proceeds to the next point. If the reflectance-level is not zero, encoder 101 may code the zero-run length, followed by coding the non-zero reflectance-level. After coding a non-zero reflectance level, encoder 101 may reset the zero-run length counter to zero, and the process proceeds to the next point. On the decoding side, decoder 201 may decode the zero-run length, and the reflectance-levels corresponding to the number of zero-run length points are set as zero. Then, decoder 201 may decode the non-zero reflectance level, followed by decoding the next number of zero-run length. This process may continue until all points are decoded.

[0057] For a non-zero level, if the current point is not a duplicated point, the sign of level is coded with a “residual_sign” syntax element first. Then, an “absolute_residual_equal_one” syntax element, which indicates the current residual is one or not may be coded of encoder 101 or decoder 201. If the current residual is not equal to one, an “absolute_residual_equal_two” syntax element may be coded. If the current residual is not equal to two, an “absolute_residual_minus_three” syntax element, which is used to code the value of absolute residual minus three, will be coded. Table 1 shown below illustrates example reflectance-level coding syntax elements.

[0058] Table 1: Reflectance-level coding syntax elements

[0059] FIG. 4 illustrates a detailed block diagram of exemplary decoder 201 in decoding system 200 in FIG. 2, according to some embodiments of the present disclosure. As shown in FIG. 4, decoder 201 may include an arithmetic decoding module 402, a geometry synthesis module 404, a reconstruction module 406, and a coordinate inverse transform module 408, together configured

[0060] to decode positions associated with points of a point cloud from the geometry bitstream (i.e., geometry decoding) . As shown in FIG. 4, decoder 201 may also include an arithmetic decoding module 410, a dequantization module 412, an attribute inverse transform module 414, and a color inverse transform module 416, together configured to decode attributes associated with points of a point cloud from the attribute bitstream (i.e., attribute decoding) . It is understood that each of the elements shown in FIG. 4 is independently shown to represent characteristic functions different from each other in a point cloud decoder, and it does not mean that each component is formed by the configuration unit of separate hardware or single software. That is, each element is included to be listed as an element for convenience of explanation, and at least two of the elements may be combined to form a single element, or one element may be divided into a plurality of elements to perform a function. It is also understood that some of the elements are not necessary elements that perform functions described in the present disclosure but instead may be optional elements for improving performance. It is further understood that these elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends upon the particular application and design constraints imposed on decoder 201. It is still further understood that the modules shown in FIG. 4 are for illustrative purposes only, and in some examples, different modules may be included in decoder 201 for point cloud decoding.

[0061] When a point cloud bitstream (e.g., a geometry bitstream or an attribute bitstream) is input from a point cloud encoder (e.g., encoder 101) , the input bitstream may be decoded by decoder 201 in a procedure opposite to that of the point cloud encoder. Thus, the details of decoding that are described above with respect to encoding may be skipped for ease of description. Arithmetic decoding modules 402 and 410 may be configured to decode the geometry bitstream and attribute bitstream, respectively, to obtain various information encoded into the bitstream. For example, arithmetic decoding module 410 may decode the attribute bitstream to obtain the attribute information associated with each point, such as the quantization levels or the coefficients of the attributes associated with each point. Optionally, dequantization module 412 may be configured to dequantize the quantization levels of attributes associated with each point to obtain the coefficients of attributes associated with each point. Besides the attribute information, arithmetic decoding module 410 may parse the bitstream to obtain various other information (e.g., in the form of syntax elements) , such as the syntax element indicative of the order followed by the points in the 1D array for attribute coding.

[0062] Inverse attribute transform module 414 may be configured to perform inverse attribute transformation, such as inverse RAHT, inverse predicting transform, or inverse lifting  transform, to transform the data from the transform domain (e.g., coefficients) back to the attribute domain (e.g., luma and / or chroma information for color attributes) . Optionally, color inverse transform module 416 may be configured to convert YCbCr color attributes to RGB color attributes.

[0063] As to the geometry decoding, geometry synthesis module 404, reconstruction module 406, and coordinate inverse transform module 408 of decoder 201 may be configured to perform the inverse operations of geometry analysis module 306, voxelization module 304, and coordinate transform module 302 of encoder 101, respectively.

[0064] Consistent with the scope of the present disclosure, encoder 101 and decoder 201 may be configured to adopt various novel schemes of syntax element representation and organization, as disclosed herein, to improve the flexibility and generality of point cloud coding.

[0065] According to some aspects of the present disclosure, various attribute-presence syntax elements are introduced at different levels to control the enablement / disablement of all attributes or an individual attribute in point cloud coding. In some embodiments, the different parameters under the same condition check at the same level (e.g., associated with the same attribute) can be grouped altogether to reduce the number of condition checks, thereby further simplifying the scheme. FIG. 8 illustrates an exemplary hierarchy of parameter sets of G-PCC, according to some embodiments of the present disclosure. A point cloud may be represented in a 1D array including a set of points each associated with a property, such as geometry and attributes (e.g., color and reflectance) . The set of points associated with different time stamps may be viewed as a “sequence. ”

[0066] As shown in FIG. 8, the syntax elements (e.g., parameters, flags, etc. ) used for coding the headers of the point cloud may be organized in a hierarchy having various levels. At the top level, the hierarchy may include a sequence header, for example, a header of a sequence parameter set (SPS) associated with the sequence representing the point cloud. At the second level, the hierarchy may include one or more property headers belonging to the sequence header, such as a geometry parameter header and one or more attribute parameter headers. In some embodiments, geometry parameter headers, and attribute parameter headers can also be at the same level as SPS. For example, as shown in FIG. 8, the next level under the SPS may include one header of a geometry parameter set belonging to the SPS and associated with the geometry, as well as one or more headers (1 to n) of attribute parameter sets belonging to the SPS and each associate with a respective attribute (e.g., color or reflectance) . At the third level, the hierarchy may include one or more slice property headers belonging to each property header, such as slice geometry parameter headers and slice attribute parameter headers. That is, the sequence representing the point cloud may be divided into one or more slices each including a slice of points, and each slice of points may be associated with one or more slice property headers. For example, as shown in FIG. 8, the next level under the geometry parameter set may include one or more headers of slice geometry parameter sets each belonging to the geometry parameter set and associated with a respective slice of points. Similarly, the next level under each attribute parameter set may include one or more headers of slice attribute parameter sets each belonging to the respective attribute parameter set and associated with a respective slice of points. It is understood that in some examples, the hierarchy may include fewer or more levels, such as picture / frame level (s) .

[0067] According to some aspects of the present disclosure, the difference in attribute values between the current point and its predictor may be referred to as a “residual. ” Depending on the application, PCC can be either lossless or lossy. Hence, the residual may or may not be quantized by using the predefined quantization process. According to the present disclosure, the residual without or with quantization may be referred to as a “level, ” which is a signed integer (e.g., a positive or negative integer value) coded into the bitstream.

[0068] In the current G-PCC, there are two syntax elements, colorReorderMode and reflReorderMode, which represent the coding order of point cloud for color and reflectance attributes, respectively. If the value of colorReorderMode is zero, the coding order is the order of  original point cloud for color attribute. If the value of colorReorderMode is one, the coding order is Hilbert order for color attribute. If the value of colorReorderMode is two, the coding order is Morton order for color attribute.

[0069] Similarly, if the value of reflReorderMode is zero, the coding order is the order of original point cloud for reflectance attribute. If the value of reflReorderMode is one, the coding order is Hilbert order for reflectance attribute. If the value of reflReorderMode is two, the coding order is Morton order for reflectance attribute.

[0070] If point cloud has both color and reflectance attributes, color and reflectance attributes may have different coding order because the values of colorReorderMode and reflReorderMode may be different. This may bring extra complexity without the benefit of coding performance.

[0071] To overcome these and other challenges, the present disclosure provides exemplary improvements for G-PCC, as described below.

[0072] In some implementations, a single syntax element may be used to specify a coding order for all attributes of the current point cloud. In one example, a reorderMode syntax element may be used to represent the coding order for all attributes. Thus, the colorReorderMode syntax element and the reflReorderMode syntax element used in existing G-PCC may no longer be used. A possible semantics for the proposed reorderMode syntax element is shown as follows.

[0073] For instance, the reorderMode syntax element may represent the coding order for all available attributes. If the value of reorderMode syntax element is zero, the coding order is the order of original point cloud for all attributes. If the value of reorderMode syntax element is one, the coding order is Hilbert order for all attributes. If the value of reorderMode syntax element is two, the coding order is Morton order for all attributes.

[0074] In some other implementations, the color and reflectance attributes may have different coding orders for coding color and reflectance attributes, indicated by the colorReorderMode syntax element and the reflReorderMode syntax element, respectively. When the current point cloud has both color and reflectance attributes, an exemplary cross-attribute prediction may be enabled. More specifically, if the value of a crossAttrTypePred syntax element is one, the cross-attribute prediction is enabled; otherwise, if the value of the crossAttrTypePred syntax element is zero, cross-attribute prediction may not be enabled. According to some aspects of the present disclosure, if cross-attribute prediction is enabled, the coding order for the color attribute and the reflectance attribute should be same. As one example, the semantics of the colorReorderMode syntax element and the reflReorderMode syntax element are modified as follows.

[0075] For instance, the colorReorderMode syntax element represents the coding order for color attribute. If the value of the colorReorderMode syntax element is zero, the coding order is the order of original point cloud for color attribute. If the value of the colorReorderMode syntax element is one, the coding order is Hilbert order for color attribute. If the value of the colorReorderMode syntax element is two, the coding order is Morton order for color attribute. When the current point cloud has both color and reflectance attributes and cross attribute prediction is enabled, the coding order for both color and reflectance attribute should be same.

[0076] The reflReorderMode syntax element represents the coding order for reflectance attribute. If the value of the reflReorderMode syntax element is zero, the coding order is the order of original point cloud for reflectance attribute. If the value of the reflReorderMode syntax element is one, the coding order is Hilbert order for reflectance attribute. If the value of the reflReorderMode syntax element is two, the coding order is Morton order for reflectance attribute. When the current point cloud has both color and reflectance attributes and cross attribute prediction is enabled, the coding order for both color and reflectance attribute should be same.

[0077] Moreover, in the current GPCC, there is a slice_id syntax element, which specifies the current slice. The possible values of the slice_id syntax elements start from zero and is an unsigned integer. Currently, the slice_id syntax element is specified at both geometry and attribute  slice headers. For example, the value of the slice_id syntax element at geometry slice header is one, it indicates that the corresponding slice is the second slice. The value of the slice_id syntax element at attribute slice header is zero, it means that the corresponding slice is the first slice.

[0078] Currently, there are no constraints for specifying the value of the slice_id syntax element. The slice_id syntax element specified at attribute slice header may not find corresponding slice_id syntax element specified at geometry slice header. The existing GPCC design may result in unspecified behavior.

[0079] To overcome these and other challenges, the present disclosure proposes that the slice_id syntax specified in the attribute slice header must have a same slice_id syntax element (e.g., the same slice_id value) specified in the geometry slice header.

[0080] FIGs. 9A and 9B illustrate a flow chart of a first exemplary method 900 of point cloud decoding, according to some embodiments of the present disclosure. Method 900 may be performed by decoder 201 of decoding system 200 or any other suitable point cloud encoding systems. Method 900 may include operations 902-918 as described below. It is understood that some of the operations may be optional, and some of the operations may be performed simultaneously, or in a different order than shown in FIGs. 9A and 9B.

[0081] Referring to FIG. 9A, at 902, the system may parse a bitstream to obtain a first syntax element. In some implementations, the first syntax element may be a crossAttrTypePred syntax element. For example, referring to FIG. 2, decoding system 200 may parse a bitstream to obtain a crossAttrTypePred syntax element.

[0082] At 904, the system may, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. For example, referring to FIG. 2, if the value of a crossAttrTypePred syntax element is one, the decoding system 200 may determine cross-attribute prediction is enabled.

[0083] At 906, the system may, in response to the first syntax element having a first value, decode the point cloud using a same coding order for multiple attributes. For example, referring to FIG. 2, if cross-attribute prediction is enabled, decoding system 200 may decode the point cloud using the same coding order for all attributes (e.g., the color attribute and the reflectance attribute) .

[0084] At 908, the system may, in response to the first syntax element having a second value, determine cross-attribute prediction is not enabled. For example, referring to FIG. 2, if the value of the crossAttrTypePred syntax element is zero, decoding system 200 may determine that cross-attribute prediction is not enabled.

[0085] At 910, the system may, in response to the first syntax element having a second value, decode the point cloud using a same coding order or different coding orders for different attributes. For example, referring to FIG. 2, if the value of the crossAttrTypePred syntax element is zero, decoding system 200 may decode the point cloud using a same coding order or different coding orders for different attributes. By way of example and not limitation, the point cloud may be decoded using the Morton order for the color attribute and the Hilbert order for the reflectance attribute, the Morton order for both the color attribute and the reflectance attribute, the Hilbert order for the color attribute and the reflectance attribute, etc.

[0086] At 912, the system may, in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, parse the bitstream to obtain a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute. In some implementations, the first coding order and the second coding order may be the same coding order. In some implementations, the second syntax element may be a colorReorderMode syntax element. In some implementations, the third syntax element may be a reflReorderMode syntax element. For example, referring to FIG. 2, decoding system 200 may parse the bitstream to obtain a colorReorderMode syntax element indicating the coding order for the color attribute and a reflReorderMode syntax element indicating the coding order for the reflectance attribute.

[0087] Referring to FIG. 9B, at 914, the system may, in response to the second syntax element and the third syntax element each having a first value, determine the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud. For example, referring to FIG. 2, if the value of the colorReorderMode syntax element and the reflReorderMode syntax element is zero, decoding system 200 may determine the coding order is the order of original point cloud for the color attribute and the reflectance attribute.

[0088] At 916, the system may, in response to the second syntax element and the third syntax element each having a second value, determine the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order. For example, referring to FIG. 2, if the value of the colorReorderMode syntax element and the reflReorderMode syntax element is one, decoding system 200 may determine the coding order is the Hilbert order for the color attribute and the reflectance attribute.

[0089] At 918, the system may, in response to the second syntax element and the third syntax element each having a third value, determining, by the processor, the first coding order of the first attribute and the second coding order of the second attribute is a Morton order. For example, referring to FIG. 2, if the value of the colorReorderMode syntax element and the reflReorderMode syntax element is two, decoding system 200 may determine the coding order is the Morton order for the color attribute and the reflectance attribute.

[0090] FIG. 10 illustrates a flow chart of a second exemplary method 1000 of point cloud decoding, according to some embodiments of the present disclosure. Method 1000 may be performed by decoder 201 of decoding system 200 or any other suitable point cloud encoding systems. Method 1000 may include operations 1002-1010 as described below. It is understood that some of the operations may be optional, and some of the operations may be performed simultaneously, or in a different order than shown in FIG. 10.

[0091] At 1002, the system may parse a bitstream to obtain at least one geometry slice header and an attribute slice header. For example, referring to FIG. 2, decoding system 200 may parse a bitstream to obtain at least one geometry slice header and an attribute slice header.

[0092] At 1004, the system may obtain at least one slice_id syntax element from the at least one geometry slice header. For example, referring to FIG. 2, decoding system 200 may parse the at least one geometry slice header to obtain at least one slice_id syntax element.

[0093] At 1006, the system may obtain a slice_id syntax element from the attribute slice header. For example, referring to FIG. 2, decoding system 200 may parse the attribute slice header to obtain a slice_id syntax element.

[0094] At 1008, the system may identify a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header. For example, referring to FIG. 2, decoding system 200 may parse the at least one geometry header to identify the geometry slice header that also includes a slice_id syntax element with the same value as the slice_id syntax element obtained from the attribute slice header.

[0095] At 1010, the system may decode a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header. For example, referring to FIG. 2, decoding system 200 may decode the slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.

[0096] FIG. 11 illustrates a flow chart of an exemplary method 1100 of point cloud encoding, according to some embodiments of the present disclosure. Method 1100 may be performed by encoder 101 of encoding system 100 or any other suitable point cloud encoding systems. Method 1100 may include operations 1102-1112, as described below. It is understood that some of the operations may be optional, and some of the operations may be performed simultaneously, or in a different order than shown in FIG. 11.

[0097] At 1102, the system may encode a first syntax element. For example, referring to FIG. 1, encoding system 10 may encode a crossAttrTypePred syntax element.

[0098] At 1104, the system may, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. For example, referring to FIG. 1, if the value of a crossAttrTypePred syntax element is one, encoding system 100 may determine cross-attribute prediction is enabled.

[0099] At 1106, the system may, in response to the first syntax element having a first value, encode the point cloud using a same coding order for multiple attributes. For example, referring to FIG. 1, if cross-attribute prediction is enabled, encoding system 100 may encode the point cloud using the same coding order for all attributes (e.g., the color attribute and the reflectance attribute) .

[0100] At 1108, the system may, in response to the first syntax element having a second value, determine cross-attribute prediction is not enabled. For example, referring to FIG. 1, if the value of the crossAttrTypePred syntax element is zero, encoding system 100 may determine that cross-attribute prediction is not enabled.

[0101] At 1110, the system may, in response to the first syntax element having a second value, encode the point cloud using a same coding order or different coding orders for different attributes. For example, referring to FIG. 2, if the value of the crossAttrTypePred syntax element is zero, encoding system 100 may encode the point cloud using a same coding order or different coding orders for different attributes. By way of example and not limitation, the point cloud may be encoded using the Morton order for the color attribute and the Hilbert order for the reflectance attribute, the Morton order for both the color attribute and the reflectance attribute, the Hilbert order for the color attribute and the reflectance attribute, etc.

[0102] At 1112, the system may, in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, encode a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute. In some implementations, the first coding order and the second coding order may be the same coding order. In some implementations, the second syntax element may be a colorReorderMode syntax element. In some implementations, the third syntax element may be a reflReorderMode syntax element. For example, referring to FIG. 1, encoding system 100 may parse the bitstream to obtain a colorReorderMode syntax element indicating the coding order for the color attribute and a reflReorderMode syntax element indicating the coding order for the reflectance attribute. For instance, if the value of the colorReorderMode syntax element and the reflReorderMode syntax element is zero, the coding order is the order of original point cloud for the color attribute and the reflectance attribute. If the value of the colorReorderMode syntax element and the reflReorderMode syntax element is one, the coding order is the Hilbert order for the color attribute and the reflectance attribute. If the value of the colorReorderMode syntax element and the reflReorderMode syntax element is two, the coding order is the Morton order for the color attribute and the reflectance attribute.

[0103] In various aspects of the present disclosure, the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as instructions on a non-transitory computer-readable medium. Computer-readable media includes computer storage media. Storage media may be any available media that can be accessed by a processor, such as processor 102 in FIGs. 1 and 2. By way of example, and not limitation, such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, HDD, such as magnetic disk storage or other magnetic storage devices, Flash drive, SSD, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a processing system, such as a mobile device or a computer. Disk and disc, as used herein, includes CD, laser disc, optical disc, digital video disc (DVD) , and floppy disk where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0104] According to one aspect of the present disclosure, a method for decoding a point cloud is provided. The method may include parsing, by a processor, a bitstream to obtain a first  syntax element. The method may include, in response to the first syntax element having a first value, determining, by the processor, cross-attribute prediction is enabled. The method may include, in response to the first syntax element having a first value, decoding, by the processor, the point cloud using a same coding order for multiple attributes.

[0105] In some implementations, the method may include in response to the first syntax element having a second value, determining, by the processor, cross-attribute prediction is not enabled. In some implementations, the method may include, in response to the first syntax element having a second value, decoding, by the processor, the point cloud using a same coding order or different coding orders for different attributes.

[0106] In some implementations, the first syntax element may be a crossAttrTypePred syntax element.

[0107] In some implementations, in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, parsing, by the processor, the bitstream to obtain a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute. In some implementations, the first coding order and the second coding order may be the same coding order.

[0108] In some implementations, the method may include, in response to the second syntax element and the third syntax element each having a first value, determining, by the processor, the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.

[0109] In some implementations, the method may include, in response to the second syntax element and the third syntax element each having a second value, determining, by the processor, the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.

[0110] In some implementations, the method may include, in response to the second syntax element and the third syntax element each having a third value, determining, by the processor, the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.

[0111] In some implementations, the second syntax element may be a colorReorderMode syntax element. In some implementations, the third syntax element may be a reflReorderMode syntax element.

[0112] According to another aspect of the present disclosure, a method of decoding a point cloud is provided. The method may include parsing, by a processor, a bitstream to obtain at least one geometry slice header and an attribute slice header. The method may include obtaining, by the processor, at least one slice_id syntax element from the at least one geometry slice header. The method may include obtaining, by the processor, a slice_id syntax element from the attribute slice header. The method may include identifying, by the processor, a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header. The method may include decoding, by the processor, a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.

[0113] According to a further aspect of the present disclosure, a decoder is provided. The decoder may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to parse a bitstream to obtain a first syntax element. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, decode a point cloud using a same coding order for multiple attributes.

[0114] In some implementations, the memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a  second value, determine cross-attribute prediction is not enabled. In some implementations, the memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a second value, decode the point cloud using a same coding order or different coding orders for different attributes.

[0115] In some implementations, the first syntax element may be a crossAttrTypePred syntax element.

[0116] In some implementations, the memory storing instructions, which when executed by the processor, may cause the processor to, in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, parse the bitstream to obtain a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute. In some implementations, the first coding order and the second coding order may be the same coding order.

[0117] In some implementations the memory storing instructions, which when executed by the processor, may cause the processor to, in response to the second syntax element and the third syntax element each having a first value, determine the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.

[0118] In some implementations the memory storing instructions, which when executed by the processor, may cause the processor to, in response to the second syntax element and the third syntax element each having a second value, determine the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.

[0119] In some implementations the memory storing instructions, which when executed by the processor, may cause the processor to, in response to the second syntax element and the third syntax element each having a third value, determine the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.

[0120] In some implementations, the second syntax element may be a colorReorderMode syntax element. In some implementations, the third syntax element may be a reflReorderMode syntax element.

[0121] According to still another aspect of the present disclosure, a decoder is provided. The decoder may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to parse a bitstream to obtain at least one geometry slice header and an attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to obtain at least one slice_id syntax element from the at least one geometry slice header. The memory storing instructions, which when executed by the processor, may cause the processor to obtain a slice_id syntax element from the attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to identify a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to decode a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.

[0122] According to a further aspect of the present disclosure, an apparatus for decoding is provided. The apparatus for decoding may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to parse a bitstream to obtain a first syntax element. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, decode a point cloud using a same coding order for multiple attributes.

[0123] According to still another aspect of the present disclosure, an apparatus for decoding is provided. The decoder may include a processor and memory storing instructions. The  memory storing instructions, which when executed by the processor, may cause the processor to parse a bitstream to obtain at least one geometry slice header and an attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to obtain at least one slice_id syntax element from the at least one geometry slice header. The memory storing instructions, which when executed by the processor, may cause the processor to obtain a slice_id syntax element from the attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to identify a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header. The memory storing instructions, which when executed by the processor, may cause the processor to decode a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.

[0124] According to still a further aspect of the present disclosure, a non-transitory computer-readable medium storing instructions is provided. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to parse a bitstream to obtain a first syntax element. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to, in response to the first syntax element having a first value, decode a point cloud using a same coding order for multiple attributes.

[0125] In some implementations, the instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to, in response to the first syntax element having a second value, determine cross-attribute prediction is not enabled. In some implementations, the instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to, in response to the first syntax element having a second value, decode the point cloud using different coding orders for different attributes.

[0126] In some implementations, the first syntax element may be a crossAttrTypePred syntax element.

[0127] In some implementations, the instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to, in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, parse the bitstream to obtain a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute. In some implementations, the first coding order and the second coding order may be the same coding order.

[0128] In some implementations the instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to, in response to the second syntax element and the third syntax element each having a first value, determine the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.

[0129] In some implementations the instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to, in response to the second syntax element and the third syntax element each having a second value, determine the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.

[0130] In some implementations the instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to, in response to the second syntax element and the third syntax element each having a third value, determine the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.

[0131] In some implementations, the second syntax element may be a colorReorderMode syntax element. In some implementations, the third syntax element may be a reflReorderMode syntax element.

[0132] According to yet another aspect of the present disclosure, a non-transitory computer-readable medium storing instructions is provided. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to parse a bitstream to obtain at least one geometry slice header and an attribute slice header. The instructions, which when executed by the processor, may cause the processor to obtain at least one slice_id syntax element from the at least one geometry slice header. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to obtain a slice_id syntax element from the attribute slice header. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to identify a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header. The instructions, which when executed by the processor of the decoder, may cause the processor of the decoder to decode a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.

[0133] According to one aspect of the present disclosure, a method for encoding a point cloud is provided. The method may include encoding, by a processor, a first syntax element. The method may include, in response to the first syntax element having a first value, determining, by the processor, cross-attribute prediction is enabled. The method may include, in response to the first syntax element having a first value, encoding, by the processor, the point cloud using a same coding order for multiple attributes.

[0134] In some implementations, the method may include in response to the first syntax element having a second value, determining, by the processor, cross-attribute prediction is not enabled. In some implementations, the method may include in response to the first syntax element having a second value, encoding, by the processor, the point cloud using a same coding order or different coding orders for different attributes.

[0135] In some implementations, the first syntax element may be a crossAttrTypePred syntax element.

[0136] In some implementations, in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, encoding, by the processor, a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute. In some implementations, the first coding order and the second coding order may be the same coding order.

[0137] In some implementations, the second syntax element and the third syntax element each having a first value may indicate the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.

[0138] In some implementations, the second syntax element and the third syntax element each having a second value may indicate the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.

[0139] In some implementations, the second syntax element and the third syntax element each having a third value may indicate the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.

[0140] In some implementations, the second syntax element may be a colorReorderMode syntax element. In some implementations, the third syntax element may be a reflReorderMode syntax element.

[0141] According to a further aspect of the present disclosure, a encoder is provided. The encoder may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to encode a first syntax element. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The memory storing instructions, which when executed by the  processor, may cause the processor to, in response to the first syntax element having a first value, encode a point cloud using a same coding order for multiple attributes.

[0142] In some implementations, the memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a second value, determine cross-attribute prediction is not enabled. In some implementations, the memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a second value, encode the point cloud using a same coding order or different coding orders for different attributes.

[0143] In some implementations, the first syntax element may be a crossAttrTypePred syntax element.

[0144] In some implementations, the memory storing instructions, which when executed by the processor, may cause the processor to, in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, encode a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute. In some implementations, the first coding order and the second coding order may be the same coding order.

[0145] In some implementations, the second syntax element and the third syntax element each having a first value may indicate the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.

[0146] In some implementations, the second syntax element and the third syntax element each having a second value may indicate the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.

[0147] In some implementations, the second syntax element and the third syntax element each having a third value may indicate the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.

[0148] In some implementations, the second syntax element may be a colorReorderMode syntax element. In some implementations, the third syntax element may be a reflReorderMode syntax element.

[0149] According to a further aspect of the present disclosure, an apparatus for encoding is provided. The apparatus for encoding may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to encode a first syntax element. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The memory storing instructions, which when executed by the processor, may cause the processor to, in response to the first syntax element having a first value, encode a point cloud using a same coding order for multiple attributes.

[0150] According to still a further aspect of the present disclosure, a non-transitory computer-readable medium storing instructions is provided. The instructions, which when executed by the processor of the encoder, may cause the processor of the encoder to encode a first syntax element. The instructions, which when executed by the processor of the encoder, may cause the processor of the encoder to, in response to the first syntax element having a first value, determine cross-attribute prediction is enabled. The instructions, which when executed by the processor of the encoder, may cause the processor of the encoder to, in response to the first syntax element having a first value, encode a point cloud using a same coding order for multiple attributes.

[0151] In some implementations, the instructions, which when executed by the processor of the encoder, may cause the processor of the encoder to, in response to the first syntax element having a second value, determine cross-attribute prediction is not enabled. In some implementations, the instructions, which when executed by the processor of the encoder, may cause the processor of the encoder to, in response to the first syntax element having a second value, encode the point cloud using a same coding order or different coding orders for different attributes.

[0152] In some implementations, the first syntax element may be a crossAttrTypePred syntax element.

[0153] In some implementations, the instructions, which when executed by the processor of the encoder, may cause the processor of the encoder to, in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, encode a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute. In some implementations, the first coding order and the second coding order may be the same coding order.

[0154] In some implementations, the second syntax element and the third syntax element each having a first value may indicate the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.

[0155] In some implementations, the second syntax element and the third syntax element each having a second value may indicate the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.

[0156] In some implementations, the second syntax element and the third syntax element each having a third value may indicate the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.

[0157] In some implementations, the second syntax element may be a colorReorderMode syntax element. In some implementations, the third syntax element may be a reflReorderMode syntax element.

[0158] According to still another aspect of the present disclosure, a non-transitory computer-readable medium storing a bitstream is provided. The bitstream may be generated using one or more operations described herein.

[0159] The foregoing description of the embodiments will so reveal the general nature of the present disclosure that others can, by applying knowledge within the skill of the art, readily modify and / or adapt for various applications such embodiments, without undue experimentation, without departing from the general concept of the present disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.

[0160] Embodiments of the present disclosure have been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.

[0161] The Summary and Abstract sections may set forth one or more but not all exemplary embodiments of the present disclosure as contemplated by the inventor (s) , and thus, are not intended to limit the present disclosure and the appended claims in any way.

[0162] Various functional blocks, modules, and steps are disclosed above. The arrangements provided are illustrative and without limitation. Accordingly, the functional blocks, modules, and steps may be reordered or combined in different ways than in the examples provided above. Likewise, some embodiments include only a subset of the functional blocks, modules, and steps, and any such subset is permitted.

[0163] The breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims

1.A method for decoding a point cloud, comprising:parsing, by a processor, a bitstream to obtain a first syntax element;in response to the first syntax element having a first value,determining, by the processor, cross-attribute prediction is enabled; anddecoding, by the processor, the point cloud using a same coding order for multiple attributes.2.The method of claim 1, further comprising:in response to the first syntax element having a second value,determining, by the processor, cross-attribute prediction is not enabled; anddecoding, by the processor, the point cloud using a same coding order or different coding orders for different attributes.3.The method of claim 1, wherein the first syntax element is a crossAttrTypePred syntax element.4.The method of claim 1, further comprising:in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, parsing, by the processor, the bitstream to obtain a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute,wherein the first coding order and the second coding order are the same coding order.5.The method of claim 4, further comprising:in response to the second syntax element and the third syntax element each having a first value, determining, by the processor, the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.6.The method of claim 5, further comprising:in response to the second syntax element and the third syntax element each having a second value, determining, by the processor, the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.7.The method of claim 6, further comprising:in response to the second syntax element and the third syntax element each having a third value, determining, by the processor, the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.8.The method of claim 4, wherein:the second syntax element is a colorReorderMode syntax element, andthe third syntax element is a reflReorderMode syntax element.9.A method of decoding a point cloud, comprising:parsing, by a processor, a bitstream to obtain at least one geometry slice header and an attribute slice header;obtaining, by the processor, at least one slice_id syntax element from the at least one geometry slice header;obtaining, by the processor, a slice_id syntax element from the attribute slice header;identifying, by the processor, a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header; anddecoding, by the processor, a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.10.A decoder, comprising:a processor; andmemory storing instructions, which when executed by the processor, cause the processor to:parse a bitstream to obtain a first syntax element;in response to the first syntax element having a first value,determine cross-attribute prediction is enabled; anddecode a point cloud using a same coding order for multiple attributes.11.The decoder of claim 10, wherein the memory storing instructions, which when executed by the processor, cause the processor to:in response to the first syntax element having a second value,determine cross-attribute prediction is not enabled; anddecode the point cloud using a same coding order or different coding orders for different attributes.12.The decoder of claim 10, wherein the first syntax element is a crossAttrTypePred syntax element.13.The decoder of claim 10, wherein the memory storing instructions, which when executed by the processor, cause the processor to:in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, parse the bitstream to obtain a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute,wherein the first coding order and the second coding order are the same coding order.14.The decoder of claim 13, wherein the memory storing instructions, which when executed by the processor, cause the processor to:in response to the second syntax element and the third syntax element each having a first value, determine the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.15.The decoder of claim 14, wherein the memory storing instructions, which when executed by the processor, cause the processor to:in response to the second syntax element and the third syntax element each having a second value, determine the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.16.The decoder of claim 15, wherein the memory storing instructions, which when executed by the processor, cause the processor to:in response to the second syntax element and the third syntax element each having a third value, determine the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.17.The decoder of claim 13, wherein:the second syntax element is a colorReorderMode syntax element, andthe third syntax element is a reflReorderMode syntax element.18.A decoder, comprising:a processor; andmemory storing instructions, which when executed by the processor, cause the processor to:parse a bitstream to obtain at least one geometry slice header and an attribute slice header;obtain at least one slice_id syntax element from the at least one geometry slice header;obtain a slice_id syntax element from the attribute slice header;identify a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header; anddecode a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.19.An apparatus for decoding, comprising:a processor; andmemory storing instructions, which when executed by the processor, cause the processor to:parse a bitstream to obtain a first syntax element;in response to the first syntax element having a first value,determine cross-attribute prediction is enabled; anddecode a point cloud using a same coding order for multiple attributes.20.An apparatus for decoding, comprising:a processor; andmemory storing instructions, which when executed by the processor, cause the processor to:parse a bitstream to obtain at least one geometry slice header and an attribute slice header;obtain at least one slice_id syntax element from the at least one geometry slice header;obtain a slice_id syntax element from the attribute slice header;identify a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header; anddecode a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.21.A non-transitory computer-readable medium storing instructions, which when executed by a processor of a decoder, cause the processor of the decoder to:parse a bitstream to obtain a first syntax element;in response to the first syntax element having a first value,determine cross-attribute prediction is enabled; anddecode a point cloud using a same coding order for multiple attributes.22.The non-transitory computer-readable medium of claim 21, wherein the instructions, which when executed by the processor of the decoder, cause the processor of the decoder to:in response to the first syntax element having a second value,determine cross-attribute prediction is not enabled; anddecode the point cloud using a same coding order or different coding orders for different attributes.23.The non-transitory computer-readable medium of claim 21, wherein the first syntax element is a crossAttrTypePred syntax element.24.The non-transitory computer-readable medium of claim 21, wherein the instructions, which when executed by the processor of the decoder, cause the processor of the decoder to:in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, parse the bitstream to obtain a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute,wherein the first coding order and the second coding order are the same coding order.25.The non-transitory computer-readable medium of claim 24, wherein the instructions, which when executed by the processor of the decoder, cause the processor of the decoder to:in response to the second syntax element and the third syntax element each having a first value, determine the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.26.The non-transitory computer-readable medium of claim 25, wherein the instructions, which when executed by the processor of the decoder, cause the processor of the decoder to:in response to the second syntax element and the third syntax element each having a second value, determine the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.27.The non-transitory computer-readable medium of claim 26, wherein the instructions, which when executed by the processor of the decoder, cause the processor of the decoder to:in response to the second syntax element and the third syntax element each having a third value, determine the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.28.The non-transitory computer-readable medium of claim 24, wherein:the second syntax element is a colorReorderMode syntax element, andthe third syntax element is a reflReorderMode syntax element.29.A non-transitory computer-readable medium storing instructions, which when executed by a processor of a decoder, cause the processor of the decoder to:parse a bitstream to obtain at least one geometry slice header and an attribute slice header;obtain at least one slice_id syntax element from the at least one geometry slice header;obtain a slice_id syntax element from the attribute slice header;identify a geometry slice header of the at least one geometry slice header that includes a same value slice_id syntax element as the slice_id syntax element of the attribute slice header; anddecode a slice that corresponds to the same value slice_id syntax element based on the geometry slice header and the attribute slice header.30.A method for encoding a point cloud, comprising:encoding, by a processor, a first syntax element;in response to the first syntax element having a first value,determining, by the processor, cross-attribute prediction is enabled; andencoding, by the processor, the point cloud using a same coding order for multiple attributes.31.The method of claim 30, further comprising:in response to the first syntax element having a second value,determining, by the processor, cross-attribute prediction is not enabled; andencoding, by the processor, the point cloud using a same coding order or different coding orders for different attributes.32.The method of claim 30, wherein the first syntax element is a crossAttrTypePred syntax element.33.The method of claim 30, further comprising:in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, encoding, by the processor, a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute,wherein the first coding order and the second coding order are the same coding order.34.The method of claim 33, wherein the second syntax element and the third syntax element each having a first value indicates the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.35.The method of claim 34, wherein the second syntax element and the third syntax element each having a second value indicates the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.36.The method of claim 35, wherein the second syntax element and the third syntax element each having a third value indicates the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.37.The method of claim 33, wherein:the second syntax element is a colorReorderMode syntax element, andthe third syntax element is a reflReorderMode syntax element.38.A encoder, comprising:a processor; andmemory storing instructions, which when executed by the processor, cause the processor to:encode a first syntax element;in response to the first syntax element having a first value,determine cross-attribute prediction is enabled; andencode a point cloud using a same coding order for multiple attributes.39.The encoder of claim 38, wherein the memory storing instructions, which when executed by the processor, cause the processor to:in response to the first syntax element having a second value,determine cross-attribute prediction is not enabled; andencode the point cloud using a same coding order or different coding orders for different attributes.40.The encoder of claim 38, wherein the first syntax element is a crossAttrTypePred syntax element.41.The encoder of claim 38, wherein the memory storing instructions, which when executed by the processor, cause the processor to:in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, encode a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute,wherein the first coding order and the second coding order are the same coding order.42.The encoder of claim 41, wherein the second syntax element and the third syntax element each having a first value indicates the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.43.The encoder of claim 42, wherein the second syntax element and the third syntax element each having a second value indicates the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.44.The encoder of claim 43, wherein the second syntax element and the third syntax element each having a third value indicates the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.45.The encoder of claim 41, wherein:the second syntax element is a colorReorderMode syntax element, andthe third syntax element is a reflReorderMode syntax element.46.An apparatus for encoding, comprising:a processor; andmemory storing instructions, which when executed by the processor, cause the processor to:encode a first syntax element;in response to the first syntax element having a first value,determine cross-attribute prediction is enabled; andencode a point cloud using a same coding order for multiple attributes.47.A non-transitory computer-readable medium storing instructions, which when executed by a processor of an encoder, cause the processor of the encoder to:encode a first syntax element;in response to the first syntax element having a first value,determine cross-attribute prediction is enabled; andencode a point cloud using a same coding order for multiple attributes.48.The non-transitory computer-readable medium of claim 47, wherein the instructions, which when executed by the processor of the encoder, cause the processor of the encoder to:in response to the first syntax element having a second value,determine cross-attribute prediction is not enabled; andencode the point cloud using a same coding order or different coding orders for different attributes.49.The non-transitory computer-readable medium of claim 47, wherein the first syntax element is a crossAttrTypePred syntax element.50.The non-transitory computer-readable medium of claim 47, wherein the instructions, which when executed by the processor of the encoder, cause the processor of the encoder to:in response to the point cloud having a first attribute and a second attribute and the cross-attribute prediction being enabled, encode a second syntax element associated with a first coding order of the first attribute and a third syntax element associated with a second coding order of the second attribute,wherein the first coding order and the second coding order are the same coding order.51.The non-transitory computer-readable medium of claim 50, wherein the second syntax element and the third syntax element each having a first value indicates the first coding order of the first attribute and the second coding order of the second attribute is an original coding order of the point cloud.52.The non-transitory computer-readable medium of claim 51, wherein the second syntax element and the third syntax element each having a second value indicates the first coding order of the first attribute and the second coding order of the second attribute is a Hilbert order.53.The non-transitory computer-readable medium of claim 52, wherein the second syntax element and the third syntax element each having a third value indicates the first coding order of the first attribute and the second coding order of the second attribute is a Morton order.54.The non-transitory computer-readable medium of claim 50, wherein:the second syntax element is a colorReorderMode syntax element, andthe third syntax element is a reflReorderMode syntax element.55.A non-transitory computer-readable medium storing a bitstream, the bitstream being generated according to one or more of claims 30-37.

Citation Information

Patent Citations

  • Point cloud data processing method and device, equipment and storage medium

    CN115379188A

  • Data processing method of point cloud media and related equipment

    CN115379189A

  • Data processing method and device for immersion media, equipment and storage medium

    CN115396645A

  • Data processing method of point cloud media and related equipment

    CN115866274A

  • Attribute coding in geometry point cloud coding

    WO2023028177A1