WO2023244551A1 - Color component coding method, encoder and decoder - Google Patents

Color component coding method, encoder and decoder Download PDF

Info

Publication number
WO2023244551A1
WO2023244551A1 PCT/US2023/025102 US2023025102W WO2023244551A1 WO 2023244551 A1 WO2023244551 A1 WO 2023244551A1 US 2023025102 W US2023025102 W US 2023025102W WO 2023244551 A1 WO2023244551 A1 WO 2023244551A1
Authority
WO
WIPO (PCT)
Prior art keywords
level
residual
coded
zero
levels
Prior art date
Application number
PCT/US2023/025102
Other languages
French (fr)
Inventor
Yue Yu
Haoping Yu
Original Assignee
Innopeak Technology, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Innopeak Technology, Inc. filed Critical Innopeak Technology, Inc.
Publication of WO2023244551A1 publication Critical patent/WO2023244551A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the disclosure relates generally to computer-implemented methods and systems for video processing. Specifically, the disclosure relates to parity-based color level coding for Geometry Point Cloud Coding (G-PCC).
  • G-PCC Geometry Point Cloud Coding
  • G-PCC is widely used in entertainment applications, e.g., VR/AR, and industrial applications, e.g., LiDAR sweep compression for automotive or robotics and HD map for navigation.
  • MPEG released the first version G-PCC standard and Audio Video Standard (AVS) is also developing a G-PCC standard.
  • AVS Audio Video Standard
  • geometry information of a point cloud is compressed first, and then the corresponding attributes, including colour or reflectance, are compressed based upon the geometry information.
  • the embodiments of the present application provide a color component coding method, an encoder, and a decoder, which can improve the coding efficiency and throughput of G-PCC.
  • an embodiment of the present application provides a color component coding method applied to an encoder.
  • the method comprises calculating differences between three color components of each of a plurality of points to be coded in a point cloud and predicted values of the color components as residual levels of the point, and coding coded levels of the residual levels of the color components and a group of sign flags respectively indicating signs of the residual levels of the color components.
  • the step of coding comprises coding a first zero flag indicating whether the residual level of a first color component is equal to zero; coding the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and coding the group of the sign flags indicating the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; deriving the coded level of the residual level of the first color component as zero and coding a second zero flag indicating whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; coding the coded levels of the residual levels of the second color component and a third color component, and the sign flags indicating the signs of the residual levels of the second color component and the third color component if the residual levels of the second and the third color component are not equal to zero; and deriving the coded level of the residual level of the second color component as zero,
  • the coded level of the residual level of each of the color components is an absolute level of the residual level of the color component or an absolute level of the residual level minus one and is a return value of a function of coded level coding.
  • the step of coding coded levels of the residual levels of the color components comprises, for each of the coded levels, coding a first flag indicating whether the coded level is equal to zero; coding a second flag indicating whether the coded level is equal to one if the coded level is not equal to zero; coding a third flag indicating a parity of the coded level if the coded level is not equal to one; coding a fourth flag indicating whether a value of the coded level minus two divided by two is equal to zero; and coding a series of fifth flags indicating a value of the value of the coded level minus two divided by two and then minus one.
  • the step of coding coded levels of the residual levels of the color components comprises, for each of the coded levels, coding a sixth flag indicating whether the coded level is greater than zero; coding a seventh flag indicating whether the coded level is greater than one if the coded level is greater than zero; coding an eighth flag indicating a parity of the coded level if the coded level is greater than one; coding a ninth flag indicating whether a value of the coded level minus two divided by two is greater than zero; and coding a series of tenth flags indicating a value of the value of the coded level minus two divided by two and then minus one.
  • the method further checks an enable flag in an attribute header of a sequence of the point cloud to enable the coding of the coded levels and the sign flags.
  • an embodiment of the present application provides a color component decoding method applied to a decoder.
  • the method comprises decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud, wherein the residual levels of the color components represent differences between the color components of the point and predicted values of the color components; decoding a group of sign flags to obtain signs of the respective residual levels of the color components; and restoring the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud.
  • the steps of decoding comprises decoding a first zero flag to determine whether the residual level of a first color component is equal to zero; decoding the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and decoding the group of the sign flags to determine the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; determining the coded level of the residual level of the first color component as zero and decoding a second zero flag to determine whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; decoding the coded levels of the residual levels of the second color component and a third color component if the residual level of the second color component is not equal to zero, and decoding the group of sign flags to determine the signs of the residual levels of the second color component and the third color component if the residual level of the third color component is not equal to zero; and determining the code
  • the step of restoring comprises restoring the residual levels of the color components of each of the plurality of points by calculating a product of the decoded signs multiplied by the absolute level of the decoded levels of the residual level of the color components.
  • the decoded coded level of the residual level of each of the color components is an absolute level of the residual level of the color component or an absolute level of the residual level minus one.
  • the step of decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud comprises, for each of the coded levels, decoding a first code to determine whether the coded level is equal to zero; decoding a second code to determine whether the coded level is equal to one if the coded level is not equal to zero; decoding a third code to obtain a parity of the coded level if the coded level is not equal to one; decoding a fourth code to determine whether a value of the coded level minus two divided by two is equal to zero; decoding a series of fifth codes to obtain a value of the value of the coded level minus two divided by two and then minus one; and determining a value of the coded level according to decoding results.
  • the step of decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud comprises, for each of the coded levels, decoding a sixth code to determine whether the coded level is greater than zero; decoding a seventh code to determine whether the coded level is greater than one if the coded level is greater than zero; decoding an eighth code to obtain a parity of the coded level if the coded level is greater than one; decoding a ninth code to determine whether a value of the coded level minus two divided by two is greater than zero; decoding a series of tenth codes to obtain a value of the value of the coded level minus two divided by two and then minus one; and determining a value of the coded level according to decoding results.
  • an embodiment of the present application provides an encoder.
  • the encoder comprises a communication interface, a storage device, and a processor.
  • the communication interface is configured to retrieve data of a point cloud.
  • the storage device is configured to store the data of the point cloud.
  • the processor is coupled to the communication interface and the storage device, and comprises a residual calculating unit, a residual coding unit, and a sign coding unit.
  • the residual calculating unit calculates differences between three color components of each of a plurality of points to be coded in a point cloud and predicted values of the color components as residual levels of the point.
  • the residual coding unit codes coded levels of the residual levels of the color components.
  • the sign coding unit codes a group of sign flags respectively indicating signs of the residual levels of the color components.
  • the residual coding unit codes a first zero flag indicating whether the residual level of a first color component is equal to zero; the residual coding unit codes the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and the sign coding unit codes the group of the sign flags indicating the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; the residual coding unit derives the coded level of the residual level of the first color component as zero and codes a second zero flag indicating whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; the residual coding unit codes the coded levels of the residual levels of the second color component and a third color component, and the sign coding unit codes the sign flags indicating the signs of the residual levels of the second color component and the third color component if the residual levels of the second and the third color component are not equal to zero; and
  • the residual coding unit further, for each of the coded levels, codes a first flag indicating whether the coded level is equal to zero, codes a second flag indicating whether the coded level is equal to one if the coded level is not equal to zero, codes a third flag indicating a parity of the coded level if the coded level is not equal to one, codes a fourth flag indicating whether a value of the coded level minus two divided by two is equal to zero, and codes a series of fifth flags indicating a value of the value of the coded level minus two divided by two and then minus one.
  • the residual coding unit further, for each of the coded levels, codes a sixth flag indicating whether the coded level is greater than zero, codes a seventh flag indicating whether the coded level is greater than one if the coded level is greater than zero, codes an eighth flag indicating a parity of the coded level if the coded level is greater than one, codes a ninth flag indicating whether a value of the coded level minus two divided by two is greater than zero, and codes a series of tenth flags indicating a value of the value of the coded level minus two divided by two and then minus one.
  • the residual coding unit and the sign coding unit are enabled by an enable flag in an attribute header of a sequence of the point cloud.
  • an embodiment of the present application provides a decoder.
  • the decoder comprises a communication interface, a storage device, and a processor.
  • the communication interface is configured to retrieve an attribute bitstream of a point cloud.
  • the storage device is configured to store the attribute bitstream of the point cloud.
  • the processor is coupled to the communication interface and the storage device, and comprises a coded level decoding unit, a sign decoding unit, and a residual restoring unit.
  • the coded level decoding unit decodes coded levels of residual levels of three color components of each of a plurality of points in a point cloud from the attribute bitstream, wherein the residual levels of the color components represent differences between the color components of the point and predicted values of the color components.
  • the sign decoding unit decodes a group of sign flags to obtain signs of the respective residual levels of the color components from the attribute bitstream.
  • the residual restoring unit restores the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud.
  • the coded level decoding unit decodes a first zero flag to determine whether the residual level of a first color component is equal to zero; the coded level decoding unit decodes the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and the sign decoding unit decodes the group of the sign flags to determine the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; the coded level decoding unit determines the coded level of the residual level of the first color component as zero and decodes a second zero flag to determine whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; the coded level decoding unit decodes the coded levels of the residual levels of the second color component and a third color component if the residual level of the second color component is not equal to zero, and the sign decoding unit decodes the group of the sign flags
  • the residual restoring unit restores the residual levels of the color components of each of the plurality of points by calculating a product of the decoded signs multiplied by the absolute level of the decoded levels of the residual level of the color components.
  • FIG. 1 is a flow diagram of a G-PCC encoding according to one embodiment of the application.
  • FIG. 2A and FIG. 2B illustrate octree structures of G-PCC according to one embodiment of the application.
  • FIG. 2C illustrates corresponding digital representation of the octree structure according to one embodiment of the application.
  • FIG. 3 illustrates structure of the cubes according to one embodiment of the application.
  • FIG. 4 is a flow diagram of a G-PCC decoding according to one embodiment of the application.
  • FIG. 5 is a schematic diagram of the hardware structure of an encoder provided by an embodiment of the application.
  • FIG. 6 is a flowchart of a color component coding method applied to an encoder according to an embodiment of the disclosure.
  • FIG. 7 is a schematic diagram of the hardware structure of a decoder provided by an embodiment of the application.
  • FIG. 8 is a flowchart of a color component decoding method applied to a decoder according to an embodiment of the disclosure.
  • FIG. 9 is a syntax table of a function of color residual coding according to an embodiment of the disclosure.
  • FIG. 10A and FIG. 10B are syntax tables of a function of coded level coding according to an embodiment of the disclosure.
  • FIG. 11 is a syntax table of a function of color residual coding according to an embodiment of the disclosure.
  • FIG. 1 is a flow diagram of a G-PCC encoding according to one embodiment of the application.
  • the flow shown in FIG. 1 is applied to a point cloud encoder.
  • the point cloud data is divided into multiple slices through slice division.
  • the positions (i.e. geometric information) of the point cloud and the attributes corresponding to each point cloud are coded separately.
  • the positions are coordinated to convert the point cloud into a bounding box (bounding box) in step SI 02, and then quantized in step SI 04.
  • the quantization mainly plays the role of scaling. Due to the quantization rounding, a part of the positions of the point cloud is the same, so it is further determined whether to remove the duplicate points based on the parameters in step SI 04.
  • the process of quantifying and removing the duplicate points is also called the voxelization process.
  • the bounding box is divided into an octree for octree analysis in step SI 06.
  • the bounding box is divided into eight subcubes, and the non-empty (including points in the point cloud) sub-cubes are continued to be divided into eight equal parts until the leaf knots are obtained.
  • the point is a I xl xl unit cube
  • the division is stopped, and the points in the leaf nodes are arithmetic coded in step SI 08 to generate a binary geometric bitstream, that is, a geometric code stream.
  • FIG. 2A and FIG. 2B illustrate octree structures of G-PCC according to one embodiment of the application
  • FIG. 2C illustrates corresponding digital representation of the octree structure according to one embodiment of the application.
  • a cubical axis-aligned bounding box B is defined by two extreme points (0,0,0) and (2 d , 2 d , 2 d ) where d is the maximum size of a given point cloud along x, y or z direction.
  • a point of the point cloud will be noted as “point” below. All points are included in this defined cube B.
  • the cube B is divided into eight sub-cubes Bl to B8, which creates an octree structure allowing one parent cube B to have 8 child cubes Bl to B8.
  • the 7 sibling cubes B2 to B8 of a given cube Bl are the same size cubes and share at least one same face/edge/point with this given cube.
  • the volume of each of the cubes Bl to B8 is 1/8 volume of its parent cube B.
  • Each of the cubes Bl to B8 may contain more than one point and a number of points in a cube is dependent on the size and location of the cube.
  • the size of a smallest cube is pre-defined for a given point cloud.
  • the parent cube of a given point is defined as a minimum size cube which contains this given point.
  • Sibling points of a given point are defined as those points which have the same parent cube with this given point.
  • an octree is a recursive data structure that is often used to describe three-dimensional space in which each internal cube has exactly eight children.
  • the space is recursively subdivided into eight octants to the point where the resolution of the child cube is equal to a size of the point - the smallest element that has no further subdivisions.
  • To represent a cube an 8-bit binary code that follows a space-filling curve pattern (Hilbert, Morton) is used, each child is assigned a “1” or “0” value to indicate if the space in the child cube has any points associated with that child cube, or the child cube is empty. Only the occupied child cubes are further subdivided. The process of parent cube subdivision is terminated when the size of the child cube becomes equal to the size of the indivisible element, i.e., spatial resolution of the point cloud, or simply the size of the point.
  • FIG. 3 illustrates structure of the cubes according to one embodiment of the application.
  • one cube may have up to six samesize cubes to share one face.
  • the current cube may also have some neighbouring cubes which share lines or points with the current cube.
  • the parent cube of the current cube also has up to six neighbouring cubes with the same size of the parent cube that share one face with the parent cube.
  • the parent cube of the current cube also has up to twelve neighbouring cubes with the same size of parent cubes that share an edge.
  • the parent cube of the current cube also has up to eight neighbouring cubes with the same size of parent cubes that share a point with the parent cube.
  • step SI 10 based on the surface formed by the distribution of the point cloud in each block, twelve pieces of the surface and the block are analyzed in step SI 10. At most twelve vertexes (intersection points) are generated by the edges, and the arithmetic coding is performed on the vertexes (surface fitting based on the intersection points) in step S 108 to generate the binary geometric bitstream, that is, a geometric code stream. Vertex is also used in the realization of the geometric reconstruction process in step SI 12, and the reconstructed set information is used when encoding the attributes of the point cloud.
  • step SI 12 In the attribute coding process, the geometric coding is completed, and after the geometric information is reconstructed in step SI 12, color transformation is performed in step SI 14, in which the color information (that is, the attribute information) is transformed from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, so that the uncoded attribute information corresponds to the reconstructed geometric information in step SI 16. Attribute coding is mainly for color information. [0049] In the process of color information coding, there are mainly two transformation methods. One is distance-based lifting transformation that relies on Level of Detail (LOD) division in step SI 18 and lifting in step SI 20, and the other is direct area adaptation.
  • LOD Level of Detail
  • the geometrically coded data and the quantized coefficient processing attribute coded data are slice-synthesized, and then the vertex coordinates of each block (that is, arithmetic coding) are sequentially coded in step SI 26 to generate a binary attribute bitstream, that is, the attribute code stream.
  • FIG. 4 is a flow diagram of a G-PCC decoding according to one embodiment of the application.
  • the flow in FIG. 4 is applied to the point cloud decoder.
  • the geometric bitstream and the attribute bitstream in the binary code stream are first decoded in steps S402 and S404, respectively.
  • steps S402 and S404 respectively.
  • octree synthesis in step S406 surface fitting in step S408, geometry reconstruction in step S410, and inverse coordinate transformation in step S412
  • the positions (i.e. geometric information) of the point cloud are obtained.
  • step S404 When decoding the attribute bitstream, through arithmetic decoding in step S404, inverse Quantization in step S414, LOD-based lifting based inverse transformation in steps S416 and S418, or RAHT based inverse transformation in step S420, and inverse color conversion in step S422, the attributes of the point cloud are obtained, and the three-dimensional image model of the point cloud data to be encoded is restored based on the positions and the attributes.
  • the octree-based geometry information may be coded with context-based arithmetic coding. There may also be some corresponding attribute information for point clouds, including colour, reflectance, etc., that needs to be compressed. Because the neighbouring points in a point cloud may have a strong correlation, prediction-based coding methods have been developed and used to compose and code point cloud attributes. More specifically, a prediction is formed from neighbouring coded attributes. Then, the difference between the current attribute and the prediction is coded.
  • coding is assumed to mean encoding and decoding methods and systems.
  • AVS is developing a G-PCC standard.
  • Morton or Hilbert code/order may be used to convert a point cloud cube into a one-dimension array.
  • Each position in the cube will have a corresponding Morton or Hilbert code, but some positions may not have any corresponding point cloud attribute. In other words, some positions may be empty.
  • the attribute coding will follow the pre-defined Morton or Hilbert order.
  • a predictor may be generated from the previous coded points in Morton or Hilbert order. The attribute difference between the current point and its predictor is coded into the bitstream.
  • some pre-defined number has been specified to limit the number of neighboring points that can be used in generating the prediction. For example, only M data points among previous N consecutively coded points may be used for coding the current attribute. In the previous AVS G-PCC software, M and N are set as a fixed number of 3 and 128, respectively.
  • a P-point set before and a Q-point set after the current position according to the new Morton or Hilbert code order will be selected.
  • M points are selected with M closest “distance” between these coded points and the current point.
  • the distance dl as one example is defined as follows, other distance metrics can also be used.
  • (xl, yl, zl) and (x2, y2, z2) are coordinates of the current point and preselected point, respectively.
  • the search range is set as 128 and the number of previous points used to form the predictor is set as M. If more than 128 points have already been coded before the current point, only M out of the 128 previously coded neighbouring points can be used to form the attribute predictor according to the Hilbert order.
  • (xl, yl, zl) and (x3, y3, z3) are the coordinates of the current point and the pre-selected point along Hilbert order, respectively.
  • the residual is defined as the difference of attribute values between the current point and its predictor.
  • PCC can be either lossless or lossy.
  • the residual may or may not be quantized by using the predefined quantization process.
  • the residual without or with quantization is called level.
  • the level can be a signed integer and will be coded into the bitstream.
  • the zero-run length value is set as zero. Starting from the first point along the predefined coding order, the residuals between the three color predictors and their corresponding color attributes for the current point can be obtained. Then, the corresponding levels for the three components of the current point also can be obtained. If the current point is a zero level point, the zero-run length value will be increased by one and the process proceeds to the next point. If the current point is a non-zero level point, the zero-run length value will be coded first and then the three color levels for this non-zero level point will be coded right after. After the level coding of a non-zero level point, the zero-run length value will be reset to zero and the process proceeds to the next point till finishing all points.
  • the zero-run length value is first decoded and the three color levels corresponding to the number of zero-run length points are set as zero. Then, the levels for the nonzero level point are decoded and then the next zero-run length value is decoded. This process continues until all points are decoded.
  • non-zero level point there is at least one non-zero level among the three components.
  • Several one-bit flags plus the remainder of the absolute level may be coded to represent residual levels of the color components.
  • the absolute level or absolute level of color residual minus one may be coded and named as coded level in the remaining of this disclosure.
  • FIG. 5 is a schematic diagram of the hardware structure of an encoder provided by an embodiment of the application.
  • an encoder 50 includes a communication interface 52, a storage device 54, and a processor 56.
  • the communication interface 52 is, for example, a network card that supports wired network connections such as Ethernet, a wireless network card that supports wireless communication standards such as Institute of Electrical and Electronics Engineers (IEEE) 802.1 In/b/g/ac/ax/be, or any other network connecting device, but the embodiment is not limited thereto.
  • the communication interface 52 is configured to retrieve data of a point cloud.
  • the storage device 54 may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable ROM, PROM), erasable programmable read-only memory (Erasable PROM, EPROM), and electrically available Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be random access memory (Random Access Memory, RAM), which is used as an external cache.
  • RAM Random Access Memory
  • the processor 56 is coupled to the communication interface 52 and the storage device 54 through a bus system 58.
  • the bus system 58 is used as a data bus to implement connection and communication between these components.
  • the bus system 58 may also be a power bus, a control bus, a status signal bus or a combination thereof, but the embodiment is not limited thereto.
  • the processor 56 includes a residual calculating unit 562, a residual coding unit 564, and a sign coding unit 566.
  • the residual calculating unit 562 is used to calculate differences between three color components of each of a plurality of points to be coded in a point cloud and predicted values of the color components as residual levels of the point.
  • the residual coding unit 564 is used to code coded levels of the residual levels of the color components.
  • the sign coding unit 566 is used to code a group of sign flags respectively indicating signs of the residual levels of the color components.
  • a “unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, or it may also be non-modular.
  • the various components in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be realized in the form of hardware or software function module.
  • FIG. 6 is a flowchart of a color component coding method applied to an encoder according to an embodiment of the disclosure. With reference to FIG. 5 and FIG. 6 together, the method of this embodiment is applied to the encoder 50 in FIG. 5. Detailed steps of the color component coding method of exemplary embodiments of the disclosure accompanied with the elements in the encoder 50 will now be described below.
  • step S602 the residual calculating unit 562 is used to calculate differences between three color components of each of a plurality of points to be coded in a point cloud and predicted values of the color components as residual levels of the point.
  • step S604 the residual coding unit 564 is used to code coded levels of the residual levels of the color components.
  • step S606 the sign coding unit 566 is used to code a group of sign flags respectively indicating signs of the residual levels of the color components.
  • the residual coding unit 564 codes a first zero flag indicating whether the residual level of a first color component is equal to zero.
  • the residual coding unit 564 codes the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and the sign coding unit 566 codes the group of the sign flags indicating the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero.
  • the residual coding unit 564 derives the coded level of the residual level of the first color component as zero and codes a second zero flag indicating whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero.
  • the residual coding unit 564 codes the coded levels of the residual levels of the second color component and a third color component, and the sign coding unit 566 codes the sign flags indicating the signs of the residual levels of the second color component and the third color component if the residual levels of the second and the third color component are not equal to zero.
  • the residual coding unit 564 derives the coded level of the residual level of the second color component as zero and codes the coded level of the residual level of the third color component, and the sign coding unit 566 codes the sign flag indicating the sign of the residual level of the third color component if the residual level of the second color component is equal to zero.
  • An exemplary embodiment can be seen in a syntax table 900 in FIG. 9, which will be illustrated in details below.
  • the coded level of the residual level of each of the color components is an absolute level of the residual level of the color component or an absolute level of the residual level minus one and is a return value of a function of coded level coding as shown in a syntax table 100a in FIG. 10A and a syntax table 100b in FIG. 10B, which will be illustrated in details below.
  • the residual level of the color component is determined as not equal to zero, the residual level can be coded with one bit less, and thus the coded level of the residual level is an absolute level of the residual level minus one.
  • the residual level of the color component has not been determined as equal to zero or not, the residual level is coded as an absolute level of the residual level.
  • the residual coding unit 564 further codes a first flag indicating whether the coded level is equal to zero, codes a second flag indicating whether the coded level is equal to one if the coded level is not equal to zero, codes a third flag indicating a parity of the coded level if the coded level is not equal to one, codes a fourth flag indicating whether a value of the coded level minus two divided by two is equal to zero, and codes a value of the value of the coded level minus two divided by two and then minus one.
  • the residual coding unit 564 further codes a sixth flag indicating whether the coded level is greater than zero, codes a seventh flag indicating whether the coded level is greater than one if the coded level is greater than zero, codes an eighth flag indicating a parity of the coded level if the coded level is greater than one, codes a ninth flag indicating whether a value of the coded level minus two divided by two is greater than zero, and codes a value of the value of the coded level minus two divided by two and then minus one.
  • an enable flag is provided in an attribute header of a sequence of the point cloud and used to enable the coding of the coded levels and the sign flags. That is, in the coding process, the encoder 50 may check the enable flag in the attribute header of the sequence of the point cloud, and enables the coding of the coded levels and the sign flags when a value of the enable flag is true.
  • FIG. 7 is a schematic diagram of the hardware structure of a decoder provided by an embodiment of the application.
  • a decoder 70 includes a communication interface 72, a storage device 74, and a processor 76 coupled to the communication interface 72 and the storage device 74 through a bus system 78.
  • the communication interface 72 is configured to retrieve an attribute bitstream of a point cloud
  • the storage device 74 is configured to store the attribute bitstream of the point cloud.
  • the processor 76 includes a coded level decoding unit 762, a sign decoding unit 764, and a residual restoring unit 766.
  • the coded level decoding unit 762 is used to decode coded levels of residual levels of three color components of each of a plurality of points in a point cloud from the attribute bitstream.
  • the residual levels of the color components represent differences between the color components of the point and predicted values of the color components.
  • the sign decoding unit 764 is used to decode a group of sign flags to obtain signs of the respective residual levels of the color components from the attribute bitstream.
  • the residual restoring unit 766 is used to restore the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud.
  • a “unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, or it may also be non-modular.
  • the various components in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be realized in the form of hardware or software function module.
  • FIG. 8 is a flowchart of a color component decoding method applied to a decoder according to an embodiment of the disclosure. With reference to FIG. 7 and FIG. 8 together, the method of this embodiment is applied to the decoder 70 in FIG. 7. Detailed steps of the color component decoding method of exemplary embodiments of the disclosure accompanied with the elements in the decoder 70 will now be described below.
  • step S802 the coded level decoding unit 762 decodes coded levels of residual levels of three color components of each of a plurality of points in a point cloud from the attribute bitstream.
  • step S804 the sign decoding unit 764 decodes a group of sign flags to obtain signs of the respective residual levels of the color components from the attribute bitstream.
  • step S806 the residual restoring unit 766 restores the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud.
  • the coded level decoding unit 762 decodes a first zero flag to determine whether the residual level of a first color component is equal to zero; the coded level decoding unit 762 decodes the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and the sign decoding unit 764 decodes the group of the sign flags to determine the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; the coded level decoding unit 762 determines the coded level of the residual level of the first color component as zero and decodes a second zero flag to determine whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; the coded level decoding unit 762 decodes the coded levels of the residual levels of the second color component and a third color component if the residual level of the second color component is not equal to zero, and the sign decoding unit
  • the residual restoring unit 766 restores the residual levels of the color components of each of the plurality of points by calculating a product of the decoded signs multiplied by the absolute level of the decoded levels of the residual level of the color components.
  • FIG. 9 is a syntax table of a function of color residual coding according to an embodiment of the disclosure.
  • a first zero flag (color first comp zero) is coded to indicate if the residual level of a first color component is zero or not. If the residual level of the first color component is not zero, the coded levels (e.g. absolute level or absolute level minus one) of the residual levels of the three color components (i.e. color_component[0], color_component[l] and color_component[2]) will be coded according to a function of coded level coding as illustrated below, and sign flags (i.e. color first component sign, color second component sign, color third component sign) indicating the signs of the residual levels of the color components will also be coded. It is noted three, two or one sign may be coded depending on if the second or third color component is zero or not.
  • the coded levels e.g. absolute level or absolute level minus one
  • sign flags i.e. color first component sign, color second component sign, color third component sign
  • sign flag color first component sign When the sign flag color first component sign is equal to 0, it specifies that the sign of the residual level of the first color component is negative. When the sign flag color first component sign is equal to 1 , it specifies that the sign of the residual level of the first color component is positive. When the sign flag color first component sign is not present, it is inferred to be equal to 1.
  • sign flag color second component sign When the sign flag color second component sign is equal to 0, it specifies that the sign of the residual level of the second color component is negative. When the sign flag color second component sign is equal to 1, it specifies that the sign of the residual level of the second color component is positive. When the sign flag color second component sign is not present, it is inferred to be equal to 1.
  • sign flag color third component sign When the sign flag color third component sign is equal to 0, it specifies that the sign of the residual level of the third color component is negative. When the sign flag color third component sign is equal to 1 , it specifies that the sign of the residual level of the third color component is positive. When the sign flag color third component sign is not present, it is inferred to be equal to 1.
  • the coded level of the residual level of the first color component i.e. color_component[0]
  • a second zero flag color second comp zero
  • the coded level of the residual levels of the color components i.e. color_component[l] and color_component[2]
  • sign flags i.e. color second component sign, color third component sign
  • the sign flag i.e. color third component sign
  • FIG. 10A and FIG. 1 OB are syntax tables of a function of coded level coding according to an embodiment of the disclosure.
  • a first flag (coded level equal zero) is coded to indicate if the coded level is equal to zero.
  • a second flag (coded level equal one) is coded to indicate if the coded level is equal to one.
  • a third flag (coded_level_parity) is coded to indicate a parity of the coded level
  • a fourth flag coded_level_ minus2_div2_equal_zero is coded to indicate whether a value of the coded level minus two divided by two is equal to zero.
  • coded_level_minu2_div2_minusl a difference of the value of the coded level minus two divided by two and then minus one (coded_level_minu2_div2_minusl) is coded.
  • a sixth flag (coded level gt zero) is coded to indicate if the coded level is greater than zero.
  • a seventh flag (coded level gt one) is coded to indicate if the coded level is greater than one.
  • an eighth flag (coded_level_parity) is coded to indicate a parity of the coded level
  • a ninth flag is coded to indicate whether a value of the coded level minus two divided by two is greater than zero.
  • coded_level_minu2_div2_minusl a difference of the value of the coded level minus two divided by two and then minus one (coded_level_minu2_div2_minusl) is coded.
  • FIG. 11 is a syntax table of a function of color residual coding according to an embodiment of the disclosure.
  • a first zero flag (color first comp zero) is coded to indicate if the residual level of a first color component is zero or not. If the residual level of the first color component is not zero, the coded level (i.e. coded level coding (true) + 1) of the residual level of the first color component and the coded levels (coded level coding (false)) of the residual levels of the second color component and the third color component will be coded according to the function of coded level coding, and sign flags (i.e. color first component sign, color second component sign and color third component sign) indicating the signs of the residual levels of the color components may also be coded.
  • coded level i.e. coded level coding (true) + 1 of the residual level of the first color component and the coded levels (coded level coding (false)
  • sign flags i.e. color first component sign, color second component sign and color third component sign
  • a return value of the function of coded level coding is an absolute level of the residual level minus one (i.e. coded level coding (true)), and thus the coded level of the residual level of the first color component is equal to coded level coding (true) +1.
  • a return value of the function of coded level coding is an absolute level of residual level (i.e. coded level coding (false)), and thus the coded level of the residual level of the first color component is equal to coded level coding (false).
  • the residual level (color component[0]) of the first color component can be restored by calculating a product of the decoded sign multiplied by the absolute level of the decoded level of the residual level of the first color component, which is denoted as (2* color_first_component_sign-l) * color_component[0].
  • the residual level (color component[l ]) of the second color component can be restored by calculating a product of the decoded sign multiplied by the absolute level of the decoded level of the residual level of the second color component, which is denoted as (2* color_second_component_sign-l) * color componentfl].
  • the residual level (color component[2]) of the third color component can be restored by calculating a product of the decoded sign multiplied the absolute level of the decoded level of the residual level of the third color component, which is denoted as (2* color_third_component_sign-l) * color_component[2].
  • the coded level of the residual level of the first color component i.e. color componentfO]
  • a second zero flag color second comp zero
  • the coded level of the residual levels of the color components i.e. color componentfl] and color_component[2]
  • sign flags i.e. color second component sign and color third component sign
  • the residual level (color componentfl]) of the second color component can be restored by calculating a product of the decoded sign multiplied by the absolute level of the decoded level of the residual level of the second color component, which is denoted as (2* color_second_component_sign-l) * color componentfl].
  • the residual level (color component[2]) of the third color component can be restored by calculating a product of the decoded sign multiplied by the absolute level of the decoded level of the residual level of the third color component, which is denoted as (2* color_third_component_sign-l) * color_component[2].
  • the coded level of the residual level of the second color component i.e. color componentfl]
  • the coded level of the residual level of the third color components i.e. color_component[2]
  • the sign flag i.e. color third component sign
  • the residual level (color component[2]) of the third color component can be restored by calculating a product of the decoded sign multiplied by the absolute level of the decoded level of the residual level of the third color component, which is denoted as (2* color_third_component_sign-l) * color_component[2].

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

A color component coding method, an encoder, and a decoder are disclosed. The method is applied to a decoder and comprises decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud, wherein the residual levels of the color components represent differences between the color components of the point and predicted values of the color components; decoding a group of sign flags to obtain signs of the respective residual levels of the color components; and restoring the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud.

Description

COLOR COMPONENT CODING METHOD, ENCODER AND DECODER
CROSS-REFERENCE TO RELATED APPLICATION
This application claims the priority benefits of U.S. provisional application serial no. 63/366,464 , filed on June 15, 2022 and U.S. provisional application serial no. 63/366,614 , filed on June 17, 2022. The entirety of each of the above-mentioned patent applications is hereby incorporated by reference herein and made a part of this specification.
BACKGROUND OF THE DISCLOSURE
[Field of the disclosure]
[0001] The disclosure relates generally to computer-implemented methods and systems for video processing. Specifically, the disclosure relates to parity-based color level coding for Geometry Point Cloud Coding (G-PCC).
[Description of Related Art]
[0002] G-PCC is widely used in entertainment applications, e.g., VR/AR, and industrial applications, e.g., LiDAR sweep compression for automotive or robotics and HD map for navigation. MPEG released the first version G-PCC standard and Audio Video Standard (AVS) is also developing a G-PCC standard. In order to compress the point cloud data efficiently, geometry information of a point cloud is compressed first, and then the corresponding attributes, including colour or reflectance, are compressed based upon the geometry information.
[0003] In the current AVS-GPCC specification, the sign of residual level of color component is coded with bypass method while other syntax elements are coded with context-coded method. Such design is not friendly for hardware implementation that demands high throughput. SUMMARY OF THE INVENTION
[0004] The embodiments of the present application provide a color component coding method, an encoder, and a decoder, which can improve the coding efficiency and throughput of G-PCC.
[0005] In a first aspect, an embodiment of the present application provides a color component coding method applied to an encoder. The method comprises calculating differences between three color components of each of a plurality of points to be coded in a point cloud and predicted values of the color components as residual levels of the point, and coding coded levels of the residual levels of the color components and a group of sign flags respectively indicating signs of the residual levels of the color components.
[0006] According to one embodiment, the step of coding comprises coding a first zero flag indicating whether the residual level of a first color component is equal to zero; coding the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and coding the group of the sign flags indicating the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; deriving the coded level of the residual level of the first color component as zero and coding a second zero flag indicating whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; coding the coded levels of the residual levels of the second color component and a third color component, and the sign flags indicating the signs of the residual levels of the second color component and the third color component if the residual levels of the second and the third color component are not equal to zero; and deriving the coded level of the residual level of the second color component as zero, coding the coded level of the residual level of the third color component, and the sign flag indicating the sign of the residual level of the third color component if the residual level of the second color component is equal to zero.
[0007] According to one embodiment, the coded level of the residual level of each of the color components is an absolute level of the residual level of the color component or an absolute level of the residual level minus one and is a return value of a function of coded level coding.
[0008] According to one embodiment, the step of coding coded levels of the residual levels of the color components comprises, for each of the coded levels, coding a first flag indicating whether the coded level is equal to zero; coding a second flag indicating whether the coded level is equal to one if the coded level is not equal to zero; coding a third flag indicating a parity of the coded level if the coded level is not equal to one; coding a fourth flag indicating whether a value of the coded level minus two divided by two is equal to zero; and coding a series of fifth flags indicating a value of the value of the coded level minus two divided by two and then minus one.
[0009] According to one embodiment, the step of coding coded levels of the residual levels of the color components comprises, for each of the coded levels, coding a sixth flag indicating whether the coded level is greater than zero; coding a seventh flag indicating whether the coded level is greater than one if the coded level is greater than zero; coding an eighth flag indicating a parity of the coded level if the coded level is greater than one; coding a ninth flag indicating whether a value of the coded level minus two divided by two is greater than zero; and coding a series of tenth flags indicating a value of the value of the coded level minus two divided by two and then minus one.
[0010] According to one embodiment, the method further checks an enable flag in an attribute header of a sequence of the point cloud to enable the coding of the coded levels and the sign flags. [0011] In a second aspect, an embodiment of the present application provides a color component decoding method applied to a decoder. The method comprises decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud, wherein the residual levels of the color components represent differences between the color components of the point and predicted values of the color components; decoding a group of sign flags to obtain signs of the respective residual levels of the color components; and restoring the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud. [0012] According to one embodiment, the steps of decoding comprises decoding a first zero flag to determine whether the residual level of a first color component is equal to zero; decoding the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and decoding the group of the sign flags to determine the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; determining the coded level of the residual level of the first color component as zero and decoding a second zero flag to determine whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; decoding the coded levels of the residual levels of the second color component and a third color component if the residual level of the second color component is not equal to zero, and decoding the group of sign flags to determine the signs of the residual levels of the second color component and the third color component if the residual level of the third color component is not equal to zero; and determining the coded level of the residual level of the second color component as zero, decoding the coded level of the residual level of the third color component, and decoding the sign flag to determine the sign of the residual level of the third color component if the residual level of the third color component is equal to zero.
[0013] According to one embodiment, the step of restoring comprises restoring the residual levels of the color components of each of the plurality of points by calculating a product of the decoded signs multiplied by the absolute level of the decoded levels of the residual level of the color components.
[0014] According to one embodiment, the decoded coded level of the residual level of each of the color components is an absolute level of the residual level of the color component or an absolute level of the residual level minus one.
[0015] According to one embodiment, the step of decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud comprises, for each of the coded levels, decoding a first code to determine whether the coded level is equal to zero; decoding a second code to determine whether the coded level is equal to one if the coded level is not equal to zero; decoding a third code to obtain a parity of the coded level if the coded level is not equal to one; decoding a fourth code to determine whether a value of the coded level minus two divided by two is equal to zero; decoding a series of fifth codes to obtain a value of the value of the coded level minus two divided by two and then minus one; and determining a value of the coded level according to decoding results.
[0016] According to one embodiment, the step of decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud comprises, for each of the coded levels, decoding a sixth code to determine whether the coded level is greater than zero; decoding a seventh code to determine whether the coded level is greater than one if the coded level is greater than zero; decoding an eighth code to obtain a parity of the coded level if the coded level is greater than one; decoding a ninth code to determine whether a value of the coded level minus two divided by two is greater than zero; decoding a series of tenth codes to obtain a value of the value of the coded level minus two divided by two and then minus one; and determining a value of the coded level according to decoding results.
[0017] In a third aspect, an embodiment of the present application provides an encoder. The encoder comprises a communication interface, a storage device, and a processor. The communication interface is configured to retrieve data of a point cloud. The storage device is configured to store the data of the point cloud. The processor is coupled to the communication interface and the storage device, and comprises a residual calculating unit, a residual coding unit, and a sign coding unit. The residual calculating unit calculates differences between three color components of each of a plurality of points to be coded in a point cloud and predicted values of the color components as residual levels of the point. The residual coding unit codes coded levels of the residual levels of the color components. The sign coding unit codes a group of sign flags respectively indicating signs of the residual levels of the color components.
[0018] According to one embodiment, the residual coding unit codes a first zero flag indicating whether the residual level of a first color component is equal to zero; the residual coding unit codes the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and the sign coding unit codes the group of the sign flags indicating the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; the residual coding unit derives the coded level of the residual level of the first color component as zero and codes a second zero flag indicating whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; the residual coding unit codes the coded levels of the residual levels of the second color component and a third color component, and the sign coding unit codes the sign flags indicating the signs of the residual levels of the second color component and the third color component if the residual levels of the second and the third color component are not equal to zero; and the residual coding unit derives the coded level of the residual level of the second color component as zero and codes the coded level of the residual level of the third color component, and the sign coding unit codes the sign flag indicating the sign of the residual level of the third color component if the residual level of the second color component is equal to zero.
[0019] According to one embodiment, the residual coding unit further, for each of the coded levels, codes a first flag indicating whether the coded level is equal to zero, codes a second flag indicating whether the coded level is equal to one if the coded level is not equal to zero, codes a third flag indicating a parity of the coded level if the coded level is not equal to one, codes a fourth flag indicating whether a value of the coded level minus two divided by two is equal to zero, and codes a series of fifth flags indicating a value of the value of the coded level minus two divided by two and then minus one.
[0020] According to one embodiment, the residual coding unit further, for each of the coded levels, codes a sixth flag indicating whether the coded level is greater than zero, codes a seventh flag indicating whether the coded level is greater than one if the coded level is greater than zero, codes an eighth flag indicating a parity of the coded level if the coded level is greater than one, codes a ninth flag indicating whether a value of the coded level minus two divided by two is greater than zero, and codes a series of tenth flags indicating a value of the value of the coded level minus two divided by two and then minus one.
[0021] According to one embodiment, the residual coding unit and the sign coding unit are enabled by an enable flag in an attribute header of a sequence of the point cloud.
[0022] In a fourth aspect, an embodiment of the present application provides a decoder. The decoder comprises a communication interface, a storage device, and a processor. The communication interface is configured to retrieve an attribute bitstream of a point cloud. The storage device is configured to store the attribute bitstream of the point cloud. The processor is coupled to the communication interface and the storage device, and comprises a coded level decoding unit, a sign decoding unit, and a residual restoring unit. The coded level decoding unit decodes coded levels of residual levels of three color components of each of a plurality of points in a point cloud from the attribute bitstream, wherein the residual levels of the color components represent differences between the color components of the point and predicted values of the color components. The sign decoding unit decodes a group of sign flags to obtain signs of the respective residual levels of the color components from the attribute bitstream. The residual restoring unit restores the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud.
[0023] According to one embodiment, the coded level decoding unit decodes a first zero flag to determine whether the residual level of a first color component is equal to zero; the coded level decoding unit decodes the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and the sign decoding unit decodes the group of the sign flags to determine the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; the coded level decoding unit determines the coded level of the residual level of the first color component as zero and decodes a second zero flag to determine whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; the coded level decoding unit decodes the coded levels of the residual levels of the second color component and a third color component if the residual level of the second color component is not equal to zero, and the sign decoding unit decodes the group of the sign flags to determine the signs of the residual levels of the second color component and the third color component if the residual level of the third color component is not equal to zero; and the coded level decoding unit determines the coded level of the residual level of the second color component as zero and decodes the coded level of the residual level of the third color component, and the sign decoding unit decodes the sign flag to determine the sign of the residual level of the third color component if the residual level of the third color component is equal to zero.
[0024] According to one embodiment, the residual restoring unit restores the residual levels of the color components of each of the plurality of points by calculating a product of the decoded signs multiplied by the absolute level of the decoded levels of the residual level of the color components.
BRIEF DESCRIPTION OF THE DRAWINGS
[0025] Aspects of the present disclosure are best understood from the following detailed description when read with the accompanying figures. It is noted that, in accordance with the standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.
[0026] FIG. 1 is a flow diagram of a G-PCC encoding according to one embodiment of the application.
[0027] FIG. 2A and FIG. 2B illustrate octree structures of G-PCC according to one embodiment of the application.
[0028] FIG. 2C illustrates corresponding digital representation of the octree structure according to one embodiment of the application.
[0029] FIG. 3 illustrates structure of the cubes according to one embodiment of the application. [0030] FIG. 4 is a flow diagram of a G-PCC decoding according to one embodiment of the application.
[0031] FIG. 5 is a schematic diagram of the hardware structure of an encoder provided by an embodiment of the application.
[0032] FIG. 6 is a flowchart of a color component coding method applied to an encoder according to an embodiment of the disclosure.
[0033] FIG. 7 is a schematic diagram of the hardware structure of a decoder provided by an embodiment of the application.
[0034] FIG. 8 is a flowchart of a color component decoding method applied to a decoder according to an embodiment of the disclosure.
[0035] FIG. 9 is a syntax table of a function of color residual coding according to an embodiment of the disclosure.
[0036] FIG. 10A and FIG. 10B are syntax tables of a function of coded level coding according to an embodiment of the disclosure.
[0037] FIG. 11 is a syntax table of a function of color residual coding according to an embodiment of the disclosure.
DESCRIPTION OF THE EMBODIMENTS
[0038] In order to have a more detailed understanding of the characteristics and technical content of the embodiments of the present application, the implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings. The attached drawings are for reference and explanation purposes only, and are not used to limit the embodiments of the present application.
[0039] FIG. 1 is a flow diagram of a G-PCC encoding according to one embodiment of the application. The flow shown in FIG. 1 is applied to a point cloud encoder. For the point cloud data to be encoded, the point cloud data is divided into multiple slices through slice division. In each slice, the positions (i.e. geometric information) of the point cloud and the attributes corresponding to each point cloud are coded separately.
[0040] In the geometric encoding process, the positions are coordinated to convert the point cloud into a bounding box (bounding box) in step SI 02, and then quantized in step SI 04. The quantization mainly plays the role of scaling. Due to the quantization rounding, a part of the positions of the point cloud is the same, so it is further determined whether to remove the duplicate points based on the parameters in step SI 04. The process of quantifying and removing the duplicate points is also called the voxelization process.
[0041] Then, the bounding box is divided into an octree for octree analysis in step SI 06. In the octree-based geometric information encoding process, the bounding box is divided into eight subcubes, and the non-empty (including points in the point cloud) sub-cubes are continued to be divided into eight equal parts until the leaf knots are obtained. When the point is a I xl xl unit cube, the division is stopped, and the points in the leaf nodes are arithmetic coded in step SI 08 to generate a binary geometric bitstream, that is, a geometric code stream.
[0042] FIG. 2A and FIG. 2B illustrate octree structures of G-PCC according to one embodiment of the application, and FIG. 2C illustrates corresponding digital representation of the octree structure according to one embodiment of the application. Refer to FIG. 2A, a cubical axis-aligned bounding box B is defined by two extreme points (0,0,0) and (2d, 2d, 2d) where d is the maximum size of a given point cloud along x, y or z direction. A point of the point cloud will be noted as “point” below. All points are included in this defined cube B.
[0043] Refer to FIG. 2B, the cube B is divided into eight sub-cubes Bl to B8, which creates an octree structure allowing one parent cube B to have 8 child cubes Bl to B8. The 7 sibling cubes B2 to B8 of a given cube Bl are the same size cubes and share at least one same face/edge/point with this given cube. The volume of each of the cubes Bl to B8 is 1/8 volume of its parent cube B. Each of the cubes Bl to B8 may contain more than one point and a number of points in a cube is dependent on the size and location of the cube. The size of a smallest cube is pre-defined for a given point cloud. For a given point, the parent cube of a given point is defined as a minimum size cube which contains this given point. Sibling points of a given point are defined as those points which have the same parent cube with this given point.
[0044] Refer to FIG. 2C, an octree is a recursive data structure that is often used to describe three-dimensional space in which each internal cube has exactly eight children. The space is recursively subdivided into eight octants to the point where the resolution of the child cube is equal to a size of the point - the smallest element that has no further subdivisions. To represent a cube an 8-bit binary code that follows a space-filling curve pattern (Hilbert, Morton) is used, each child is assigned a “1” or “0” value to indicate if the space in the child cube has any points associated with that child cube, or the child cube is empty. Only the occupied child cubes are further subdivided. The process of parent cube subdivision is terminated when the size of the child cube becomes equal to the size of the indivisible element, i.e., spatial resolution of the point cloud, or simply the size of the point.
[0045] FIG. 3 illustrates structure of the cubes according to one embodiment of the application. Refer to FIG. 3, depending on the location of the current cube, one cube may have up to six samesize cubes to share one face. In addition, the current cube may also have some neighbouring cubes which share lines or points with the current cube.
[0046] Similarly, the parent cube of the current cube also has up to six neighbouring cubes with the same size of the parent cube that share one face with the parent cube. The parent cube of the current cube also has up to twelve neighbouring cubes with the same size of parent cubes that share an edge. The parent cube of the current cube also has up to eight neighbouring cubes with the same size of parent cubes that share a point with the parent cube.
[0047] Referring back to FIG.1 , based on the surface formed by the distribution of the point cloud in each block, twelve pieces of the surface and the block are analyzed in step SI 10. At most twelve vertexes (intersection points) are generated by the edges, and the arithmetic coding is performed on the vertexes (surface fitting based on the intersection points) in step S 108 to generate the binary geometric bitstream, that is, a geometric code stream. Vertex is also used in the realization of the geometric reconstruction process in step SI 12, and the reconstructed set information is used when encoding the attributes of the point cloud.
[0048] In the attribute coding process, the geometric coding is completed, and after the geometric information is reconstructed in step SI 12, color transformation is performed in step SI 14, in which the color information (that is, the attribute information) is transformed from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, so that the uncoded attribute information corresponds to the reconstructed geometric information in step SI 16. Attribute coding is mainly for color information. [0049] In the process of color information coding, there are mainly two transformation methods. One is distance-based lifting transformation that relies on Level of Detail (LOD) division in step SI 18 and lifting in step SI 20, and the other is direct area adaptation. Hierarchical transform (Region Adaptive Hierarchal Transform, RAHT) transformation in step SI 22. These two methods will transform the color information from the spatial domain to the frequency domain, so as to obtain high-frequency coefficients and low- frequency coefficients through the transformation, and finally quantize the coefficients (i.e., quantized coefficients) in step SI 24.
[0050] Finally, after octree partitioning and surface fitting, the geometrically coded data and the quantized coefficient processing attribute coded data are slice-synthesized, and then the vertex coordinates of each block (that is, arithmetic coding) are sequentially coded in step SI 26 to generate a binary attribute bitstream, that is, the attribute code stream.
[0051] FIG. 4 is a flow diagram of a G-PCC decoding according to one embodiment of the application. The flow in FIG. 4 is applied to the point cloud decoder. For the obtained binary code stream, the geometric bitstream and the attribute bitstream in the binary code stream are first decoded in steps S402 and S404, respectively. When decoding the geometric bitstream, through arithmetic decoding in step S402, octree synthesis in step S406, surface fitting in step S408, geometry reconstruction in step S410, and inverse coordinate transformation in step S412, the positions (i.e. geometric information) of the point cloud are obtained.
[0052] When decoding the attribute bitstream, through arithmetic decoding in step S404, inverse Quantization in step S414, LOD-based lifting based inverse transformation in steps S416 and S418, or RAHT based inverse transformation in step S420, and inverse color conversion in step S422, the attributes of the point cloud are obtained, and the three-dimensional image model of the point cloud data to be encoded is restored based on the positions and the attributes.
[0053] The octree-based geometry information may be coded with context-based arithmetic coding. There may also be some corresponding attribute information for point clouds, including colour, reflectance, etc., that needs to be compressed. Because the neighbouring points in a point cloud may have a strong correlation, prediction-based coding methods have been developed and used to compose and code point cloud attributes. More specifically, a prediction is formed from neighbouring coded attributes. Then, the difference between the current attribute and the prediction is coded.
[0054] In this disclosure, coding is assumed to mean encoding and decoding methods and systems.
[0055] [Attribute Coding in the AVS G-PCC]
[0056] AVS is developing a G-PCC standard. After the geometry information is coded, Morton or Hilbert code/order may be used to convert a point cloud cube into a one-dimension array. Each position in the cube will have a corresponding Morton or Hilbert code, but some positions may not have any corresponding point cloud attribute. In other words, some positions may be empty. The attribute coding will follow the pre-defined Morton or Hilbert order. A predictor may be generated from the previous coded points in Morton or Hilbert order. The attribute difference between the current point and its predictor is coded into the bitstream.
[0057] To reduce the memory usage, some pre-defined number has been specified to limit the number of neighboring points that can be used in generating the prediction. For example, only M data points among previous N consecutively coded points may be used for coding the current attribute. In the previous AVS G-PCC software, M and N are set as a fixed number of 3 and 128, respectively.
[0058] If more than 128 points have already been coded before the current point, only 3 out of the 128 previously coded neighbouring points could be used to form the attribute predictor according to a pre-defined order. If there are less than 128 coded points before the current point, all such coded points will be used as candidates to establish the attribute predictor. More specifically, the previous K points, e.g., K = 6, before the current point are selected according to a pre-defined Morton or Hilbert order. Then, new Morton or Hilbert codes for these N points will be re-calculated by adding a fixed shift, e.g., 1, to coordinates (x, y, z) of these N data points. Assuming that the new Morton or Hilbert code for the current position is X, a P-point set before and a Q-point set after the current position according to the new Morton or Hilbert code order will be selected. Among these pre-defined K, P and Q point sets, M points are selected with M closest “distance” between these coded points and the current point. The distance dl as one example is defined as follows, other distance metrics can also be used.
[0059] dl = |xl — x2| + |yl — y2| + |zl — z2| (1)
[0060] where (xl, yl, zl) and (x2, y2, z2) are coordinates of the current point and preselected point, respectively.
[0061] More recently, a full search method based on Hilbert code has been applied in the AVS GPCC attribute coding. In the current software, the search range is set as 128 and the number of previous points used to form the predictor is set as M. If more than 128 points have already been coded before the current point, only M out of the 128 previously coded neighbouring points can be used to form the attribute predictor according to the Hilbert order.
[0062] If there are fewer than 128 coded points before the current one, all such coded points will be used as candidates to form the attribute predictor. Among the up-to 128 previously coded points, M points are selected with M closest “distance” between these coded points and the current point. The distance di as one example is defined as follows, other distance metrics can also be used.
[0063] d2 = |xl — x3| + |yl — y3| + |zl — z3| (2)
[0064] where (xl, yl, zl) and (x3, y3, z3) are the coordinates of the current point and the pre-selected point along Hilbert order, respectively. Once M closest points have been selected, a weighted average of attributes from these M points is formed as the predictor to code the attribute of the current point.
[0065] It is known that the points which share the same face/line/point with the current point are close to the current point. Another technology is to consider these points serving as a predictor. [0066] The residual is defined as the difference of attribute values between the current point and its predictor. Depending on the application, PCC can be either lossless or lossy. Hence, the residual may or may not be quantized by using the predefined quantization process. In this disclosure, the residual without or with quantization is called level. The level can be a signed integer and will be coded into the bitstream.
[0067] [Color Level Coding]
[0068] There are three color attributes for each point, which come from the three color components. If the levels for all the three color components are zeros, this point is called a zero level point. Otherwise, if there is at least one non-zero level for one color component with the point, this point is called a non-zero level point. In the current AVS-GPCC, the number of consecutive zero level points is called zero-run length. The zero-run length values and levels for non-zero level points are coded into the bitstream.
[0069] More specifically, on the encoding side, before coding the first point, the zero-run length value is set as zero. Starting from the first point along the predefined coding order, the residuals between the three color predictors and their corresponding color attributes for the current point can be obtained. Then, the corresponding levels for the three components of the current point also can be obtained. If the current point is a zero level point, the zero-run length value will be increased by one and the process proceeds to the next point. If the current point is a non-zero level point, the zero-run length value will be coded first and then the three color levels for this non-zero level point will be coded right after. After the level coding of a non-zero level point, the zero-run length value will be reset to zero and the process proceeds to the next point till finishing all points.
[0070] On the decoding side, the zero-run length value is first decoded and the three color levels corresponding to the number of zero-run length points are set as zero. Then, the levels for the nonzero level point are decoded and then the next zero-run length value is decoded. This process continues until all points are decoded.
[0071] For a non-zero level point, there is at least one non-zero level among the three components. Several one-bit flags plus the remainder of the absolute level may be coded to represent residual levels of the color components. The absolute level or absolute level of color residual minus one may be coded and named as coded level in the remaining of this disclosure.
[0072] [Encoder]
[0073] FIG. 5 is a schematic diagram of the hardware structure of an encoder provided by an embodiment of the application. Referring to FIG. 5, an encoder 50 includes a communication interface 52, a storage device 54, and a processor 56.
[0074] The communication interface 52 is, for example, a network card that supports wired network connections such as Ethernet, a wireless network card that supports wireless communication standards such as Institute of Electrical and Electronics Engineers (IEEE) 802.1 In/b/g/ac/ax/be, or any other network connecting device, but the embodiment is not limited thereto. The communication interface 52 is configured to retrieve data of a point cloud.
[0075] The storage device 54 may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory. Among them, the non-volatile memory can be read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable ROM, PROM), erasable programmable read-only memory (Erasable PROM, EPROM), and electrically available Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory. The volatile memory may be random access memory (Random Access Memory, RAM), which is used as an external cache. The storage device 54 described in this application is configured to store the data of the point cloud retrieved by the communication interface 52.
[0076] The processor 56 is coupled to the communication interface 52 and the storage device 54 through a bus system 58. It can be understood that the bus system 58 is used as a data bus to implement connection and communication between these components. In addition to the data bus, the bus system 58 may also be a power bus, a control bus, a status signal bus or a combination thereof, but the embodiment is not limited thereto.
[0077] The processor 56 includes a residual calculating unit 562, a residual coding unit 564, and a sign coding unit 566.
[0078] The residual calculating unit 562 is used to calculate differences between three color components of each of a plurality of points to be coded in a point cloud and predicted values of the color components as residual levels of the point.
[0079] The residual coding unit 564 is used to code coded levels of the residual levels of the color components.
[0080] The sign coding unit 566 is used to code a group of sign flags respectively indicating signs of the residual levels of the color components.
[0081] It is understandable that, in this embodiment, a “unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, or it may also be non-modular. Moreover, the various components in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit. The above-mentioned integrated unit can be realized in the form of hardware or software function module.
[0082] FIG. 6 is a flowchart of a color component coding method applied to an encoder according to an embodiment of the disclosure. With reference to FIG. 5 and FIG. 6 together, the method of this embodiment is applied to the encoder 50 in FIG. 5. Detailed steps of the color component coding method of exemplary embodiments of the disclosure accompanied with the elements in the encoder 50 will now be described below.
[0083] In step S602, the residual calculating unit 562 is used to calculate differences between three color components of each of a plurality of points to be coded in a point cloud and predicted values of the color components as residual levels of the point.
[0084] In step S604, the residual coding unit 564 is used to code coded levels of the residual levels of the color components.
[0085] In step S606, the sign coding unit 566 is used to code a group of sign flags respectively indicating signs of the residual levels of the color components.
[0086] In some embodiments, the residual coding unit 564 codes a first zero flag indicating whether the residual level of a first color component is equal to zero. The residual coding unit 564 codes the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and the sign coding unit 566 codes the group of the sign flags indicating the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero. The residual coding unit 564 derives the coded level of the residual level of the first color component as zero and codes a second zero flag indicating whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero. The residual coding unit 564 codes the coded levels of the residual levels of the second color component and a third color component, and the sign coding unit 566 codes the sign flags indicating the signs of the residual levels of the second color component and the third color component if the residual levels of the second and the third color component are not equal to zero. The residual coding unit 564 derives the coded level of the residual level of the second color component as zero and codes the coded level of the residual level of the third color component, and the sign coding unit 566 codes the sign flag indicating the sign of the residual level of the third color component if the residual level of the second color component is equal to zero. An exemplary embodiment can be seen in a syntax table 900 in FIG. 9, which will be illustrated in details below.
[0087] In some embodiments, the coded level of the residual level of each of the color components is an absolute level of the residual level of the color component or an absolute level of the residual level minus one and is a return value of a function of coded level coding as shown in a syntax table 100a in FIG. 10A and a syntax table 100b in FIG. 10B, which will be illustrated in details below. Specifically, when the residual level of the color component is determined as not equal to zero, the residual level can be coded with one bit less, and thus the coded level of the residual level is an absolute level of the residual level minus one. When the residual level of the color component has not been determined as equal to zero or not, the residual level is coded as an absolute level of the residual level.
[0088] In some embodiments, for each of the coded levels, the residual coding unit 564 further codes a first flag indicating whether the coded level is equal to zero, codes a second flag indicating whether the coded level is equal to one if the coded level is not equal to zero, codes a third flag indicating a parity of the coded level if the coded level is not equal to one, codes a fourth flag indicating whether a value of the coded level minus two divided by two is equal to zero, and codes a value of the value of the coded level minus two divided by two and then minus one.
[0089] In some embodiments, for each of the coded levels, the residual coding unit 564 further codes a sixth flag indicating whether the coded level is greater than zero, codes a seventh flag indicating whether the coded level is greater than one if the coded level is greater than zero, codes an eighth flag indicating a parity of the coded level if the coded level is greater than one, codes a ninth flag indicating whether a value of the coded level minus two divided by two is greater than zero, and codes a value of the value of the coded level minus two divided by two and then minus one.
[0090] In some embodiments, an enable flag is provided in an attribute header of a sequence of the point cloud and used to enable the coding of the coded levels and the sign flags. That is, in the coding process, the encoder 50 may check the enable flag in the attribute header of the sequence of the point cloud, and enables the coding of the coded levels and the sign flags when a value of the enable flag is true.
[0091] [Decoder]
[0092] FIG. 7 is a schematic diagram of the hardware structure of a decoder provided by an embodiment of the application. Referring to FIG. 7, a decoder 70 includes a communication interface 72, a storage device 74, and a processor 76 coupled to the communication interface 72 and the storage device 74 through a bus system 78.
[0093] It can be understood that the hardware structures of the communication interface 72, the storage device 74, the processor 76, and the bus system 78 are similar to those of the communication interface 52, the storage device 54, the processor 56, and the bus system 58, and therefore the details are not described herein again.
[0094] In the present embodiment, the communication interface 72 is configured to retrieve an attribute bitstream of a point cloud, and the storage device 74 is configured to store the attribute bitstream of the point cloud.
[0095] The processor 76 includes a coded level decoding unit 762, a sign decoding unit 764, and a residual restoring unit 766.
[0096] The coded level decoding unit 762 is used to decode coded levels of residual levels of three color components of each of a plurality of points in a point cloud from the attribute bitstream. The residual levels of the color components represent differences between the color components of the point and predicted values of the color components.
[0097] The sign decoding unit 764 is used to decode a group of sign flags to obtain signs of the respective residual levels of the color components from the attribute bitstream.
[0098] The residual restoring unit 766 is used to restore the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud.
[0099] It is understandable that, in this embodiment, a “unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course, it may also be a module, or it may also be non-modular. Moreover, the various components in this embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit. The above-mentioned integrated unit can be realized in the form of hardware or software function module.
[00100] FIG. 8 is a flowchart of a color component decoding method applied to a decoder according to an embodiment of the disclosure. With reference to FIG. 7 and FIG. 8 together, the method of this embodiment is applied to the decoder 70 in FIG. 7. Detailed steps of the color component decoding method of exemplary embodiments of the disclosure accompanied with the elements in the decoder 70 will now be described below.
[00101] In step S802, the coded level decoding unit 762 decodes coded levels of residual levels of three color components of each of a plurality of points in a point cloud from the attribute bitstream.
[00102] In step S804, the sign decoding unit 764 decodes a group of sign flags to obtain signs of the respective residual levels of the color components from the attribute bitstream.
[00103] In step S806, the residual restoring unit 766 restores the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud.
[00104] In some embodiments, the coded level decoding unit 762 decodes a first zero flag to determine whether the residual level of a first color component is equal to zero; the coded level decoding unit 762 decodes the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and the sign decoding unit 764 decodes the group of the sign flags to determine the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; the coded level decoding unit 762 determines the coded level of the residual level of the first color component as zero and decodes a second zero flag to determine whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; the coded level decoding unit 762 decodes the coded levels of the residual levels of the second color component and a third color component if the residual level of the second color component is not equal to zero, and the sign decoding unit 764 decodes the group of the sign flags to determine the signs of the residual levels of the second color component and the third color component if the residual level of the third color component is not equal to zero; and the coded level decoding unit 762 determines the coded level of the residual level of the second color component as zero and decodes the coded level of the residual level of the third color component, and the sign decoding unit 764 decodes the sign flag to determine the sign of the residual level of the third color component if the residual level of the third color component is equal to zero.
[00105] In some embodiments, the residual restoring unit 766 restores the residual levels of the color components of each of the plurality of points by calculating a product of the decoded signs multiplied by the absolute level of the decoded levels of the residual level of the color components. [00106] FIG. 9 is a syntax table of a function of color residual coding according to an embodiment of the disclosure.
[00107] As shown in the syntax table 90, a first zero flag (color first comp zero) is coded to indicate if the residual level of a first color component is zero or not. If the residual level of the first color component is not zero, the coded levels (e.g. absolute level or absolute level minus one) of the residual levels of the three color components (i.e. color_component[0], color_component[l] and color_component[2]) will be coded according to a function of coded level coding as illustrated below, and sign flags (i.e. color first component sign, color second component sign, color third component sign) indicating the signs of the residual levels of the color components will also be coded. It is noted three, two or one sign may be coded depending on if the second or third color component is zero or not.
[00108] When the sign flag color first component sign is equal to 0, it specifies that the sign of the residual level of the first color component is negative. When the sign flag color first component sign is equal to 1 , it specifies that the sign of the residual level of the first color component is positive. When the sign flag color first component sign is not present, it is inferred to be equal to 1.
[00109] When the sign flag color second component sign is equal to 0, it specifies that the sign of the residual level of the second color component is negative. When the sign flag color second component sign is equal to 1, it specifies that the sign of the residual level of the second color component is positive. When the sign flag color second component sign is not present, it is inferred to be equal to 1.
[00110] When the sign flag color third component sign is equal to 0, it specifies that the sign of the residual level of the third color component is negative. When the sign flag color third component sign is equal to 1 , it specifies that the sign of the residual level of the third color component is positive. When the sign flag color third component sign is not present, it is inferred to be equal to 1.
[00111] If the residual level of the first color component is zero, the coded level of the residual level of the first color component (i.e. color_component[0]) is derived as zero and a second zero flag (color second comp zero) is coded to indicate if the residual level of the second color component is zero or not.
[00112] If the second color component is not zero, the coded level of the residual levels of the color components (i.e. color_component[l] and color_component[2]) will be coded according to the function of coded level coding, and sign flags (i.e. color second component sign, color third component sign) indicating the signs of the residual levels of the second color component and the third color component will be coded. It is noted three, two or one sign may be coded depending of if the third color component is zero or not. [00113] If the second color component is zero, the coded level of the residual level of the second color component (i.e. color componentfl]) is derived as zero, the coded level of the residual level of the third color components (i.e. color_component[2]) will be coded according to the function of coded level coding, and the sign flag (i.e. color third component sign) indicating the sign of the residual level of the third color component will be coded.
[00114] FIG. 10A and FIG. 1 OB are syntax tables of a function of coded level coding according to an embodiment of the disclosure.
[00115] Referring to the syntax table 100a in FIG. 10A, a first flag (coded level equal zero) is coded to indicate if the coded level is equal to zero.
[00116] If the coded level is not equal to zero, a second flag (coded level equal one) is coded to indicate if the coded level is equal to one.
[00117] If the coded level is not equal to one, a third flag (coded_level_parity) is coded to indicate a parity of the coded level, and a fourth flag (coded_level_ minus2_div2_equal_zero) is coded to indicate whether a value of the coded level minus two divided by two is equal to zero.
[00118] If the value of the coded level minus two divided by two is not equal to zero, a difference of the value of the coded level minus two divided by two and then minus one (coded_level_minu2_div2_minusl) is coded.
[00119] Referring to the syntax table 100b in FIG. 10B, a sixth flag (coded level gt zero) is coded to indicate if the coded level is greater than zero.
[00120] If the coded level is greater than zero, a seventh flag (coded level gt one) is coded to indicate if the coded level is greater than one.
[00121] If the coded level is greater than one, an eighth flag (coded_level_parity) is coded to indicate a parity of the coded level, a ninth flag (coded_level_ minus2_div2_gt_zero) is coded to indicate whether a value of the coded level minus two divided by two is greater than zero.
[00122] If the value of the coded level minus two divided by two is greater than zero, a difference of the value of the coded level minus two divided by two and then minus one (coded_level_minu2_div2_minusl) is coded.
[00123] FIG. 11 is a syntax table of a function of color residual coding according to an embodiment of the disclosure.
[00124] As shown in the syntax table 110, a first zero flag (color first comp zero) is coded to indicate if the residual level of a first color component is zero or not. If the residual level of the first color component is not zero, the coded level (i.e. coded level coding (true) + 1) of the residual level of the first color component and the coded levels (coded level coding (false)) of the residual levels of the second color component and the third color component will be coded according to the function of coded level coding, and sign flags (i.e. color first component sign, color second component sign and color third component sign) indicating the signs of the residual levels of the color components may also be coded.
[00125] It is noted since the residual level of the first color component is determined as not equal to zero, a return value of the function of coded level coding is an absolute level of the residual level minus one (i.e. coded level coding (true)), and thus the coded level of the residual level of the first color component is equal to coded level coding (true) +1. On the other hand, since the residual levels of the second color component and the third color component are not determined as equal to zero or not, a return value of the function of coded level coding is an absolute level of residual level (i.e. coded level coding (false)), and thus the coded level of the residual level of the first color component is equal to coded level coding (false).
[00126] It is noted, the residual level (color component[0]) of the first color component can be restored by calculating a product of the decoded sign multiplied by the absolute level of the decoded level of the residual level of the first color component, which is denoted as (2* color_first_component_sign-l) * color_component[0].
[00127] Similarly, the residual level (color component[l ]) of the second color component can be restored by calculating a product of the decoded sign multiplied by the absolute level of the decoded level of the residual level of the second color component, which is denoted as (2* color_second_component_sign-l) * color componentfl]. The residual level (color component[2]) of the third color component can be restored by calculating a product of the decoded sign multiplied the absolute level of the decoded level of the residual level of the third color component, which is denoted as (2* color_third_component_sign-l) * color_component[2].
[00128] If the residual level of the first color component is zero, the coded level of the residual level of the first color component (i.e. color componentfO]) is derived as zero and a second zero flag (color second comp zero) is coded to indicate if the residual level of the second color component is zero or not.
[00129] If the second color component is not zero, the coded level of the residual levels of the color components (i.e. color componentfl] and color_component[2]) will be coded according to the function of coded level coding, and sign flags (i.e. color second component sign and color third component sign) indicating the signs of the residual levels of the second color component and the third color component may be coded.
[00130] It is noted since the residual level of the second color component is determined as not equal to zero, a return value of the coded level of the residual level of the second color component is equal to coded level coding (true) +1, and a return value of the coded level of the residual level of the third color component is equal to coded level coding (false).
[00131] The residual level (color componentfl]) of the second color component can be restored by calculating a product of the decoded sign multiplied by the absolute level of the decoded level of the residual level of the second color component, which is denoted as (2* color_second_component_sign-l) * color componentfl]. The residual level (color component[2]) of the third color component can be restored by calculating a product of the decoded sign multiplied by the absolute level of the decoded level of the residual level of the third color component, which is denoted as (2* color_third_component_sign-l) * color_component[2].
[00132] If the second color component is zero, the coded level of the residual level of the second color component (i.e. color componentfl]) is derived as zero, the coded level of the residual level of the third color components (i.e. color_component[2]) will be coded according to the function of coded level coding, and the sign flag (i.e. color third component sign) indicating the sign of the residual level of the third color component will be coded.
[00133] It is noted since the residual level of the second color component is determined as zero, a return value of the coded level of the residual level of the third color component is equal to coded_level_coding (true) +1.
[00134] The residual level (color component[2]) of the third color component can be restored by calculating a product of the decoded sign multiplied by the absolute level of the decoded level of the residual level of the third color component, which is denoted as (2* color_third_component_sign-l) * color_component[2].
[00135] To sum up, in the color component coding method, the encoder, and the decoder of the disclosure, several one-bit sign flags are used to indicate signs of the residual levels of the color components and are coded separately from the coded levels of the residual levels of the color components, so as to represent the residual levels of the color components. Accordingly, the coding efficiency and throughput of G-PCC can be improved.
[00136] It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed embodiments without departing from the scope or spirit of the disclosure. In view of the foregoing, it is intended that the disclosure covers modifications and variations provided they fall within the scope of the following claims and their equivalents.

Claims

WHAT IS CLAIMED IS:
1. A color component coding method, applied to an encoder, comprising: calculating differences between three color components of each of a plurality of points to be coded in a point cloud and predicted values of the color components as residual levels of the point; and coding coded levels of the residual levels of the color components and a group of sign flags respectively indicating signs of the residual levels of the color components.
2. The method according to claim 1, wherein the step of coding comprises: coding a first zero flag indicating whether the residual level of a first color component is equal to zero; coding the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and coding the group of the sign flags indicating the signs of the residual levels of the color components if at least one of the residual levels of the second color component and the third color component is not equal to zero; deriving the coded level of the residual level of the first color component as zero and coding a second zero flag indicating whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; coding the coded levels of the residual levels of the second color component and a third color component, and the sign flags indicating the signs of the residual levels of the second color component and the third color component if the residual levels of the second color component and the third color component are not equal to zero; and deriving the coded level of the residual level of the second color component as zero, the coded level of the residual level of the third color component, and coding the sign flag indicating the sign of the residual level of the third color component if the residual level of the second color component is equal to zero.
3. The method according to claim 1, wherein the coded level of the residual level of each of the color components is an absolute level of the residual level of the color component or an absolute level of the residual level minus one and is a return value of a function of coded level coding.
4. The method according to claim 1 , wherein the step of coding coded levels of the residual levels of the color components comprises: for each of the coded levels, coding a first flag indicating whether the coded level is equal to zero; coding a second flag indicating whether the coded level is equal to one if the coded level is not equal to zero; coding a third flag indicating a parity of the coded level if the coded level is not equal to one; coding a fourth flag indicating whether a value of the coded level minus two divided by two is equal to zero; and coding a value of the value of the coded level minus two divided by two and then minus one.
5. The method according to claim 1 , wherein the step of coding coded levels of the residual levels of the color components comprises: for each of the coded levels, coding a sixth flag indicating whether the coded level is greater than zero; coding a seventh flag indicating whether the coded level is greater than one if the coded level is greater than zero; coding an eighth flag indicating a parity of the coded level if the coded level is greater than one; coding a ninth flag indicating whether a value of the coded level minus two divided by two is greater than zero; and coding a value of the value of the coded level minus two divided by two and then minus one.
6. The method according to claim 1, further comprising: checking an enable flag in an attribute header of a sequence of the point cloud to enable the coding of the coded levels and the sign flags.
7. A color component decoding method, applied to a decoder, comprising: decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud, wherein the residual levels of the color components represent differences between the color components of the point and predicted values of the color components; decoding a group of sign flags to obtain signs of the respective residual levels of the color components; and restoring the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud.
8. The method according to claim 7, wherein the steps of decoding comprises: decoding a first zero flag to determine whether the residual level of a first color component is equal to zero; decoding the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and decoding the group of the sign flags to determine the signs of the residual levels of the color components if at least one of the residual levels of the second color component and the third color component is not equal to zero; determining the coded level of the residual level of the first color component as zero and decoding a second zero flag to determine whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; decoding the coded levels of the residual levels of the second color component and a third color component if the residual level of the second color component is not equal to zero, and decoding the group of the sign flags to determine the signs of the residual levels of the second color component and the third color component if the residual level of the third color component is not equal to zero; and determining the coded level of the residual level of the second color component as zero, decoding the coded level of the residual level of the third color component, and decoding the sign flag to determine the sign of the residual level of the third color component if the residual level of the third color component is equal to zero.
9. The method according to claim 8, wherein the step of restoring comprises: restoring the residual levels of the color components of each of the plurality of points by calculating a product of the decoded signs multiplied by two minus one and the absolute level of the decoded levels of the residual level of the color components.
10. The method according to claim 7, wherein the decoded coded level of the residual level of each of the color components is an absolute level of the residual level of the color component or an absolute level of the residual level minus one.
11. The method according to claim 7, wherein the step of decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud comprises: for each of the coded levels, decoding a first code to determine whether the coded level is equal to zero; decoding a second code to determine whether the coded level is equal to one if the coded level is not equal to zero; decoding a third code to obtain a parity of the coded level if the coded level is not equal to one; decoding a fourth code to determine whether a value of the coded level minus two divided by two is equal to zero; decoding a series of fifth codes to obtain a value of the value of the coded level minus two divided by two and then minus one; and determining a value of the coded level according to decoding results.
12. The method according to claim 7, wherein the step of decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud comprises: for each of the coded levels, decoding a sixth code to determine whether the coded level is greater than zero; decoding a seventh code to determine whether the coded level is greater than one if the coded level is greater than zero; decoding an eighth code to obtain a parity of the coded level if the coded level is greater than one; decoding a ninth code to determine whether a value of the coded level minus two divided by two is greater than zero; decoding a series of tenth codes to obtain a value of the value of the coded level minus two divided by two and then minus one; and determining a value of the coded level according to decoding results.
13. An encoder, comprising: a communication interface, configured to retrieve data of a point cloud; a storage device, configured to store the data of the point cloud; a processor, coupled to the communication interface and the storage device, and comprising: a residual calculating unit, calculating differences between three color components of each of a plurality of points to be coded in a point cloud and predicted values of the color components as residual levels of the point; a residual coding unit, coding coded levels of the residual levels of the color components; and a sign coding unit, coding a group of sign flags respectively indicating signs of the residual levels of the color components.
14. The encoder according to claim 13, wherein the residual coding unit codes a first zero flag indicating whether the residual level of a first color component is equal to zero; the residual coding unit codes the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and the sign coding unit codes the group of the sign flags indicating the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; the residual coding unit derives the coded level of the residual level of the first color component as zero and codes a second zero flag indicating whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; the residual coding unit codes the coded levels of the residual levels of the second color component and a third color component, and the sign coding unit codes the sign flags indicating the signs of the residual levels of the second color component and the third color component if the residual levels of the second color component and the third color component are not equal to zero; and the residual coding unit derives the coded level of the residual level of the second color component as zero and codes the coded level of the residual level of the third color component, and the sign coding unit codes the sign flag indicating the sign of the residual level of the third color component if the residual level of the second color component is equal to zero.
15. The encoder according to claim 13, wherein the residual coding unit further comprises: for each of the coded levels, coding a first flag indicating whether the coded level is equal to zero; coding a second flag indicating whether the coded level is equal to one if the coded level is not equal to zero; coding a third flag indicating a parity of the coded level if the coded level is not equal to one; coding a fourth flag indicating whether a value of the coded level minus two divided by two is equal to zero; and coding a value of the value of the coded level minus two divided by two and then minus one.
16. The encoder according to claim 13, wherein the residual coding unit further comprises: for each of the coded levels, coding a sixth flag indicating whether the coded level is greater than zero; coding a seventh flag indicating whether the coded level is greater than one if the coded level is greater than zero; coding an eighth flag indicating a parity of the coded level if the coded level is greater than one; coding a ninth flag indicating whether a value of the coded level minus two divided by two is greater than zero; and coding a value of the value of the coded level minus two divided by two and then minus one.
17. The encoder according to claim 13, wherein the residual coding unit and the sign coding unit are enabled by an enable flag in an attribute header of a sequence of the point cloud.
18. A decoder, comprising: a communication interface, configured to retrieve an attribute bitstream of a point cloud; a storage device, configured to store the attribute bitstream of the point cloud; a processor, coupled to the communication interface and the storage device, and comprising: a coded level decoding unit, decoding coded levels of residual levels of three color components of each of a plurality of points in a point cloud from the attribute bitstream, wherein the residual levels of the color components represent differences between the color components of the point and predicted values of the color components; a sign decoding unit, decoding a group of sign flags to obtain signs of the respective residual levels of the color components from the attribute bitstream; and a residual restoring unit, restoring the residual levels of the color components of each of the plurality of points by using the decoded coded levels and the decoded signs to reconstruct the point cloud.
19. The decoder according to claim 18, wherein the coded level decoding unit decodes a first zero flag to determine whether the residual level of a first color component is equal to zero; the coded level decoding unit decodes the coded levels of the residual levels of the three color components if the residual level of the first color component is not equal to zero and the sign decoding unit decodes the group of the sign flags to determine the signs of the residual levels of the color components if at least one of the residual levels of the second and the third color components is not equal to zero; the coded level decoding unit determines the coded level of the residual level of the first color component as zero and decodes a second zero flag to determine whether the residual level of a second color component is equal to zero if the residual level of the first color component is equal to zero; the coded level decoding unit decodes the coded levels of the residual levels of the second color component and a third color component if the residual level of the second color component is not equal to zero, and the sign decoding unit decodes the sign flags to determine the group of the signs of the residual levels of the second color component and the third color component if the residual level of the third color component is not equal to zero; and the coded level decoding unit determines the coded level of the residual level of the second color component as zero and decodes the coded level of the residual level of the third color component, and the sign decoding unit decodes the sign flag to determine the sign of the residual level of the third color component if the residual level of the third color component is equal to zero.
20. The decoder according to claim 19, wherein the residual restoring unit restores the residual levels of the color components of each of the plurality of points by calculating a product of the decoded signs multiplied by two minus one and the absolute level of the decoded levels of the residual level of the color components.
PCT/US2023/025102 2022-06-15 2023-06-13 Color component coding method, encoder and decoder WO2023244551A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263366464P 2022-06-15 2022-06-15
US63/366,464 2022-06-15
US202263366614P 2022-06-17 2022-06-17
US63/366,614 2022-06-17

Publications (1)

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

Family

ID=89191845

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2023/025102 WO2023244551A1 (en) 2022-06-15 2023-06-13 Color component coding method, encoder and decoder

Country Status (1)

Country Link
WO (1) WO2023244551A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220109816A1 (en) * 2020-10-06 2022-04-07 Qualcomm Incorporated Inter-component residual prediction for color attributes in geometry point cloud compression coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220109816A1 (en) * 2020-10-06 2022-04-07 Qualcomm Incorporated Inter-component residual prediction for color attributes in geometry point cloud compression coding

Similar Documents

Publication Publication Date Title
CN113615181B (en) Method and device for point cloud encoding and decoding
US11361472B2 (en) Methods and devices for neighbourhood-based occupancy prediction in point cloud compression
US10693492B1 (en) Context determination for planar mode in octree-based point cloud coding
JP4579987B2 (en) Coding method of data stream representing temporally changing graphic model
US20200413080A1 (en) Planar mode in octree-based point cloud coding
JP2014532945A (en) Predictive position decoding
US20220376702A1 (en) Methods and devices for tree switching in point cloud compression
CN113632142A (en) Method and device for point cloud compression
WO2020010445A1 (en) Methods and devices for lossy coding of point cloud occupancy
WO2023241107A1 (en) Point cloud processing method and apparatus, computer device and storage medium
WO2021207510A1 (en) Trisoup syntax signaling for geometry-based point cloud compression
WO2022131948A1 (en) Devices and methods for sequential coding for point cloud compression
WO2023244551A1 (en) Color component coding method, encoder and decoder
WO2024123569A1 (en) Geometry point cloud coding method, encoder and decoder
WO2024129365A1 (en) Decoding method, decoder, encoding method, encoder and non-transitory computer readable recording medium
WO2024044082A2 (en) Decoding method, encoding method, decoder and endoder
EP4244813B1 (en) Devices and methods for scalable coding for point cloud compression
US20230342987A1 (en) Occupancy coding using inter prediction with octree occupancy coding based on dynamic optimal binary coder with update on the fly (obuf) in geometry-based point cloud compression
WO2024064043A1 (en) Point cloud decoding method, point cloud encoding method, decoder and encoder
WO2023244585A1 (en) Geometry point cloud coding system and method
WO2023142133A1 (en) Coding method, decoding method, coder, decoder, and storage medium
WO2024086123A1 (en) Decoding method, encoding method, decoder and encoder
WO2023132331A1 (en) Point cloud decoding device, point cloud decoding method, and program
JP2023053827A (en) Point group decoding device, point group decoding method and program
WO2024059232A1 (en) Point cloud decoding method, point cloud encoding method, decoder and encoder

Legal Events

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

Ref document number: 23824479

Country of ref document: EP

Kind code of ref document: A1