[go: up one dir, main page]

WO2025138196A1 - Encoding method, decoding method, point cloud encoder, point cloud decoder, bitstream, and storage medium - Google Patents

Encoding method, decoding method, point cloud encoder, point cloud decoder, bitstream, and storage medium Download PDF

Info

Publication number
WO2025138196A1
WO2025138196A1 PCT/CN2023/143518 CN2023143518W WO2025138196A1 WO 2025138196 A1 WO2025138196 A1 WO 2025138196A1 CN 2023143518 W CN2023143518 W CN 2023143518W WO 2025138196 A1 WO2025138196 A1 WO 2025138196A1
Authority
WO
WIPO (PCT)
Prior art keywords
identification information
value
node
current node
probability model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/CN2023/143518
Other languages
French (fr)
Chinese (zh)
Inventor
杨付正
霍俊彦
马彦卓
李明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to PCT/CN2023/143518 priority Critical patent/WO2025138196A1/en
Publication of WO2025138196A1 publication Critical patent/WO2025138196A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • the present application relates to the field of video coding and decoding technology, and in particular to a coding and decoding method, a point cloud codec, a bit stream and a storage medium.
  • G-PCC geometry-based point cloud compression
  • the present application provides a coding and decoding method, a point cloud codec, a bit stream and a storage medium.
  • a coding and decoding method a point cloud codec, a bit stream and a storage medium.
  • the following is an introduction to various aspects of the present application.
  • a decoding method is provided, which is applied to a point cloud decoder, comprising: decoding first identification information according to a first probability model, the first identification information being used to indicate whether a current node contains duplicate points; if the first identification information indicates that the current node contains duplicate points, determining the number of duplicate points contained in the current node; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, the first value corresponding to: the probabilities of a maximum probability symbol (most probability symbol, MPS) and a minimum probability symbol (low probability symbol, LPS) are equal; the first probability model is different from a second probability model, the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct coding mode contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information
  • a coding method is provided, which is applied to a point cloud encoder, comprising: encoding first identification information according to a first probability model, the first identification information being used to indicate whether a current node contains duplicate points; if the first identification information indicates that the current node contains duplicate points, encoding the number of duplicate points contained in the current node; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct coding mode contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate
  • a point cloud decoder comprising: a decoding unit, configured to decode first identification information according to a first probability model, the first identification information being used to indicate whether a current node contains duplicate points; a determination unit, configured to determine the number of duplicate points contained in the current node if the first identification information indicates that the current node contains duplicate points; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct coding mode contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch
  • a point cloud decoder comprising: a memory for storing a computer program; and a processor for executing the method of the first aspect when running the computer program.
  • a point cloud encoder comprising: a first encoding unit, configured to encode first identification information according to a first probability model, the first identification information being used to indicate whether a current node contains duplicate points; a second encoding unit, configured to encode the number of duplicate points contained in the current node if the first identification information indicates that the current node contains duplicate points; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct encoding mode contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi
  • a computer-readable storage medium stores a computer program, and when the computer program is executed, the method of any one of the first to second aspects is implemented.
  • FIG. 9 is a flowchart of a decoding method provided by an embodiment of the present application.
  • FIG13 is a schematic diagram of the structure of a point cloud decoder provided in one embodiment of the present application.
  • FIG. 14 is a schematic diagram of the structure of a point cloud decoder provided in another embodiment of the present application.
  • FIG. 15 is a schematic diagram of the structure of a point cloud encoder provided by an embodiment of the present application.
  • FIG16 is a schematic diagram of the structure of a point cloud encoder provided in another embodiment of the present application.
  • first ⁇ second ⁇ third involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that “first ⁇ second ⁇ third” can be interchanged in a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
  • Point cloud is a three-dimensional representation of the surface of an object.
  • Point cloud of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
  • a point cloud is a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or scene.
  • FIG1A shows a three-dimensional point cloud image.
  • FIG1B shows a partial magnified view of the three-dimensional point cloud image. It can be seen from FIG1A and FIG1B that the point cloud surface is composed of densely distributed points.
  • Two-dimensional images have information expressed at each pixel point, and the distribution is regular, so there is no need to record its position information separately.
  • the distribution of points in the point cloud in three-dimensional space is random and irregular, so it is necessary to record the position of each point in space in order to fully express a point cloud.
  • each position in the acquisition process has corresponding attribute information, usually RGB color values, and the color value reflects the color of the object.
  • attribute information corresponding to each point is also commonly the reflectance value, which reflects the surface material of the object. Therefore, point cloud data usually includes the location information of the point And the attribute information of the point.
  • the location information of the point can also be called the geometric information of the point.
  • the geometric information of the point can be the three-dimensional coordinate information (x, y, z) of the point.
  • the attribute information of the point can include color information and/or reflectivity, etc.
  • the reflectivity can be one-dimensional reflectivity information (r);
  • the color information can be information on any color space, or the color information can be three-dimensional color information, such as RGB information.
  • R represents red (red, R)
  • G represents green (green, G)
  • B represents blue (blue, B).
  • the color information can be brightness and chromaticity (YCbCr, YUV) information. Among them, Y represents brightness (luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.
  • the points in the point cloud may include the three-dimensional coordinate information of the points and the reflectivity value of the points.
  • the points in the point cloud may include the three-dimensional coordinate information of the points and the three-dimensional color information of the points.
  • a point cloud obtained by combining the principles of laser measurement and photogrammetry may include the three-dimensional coordinate information of the points, the reflectivity value of the points and the three-dimensional color information of the points.
  • Figures 2A and 2B show a point cloud image and its corresponding data storage format.
  • Figure 2A provides six viewing angles of the point cloud image
  • Figure 2B consists of a file header information part and a data part.
  • the header information includes the data format, data representation type, the total number of point cloud points, and the content represented by the point cloud.
  • the point cloud is in the ".ply" format, represented by ASCII code, with a total number of 207242 points, and each point has three-dimensional coordinate information (x, y, z) and three-dimensional color information (r, g, b).
  • Point clouds can be divided into the following types according to the acquisition method:
  • Dynamic point cloud The object is moving, but the device that obtains the point cloud is stationary;
  • Dynamic point cloud acquisition The device used to acquire the point cloud is in motion.
  • point clouds can be divided into two categories according to their usage:
  • Category 1 Machine perception point cloud, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, disaster relief robots, etc.
  • Category 2 Point cloud perceived by the human eye, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
  • Point clouds can be collected mainly through the following methods: computer generation, 3D laser scanning, 3D photogrammetry, etc.
  • Computers can generate point clouds of virtual three-dimensional objects and scenes; 3D laser scanning can obtain point clouds of static real-world three-dimensional objects or scenes, and can obtain millions of point clouds per second; 3D photogrammetry can obtain point clouds of dynamic real-world three-dimensional objects or scenes, and can obtain tens of millions of point clouds per second.
  • 3D photogrammetry can obtain point clouds of dynamic real-world three-dimensional objects or scenes, and can obtain tens of millions of point clouds per second.
  • the following steps can be used to encode the current node.
  • the initial interval width of Range is 510, represented by 9 bits. If the initial value of the probability model is the first value (the first value corresponds to the case where the probabilities of MPS and LPS are equal, that is, if the initial value of the probability model is the first value, the probabilities of MPS and LPS are equal, both 0.5), then the width of the initial interval R MPS of MPS is consistent with the initial interval width R LPS of LPS, each occupying half of the initial interval width of Range.
  • the probability model is updated using Bin value, Low, and Range.
  • the relevant technology does not make full use of this prior information, and sets the initial value of the probability model corresponding to DupPointsCntGt0 (sharing the same probability model with DupPointsCntGt0L) to the first value (the first value corresponds to the case where the probabilities of MPS and LPS are equal, that is, if the initial value of the probability model is the first value, the probabilities of MPS and LPS are equal, both 0.5). If the initial value of the probability model is set to the first value, the initial interval widths corresponding to MPS and LPS are consistent. At this time, the encoder needs to continuously output bits (output bin value 0) to update the interval width corresponding to MPS, so that the interval width of MPS reaches a certain degree.
  • an embodiment of the present application proposes a coding method, including: encoding first identification information according to a first probability model, the first identification information being used to indicate whether the current node contains duplicate points; if the first identification information indicates that the current node contains duplicate points, encoding the number of duplicate points contained in the current node; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using DCM contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points, and the second identification information is used to
  • An embodiment of the present application also proposes a decoding method, comprising: decoding first identification information according to a first probability model, the first identification information being used to indicate whether the current node contains duplicate points; if the first identification information indicates that the current node contains duplicate points, determining the number of duplicate points contained in the current node; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using DCM contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points, and the second identification information is used to indicate whether a node
  • the initial value of the probability model corresponding to the first identification information is set to be unequal to the first value (the first value corresponds to the situation where the probabilities of MPS and LPS are equal) and/or the probability model corresponding to the first identification information and the probability model corresponding to the second identification information are set to different probability models.
  • the above setting method is more in line with the actual situation, thereby helping to improve the encoding and decoding efficiency of the point cloud.
  • the point cloud encoding and decoding process may require both DCM encoding and decoding and encoding and decoding of the leaf nodes of the multi-branch tree, so Embodiment 1 and Embodiment 2 can be combined with each other.
  • the value of the coding interval parameter can also be updated according to the value of the first identification information.
  • the coding interval parameter may include a first parameter and/or a second parameter.
  • the first parameter is used to indicate the starting point of the coding interval (the starting point of the coding interval of the arithmetic encoder).
  • the first parameter can be represented by Low.
  • the second parameter is used to indicate the width of the coding interval.
  • the second parameter can be represented by Range.
  • the initial value of the second parameter can be 510, represented by 9 bits.
  • the inference of DCM decoding eligibility can be divided into the following two categories:
  • Parent-based eligibility There is only one occupied child node at the parent node level (i.e. the current node), and the grandparent node (i.e. the parent node's parent node) has at most two occupied child nodes (i.e. the parent node and possibly one other node).
  • 6N qualification There is only one occupied child node (i.e. the current node) at the parent node level, and no occupied neighbor nodes (the neighbors mentioned here refer to the 6 neighbor nodes above, below, left, right, front and back).
  • IDCM has three possible inference methods.
  • Inference method 1 means: if the current node meets the parent-based qualifications and 6N qualifications, DCM decoding is enabled. This inference method has the best compression effect, but the compression time is longer.
  • Inference method 2 means: if the current node meets the 6N qualifications, DCM decoding is enabled. This inference method 2 relaxes the judgment conditions of DCM, and more nodes will enable DCM.
  • Inference method 3 means: if the current node meets the parent-based qualifications, DCM decoding is enabled. This inference method uses more relaxed judgment conditions, but the compression efficiency is lower.
  • a binary flag is first decoded to indicate whether the current node uses DCM. If the flag is 1, it means that the current node uses DCM; if the flag is 0, it means that the current node does not use DCM.
  • the following steps can be used to decode the current node.
  • direct_point_cnt_eq2 identifies whether the current node contains two different points (i.e., the geometric information of the two points is different). If direct_point_cnt_eq2 is 1, it means that the current node contains two different points; if direct_point_cnt_eq2 is 0, it means that the current node only contains points with the same geometric information (it can contain only one point or multiple points with the same geometric information).
  • the encoding interval parameter can also be updated according to the value of DupPointsCntGt0.
  • the coding interval parameter may include a first parameter and/or a second parameter.
  • the first parameter is used to indicate the starting point of the coding interval.
  • the first parameter may be represented by Low.
  • the second parameter is used to indicate the width of the coding interval.
  • the second parameter may be represented by Range.
  • the initial value of the second parameter may be 510, represented by 9 bits.
  • the probability model is updated using Bin value, Low, and Range.
  • the value of Range may be less than half of the initial interval length, that is, less than 256.
  • a renormalization process is required.
  • Figure 8 shows the process of the renormalization process.
  • Low and Range are left shifted until the value of Range is greater than half of the initial interval width.
  • the left shift of Range is to expand the interval width, and the left shift of Low is to output bits.
  • the number of bits of the left shift of the two is the same.
  • This technical solution reasonably uses the probability model and the correct initial value to further improve the efficiency of G-PCC geometric coding.
  • the bits per input point ratio (Bpip Ratio) under the condition of lossless compression of geometric information indicates: the percentage of the encoding rate of this technical solution to the encoding rate of related technologies without loss of point cloud quality. The lower the value of this parameter, the greater the bit rate saved by this technical solution.
  • Table 1 shows the test results of this technical solution. It can be seen from Table 1 that this technical solution has made a significant improvement in bit rate saving compared with related technologies.
  • Embodiment 2 Multi-tree leaf node encoding and decoding
  • FIG11 is a flow chart of a decoding method provided in an embodiment of the present application.
  • the method of FIG11 can be applied to a point cloud decoder.
  • the decoder can be, for example, a decoder supporting G-PCC.
  • the first identification information is decoded (such as entropy decoding) according to the first probability model.
  • the first identification information is used to indicate whether the current node contains duplicate points.
  • the current node mentioned here refers to the leaf node of a multi-branch tree (such as an octree, a quadtree, or a binary tree).
  • the first identification information can be, for example, a binary syntax element DupPointsCntGt0L.
  • the value of the first identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the first identification information is value a, it can be indicated that the current node contains duplicate points. If the value of the first identification information is value b, it can be indicated that the leaf node of the multi-branch tree does not contain duplicate points.
  • the initial value of the first probability model is not equal to the first value (the probability that the first value corresponds to the MPS and the LPS is equal). That is, in the first probability model, the initial interval width corresponding to the MPS is greater than the initial interval width corresponding to the LPS. Since the probability that the value of the first identification information is 0 is very high, setting the initial value of the first probability model to be not equal to the first value is more consistent with the actual situation, and can reduce the process of the decoder continuously updating the MPS interval width based on the renormalization operation, thereby improving decoding efficiency.
  • the first probability model is used to decode the first identification information.
  • the first probability model in addition to being used to decode the first identification information, can also be used to decode the second identification information.
  • the second identification information is used to indicate whether the node using DCM contains duplicate points.
  • the second identification information can be, for example, a binary syntax element DupPointsCntGt0.
  • the value of the second identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the second identification information is value a, it can be indicated that the node using DCM contains duplicate points. If the value of the second identification information is value b, it can be indicated that the node using DCM does not contain duplicate points.
  • the probability model is updated using Bin value, Low, and Range.
  • the first probability model is used to encode the first identification information.
  • the first probability model in addition to encoding the first identification information
  • the first probability model can also be used to encode the second identification information.
  • the second identification information is used to indicate whether the node using DCM contains duplicate points.
  • the second identification information can be, for example, a binary syntax element DupPointsCntGt0.
  • the value of the second identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the second identification information is value a, it can be indicated that the node using DCM contains duplicate points. If the value of the second identification information is value b, it can be indicated that the node using DCM does not contain duplicate points.
  • step S1220 if the first identification information indicates that the current node contains duplicate points, the number of duplicate points contained in the current node is encoded.
  • the number of duplicate points contained in the current node may be encoded based on the Exponential Golomb coding.
  • the value of the coding interval parameter can also be updated according to the value of the first identification information.
  • the coding interval parameter may include a first parameter and/or a second parameter.
  • the first parameter is used to indicate the starting point of the coding interval (the starting point of the coding interval of the arithmetic encoder).
  • the first parameter can be represented by Low.
  • the second parameter is used to indicate the width of the coding interval.
  • the second parameter can be represented by Range.
  • the initial value of the second parameter can be 510, represented by 9 bits.
  • first determine whether the value of the first identification information is equal to LPS or MPS, so as to update Low and Range.
  • LPS Low and Range
  • Range Range is equal to R MPS .
  • R MPS represents the interval width corresponding to MPS
  • R LPS represents the interval width corresponding to LPS.
  • the probability model is updated using Bin value, Low, and Range.
  • the value of Range may be less than half of the initial interval length, that is, less than 256.
  • a renormalization process is required.
  • Figure 8 shows the process of the renormalization process.
  • Low and Range are left shifted until the value of Range is greater than half of the initial interval width.
  • the left shift of Range is to expand the interval width of the arithmetic encoder, and the left shift of Low is to output bits. The number of bits of the left shift of the two is the same.
  • Embodiment 2 is described in more detail below in conjunction with specific examples. It should be noted that the following examples are only intended to help those skilled in the art understand the embodiments of the present application, rather than to limit the embodiments of the present application to the specific numerical values or specific scenarios illustrated. Those skilled in the art can obviously make various equivalent modifications or changes based on the examples given, and such modifications or changes also fall within the scope of the embodiments of the present application.
  • the multi-branch tree leaf nodes may contain duplicate points.
  • the encoding method of the multi-branch tree leaf nodes includes the following steps. First, encode the binary syntax element DupPointsCntGt0L. DupPointsCntGt0L can be used to indicate whether the leaf node contains duplicate points. If DupPointsCntGt0L is 1, it means that the leaf node contains duplicate points; if DupPointsCntGt0L is 0, it means that the leaf node does not contain duplicate points. Then, when DupPointsCntGt0L is 1, the number of duplicate points is encoded using Exponential Columbus.
  • the first probability model can be used to perform entropy coding on DupPointsCntGt0L.
  • the initial value of the first probability model i.e., the probability that MPS is 0
  • the initial value of the first probability model can be set to 1. It is 0xffff at 16-bit binary precision. Since the probability that DupPointsCntGt0L takes a value of 0 is very high, setting the initial value of the first probability model to 1 is more consistent with the actual situation, which can minimize the process of the encoder continuously updating the MPS interval width based on the renormalization operation, thereby improving the coding efficiency.
  • DupPointsCntGt0L and DupPointsCntGt0 (used to identify whether a node using DCM contains duplicate points) use different probability models.
  • the value of the coding interval parameter can also be updated according to the value of DupPointsCntGt0L.
  • the coding interval parameter may include a first parameter and/or a second parameter.
  • the first parameter is used to indicate the starting point of the coding interval (the coding interval starting point of the arithmetic encoder).
  • the first parameter can be represented by Low.
  • the second parameter is used to indicate the width of the coding interval.
  • the second parameter can be represented by Range.
  • the initial value of the second parameter can be 510, represented by 9 bits.
  • the probability model is updated using Bin value, Low, and Range.
  • the value of Range may be less than half of the initial interval length, that is, less than 256.
  • a renormalization process is required.
  • Figure 8 shows the process of the renormalization process. During the renormalization process, Low and Range are shifted left. The operation is repeated until the value of Range is greater than half of the initial interval width.
  • the left shift of Range is to expand the interval width of the arithmetic encoder, and the left shift of Low is to output bits. The number of bits of the left shift of the two is the same.
  • the decoding method of a multi-tree leaf node includes the following steps. First, decode the binary syntax element DupPointsCntGt0L. If DupPointsCntGt0L is 1, it means that the leaf node contains duplicate points; if DupPointsCntGt0L is 0, it means that the leaf node does not contain duplicate points. When DupPointsCntGt0L is 1, continue to use the exponential Columbus decoding to decode the number of duplicate points.
  • the first probability model can be used to entropy decode DupPointsCntGt0L.
  • the initial value of the first probability model i.e., the probability that MPS is 0
  • the initial value of the first probability model can be set to 1. It is 0xffff at 16-bit binary precision. Since the probability that DupPointsCntGt0L takes a value of 0 is very high, setting the initial value of the first probability model to 1 is more consistent with the actual situation, which can minimize the process of the decoder continuously updating the MPS interval width based on the renormalization operation, thereby improving decoding efficiency.
  • DupPointsCntGt0L and DupPointsCntGt0 (used to identify whether a node using DCM contains duplicate points) use different probability models.
  • the value of the coding interval parameter can also be updated according to the value of DupPointsCntGt0L.
  • the coding interval parameter may include a first parameter and/or a second parameter.
  • the first parameter is used to indicate the starting point of the coding interval.
  • the first parameter can be represented by Low.
  • the second parameter is used to indicate the width of the coding interval.
  • the second parameter can be represented by Range.
  • the initial value of the second parameter can be 510, represented by 9 bits.
  • the value of Range may be less than half of the initial interval length, that is, less than 256.
  • a renormalization process is required.
  • Figure 8 shows the process of the renormalization process.
  • Low and Range are left shifted until the value of Range is greater than half of the initial interval width.
  • the left shift of Range is to expand the interval width, and the left shift of Low is to output bits.
  • the number of bits of the left shift of the two is the same.
  • Bpip Ratio under lossless compression of geometric information means: the percentage of the encoding rate of this technical solution to the encoding rate of related technologies without loss of point cloud quality. The lower the value of this parameter, the greater the bit rate saved by this technical solution.
  • Table 2 shows the test results of this technical solution. It can be seen from Table 2 that this technical solution has made a significant improvement in bit stream saving compared with related technologies.
  • FIG. 13 is a flow chart of a point cloud decoder provided by an embodiment of the present application.
  • the point cloud decoder 1300 shown in Figure 13 includes a decoding unit 1310 and a determination unit 1320.
  • the decoding unit 1310 is configured to decode the first identification information according to a first probability model, and the first identification information is used to indicate whether the current node contains duplicate points;
  • the determination unit 1320 is configured to determine the number of duplicate points contained in the current node if the first identification information indicates that the current node contains duplicate points; wherein the first probability model satisfies at least one of the following: the initial value of the first probability model is not equal to the first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein, The first identification information is used to indicate whether a node using a direct coding mode contains duplicate points, and the second identification information is used
  • the initial value of the first probability model is set so that the probability of the MPS is greater than or equal to 0.8.
  • the initial value of the first probability model is set so that the probability of the MPS is equal to 1.
  • the MPS is 0 and the LPS is 1.
  • the first identification information is used to indicate whether a node using a direct coding mode contains a repeated point.
  • the decoding unit 1310 is configured to: decode third identification information, where the third identification information is used to indicate whether the current node contains points with different geometric information; if the third identification information indicates that the current node only contains points with the same geometric information, decode the first identification information according to the first probability model.
  • the determination unit 1320 is further configured to: if the fourth identification information indicates that the current node includes multiple repeated points, decode the fifth identification information, and the fifth identification information is used to determine the number of repeated points contained in the current node; determine the number of repeated points contained in the current node based on the value of the fifth identification information.
  • the determination unit 1320 is configured to: determine the sum of the value of the fifth identification information and 2 as the number of repeated points included in the current node.
  • the decoding the fifth identification information includes: decoding the fifth identification information based on a 0th-order Exponential Columbus.
  • the determination unit 1320 is further configured to: before decoding the first identification information according to the first probability model, determine whether the current node uses a direct encoding mode according to information of a parent node of the current node.
  • the determination unit 1320 is configured to: determine whether the first condition and/or the second condition is met based on the information of the parent node; if the first condition and/or the second condition is met, determine that the current node uses a direct coding mode; wherein the first condition includes that the number of occupied child nodes of the parent node is 1, and the number of occupied child nodes of the grandparent node of the current node is less than or equal to 2; wherein the second condition includes that the number of occupied child nodes of the parent node is 1, and none of the neighboring nodes of the parent node are occupied.
  • the decoding unit 1310 is further configured to: if the current node does not use the direct coding mode, perform multi-tree decoding on the current node.
  • the first identification information is used to indicate whether a leaf node of the multi-branch tree contains a duplicate point.
  • the determining unit 1320 is configured to: determine the number of repeated points contained in the current node based on Exponential Golomb decoding.
  • the updating unit is further configured to: if the updated value of the second parameter is less than half of the initial value of the second parameter, perform a left shift operation on the first parameter and the second parameter.
  • a "unit” may be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course, it may be a module, or it may be non-modular.
  • the components in the present embodiment may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit may be implemented in the form of hardware or in the form of a software functional module.
  • an embodiment of the present application provides a computer-readable storage medium, which is applied to the point cloud decoder 1300.
  • the computer-readable storage medium stores a computer program, and the computer program implements the aforementioned decoding method when executed by a processor.
  • the communication interface 1410 is used to receive and send signals when sending and receiving information with other external network elements.
  • the memory 1420 is used to store computer programs.
  • the processor 1430 is configured to, when running the computer program, execute:
  • the first identification information indicates that the current node includes duplicate points, determining the number of duplicate points included in the current node;
  • the first probability model satisfies at least one of the following:
  • the initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probability of MPS and LPS being equal;
  • the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct coding mode contains repeated points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains repeated points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains repeated points, and the second identification information is used to indicate whether a node using a direct coding mode contains repeated points.
  • the memory 1420 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories.
  • the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
  • the volatile memory can be a random access memory (RAM), which is used as an external cache.
  • RAM static RAM
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDRSDRAM double data rate synchronous DRAM
  • ESDRAM enhanced SDRAM
  • SLDRAM synchronous link DRAM
  • DRRAM direct RAM bus RAM
  • the processor 1430 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit in the processor 1430 or the instruction in the form of software.
  • the above processor 1430 may be a general processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components.
  • DSP Digital Signal Processor
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed.
  • the general processor can be a microprocessor or the processor can also be any conventional processor, etc.
  • the steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to execute, or the hardware and software modules in the decoding processor can be executed.
  • the software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc.
  • the storage medium is located in the memory 1420, and the processor 1430 reads the information in the memory 1420 and completes the steps of the above method in combination with its hardware.
  • the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.
  • ASIC Application Specific Integrated Circuits
  • DSP Digital Signal Processing
  • DSP Device digital signal processing devices
  • PLD programmable logic devices
  • FPGA field programmable gate array
  • general processors controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.
  • the technology described in this application can be implemented by a module (such as a process, function, etc.) that performs the functions described in this application.
  • the software code can be stored in a memory and executed by a processor.
  • the memory can be implemented in the processor or outside the processor.
  • the processor 1430 is further configured to execute the decoding method described in the above embodiment when running the computer program.
  • FIG15 is a schematic diagram of the structure of a point cloud encoder provided by an embodiment of the present application.
  • the point cloud encoder 1500 of FIG15 includes a first encoding unit 1510 and a second encoding unit 1520.
  • the first encoding unit 1510 is configured to encode the first identification information according to the first probability model.
  • the first identification information is used to indicate whether the current node contains repeated points;
  • the second encoding unit 1520 is configured to encode the number of repeated points contained in the current node if the first identification information indicates that the current node contains repeated points; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct encoding mode contains repeated points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains repeated points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains repeated points, and the second identification information is used to indicate whether a node using a direct encoding mode contains repeated points.
  • the initial value of the first probability model is set so that the probability of the MPS is equal to 1.
  • the MPS is 0 and the LPS is 1.
  • the first identification information is used to indicate whether a node using a direct coding mode contains a repeated point.
  • the first encoding unit 1510 is configured to: encode third identification information, where the third identification information is used to indicate whether the current node contains points with different geometric information; if the third identification information indicates that the current node only contains points with the same geometric information, encode the first identification information according to the first probability model.
  • the second encoding unit 1520 is configured to: encode fourth identification information, where the fourth identification information is used to indicate whether the current node contains 1 repeated point, and if the fourth identification information indicates that the current node contains 1 repeated point, the number of repeated points is 1.
  • the second encoding unit 1520 is further configured to: if the fourth identification information indicates that the current node includes multiple repeated points, encode the fifth identification information, and the number of repeated points is equal to the sum of the value of the fifth identification information and 2.
  • the encoder 1500 further includes a first determination unit configured to determine whether the current node uses a direct encoding mode based on information of a parent node of the current node before encoding the first identification information based on the first probability model.
  • the determination unit is configured to: determine whether the first condition and/or the second condition is met based on the information of the parent node; if the first condition and/or the second condition is met, determine that the current node uses a direct coding mode; wherein the first condition includes that the number of occupied child nodes of the parent node is 1, and the number of occupied child nodes of the grandparent node of the current node is less than or equal to 2; wherein the second condition includes that the number of occupied child nodes of the parent node is 1, and none of the neighboring nodes of the parent node are occupied.
  • the encoder 1500 further includes a third encoding unit configured to: if the current node does not use a direct encoding mode, perform multi-tree encoding on the current node.
  • the first identification information is used to indicate whether a leaf node of the multi-branch tree contains a duplicate point.
  • the memory 1620 is used to store computer programs.
  • the steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to execute, or the hardware and software modules in the decoding processor can be executed.
  • the software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc.
  • the storage medium is located in the memory 1620, and the processor 1630 reads the information in the memory 1620 and completes the steps of the above method in combination with its hardware.
  • the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.
  • ASIC Application Specific Integrated Circuits
  • DSP Digital Signal Processing
  • DSP Device digital signal processing devices
  • PLD programmable logic devices
  • FPGA field programmable gate array
  • general processors controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Provided are an encoding method, a decoding method, a point cloud encoder, a point cloud decoder, a bitstream, and a storage medium. The decoding method comprises: decoding first identification information on the basis of a first probability model, wherein the first identification information is used for indicating whether the current node contains duplicated points; and if the first identification information indicates that the current node contains duplicated points, determining the number of duplicated points contained in the current node. The first probability model satisfies at least one of the following: an initial value of the first probability model being not equal to a first value, which corresponds to the probability of an MPS being equal to the probability of an LPS; and the first probability model being different from a second probability model, the second probability model corresponding to second identification information. The first identification information is used for indicating whether a node using DCM contains duplicated points, and the second identification information is used for indicating whether a leaf node of a multi-way tree contains duplicated points. Alternatively, the first identification information is used for indicating whether the leaf node of the multi-way tree contains duplicated points, and the second identification information is used for indicating whether the node using the DCM contains duplicated points.

Description

编解码方法、点云编解码器、码流以及存储介质Coding and decoding method, point cloud codec, code stream and storage medium 技术领域Technical Field

本申请涉及视频编解码技术领域,尤其涉及一种编解码方法、点云编解码器、码流以及存储介质。The present application relates to the field of video coding and decoding technology, and in particular to a coding and decoding method, a point cloud codec, a bit stream and a storage medium.

背景技术Background Art

在基于几何的点云压缩(geometry-based point cloud compression,G-PCC)编解码框架中,点云的几何信息和属性信息是分开进行编解码的。几何编码过程中,有关重复点的编解码方案的设计存在不合理之处,降低了编码效率。In the geometry-based point cloud compression (G-PCC) coding and decoding framework, the geometric information and attribute information of the point cloud are encoded and decoded separately. In the geometric coding process, the design of the coding and decoding scheme for repeated points is unreasonable, which reduces the coding efficiency.

发明内容Summary of the invention

本申请提供一种编解码方法、点云编解码器、码流以及存储介质。下面对本申请涉及的各个方面进行介绍。The present application provides a coding and decoding method, a point cloud codec, a bit stream and a storage medium. The following is an introduction to various aspects of the present application.

第一方面,提供一种解码方法,应用于点云解码器,包括:根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:最大概率符号(most probability symbol,MPS)和最小概率符号(low probability symbol,LPS)的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。In a first aspect, a decoding method is provided, which is applied to a point cloud decoder, comprising: decoding first identification information according to a first probability model, the first identification information being used to indicate whether a current node contains duplicate points; if the first identification information indicates that the current node contains duplicate points, determining the number of duplicate points contained in the current node; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, the first value corresponding to: the probabilities of a maximum probability symbol (most probability symbol, MPS) and a minimum probability symbol (low probability symbol, LPS) are equal; the first probability model is different from a second probability model, the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct coding mode contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points, and the second identification information is used to indicate whether a node using a direct coding mode contains duplicate points.

第二方面,提供一种编码方法,应用于点云编码器,包括:根据第一概率模型对第一标识信息进行编码,所述第一标识信息用于指示当前节点是否包含重复点;如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。In a second aspect, a coding method is provided, which is applied to a point cloud encoder, comprising: encoding first identification information according to a first probability model, the first identification information being used to indicate whether a current node contains duplicate points; if the first identification information indicates that the current node contains duplicate points, encoding the number of duplicate points contained in the current node; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct coding mode contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points, and the second identification information is used to indicate whether a node using a direct coding mode contains duplicate points.

第三方面,提供一种点云解码器,包括:解码单元,配置为根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;确定单元,配置为如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。According to a third aspect, a point cloud decoder is provided, comprising: a decoding unit, configured to decode first identification information according to a first probability model, the first identification information being used to indicate whether a current node contains duplicate points; a determination unit, configured to determine the number of duplicate points contained in the current node if the first identification information indicates that the current node contains duplicate points; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct coding mode contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points, and the second identification information is used to indicate whether a node using a direct coding mode contains duplicate points.

第四方面,提供了一种点云解码器,包括:存储器,用于存储计算机程序;处理器,用于在运行计算机程序时,执行如第一方面的方法。In a fourth aspect, a point cloud decoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method of the first aspect when running the computer program.

第五方面,提供一种点云编码器,包括:第一编码单元,配置为根据第一概率模型对第一标识信息进行编码,所述第一标识信息用于指示当前节点是否包含重复点;第二编码单元,配置为如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。In a fifth aspect, a point cloud encoder is provided, comprising: a first encoding unit, configured to encode first identification information according to a first probability model, the first identification information being used to indicate whether a current node contains duplicate points; a second encoding unit, configured to encode the number of duplicate points contained in the current node if the first identification information indicates that the current node contains duplicate points; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct encoding mode contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points, and the second identification information is used to indicate whether a node using a direct encoding mode contains duplicate points.

第六方面,提供了一种点云编码器,包括:存储器,用于存储计算机程序;处理器,用于在运行计算机程序时,执行如第二方面的方法。In a sixth aspect, a point cloud encoder is provided, comprising: a memory for storing a computer program; and a processor for executing the method of the second aspect when running the computer program.

第七方面,提供了一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,计算机程序被执行时实现如第一方面至第二方面中任一项的方法。 In a seventh aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, the method of any one of the first to second aspects is implemented.

第八方面,提供一种计算机程序产品,包括计算机程序,计算机程序被执行时实现如第一方面至第二方面中任一项的方法。In an eighth aspect, a computer program product is provided, comprising a computer program, which implements the method of any one of the first to second aspects when the computer program is executed.

第九方面,提供一种存储比特流的非易失性计算机可读存储介质,比特流通过利用点云编码器的编码方法而生成,或者,比特流通过利用点云解码器的解码方法而解码,其中,解码方法为第一方面所述的方法、编码方法为第二方面所述的方法。In a ninth aspect, a non-volatile computer-readable storage medium for storing a bit stream is provided, wherein the bit stream is generated by an encoding method using a point cloud encoder, or the bit stream is decoded by a decoding method using a point cloud decoder, wherein the decoding method is the method described in the first aspect, and the encoding method is the method described in the second aspect.

第十方面,提供一种码流,包括根据第二方面所述的方法生成的码流。According to a tenth aspect, a code stream is provided, comprising a code stream generated according to the method described in the second aspect.

本申请实施例对重复点相关的标识信息的概率模型进行了调整,调整后的概率模型更符合实际情况,有助于提升点云的编解码效率。The embodiment of the present application adjusts the probability model of identification information related to repeated points. The adjusted probability model is more in line with the actual situation and helps to improve the encoding and decoding efficiency of the point cloud.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

图1A为一种三维点云图像示意图。FIG. 1A is a schematic diagram of a three-dimensional point cloud image.

图1B为一种三维点云图像的局部放大图。FIG. 1B is a partially enlarged view of a three-dimensional point cloud image.

图2A为一种点云图像的六个观看角度示意图。FIG. 2A is a schematic diagram of six viewing angles of a point cloud image.

图2B为一种点云图像对应的数据存储格式示意图。FIG. 2B is a schematic diagram of a data storage format corresponding to a point cloud image.

图3为一种点云编解码的网络架构示意图。FIG3 is a schematic diagram of a network architecture for point cloud encoding and decoding.

图4A为一种G-PCC编码器的组成框架示意图。FIG. 4A is a schematic diagram of a composition framework of a G-PCC encoder.

图4B为一种G-PCC解码器的组成框架示意图。FIG. 4B is a schematic diagram of a composition framework of a G-PCC decoder.

图5为直接编码模式(direct coding model,DCM)的示例图。Figure 5 is an example diagram of the direct coding model (DCM).

图6为推断直接编码模式(infer direct coding model,IDCM)的推断过程的示例图。FIG6 is an example diagram of the inference process of the infer direct coding model (IDCM).

图7为概率模型的更新过程的示意图。FIG. 7 is a schematic diagram of the updating process of the probability model.

图8为重归一化过程的示意图。FIG8 is a schematic diagram of the renormalization process.

图9为本申请一个实施例提供的解码方法的流程图。FIG. 9 is a flowchart of a decoding method provided by an embodiment of the present application.

图10为本申请一个实施例提供的编码方法的流程图。FIG10 is a flowchart of an encoding method provided by an embodiment of the present application.

图11为本申请另一实施例提供的解码方法的流程图。FIG. 11 is a flowchart of a decoding method provided in another embodiment of the present application.

图12为本申请另一实施例提供的编码方法的流程图。FIG. 12 is a flowchart of an encoding method provided in another embodiment of the present application.

图13为本申请一个实施例提供的点云解码器的结构示意图。FIG13 is a schematic diagram of the structure of a point cloud decoder provided in one embodiment of the present application.

图14为本申请另一实施例提供的点云解码器的结构示意图。FIG. 14 is a schematic diagram of the structure of a point cloud decoder provided in another embodiment of the present application.

图15为本申请一个实施例提供的点云编码器的结构示意图。FIG. 15 is a schematic diagram of the structure of a point cloud encoder provided by an embodiment of the present application.

图16为本申请另一实施例提供的点云编码器的结构示意图。FIG16 is a schematic diagram of the structure of a point cloud encoder provided in another embodiment of the present application.

具体实施方式DETAILED DESCRIPTION

为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below in conjunction with the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application and are not intended to limit this application.

在以下的描述中,涉及到“一些实施例”或“一些实现方式”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”或“一些实现方式”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。In the following description, reference is made to “some embodiments” or “some implementations”, which describe a subset of all possible embodiments, but it can be understood that “some embodiments” or “some implementations” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。It should also be pointed out that the terms "first\second\third" involved in the embodiments of the present application are only used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged in a specific order or sequence where permitted, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.

本申请实施例可应用于点云编解码,为了便于理解,下面先对点云及其编解码方式进行介绍。The embodiments of the present application can be applied to point cloud encoding and decoding. For ease of understanding, the point cloud and its encoding and decoding method are first introduced below.

点云(point cloud)是物体表面的三维表现形式,通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云。Point cloud is a three-dimensional representation of the surface of an object. Point cloud of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.

点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。图1A展示了三维点云图像。图1B展示了该三维点云图像的局部放大图。从图1A和图1B可以看出,点云表面是由分布稠密的点所组成的。A point cloud is a set of irregularly distributed discrete points in space that express the spatial structure and surface properties of a three-dimensional object or scene. FIG1A shows a three-dimensional point cloud image. FIG1B shows a partial magnified view of the three-dimensional point cloud image. It can be seen from FIG1A and FIG1B that the point cloud surface is composed of densely distributed points.

二维图像在每一个像素点均有信息表达,分布规则,因此不需要额外记录其位置信息。然而,点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。与二维图像类似,采集过程中每一个位置均有对应的属性信息,通常为RGB颜色值,颜色值反映物体的色彩。对于点云来说,每一个点所对应的属性信息除了颜色信息以外,还有比较常见的是反射率(reflectance)值,反射率值反映物体的表面材质。因此,点云数据通常包括点的位置信息 和点的属性信息。点的位置信息也可称为点的几何信息。例如,点的几何信息可以是点的三维坐标信息(x,y,z)。点的属性信息可以包括颜色信息和/或反射率等。例如,反射率可以是一维反射率信息(r);颜色信息可以是任意一种色彩空间上的信息,或者颜色信息也可以是三维颜色信息,如RGB信息。在这里,R表示红色(red,R),G表示绿色(green,G),B表示蓝色(blue,B)。再如,颜色信息可以是亮度色度(YCbCr,YUV)信息。其中,Y表示明亮度(luma),Cb(U)表示蓝色色差,Cr(V)表示红色色差。Two-dimensional images have information expressed at each pixel point, and the distribution is regular, so there is no need to record its position information separately. However, the distribution of points in the point cloud in three-dimensional space is random and irregular, so it is necessary to record the position of each point in space in order to fully express a point cloud. Similar to two-dimensional images, each position in the acquisition process has corresponding attribute information, usually RGB color values, and the color value reflects the color of the object. For point clouds, in addition to color information, the attribute information corresponding to each point is also commonly the reflectance value, which reflects the surface material of the object. Therefore, point cloud data usually includes the location information of the point And the attribute information of the point. The location information of the point can also be called the geometric information of the point. For example, the geometric information of the point can be the three-dimensional coordinate information (x, y, z) of the point. The attribute information of the point can include color information and/or reflectivity, etc. For example, the reflectivity can be one-dimensional reflectivity information (r); the color information can be information on any color space, or the color information can be three-dimensional color information, such as RGB information. Here, R represents red (red, R), G represents green (green, G), and B represents blue (blue, B). For another example, the color information can be brightness and chromaticity (YCbCr, YUV) information. Among them, Y represents brightness (luma), Cb (U) represents blue color difference, and Cr (V) represents red color difference.

根据激光测量原理得到的点云,点云中的点可以包括点的三维坐标信息和点的反射率值。再如,根据摄影测量原理得到的点云,点云中的点可以可包括点的三维坐标信息和点的三维颜色信息。再如,结合激光测量和摄影测量原理得到点云,点云中的点可以可包括点的三维坐标信息、点的反射率值和点的三维颜色信息。For a point cloud obtained according to the principle of laser measurement, the points in the point cloud may include the three-dimensional coordinate information of the points and the reflectivity value of the points. For another example, for a point cloud obtained according to the principle of photogrammetry, the points in the point cloud may include the three-dimensional coordinate information of the points and the three-dimensional color information of the points. For another example, a point cloud obtained by combining the principles of laser measurement and photogrammetry may include the three-dimensional coordinate information of the points, the reflectivity value of the points and the three-dimensional color information of the points.

图2A和图2B所示为一幅点云图像及其对应的数据存储格式。其中,图2A提供了点云图像的六个观看角度,图2B由文件头信息部分和数据部分组成,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容。例如,点云为“.ply”格式,由ASCII码表示,总点数为207242,每个点具有三维坐标信息(x,y,z)和三维颜色信息(r,g,b)。Figures 2A and 2B show a point cloud image and its corresponding data storage format. Figure 2A provides six viewing angles of the point cloud image, and Figure 2B consists of a file header information part and a data part. The header information includes the data format, data representation type, the total number of point cloud points, and the content represented by the point cloud. For example, the point cloud is in the ".ply" format, represented by ASCII code, with a total number of 207242 points, and each point has three-dimensional coordinate information (x, y, z) and three-dimensional color information (r, g, b).

点云可以按获取的途径分为如下几种类型:Point clouds can be divided into the following types according to the acquisition method:

静态点云:即物体是静止的,获取点云的设备也是静止的;Static point cloud: the object is stationary, and the device that obtains the point cloud is also stationary;

动态点云:物体是运动的,但获取点云的设备是静止的;Dynamic point cloud: The object is moving, but the device that obtains the point cloud is stationary;

动态获取点云:获取点云的设备是运动的。Dynamic point cloud acquisition: The device used to acquire the point cloud is in motion.

例如,按点云的用途分为两大类:For example, point clouds can be divided into two categories according to their usage:

类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;Category 1: Machine perception point cloud, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, disaster relief robots, etc.

类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。Category 2: Point cloud perceived by the human eye, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.

点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等。Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes. Point clouds are obtained by directly sampling real objects, so they can provide a strong sense of reality while ensuring accuracy. Therefore, they are widely used, including virtual reality games, computer-aided design, geographic information systems, automatic navigation systems, digital cultural heritage, free viewpoint broadcasting, three-dimensional immersive remote presentation, and three-dimensional reconstruction of biological tissues and organs.

点云的采集主要有以下途径:计算机生成、3D激光扫描、3D摄影测量等。计算机可以生成虚拟三维物体及场景的点云;3D激光扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云;3D摄影测量可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能,伴随着应用需求的增长,海量3D点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。Point clouds can be collected mainly through the following methods: computer generation, 3D laser scanning, 3D photogrammetry, etc. Computers can generate point clouds of virtual three-dimensional objects and scenes; 3D laser scanning can obtain point clouds of static real-world three-dimensional objects or scenes, and can obtain millions of point clouds per second; 3D photogrammetry can obtain point clouds of dynamic real-world three-dimensional objects or scenes, and can obtain tens of millions of point clouds per second. These technologies reduce the cost and time cycle of point cloud data acquisition and improve the accuracy of data. The change in the way point cloud data is acquired makes it possible to acquire a large amount of point cloud data. With the growth of application demand, the processing of massive 3D point cloud data encounters bottlenecks in storage space and transmission bandwidth.

示例性地,以帧率为30帧每秒(fps)的点云视频为例,每帧点云的点数为70万,每个点具有坐标信息xyz(float)和颜色信息RGB(uchar),则10s点云视频的数据量大约为0.7million×(4Byte×3+1Byte×3)×30fps×10s=3.15GB,其中,1Byte为10bit;而YUV采样格式为4:2:0,帧率为24fps的1280×720二维视频,其10s的数据量约为1280×720×12bit×24fps×10s≈0.33GB,10s的两视角三维视频的数据量约为0.33×2=0.66GB。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。也就是说,由于点云是海量点的集合,存储点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此,需要对点云进行压缩。For example, taking a point cloud video with a frame rate of 30 frames per second (fps) as an example, the number of points in each point cloud frame is 700,000, and each point has coordinate information xyz (float) and color information RGB (uchar). The data volume of a 10s point cloud video is about 0.7 million × (4Byte × 3 + 1Byte × 3) × 30fps × 10s = 3.15GB, where 1Byte is 10bit; and a 1280 × 720 two-dimensional video with a YUV sampling format of 4:2:0 and a frame rate of 24fps, the data volume of 10s is about 1280 × 720 × 12bit × 24fps × 10s ≈ 0.33GB, and the data volume of a 10s two-view three-dimensional video is about 0.33 × 2 = 0.66GB. It can be seen that the data volume of a point cloud video far exceeds that of a two-dimensional video and a three-dimensional video of the same length. Therefore, in order to better realize data management, save server storage space, and reduce the transmission traffic and transmission time between the server and the client, point cloud compression has become a key issue in promoting the development of the point cloud industry. In other words, since the point cloud is a collection of massive points, storing the point cloud will not only consume a lot of memory, but also be unfavorable for transmission. There is also no large bandwidth to support the point cloud to be transmitted directly at the network layer without compression. Therefore, the point cloud needs to be compressed.

目前,可对点云进行压缩的点云编码框架可以是运动图像专家组(moving picture experts group,MPEG)提供的基于几何的点云压缩(geometry-based point cloud compression,G-PCC)编解码框架或基于视频的点云压缩(video-based point cloud compression,V-PCC)编解码框架,也可以是音视频编码标准(audio video coding standard,AVS)提供的AVS-PCC编解码框架。G-PCC编解码框架可用于针对第一类静态点云和第三类动态获取点云进行压缩,其可以是基于点云压缩测试平台(test model compression 13,TMC13),V-PCC编解码框架可用于针对第二类动态点云进行压缩,其可以是基于点云压缩测试平台(test model compression 2,TMC2)。故G-PCC编解码框架也称为点云编解码器TMC13,V-PCC编解码框架也称为点云编解码器TMC2。At present, the point cloud coding framework that can compress point clouds can be the geometry-based point cloud compression (G-PCC) codec framework or the video-based point cloud compression (V-PCC) codec framework provided by the moving picture experts group (MPEG), or the AVS-PCC codec framework provided by the audio video coding standard (AVS). The G-PCC codec framework can be used to compress the first type of static point cloud and the third type of dynamically acquired point cloud, which can be based on the point cloud compression test platform (test model compression 13, TMC13), and the V-PCC codec framework can be used to compress the second type of dynamic point cloud, which can be based on the point cloud compression test platform (test model compression 2, TMC2). Therefore, the G-PCC codec framework is also called the point cloud codec TMC13, and the V-PCC codec framework is also called the point cloud codec TMC2.

图3示出的是一种点云编解码的网络架构示意图。如图3所示,该网络架构包括一个或多个电子设备13至1N和通信网络01,其中,电子设备13至1N可以通过通信网络01进行视频交互。电子设备 在实施的过程中可以为各种类型的具有点云编解码功能的设备,例如,所述电子设备可以包括手机、平板电脑、个人计算机、个人数字助理、导航仪、数字电话、视频电话、电视机、传感设备、服务器等,本申请实施例不作限制。其中,本申请实施例中的解码器或编码器就可以为上述电子设备。FIG3 shows a schematic diagram of a network architecture for point cloud coding and decoding. As shown in FIG3 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. In the implementation process, various types of devices with point cloud encoding and decoding functions can be used, for example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., and the embodiments of the present application are not limited thereto. Among them, the decoder or encoder in the embodiments of the present application can be the above-mentioned electronic device.

其中,本申请实施例中的电子设备具有点云编解码功能,一般包括点云编码器(即编码器)和点云解码器(即解码器)。Among them, the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).

下面以G-PCC编解码框架为例对点云编解码方式进行举例说明。The following uses the G-PCC encoding and decoding framework as an example to illustrate the point cloud encoding and decoding method.

在点云G-PCC编解码框架中,针对待编码的点云数据,首先通过片(slice)划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和属性信息是分开进行编码的。In the point cloud G-PCC encoding and decoding framework, the point cloud data to be encoded is first divided into multiple slices by slice division. In each slice, the geometric information and attribute information of the point cloud are encoded separately.

图4A示出了一种G-PCC编码器的编码框架示意图。如图4A所示,在几何编码过程中,对几何信息进行坐标转换,使点云全都包含在一个包围盒(bounding box)中,然后再进行量化。量化主要起到缩放的作用,由于量化取整,使得一部分点云的几何信息相同,于是再基于参数来决定是否移除重复点。量化和移除重复点这一过程又被称为体素化过程。接着对包围盒进行八叉树划分或者预测树构建。在该过程中,针对划分的叶子结点中的点进行算术编码,生成二进制的几何比特流;或者,针对划分产生的交点(vertex)进行算术编码(基于交点进行表面拟合),生成二进制的几何比特流。在属性编码过程中,几何编码完成,对几何信息进行重建后,需要先进行颜色转换,将颜色信息(即属性信息)从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。属性编码主要针对颜色信息进行,在颜色信息编码过程中,主要有两种变换方法,一是依赖于细节层次(level of detail,LOD)划分的基于距离的提升变换,二是直接进行区域自适应分层变换(region adaptive hierarchal transform,RAHT)。这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化,再对量化系数进行算术编码,可以生成二进制的属性比特流。FIG4A shows a schematic diagram of the encoding framework of a G-PCC encoder. As shown in FIG4A , in the geometric encoding process, the geometric information is transformed so that all the point clouds are contained in a bounding box, and then quantized. Quantization mainly plays a role in scaling. Due to the quantization rounding, the geometric information of a part of the point cloud is the same, so whether to remove duplicate points is determined based on parameters. The process of quantization and removal of duplicate points is also called voxelization. Then, the bounding box is divided into octrees or a prediction tree is constructed. In this process, arithmetic coding is performed on the points in the leaf nodes of the division to generate a binary geometric bit stream; or, arithmetic coding is performed on the intersections (vertex) generated by the division (surface fitting is performed based on the intersections) to generate a binary geometric bit stream. In the attribute encoding process, after the geometric encoding is completed and the geometric information is reconstructed, color conversion is required first to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information. Attribute encoding is mainly performed on color information. In the process of color information encoding, there are two main transformation methods: one is the distance-based lifting transformation that relies on the level of detail (LOD) division, and the other is the direct regional adaptive hierarchical transformation (RAHT). Both methods convert color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, and finally quantize the coefficients. Then, the quantized coefficients are arithmetically encoded to generate a binary attribute bit stream.

图4B示出了一种G-PCC解码器的解码框架示意图。如图4B所示,针对所获取的二进制比特流,首先对二进制比特流中的几何比特流和属性比特流分别进行独立解码。在对几何比特流的解码时,通过算术解码-重构八叉树/重构预测树-重建几何-坐标逆转换,得到点云的几何信息;在对属性比特流的解码时,通过算术解码-反量化-LOD划分/RAHT-颜色逆转换,得到点云的属性信息,基于几何信息和属性信息还原待编码的点云数据(即输出点云)。FIG4B shows a schematic diagram of a decoding framework of a G-PCC decoder. As shown in FIG4B , for the acquired binary bit stream, the geometric bit stream and the attribute bit stream in the binary bit stream are first decoded independently. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-reconstruction of the octree/reconstruction of the prediction tree-reconstruction of the geometry-coordinate inverse conversion; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD partitioning/RAHT-color inverse conversion, and the point cloud data to be encoded (i.e., the output point cloud) is restored based on the geometric information and the attribute information.

根据图4A和图4B的介绍可知,目前G-PCC的几何编解码可分为:基于八叉树的几何编解码、基于三角面片集(triangle soup,trisoup)的几何编解码和基于预测树的几何编解码。下面对该三种几何编解码方式的具体实现方式进行更为详细地介绍。According to the introduction of FIG. 4A and FIG. 4B , the current geometric coding and decoding of G-PCC can be divided into: octree-based geometric coding and decoding, triangle soup (trisoup)-based geometric coding and decoding, and prediction tree-based geometric coding and decoding. The specific implementation methods of the three geometric coding and decoding methods are introduced in more detail below.

基于八叉树的几何编解码Octree-based geometry encoding and decoding

在编码端,首先对点云的几何信息进行坐标转换,使点云全都包含在一个由两个极值点(0,0,0)和(2d,2d,2d)定义的包围盒中。然后,对包围盒中的点进行体素化,即量化、取整、移除重复点(是否移除重复点可以根据参数来决定)。接着,按照广度优先的遍历顺序不断对包围盒中的非空的节点(或称非空的子立方体,即包含点云中的子立方体)进行八叉树划分。在同一八叉树深度下,一个节点将被划分为8个子节点,直到划分得到的叶子节点为1x1x1的单位立方体时停止划分。节点中是否有点占据(1为占据,0为无占据)可以通过8比特的二进制码表示。该8比特的二进制码被称为占位码(occupancy code)。对每个节点的占位码进行编码,从而生成二进制码流。At the encoding end, the geometric information of the point cloud is first transformed into coordinates so that all the point clouds are contained in a bounding box defined by two extreme points (0, 0, 0) and ( 2d , 2d , 2d ). Then, the points in the bounding box are voxelized, that is, quantized, rounded, and duplicate points are removed (whether to remove duplicate points can be determined by parameters). Next, the non-empty nodes in the bounding box (or non-empty sub-cubes, that is, sub-cubes containing point clouds) are continuously divided into octrees in a breadth-first traversal order. At the same octree depth, a node will be divided into 8 child nodes until the leaf node obtained by the division is a 1x1x1 unit cube. Whether there is point occupancy in the node (1 for occupation and 0 for non-occupancy) can be represented by an 8-bit binary code. This 8-bit binary code is called an occupancy code. The placeholder code of each node is encoded to generate a binary code stream.

在解码端,按照广度优先的遍历顺序,不断解析得到每个节点的占位码,并且依次不断划分节点,直至划分得到1x1x1的单位立方体时停止划分。然后,解析得到每个叶子节点中包含的点数,从而恢复点云的重构几何信息。At the decoding end, the placeholder code of each node is continuously parsed in a breadth-first traversal order, and the nodes are continuously divided in turn until a 1x1x1 unit cube is obtained. Then, the number of points contained in each leaf node is parsed to restore the reconstructed geometric information of the point cloud.

基于trisoup的几何编解码Geometry encoding and decoding based on trisoup

在编码端,首先基于八叉树进行划分。区别于基于八叉树结构的几何信息编码,基于trisoup的几何编码不需要将点云逐级划分至边长为1x1x1的叶子节点,而是划分至指定边长的叶子节点。在达到指定边长的叶子节点之后,可以将节点内体素构成的表面信息用一系列三角网格(triangle mesh)表示。G-PCC中用参数trisoup node size表示三角面片所在块(block)的尺寸大小。当trisoup node size大于0时,通过一个几何面片表示节点内的体素集合。几何面片与块的十二条边产生的至多十二个交点称为顶点(vertex)。依次编码每个块的顶点坐标,从而生成二进制码流。At the encoding end, the division is first performed based on the octree. Different from the geometric information encoding based on the octree structure, the geometric encoding based on trisoup does not need to divide the point cloud into leaf nodes with a side length of 1x1x1 step by step, but divides it into leaf nodes with a specified side length. After reaching the leaf node with a specified side length, the surface information composed of the voxels in the node can be represented by a series of triangle meshes. In G-PCC, the parameter trisoup node size is used to represent the size of the block where the triangle patch is located. When the trisoup node size is greater than 0, the voxel set in the node is represented by a geometric patch. The up to twelve intersections generated by the geometric patch and the twelve edges of the block are called vertices. The vertex coordinates of each block are encoded in turn to generate a binary code stream.

在解码端,为了从节点三角面片中解码出点云的几何信息,需要检查节点立方体内的每个体素是否与三角面片相交,该技术称为三角光栅化。例如,可以利用6个单位向量(0,0,1)、(0,0,1)、(0,0,1)、(0,0,1)、(0,0,1)、(0,0,1)进行相交检验,以检验各单位向量与三角面片是否相交。若相交,则计算交点并输出解码的立方体。解码器中生成的点的数量由网格距离d决定。At the decoding end, in order to decode the geometric information of the point cloud from the node triangle patch, it is necessary to check whether each voxel in the node cube intersects with the triangle patch. This technology is called triangle rasterization. For example, six unit vectors (0,0,1), (0,0,1), (0,0,1), (0,0,1), (0,0,1), (0,0,1) can be used for intersection check to check whether each unit vector intersects with the triangle patch. If they intersect, the intersection point is calculated and the decoded cube is output. The number of points generated in the decoder is determined by the grid distance d.

基于预测树的几何编解码Geometric coding and decoding based on prediction tree

在编码端,首先对输入点云进行排序,目前采用的排序方法包括无序、莫顿序、方位角序和径向距离序。在编码端可以利用两种不同的方式建立预测树结构。一种方式是基于KD-Tree构建预测树,这种预测树构建方式也可称为高时延慢速模式。另一种方式是利用激光雷达标定信息,将每个点划分到不同的Laser上,按照不同的Laser建立预测结构。这种预测树构建方式也可称为低时延快速模式。接下来,基于预测树的结构,遍历预测树中的每个节点,通过选取不同的预测模式对节点的几何位置信息进行预测得到预测残差,并且利用量化参数对几何预测残差进行量化。最终通过不断迭代,对预测树节点位置信息的预测残差、预测树结构以及量化参数等进行编码,生成二进制码流。At the encoding end, the input point cloud is first sorted. The sorting methods currently used include unordered, Morton order, azimuth order, and radial distance order. At the encoding end, two different methods can be used to establish the prediction tree structure. One method is to build a prediction tree based on KD-Tree. This prediction tree construction method can also be called high-latency slow mode. Another method is to use the lidar calibration information to divide each point into different Lasers and establish a prediction structure according to different Lasers. This prediction tree construction method can also be called low-latency fast mode. Next, based on the structure of the prediction tree, traverse each node in the prediction tree, predict the geometric position information of the node by selecting different prediction modes to obtain the prediction residual, and use the quantization parameter to quantize the geometric prediction residual. Finally, through continuous iteration, the prediction residual of the prediction tree node position information, the prediction tree structure, and the quantization parameters are encoded to generate a binary code stream.

在解码端,解码器通过不断解析码流,重构预测树结构。其次,解码器通过解析得到每个预测节点的几何位置预测残差信息以及量化参数,并且对预测残差进行反量化,恢复得到每个节点的重构几何位置信息,最终完成解码端的几何重构。At the decoding end, the decoder continuously parses the bitstream to reconstruct the prediction tree structure. Secondly, the decoder obtains the geometric position prediction residual information and quantization parameters of each prediction node through parsing, and dequantizes the prediction residual to recover the reconstructed geometric position information of each node, and finally completes the geometric reconstruction at the decoding end.

前文对点云的基本概念以及点云编解码的基本方式进行了介绍。本申请实施例主要对点云编解码中的重复点的处理方式进行改进。下文对点云编解码过程中的与重复点有关的技术进行详细介绍。The above article introduces the basic concept of point cloud and the basic method of point cloud encoding and decoding. The embodiment of the present application mainly improves the processing method of duplicate points in point cloud encoding and decoding. The following article introduces the technology related to duplicate points in the point cloud encoding and decoding process in detail.

G-PCC中的量化和重复点去除(体素化)Quantization and duplicate point removal (voxelization) in G-PCC

在G-PCC中,几何预处理阶段包括一个关键步骤,即体素化。在体素化过程中,点的位置在压缩之前以非负整数的形式来表示。为了得到这些整数值,点的位置会进行四舍五入。设点的初始位置为则对该点的量化方式如下:
In G-PCC, the geometric preprocessing stage includes a key step, namely voxelization. In the voxelization process, the position of the point is represented as a non-negative integer before compression. In order to obtain these integer values, the position of the point is rounded. Let the initial position of the point be The quantification method of this point is as follows:

其中Round(.)表示将括号内的数值四舍五入到最接近整数。Round(.) means rounding the value in the brackets to the nearest integer.

在经过量化之后,可能会出现位置相同的多个点,这些点被称为重复点。重复点的移除过程是可选的,通过几何参数集(geometry parameter set,GPS)层的语法元素geom_unique_points_flag来控制。当unique_points_flag被设置为0时,编码器才会对重复点的数量进行编码。同样,只有在解码得到的unique_points_flag等于0时,解码器才会解码重复点的数量。After quantization, there may be multiple points with the same position, which are called duplicate points. The removal of duplicate points is optional and is controlled by the syntax element geom_unique_points_flag of the geometry parameter set (GPS) layer. When unique_points_flag is set to 0, the encoder will encode the number of duplicate points. Similarly, the decoder will decode the number of duplicate points only if the decoded unique_points_flag is equal to 0.

因此,几何预处理中的体素化过程可以被看作是将一个[i-0.5,i+0.5)×[j-0.5,j+0.5)×[k-0.5,k+0.5)的包围盒(其中i,j,k是介于0到2d-1之间的整数值)内的所有点替换为该包围盒的中心点的过程。Therefore, the voxelization process in geometric preprocessing can be regarded as a process of replacing all points within a bounding box of [i-0.5,i+0.5)×[j-0.5,j+0.5)×[k-0.5,k+0.5) (where i, j, k are integer values between 0 and 2d -1) with the center point of the bounding box.

直接编码模式(direct coding model,DCM)Direct coding model (DCM)

参见图5,在G-PCC中,对节点或子节点中的点坐标进行熵编码称为DCM。DCM主要用于处理孤立节点。八叉树划分过程会利用邻居上下文信息进行熵编码,与八叉树划分过程不同,DCM直接对该点的三个坐标分量进行编码。As shown in Figure 5, in G-PCC, entropy coding of point coordinates in a node or subnode is called DCM. DCM is mainly used to process isolated nodes. The octree partitioning process uses neighbor context information for entropy coding. Unlike the octree partitioning process, DCM directly encodes the three coordinate components of the point.

对于待编码节点,是否启用DCM需要通过父节点及其邻居信息进行推断,这一过程被称为推断直接编码模式(infer direct coding model,IDCM)。如图6所示,IDCM会先确定当前节点是否具有DCM编码资格(eligible)。如果当前节点具有DCM编码资格,则可以对当前节点进行DCM编码(当然,还可以引入其他判断条件,如判断当前节点中的点的数量是否小于阈值(nb_points≤th)等)。如果当前节点不具有DCM编码资格,则可以对当前节点进行八叉树编码。For the node to be encoded, whether to enable DCM needs to be inferred through the parent node and its neighbor information. This process is called infer direct coding model (IDCM). As shown in Figure 6, IDCM will first determine whether the current node is eligible for DCM encoding. If the current node is eligible for DCM encoding, the current node can be DCM encoded (of course, other judgment conditions can also be introduced, such as judging whether the number of points in the current node is less than the threshold (nb_points≤th), etc.). If the current node is not eligible for DCM encoding, the current node can be octree encoded.

当前节点是否具有DCM编码资格可以基于当前节点的父节点本身或父节点的邻居信息确定,这些信息可以称为推论(inference)。Whether the current node is eligible for DCM coding may be determined based on the parent node of the current node itself or the neighbor information of the parent node, which may be referred to as inference.

DCM编码资格的推论可以分为如下两种:The inferences of DCM coding eligibility can be divided into the following two categories:

1)基于父母的资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且祖父节点(即父节点的父节点)最多具有两个被占用的子节点(即父节点以及可能还有一个其他节点)。1) Parent-based eligibility: There is only one occupied child node at the parent node level (i.e. the current node), and the grandparent node (i.e. the parent node's parent node) has at most two occupied child nodes (i.e. the parent node and possibly one other node).

2)6N资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且没有被占用的邻居节点(这里提到的邻居节点指的是上下左右前后6个邻居节点)。2) 6N qualification: There is only one occupied child node (i.e. the current node) at the parent node level, and no occupied neighbor nodes (the neighbor nodes mentioned here refer to the 6 neighbor nodes above, below, left, right, front and back).

为了适应不同的压缩效率和/或编码时间,IDCM有三种可能的推断方式。推断方式1指的是:如果当前节点满足基于父母的资格和6N资格,则开启DCM编码,这种推断方式压缩效果最好,但压缩时间较长。推断方式2指的是:如果当前节点满足6N资格,则开启DCM编码,这种推断方式2放宽了DCM的判断条件,更多的节点会启用DCM。推断方式3指的是:如果当前节点满足基于父母的资格,则开启DCM编码,这种推断方式采用了更宽松的判断条件,但压缩效率较低。In order to adapt to different compression efficiency and/or encoding time, IDCM has three possible inference methods. Inference method 1 means: if the current node meets the parent-based qualifications and 6N qualifications, DCM encoding is turned on. This inference method has the best compression effect, but the compression time is longer. Inference method 2 means: if the current node meets the 6N qualifications, DCM encoding is turned on. This inference method 2 relaxes the judgment conditions of DCM, and more nodes will enable DCM. Inference method 3 means: if the current node meets the parent-based qualifications, DCM encoding is turned on. This inference method uses more relaxed judgment conditions, but the compression efficiency is lower.

如果当前节点满足DCM编码资格,则首先编码一个二进制标志位,以指示当前节点是否使用DCM。如果该标志为1,则表示当前节点使用DCM;如果该标志为0,则表示当前节点不使用DCM。If the current node meets the DCM encoding qualification, a binary flag is first encoded to indicate whether the current node uses DCM. If the flag is 1, it means that the current node uses DCM; if the flag is 0, it means that the current node does not use DCM.

如果采用DCM模式,则可以采用如下步骤对当前节点进行编码。If the DCM mode is adopted, the following steps can be used to encode the current node.

第一:编码二进制语法元素direct_point_cnt_eq2。direct_point_cnt_eq2标识当前节点是否包含2个不同的点(即2个点的几何信息不同)。如果direct_point_cnt_eq2为1,则表示当前节点包含2个不同 的点;如果direct_point_cnt_eq2为0,则表示当前节点仅包含几何信息相同的点(可以是仅包含1个点,也可以是包含几何信息相同的多个点)。First: Encode the binary syntax element direct_point_cnt_eq2. direct_point_cnt_eq2 indicates whether the current node contains two different points (i.e., the geometric information of the two points is different). If direct_point_cnt_eq2 is 1, it means that the current node contains two different points. points; if direct_point_cnt_eq2 is 0, it means that the current node only contains points with the same geometric information (it can be only 1 point or multiple points with the same geometric information).

第二:如果direct_point_cnt_eq2为0,则编码重复点数量。首先,编码二进制语法元素DupPointsCntGt0,以标识当前节点是否包含重复点。如果DupPointsCntGt0为1,则表示当前节点包含重复点;如果DupPointsCntGt0为0,则表示当前节点不包含重复点,此时,重复点数量为0。如果DupPointsCntGt0为1,则进一步编码二进制语法元素DupPointsCntGt1。DupPointsCntGt1用于标识当前节点是否包含1个重复点(即2个点的几何信息相同)。如果DupPointsCntGt1为1,则表示当前节点包含1个以上重复点;如果DupPointsCntGt1为0,则表示当前节点包含1个重复点。如果DupPointsCntGt1为1,则进一步编码语法元素DupPointsCntEg1。DupPointsCntEg1+2即为重复点数量。Second: If direct_point_cnt_eq2 is 0, encode the number of duplicate points. First, encode the binary syntax element DupPointsCntGt0 to identify whether the current node contains duplicate points. If DupPointsCntGt0 is 1, it means that the current node contains duplicate points; if DupPointsCntGt0 is 0, it means that the current node does not contain duplicate points, and the number of duplicate points is 0. If DupPointsCntGt0 is 1, further encode the binary syntax element DupPointsCntGt1. DupPointsCntGt1 is used to identify whether the current node contains 1 duplicate point (that is, the geometric information of the two points is the same). If DupPointsCntGt1 is 1, it means that the current node contains more than 1 duplicate point; if DupPointsCntGt1 is 0, it means that the current node contains 1 duplicate point. If DupPointsCntGt1 is 1, further encode the syntax element DupPointsCntEg1. DupPointsCntEg1+2 is the number of duplicate points.

多叉树叶子节点的重复点数编解码Encoding and decoding of duplicate points of multi-branch tree leaf nodes

在G-PCC的多叉树(如八叉树)编码中,多叉树叶子节点可能包含重复点。多叉树叶子节点的重复点数的编码方法包括如下步骤。首先,编码二进制语法元素DupPointsCntGt0L。DupPointsCntGt0L可用于表示叶子节点是否包含重复点。如果DupPointsCntGt0L为1,则表示该叶子节点包含重复点;如果DupPointsCntGt0L为0,则表示该叶子节点不包含重复点。然后,当DupPointsCntGt0L为1时,使用指数哥伦布编码该叶子节点内的重复点数量。In the multi-tree (such as octree) encoding of G-PCC, the multi-tree leaf node may contain duplicate points. The encoding method of the number of duplicate points of the multi-tree leaf node includes the following steps. First, encode the binary syntax element DupPointsCntGt0L. DupPointsCntGt0L can be used to indicate whether the leaf node contains duplicate points. If DupPointsCntGt0L is 1, it means that the leaf node contains duplicate points; if DupPointsCntGt0L is 0, it means that the leaf node does not contain duplicate points. Then, when DupPointsCntGt0L is 1, the number of duplicate points in the leaf node is encoded using Exponential Columbus.

多叉树叶子节点的重复点数的解码方法包括如下步骤。首先,解码出二进制语法元素DupPointsCntGt0L。如果DupPointsCntGt0L为1,则表示该叶子节点包含重复点;如果DupPointsCntGt0L为0,则表示该叶子节点不包含重复点。当DupPointsCntGt0L为1时,则继续使用指数哥伦布解码出该叶子节点内的重复点数量。The decoding method of the number of repeated points of a multi-fork tree leaf node includes the following steps. First, decode the binary syntax element DupPointsCntGt0L. If DupPointsCntGt0L is 1, it means that the leaf node contains repeated points; if DupPointsCntGt0L is 0, it means that the leaf node does not contain repeated points. When DupPointsCntGt0L is 1, continue to use the exponential Columbus decoding to decode the number of repeated points in the leaf node.

熵编码概率模型及初始化Entropy coding probability model and initialization

对于一个概率模型,首先确定其对应的算术编码器的区间起始点(Low)和区间宽度(Range)。然后,可以根据输入的二进制(bin)值不断更新MPS和LPS的区间大小,最终以Low的取值作为编码的输出。For a probability model, first determine the interval starting point (Low) and interval width (Range) of the corresponding arithmetic encoder. Then, the interval size of MPS and LPS can be continuously updated according to the input binary (bin) value, and finally the value of Low is used as the output of the encoding.

下文结合图8,详细描述概率模型的更新过程。The updating process of the probability model is described in detail below in conjunction with FIG8 .

首先,初始化Low和Range(Range的初始区间宽度为510,用9比特表示)。如果概率模型的初始值为第一值(第一值对应于MPS和LPS的概率相等的情况,也就是说,如果概率模型的初始值为第一值,则MPS和LPS的概率相等,均为0.5),则MPS的初始区间RMPS宽度与LPS的初始区间宽度RLPS一致,各占Range的初始区间宽度的一半。First, initialize Low and Range (the initial interval width of Range is 510, represented by 9 bits). If the initial value of the probability model is the first value (the first value corresponds to the case where the probabilities of MPS and LPS are equal, that is, if the initial value of the probability model is the first value, the probabilities of MPS and LPS are equal, both 0.5), then the width of the initial interval R MPS of MPS is consistent with the initial interval width R LPS of LPS, each occupying half of the initial interval width of Range.

其次,确定待编码的Bin值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPSSecondly, determine whether the Bin value to be encoded is equal to LPS or MPS, so as to update Low and Range. Referring to FIG7 , if Bin=LPS, then Low=Low+R MPS , Range=R LPS ; if Bin=MPS, then Low remains unchanged and Range is equal to R MPS .

然后,使用Bin值、Low、Range更新概率模型。Then, the probability model is updated using Bin value, Low, and Range.

随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。As Range is updated, the value of Range may be less than half of the initial interval length, that is, less than 256. At this time, a renormalization process is required. Figure 8 shows the process of the renormalization process. During the renormalization process, Low and Range are left shifted until the value of Range is greater than half of the initial interval width. The left shift of Range is to expand the interval width of the arithmetic encoder, and the left shift of Low is to output bits. The number of bits of the left shift of the two is the same.

前文对点云编解码以及点云编解码中的重复点处理进行了详细介绍。经过仔细研究发现,点云编解码的某些算法设计仍然存在不合理之处,从而降低了编解码效率。下面对此进行详细分析。The previous article introduced point cloud encoding and decoding and the processing of duplicate points in point cloud encoding and decoding in detail. After careful study, it was found that some algorithm designs of point cloud encoding and decoding are still unreasonable, which reduces the encoding and decoding efficiency. This is analyzed in detail below.

前文提到,DCM编码中的语法元素DupPointsCntGt0用于标识使用DCM的节点是否包含重复点,多叉树叶子节点中的语法元素DupPointsCntGt0L用于标识多叉树叶子节点是否包含重复点。相关技术中,DupPointsCntGt0和DupPointsCntGt0L采用同一概率模型进行熵编码。但是,使用DCM编解码的节点包含重复点的实际概率与多叉树叶子节点包含重复点的实际概率是不同的,二者使用同一概率模型进行熵编码与实际情况不符,因此会带来编码效率的损失。As mentioned above, the syntax element DupPointsCntGt0 in the DCM encoding is used to identify whether the node using DCM contains repeated points, and the syntax element DupPointsCntGt0L in the multi-fork tree leaf node is used to identify whether the multi-fork tree leaf node contains repeated points. In the related art, DupPointsCntGt0 and DupPointsCntGt0L use the same probability model for entropy coding. However, the actual probability that the node using DCM encoding and decoding contains repeated points is different from the actual probability that the multi-fork tree leaf node contains repeated points. The two use the same probability model for entropy coding, which is inconsistent with the actual situation, and therefore will cause a loss in coding efficiency.

除此之外,DCM编码中的语法元素DupPointsCntGt0和多叉树叶子节点中的语法元素DupPointsCntGt0L取值为0的概率非常高。即大部分情况下,使用DCM编解码的节点和多叉树叶子节点均不包括重复点。相关技术并未充分利用这一先验信息,将DupPointsCntGt0对应的概率模型(与DupPointsCntGt0L共用同一概率模型)的初始值设置为第一值(第一值对应于MPS和LPS的概率相等的情况,也就是说,如果概率模型的初始值为第一值,则MPS和LPS的概率相等,均为0.5)。如果概率模型的初始值设置为第一值,则MPS和LPS对应的初始区间宽度一致,此时编码器需要不断输出比特(输出bin值0)去更新MPS对应的区间宽度,使MPS的区间宽度达到一定程度。只有当MPS区间宽度达到MPS接近1时对应的区间宽度,才开始节省比特。这些比特的输出其实是由于初始值设置不合理而造成的。如果能够将初始值设定合适,则可以避免上文提到的“不断输出比特,使MPS区间达到一定程度”的过程,进而提升编码效率。 In addition, the probability that the syntax element DupPointsCntGt0 in DCM coding and the syntax element DupPointsCntGt0L in the multi-fork tree leaf node take the value of 0 is very high. That is, in most cases, the nodes and multi-fork tree leaf nodes using DCM encoding and decoding do not include repeated points. The relevant technology does not make full use of this prior information, and sets the initial value of the probability model corresponding to DupPointsCntGt0 (sharing the same probability model with DupPointsCntGt0L) to the first value (the first value corresponds to the case where the probabilities of MPS and LPS are equal, that is, if the initial value of the probability model is the first value, the probabilities of MPS and LPS are equal, both 0.5). If the initial value of the probability model is set to the first value, the initial interval widths corresponding to MPS and LPS are consistent. At this time, the encoder needs to continuously output bits (output bin value 0) to update the interval width corresponding to MPS, so that the interval width of MPS reaches a certain degree. Only when the MPS interval width reaches the interval width corresponding to MPS close to 1, bits begin to be saved. The output of these bits is actually caused by unreasonable initial value setting. If the initial value can be set appropriately, the process of "continuously outputting bits to make the MPS interval reach a certain level" mentioned above can be avoided, thereby improving the coding efficiency.

针对上述问题,本申请实施例提出一种编码方法,包括:根据第一概率模型对第一标识信息进行编码,第一标识信息用于指示当前节点是否包含重复点;如果第一标识信息指示当前节点包含重复点,则对当前节点包含的重复点数量进行编码;其中,第一概率模型满足以下中的至少一项:第一概率模型的初始值不等于第一值,第一值对应于:MPS和LPS的概率相等;第一概率模型与第二概率模型不同,第二概率模型为第二标识信息对应的概率模型;其中,第一标识信息用于指示使用DCM的节点是否包含重复点,第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,第一标识信息用于指示多叉树的叶子节点是否包含重复点,第二标识信息用于指示使用直接编码模式的节点是否包含重复点。In response to the above problems, an embodiment of the present application proposes a coding method, including: encoding first identification information according to a first probability model, the first identification information being used to indicate whether the current node contains duplicate points; if the first identification information indicates that the current node contains duplicate points, encoding the number of duplicate points contained in the current node; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using DCM contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points, and the second identification information is used to indicate whether a node using a direct coding mode contains duplicate points.

本申请实施例还提出一种解码方法,包括:根据第一概率模型对第一标识信息进行解码,第一标识信息用于指示当前节点是否包含重复点;如果第一标识信息指示当前节点包含重复点,则确定当前节点包含的重复点数量;其中,第一概率模型满足以下中的至少一项:第一概率模型的初始值不等于第一值,第一值对应于:MPS和LPS的概率相等;第一概率模型与第二概率模型不同,第二概率模型为第二标识信息对应的概率模型;其中,第一标识信息用于指示使用DCM的节点是否包含重复点,第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,第一标识信息用于指示多叉树的叶子节点是否包含重复点,第二标识信息用于指示使用直接编码模式的节点是否包含重复点。An embodiment of the present application also proposes a decoding method, comprising: decoding first identification information according to a first probability model, the first identification information being used to indicate whether the current node contains duplicate points; if the first identification information indicates that the current node contains duplicate points, determining the number of duplicate points contained in the current node; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using DCM contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points, and the second identification information is used to indicate whether a node using a direct coding mode contains duplicate points.

本申请实施例将第一标识信息对应的概率模型的初始值设置为不等于第一值(第一值对应于MPS和LPS的概率相等的情况)和/或将第一标识信息对应的概率模型与第二标识信息对应的概率模型设置为不同的概率模型,上述设置方式更加符合实际情况,从而有助于提升点云的编解码效率。In an embodiment of the present application, the initial value of the probability model corresponding to the first identification information is set to be unequal to the first value (the first value corresponds to the situation where the probabilities of MPS and LPS are equal) and/or the probability model corresponding to the first identification information and the probability model corresponding to the second identification information are set to different probability models. The above setting method is more in line with the actual situation, thereby helping to improve the encoding and decoding efficiency of the point cloud.

下文结合实施例一和实施例二,对本申请实施例进行更为详细地举例说明。实施例一是站在DCM编解码过程进行描述的,实施例二是站在多叉树叶子节点的编解码过程进行描述的。在实施例一中,第一标识信息用于指示使用DCM的节点是否包含重复点,第二标识信息用于指示多叉树的叶子节点是否包含重复点。在实施例二中,第一标识信息用于指示多叉树的叶子节点是否包含重复点,第二标识信息用于指示使用直接编码模式的节点是否包含重复点。应理解,点云编解码过程可能既要进行DCM编解码,还要进行多叉树树叶子节点编解码,因此实施例一和实施例二可以相互组合。The following is a more detailed example explanation of the embodiments of the present application in combination with Embodiment 1 and Embodiment 2. Embodiment 1 is described from the perspective of the DCM encoding and decoding process, and Embodiment 2 is described from the perspective of the encoding and decoding process of the leaf nodes of a multi-branch tree. In Embodiment 1, the first identification information is used to indicate whether the node using DCM contains duplicate points, and the second identification information is used to indicate whether the leaf nodes of the multi-branch tree contain duplicate points. In Embodiment 2, the first identification information is used to indicate whether the leaf nodes of the multi-branch tree contain duplicate points, and the second identification information is used to indicate whether the nodes using the direct coding mode contain duplicate points. It should be understood that the point cloud encoding and decoding process may require both DCM encoding and decoding and encoding and decoding of the leaf nodes of the multi-branch tree, so Embodiment 1 and Embodiment 2 can be combined with each other.

实施例一:DCM编解码Example 1: DCM encoding and decoding

图9为本申请实施例提供的解码方法的流程示意图。图9的方法可应用于解码器。该解码器例如可以是支持G-PCC的解码器。FIG9 is a flow chart of a decoding method provided in an embodiment of the present application. The method of FIG9 can be applied to a decoder. The decoder can be, for example, a decoder supporting G-PCC.

在步骤S910,根据第一概率模型对第一标识信息进行解码(如熵解码)。第一标识信息用于指示当前节点(该当前节点指的是使用DCM的节点)是否包含重复点。第一标识信息例如可以是二进制语法元素DupPointsCntGt0。第一标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第一标识信息的取值为值a,则可以表示当前节点包含重复点。如果第一标识信息的取值为值b,则可以表示当前节点不包含重复点。In step S910, the first identification information is decoded (such as entropy decoding) according to the first probability model. The first identification information is used to indicate whether the current node (the current node refers to the node using DCM) contains duplicate points. The first identification information can be, for example, a binary syntax element DupPointsCntGt0. The value of the first identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the first identification information is value a, it can be indicated that the current node contains duplicate points. If the value of the first identification information is value b, it can be indicated that the current node does not contain duplicate points.

第一概率模型指的是用于对第一标识信息进行熵解码的概率模型。第一概率模型的MPS可以为0(即bin值0),LPS可以为1(即bin值1)。第一概率模型的初始值可以包括第一概率模型的MPS的概率初始值和/或LPS的概率初始值。也就是说,第一概率模型的初始值可用于表示第一概率模型为0和/或为1的概率。The first probability model refers to a probability model for entropy decoding the first identification information. The MPS of the first probability model can be 0 (i.e., bin value 0), and the LPS can be 1 (i.e., bin value 1). The initial value of the first probability model may include the probability initial value of the MPS of the first probability model and/or the probability initial value of the LPS. In other words, the initial value of the first probability model can be used to represent the probability that the first probability model is 0 and/or 1.

在一些实现方式中,第一概率模型的初始值不等于第一值。第一值对应于MPS和LPS的概率相等的情况。也就是说,如果第一概率模型的初始值为第一值,则MPS和LPS的概率相等。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为不等于第一值,与实际情况更相符,可以减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。In some implementations, the initial value of the first probability model is not equal to the first value. The first value corresponds to the case where the probabilities of MPS and LPS are equal. That is, if the initial value of the first probability model is the first value, the probabilities of MPS and LPS are equal. Since the probability that the first identification information takes a value of 0 is very high, setting the initial value of the first probability model to be not equal to the first value is more consistent with the actual situation, and can reduce the process of the decoder continuously updating the MPS interval width based on the renormalization operation, thereby improving decoding efficiency.

示例性地,第一概率模型的初始值的设置可以使得MPS的概率大于或等于0.6,0.7,0.8或0.9。可选地,第一概率模型的初始值可以使得MPS的概率等于1。例如,第一概率模型的初始值可以等于1,16位二进制精度时为0xffff。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为使得MPS的概率等于1的值,与实际情况更相符,可以最大程度减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。Exemplarily, the initial value of the first probability model can be set so that the probability of MPS is greater than or equal to 0.6, 0.7, 0.8 or 0.9. Optionally, the initial value of the first probability model can make the probability of MPS equal to 1. For example, the initial value of the first probability model can be equal to 1, which is 0xffff at 16-bit binary precision. Since the probability that the value of the first identification information is 0 is very high, setting the initial value of the first probability model to a value that makes the probability of MPS equal to 1 is more consistent with the actual situation, and can minimize the process of the decoder continuously updating the MPS interval width based on the renormalization operation, thereby improving decoding efficiency.

前文提到,第一概率模型用于对第一标识信息进行解码。在一些实现方式中,除了用于对第一标识信息进行解码之外,第一概率模型还可用于对第二标识信息解码。第二标识信息用于指示多叉树(如八叉树、四叉树或二叉树)的叶子节点是否包含重复点。第二标识信息例如可以是二进制语法元素DupPointsCntGt0L。第二标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第二标识信息的取值为值a,则可以表示多叉树叶子节点包含重复点。如果第二标识信息的取值为值b,则可以表示多叉树叶子节点不包含重复点。As mentioned above, the first probability model is used to decode the first identification information. In some implementations, in addition to being used to decode the first identification information, the first probability model can also be used to decode the second identification information. The second identification information is used to indicate whether the leaf node of a multi-branch tree (such as an octree, a quadtree, or a binary tree) contains duplicate points. The second identification information can be, for example, a binary syntax element DupPointsCntGt0L. The value of the second identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the second identification information is value a, it can be indicated that the multi-branch tree leaf node contains duplicate points. If the value of the second identification information is value b, it can be indicated that the multi-branch tree leaf node does not contain duplicate points.

但是,使用DCM的节点包含重复点的实际概率与多叉树叶子节点包含重复点的实际概率是不同的,二者使用同一概率模型进行熵解码与实际情况不符,可能会降低解码效率。因此,在另一些实现方式中, 第二标识信息可以对应第二概率模型(即第二标识信息可以使用第二概率模型进行解码)。将第一标识信息和第二标识信息对应的概率模型设置为不同的概率模型,两个概率模型的更新过程互不影响,有助于提升解码效率。However, the actual probability of a node using DCM containing duplicate points is different from the actual probability of a multi-tree tree leaf node containing duplicate points. Using the same probability model for entropy decoding is inconsistent with the actual situation and may reduce decoding efficiency. Therefore, in some other implementations, The second identification information may correspond to a second probability model (ie, the second identification information may be decoded using the second probability model). The probability models corresponding to the first identification information and the second identification information are set to different probability models, and the update processes of the two probability models do not affect each other, which helps to improve decoding efficiency.

在一些实现方式中,在执行步骤S910之前,可以先对第三标识信息进行解码。该第三标识信息用于指示当前节点是否包含几何信息不同的点。第三标识信息例如可以是二进制语法元素direct_point_cnt_eq2。第三标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第三标识信息的取值为值a,则可以表示当前节点包含几何信息不同的点(如包括2个几何信息不同的点)。如果第三标识信息的取值为值b,则可以表示当前节点仅包含几何信息相同的点。例如,当前节点仅包括1个点;或者,当前节点包括多个点,且该多个点的几何信息相同。在第三标识信息指示当前节点仅包含几何信息相同的点的情况下,继续执行步骤S910;否则,可以不执行步骤S910。In some implementations, before executing step S910, the third identification information may be decoded first. The third identification information is used to indicate whether the current node contains points with different geometric information. The third identification information may be, for example, a binary syntax element direct_point_cnt_eq2. The value of the third identification information may include a value and b value. Among them, the value a may be, for example, 1, and the value b may be, for example, 0. If the value of the third identification information is value a, it may indicate that the current node contains points with different geometric information (such as 2 points with different geometric information). If the value of the third identification information is value b, it may indicate that the current node contains only points with the same geometric information. For example, the current node includes only 1 point; or, the current node includes multiple points, and the geometric information of the multiple points is the same. If the third identification information indicates that the current node contains only points with the same geometric information, continue to execute step S910; otherwise, step S910 may not be executed.

继续参见图9,在一些实现方式中,图9的方法还可以包括步骤S920,即如果第一标识信息指示当前节点包含重复点,则确定当前节点包含的重复点数量。Continuing to refer to FIG. 9 , in some implementations, the method of FIG. 9 may further include step S920 , that is, if the first identification information indicates that the current node contains duplicate points, determining the number of duplicate points contained in the current node.

例如,可以对第四标识信息进行解码。第四标识信息用于指示当前节点是否包含1个重复点。第四标识信息例如可以是二进制语法元素DupPointsCntGt1。第四标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第四标识信息的取值为值a,则可以表示当前节点包含多个重复点(或1个以上重复点)。如果第四标识信息的取值为值b,则可以表示当前节点包含1个重复点。如果第四标识信息指示当前节点包含1个重复点,则确定重复点数量为1。For example, the fourth identification information can be decoded. The fourth identification information is used to indicate whether the current node contains 1 duplicate point. The fourth identification information can be, for example, a binary syntax element DupPointsCntGt1. The value of the fourth identification information may include a value and b value. Among them, the value a can be 1, for example, and the value b can be 0, for example. If the value of the fourth identification information is a, it can indicate that the current node contains multiple duplicate points (or more than 1 duplicate points). If the value of the fourth identification information is b, it can indicate that the current node contains 1 duplicate point. If the fourth identification information indicates that the current node contains 1 duplicate point, the number of duplicate points is determined to be 1.

进一步地,在一些实现方式中,如果第四标识信息指示当前节点包括多个重复点,则对第五标识信息进行解码。第五标识信息用于指示或确定当前节点包含的重复点数量。第五标识信息例如可以是二进制语法元素DupPointsCntEg1。第五标识信息例如可以基于0阶指数哥伦布解码。在解析得到第五标识信息的取值之后,可以根据第五标识信息的取值确定当前节点包含的重复点数量。例如,可以将第五标识信息的取值与2之和确定为当前节点包含的重复点数量(如DupPointsCntEg1+2)。Further, in some implementations, if the fourth identification information indicates that the current node includes multiple repeated points, the fifth identification information is decoded. The fifth identification information is used to indicate or determine the number of repeated points contained in the current node. The fifth identification information can be, for example, a binary syntax element DupPointsCntEg1. The fifth identification information can be, for example, based on 0-order exponential Columbus decoding. After parsing the value of the fifth identification information, the number of repeated points contained in the current node can be determined according to the value of the fifth identification information. For example, the sum of the value of the fifth identification information and 2 can be determined as the number of repeated points contained in the current node (such as DupPointsCntEg1+2).

前文提到,当前节点为使用DCM的节点(如果当前节点不使用DCM,则可以对当前节点进行多叉树解码)。在执行步骤S910之前,可以先根据父节点的信息和/或父节点的邻居信息推断当前节点是否使用DCM(即是否具有DCM解码资格)。下文对当前节点是否使用DCM的推断方式进行详细地举例说明。As mentioned above, the current node is a node that uses DCM (if the current node does not use DCM, multitree decoding can be performed on the current node). Before executing step S910, it can be inferred whether the current node uses DCM (i.e., whether it has DCM decoding qualifications) based on the information of the parent node and/or the neighbor information of the parent node. The following is a detailed example of the inference method of whether the current node uses DCM.

在一些实现方式中,可以根据父节点的信息确定第一条件和/或第二条件是否满足。第一条件可以包括父节点的被占用的子节点的数量为1,且当前节点的祖父节点(即父节点的父节点)的被占用的子节点的数量小于或等于2(即父节点以及可能还有一个其他节点)。第二条件可以包括父节点的被占用的子节点的数量为1,且父节点的邻居节点(这里提到的邻居节点例如可以指上下左右前后6个邻居节点)均未被占用。如果第一条件和/或第二条件满足,则确定当前节点使用DCM。例如,如果第一条件满足,则确定当前节点使用DCM。又如,如果第二条件满足,则确定当前节点使用DCM。又如,如果第一条件和第二条件同时满足,则确定当前节点使用DCM。In some implementations, it can be determined whether the first condition and/or the second condition are met based on the information of the parent node. The first condition may include that the number of occupied child nodes of the parent node is 1, and the number of occupied child nodes of the grandparent node of the current node (i.e., the parent node of the parent node) is less than or equal to 2 (i.e., the parent node and possibly another node). The second condition may include that the number of occupied child nodes of the parent node is 1, and the neighbor nodes of the parent node (the neighbor nodes mentioned here may refer to, for example, 6 neighbor nodes up, down, left, right, front and back) are not occupied. If the first condition and/or the second condition are met, it is determined that the current node uses DCM. For example, if the first condition is met, it is determined that the current node uses DCM. For another example, if the second condition is met, it is determined that the current node uses DCM. For another example, if the first condition and the second condition are met at the same time, it is determined that the current node uses DCM.

下文以第一条件为“基于父母的资格”,第二条件为“6N资格”为例,对当前节点是否使用DCM解码进行更为详细地举例说明。The following uses the first condition of "parent-based qualification" and the second condition of "6N qualification" as an example to illustrate in more detail whether the current node uses DCM decoding.

当前节点是否具有DCM解码资格可以基于当前节点的父节点本身或父节点的邻居信息确定,这些信息可以称为推论(inference)。Whether the current node is eligible for DCM decoding may be determined based on the parent node of the current node itself or neighbor information of the parent node, which may be referred to as inference.

DCM解码资格的推论可以分为如下两种:The inference of DCM decoding eligibility can be divided into the following two categories:

1)基于父母的资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且祖父节点(即父节点的父节点)最多具有两个被占用的子节点(即父节点以及可能还有一个其他节点)。1) Parent-based eligibility: There is only one occupied child node at the parent node level (i.e. the current node), and the grandparent node (i.e. the parent node's parent node) has at most two occupied child nodes (i.e. the parent node and possibly one other node).

2)6N资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且没有被占用的邻居节点(这里提到的邻居指的是上下左右前后6个邻居节点)。2) 6N qualification: There is only one occupied child node (i.e. the current node) at the parent node level, and no occupied neighbor nodes (the neighbors mentioned here refer to the 6 neighbor nodes above, below, left, right, front and back).

IDCM有三种可能推断方式。推断方式1指的是:如果当前节点满足基于父母的资格和6N资格,则开启DCM解码。推断方式2指的是:如果当前节点满足6N资格,则开启DCM解码。推断方式3指的是:如果当前节点满足基于父母的资格,则开启DCM解码。There are three possible inference methods for IDCM. Inference method 1 means: if the current node meets the parent-based qualification and 6N qualification, then DCM decoding is turned on. Inference method 2 means: if the current node meets the 6N qualification, then DCM decoding is turned on. Inference method 3 means: if the current node meets the parent-based qualification, then DCM decoding is turned on.

在对第一标识信息进行解码之后,还可以根据第一标识信息的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据第一标识信息的取值更新编码区间参数的取值之后,可以根据第一标识信息的取值以及编码区间参数的更新值,更新第一概率模型。After decoding the first identification information, the value of the coding interval parameter can also be updated according to the value of the first identification information. The coding interval parameter may include a first parameter and/or a second parameter. The first parameter is used to indicate the starting point of the coding interval (the starting point of the coding interval of the arithmetic encoder). The first parameter can be represented by Low. The second parameter is used to indicate the width of the coding interval. The second parameter can be represented by Range. The initial value of the second parameter can be 510, represented by 9 bits. After updating the value of the coding interval parameter according to the value of the first identification information, the first probability model can be updated according to the value of the first identification information and the updated value of the coding interval parameter.

例如,首先,确定第一标识信息的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。 RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。For example, first, determine whether the value of the first identification information is equal to LPS or MPS, so as to update Low and Range. Referring to FIG7 , if Bin=LPS, then Low=Low+R MPS , Range=R LPS ; if Bin=MPS, then Low remains unchanged and Range is equal to R MPS . R MPS represents the interval width corresponding to MPS, and R LPS represents the interval width corresponding to LPS.

然后,使用Bin值、Low、Range更新概率模型。Then, the probability model is updated using Bin value, Low, and Range.

随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作(需要说明的是,本申请各个实施例提及的“对参数进行左移操作”指的是对该参数的二进制值进行左移操作),直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。As Range is updated, the value of Range may be less than half of the initial interval length, that is, less than 256. At this time, a renormalization process is required. Figure 8 shows the process of the renormalization process. During the renormalization process, Low and Range will be shifted left (it should be noted that the "left shift operation on the parameter" mentioned in each embodiment of the present application refers to the left shift operation on the binary value of the parameter) until the value of Range is greater than half of the initial interval width. The left shift of Range is to expand the interval width of the arithmetic encoder, and the left shift of Low is to output bits, and the number of bits of the left shift of the two is the same.

上文结合图9,详细描述了本申请实施例提供的解码方法。下文结合图10,详细描述本申请实施例提供的编码方法。The decoding method provided by the embodiment of the present application is described in detail above in conjunction with Figure 9. The encoding method provided by the embodiment of the present application is described in detail below in conjunction with Figure 10.

图10为本申请实施例提供的编码方法的流程示意图。图10的方法可应用于点云编码器。该点云编码器例如可以是支持G-PCC的解码器。Fig. 10 is a flow chart of an encoding method provided in an embodiment of the present application. The method of Fig. 10 can be applied to a point cloud encoder. The point cloud encoder can be, for example, a decoder supporting G-PCC.

在步骤S1010,根据第一概率模型对第一标识信息进行编码(如熵编码)。第一标识信息用于指示当前节点(该当前节点指的是使用DCM的节点)是否包含重复点。第一标识信息例如可以是二进制语法元素DupPointsCntGt0。第一标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第一标识信息的取值为值a,则可以表示当前节点包含重复点。如果第一标识信息的取值为值b,则可以表示当前节点不包含重复点。In step S1010, the first identification information is encoded (such as entropy coding) according to the first probability model. The first identification information is used to indicate whether the current node (the current node refers to the node using DCM) contains duplicate points. The first identification information can be, for example, a binary syntax element DupPointsCntGt0. The value of the first identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the first identification information is value a, it can be indicated that the current node contains duplicate points. If the value of the first identification information is value b, it can be indicated that the current node does not contain duplicate points.

第一概率模型指的是用于对第一标识信息进行熵编码的概率模型。第一概率模型的MPS可以为0(即bin值0),LPS可以为1(即bin值1)。第一概率模型的初始值可以包括第一概率模型的MPS的概率初始值和/或LPS的概率初始值。也就是说,第一概率模型的初始值可用于表示第一概率模型为0和/或为1的概率。The first probability model refers to a probability model for entropy encoding the first identification information. The MPS of the first probability model can be 0 (i.e., bin value 0), and the LPS can be 1 (i.e., bin value 1). The initial value of the first probability model may include the probability initial value of the MPS of the first probability model and/or the probability initial value of the LPS. In other words, the initial value of the first probability model can be used to represent the probability that the first probability model is 0 and/or 1.

在一些实现方式中,第一概率模型的初始值不等于第一值。第一值对应于MPS和LPS的概率相等的情况。也就是说,如果第一概率模型的初始值为第一值,则MPS和LPS的概率相等。也就是说,第一概率模型中,MPS对应的初始区间宽度大于LPS对应的初始区间宽度。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为不等于第一值,与实际情况更相符,可以减少编码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升编码效率。In some implementations, the initial value of the first probability model is not equal to the first value. The first value corresponds to the case where the probabilities of MPS and LPS are equal. That is, if the initial value of the first probability model is the first value, the probabilities of MPS and LPS are equal. That is, in the first probability model, the initial interval width corresponding to MPS is greater than the initial interval width corresponding to LPS. Since the probability that the value of the first identification information is 0 is very high, setting the initial value of the first probability model to be not equal to the first value is more consistent with the actual situation, which can reduce the process of the encoder continuously updating the MPS interval width based on the renormalization operation, thereby improving the coding efficiency.

示例性地,第一概率模型的初始值的设置可以使得MPS的概率大于或等于0.6,0.7,0.8或0.9。可选地,第一概率模型的初始值的设置可以使得MPS的概率等于1。例如,第一概率模型的初始值可以等于1,16位二进制精度时为0xffff。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为使得MPS的概率等于1的值,与实际情况更相符,可以最大程度减少编码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升编码效率。Exemplarily, the initial value of the first probability model can be set so that the probability of MPS is greater than or equal to 0.6, 0.7, 0.8 or 0.9. Optionally, the initial value of the first probability model can be set so that the probability of MPS is equal to 1. For example, the initial value of the first probability model can be equal to 1, which is 0xffff at 16-bit binary precision. Since the probability that the value of the first identification information is 0 is very high, setting the initial value of the first probability model to a value that makes the probability of MPS equal to 1 is more consistent with the actual situation, and can minimize the process of the encoder continuously updating the MPS interval width based on the renormalization operation, thereby improving the coding efficiency.

前文提到,第一概率模型用于对第一标识信息进行编码。在一些实现方式中,除了用于对第一标识信息进行编码之外,第一概率模型还可用于对第二标识信息编码。第二标识信息用于指示多叉树(如八叉树、四叉树或二叉树)的叶子节点是否包含重复点。第二标识信息例如可以是二进制语法元素DupPointsCntGt0L。第二标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第二标识信息的取值为值a,则可以表示多叉树叶子节点包含重复点。如果第二标识信息的取值为值b,则可以表示多叉树叶子节点不包含重复点。As mentioned above, the first probability model is used to encode the first identification information. In some implementations, in addition to being used to encode the first identification information, the first probability model can also be used to encode the second identification information. The second identification information is used to indicate whether the leaf node of a multi-branch tree (such as an octree, a quadtree, or a binary tree) contains duplicate points. The second identification information can be, for example, a binary syntax element DupPointsCntGt0L. The value of the second identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the second identification information is value a, it can be indicated that the multi-branch tree leaf node contains duplicate points. If the value of the second identification information is value b, it can be indicated that the multi-branch tree leaf node does not contain duplicate points.

但是,使用DCM的节点包含重复点的实际概率与多叉树叶子节点包含重复点的实际概率是不同的,二者使用同一概率模型进行熵编码与实际情况不符,可能会降低编码效率。因此,在另一些实现方式中,第二标识信息可以对应第二概率模型(即第二标识信息可以使用第二概率模型进行编码)。将第一标识信息和第二标识信息对应的概率模型设置为不同的概率模型,两个概率模型的更新过程互不影响,有助于提升编码效率。However, the actual probability that a node using DCM contains duplicate points is different from the actual probability that a multi-tree tree leaf node contains duplicate points. Using the same probability model for entropy coding for both is inconsistent with the actual situation and may reduce coding efficiency. Therefore, in other implementations, the second identification information may correspond to the second probability model (i.e., the second identification information may be encoded using the second probability model). The probability models corresponding to the first identification information and the second identification information are set to different probability models, and the update processes of the two probability models do not affect each other, which helps to improve coding efficiency.

在一些实现方式中,在执行步骤S1010之前,可以先对第三标识信息进行编码。该第三标识信息用于指示当前节点是否包含几何信息不同的点。第三标识信息例如可以是二进制语法元素direct_point_cnt_eq2。第三标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第三标识信息的取值为值a,则可以表示当前节点包含几何信息不同的点(如包括2个几何信息不同的点)。如果第三标识信息的取值为值b,则可以表示当前节点仅包含几何信息相同的点。例如,当前节点仅包括1个点;或者,当前节点包括多个点,且该多个点的几何信息相同。在第三标识信息指示当前节点仅包含几何信息相同的点的情况下,继续执行步骤S1010;否则,可以不执行步骤S1010。In some implementations, before executing step S1010, the third identification information may be encoded first. The third identification information is used to indicate whether the current node contains points with different geometric information. The third identification information may be, for example, a binary syntax element direct_point_cnt_eq2. The value of the third identification information may include a value and b value. Among them, the value a may be, for example, 1, and the value b may be, for example, 0. If the value of the third identification information is a, it may indicate that the current node contains points with different geometric information (such as 2 points with different geometric information). If the value of the third identification information is b, it may indicate that the current node contains only points with the same geometric information. For example, the current node includes only 1 point; or, the current node includes multiple points, and the geometric information of the multiple points is the same. If the third identification information indicates that the current node contains only points with the same geometric information, continue to execute step S1010; otherwise, step S1010 may not be executed.

继续参见图10,在一些实现方式中,图10的方法还可以包括步骤S1020,即如果第一标识信息指示当前节点包含重复点,则对当前节点包含的重复点数量进行编码。Continuing to refer to FIG. 10 , in some implementations, the method of FIG. 10 may further include step S1020 , that is, if the first identification information indicates that the current node contains repeated points, encoding the number of repeated points contained in the current node.

例如,可以对第四标识信息进行编码。第四标识信息用于指示当前节点是否包含1个重复点。第四 标识信息例如可以是二进制语法元素DupPointsCntGt1。第四标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第四标识信息的取值为值a,则可以表示当前节点包含多个重复点(或1个以上重复点)。如果第四标识信息的取值为值b,则可以表示当前节点包含1个重复点。如果第四标识信息指示当前节点包含1个重复点,则重复点数量为1。For example, the fourth identification information may be encoded. The fourth identification information is used to indicate whether the current node contains one repeated point. The identification information may be, for example, a binary syntax element DupPointsCntGt1. The value of the fourth identification information may include a value and b value. The value a may be, for example, 1, and the value b may be, for example, 0. If the value of the fourth identification information is a value, it may indicate that the current node contains multiple duplicate points (or more than one duplicate point). If the value of the fourth identification information is b value, it may indicate that the current node contains one duplicate point. If the fourth identification information indicates that the current node contains one duplicate point, the number of duplicate points is 1.

进一步地,在一些实现方式中,如果第四标识信息指示当前节点包括多个重复点,则对第五标识信息进行编码。第五标识信息用于指示或确定当前节点包含的重复点数量。第五标识信息例如可以是二进制语法元素DupPointsCntEg1。第五标识信息例如可以基于0阶指数哥伦布编码。当前节点包含的重复点数量可以等于第五标识信息的取值与2之和(如DupPointsCntEg1+2)。Further, in some implementations, if the fourth identification information indicates that the current node includes multiple repeated points, the fifth identification information is encoded. The fifth identification information is used to indicate or determine the number of repeated points contained in the current node. The fifth identification information can be, for example, a binary syntax element DupPointsCntEg1. The fifth identification information can be, for example, based on a 0-order exponential Golomb coding. The number of repeated points contained in the current node can be equal to the sum of the value of the fifth identification information and 2 (such as DupPointsCntEg1+2).

前文提到,当前节点为使用DCM的节点(如果当前节点不使用DCM,则可以对当前节点进行多叉树编码)。在执行步骤S1010之前,可以先根据父节点的信息和/或父节点的邻居信息推断当前节点是否使用DCM(即是否具有DCM编码资格)。下文对当前节点是否使用DCM的推断方式进行详细地举例说明。As mentioned above, the current node is a node that uses DCM (if the current node does not use DCM, the current node can be multi-tree encoded). Before executing step S1010, it can be inferred whether the current node uses DCM (i.e., whether it has DCM encoding qualifications) based on the information of the parent node and/or the neighbor information of the parent node. The following is a detailed example of the inference method of whether the current node uses DCM.

在一些实现方式中,可以根据父节点的信息确定第一条件和/或第二条件是否满足。第一条件可以包括父节点的被占用的子节点的数量为1,且当前节点的祖父节点(即父节点的父节点)的被占用的子节点的数量小于或等于2(即父节点以及可能还有一个其他节点)。第二条件可以包括父节点的被占用的子节点的数量为1,且父节点的邻居节点(这里提到的邻居节点例如可以指上下左右前后6个邻居节点)均未被占用。如果第一条件和/或第二条件满足,则确定当前节点使用DCM。例如,如果第一条件满足,则确定当前节点使用DCM。又如,如果第二条件满足,则确定当前节点使用DCM。又如,如果第一条件和第二条件同时满足,则确定当前节点使用DCM。In some implementations, it can be determined whether the first condition and/or the second condition are met based on the information of the parent node. The first condition may include that the number of occupied child nodes of the parent node is 1, and the number of occupied child nodes of the grandparent node of the current node (i.e., the parent node of the parent node) is less than or equal to 2 (i.e., the parent node and possibly another node). The second condition may include that the number of occupied child nodes of the parent node is 1, and the neighbor nodes of the parent node (the neighbor nodes mentioned here may refer to, for example, 6 neighbor nodes up, down, left, right, front and back) are not occupied. If the first condition and/or the second condition are met, it is determined that the current node uses DCM. For example, if the first condition is met, it is determined that the current node uses DCM. For another example, if the second condition is met, it is determined that the current node uses DCM. For another example, if the first condition and the second condition are met at the same time, it is determined that the current node uses DCM.

下文以第一条件为“基于父母的资格”,第二条件为“6N资格”为例,对当前节点是否使用DCM编码进行更为详细地举例说明。The following uses the first condition of "parent-based qualification" and the second condition of "6N qualification" as an example to illustrate in more detail whether the current node uses DCM encoding.

当前节点是否具有DCM编码资格可以基于当前节点的父节点本身或父节点的邻居信息确定,这些信息可以称为推论(inference)。Whether the current node is eligible for DCM coding may be determined based on the parent node of the current node itself or the neighbor information of the parent node, which may be referred to as inference.

DCM编码资格的推论可以分为如下两种:The inferences of DCM coding eligibility can be divided into the following two categories:

1)基于父母的资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且祖父节点(即父节点的父节点)最多具有两个被占用的子节点(即父节点以及可能还有一个其他节点)。1) Parent-based eligibility: There is only one occupied child node at the parent node level (i.e. the current node), and the grandparent node (i.e. the parent node's parent node) has at most two occupied child nodes (i.e. the parent node and possibly one other node).

2)6N资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且没有被占用的邻居节点(这里提到的邻居指的是上下左右前后6个邻居节点)。2) 6N qualification: There is only one occupied child node (i.e. the current node) at the parent node level, and no occupied neighbor nodes (the neighbors mentioned here refer to the 6 neighbor nodes above, below, left, right, front and back).

IDCM有三种可能推断方式。推断方式1指的是:如果当前节点满足基于父母的资格和6N资格,则开启DCM编码。推断方式2指的是:如果当前节点满足6N资格,则开启DCM编码。推断方式3指的是:如果当前节点满足基于父母的资格,则开启DCM编码。IDCM has three possible inference methods. Inference method 1 means: if the current node meets the parent-based qualifications and 6N qualifications, then turn on DCM encoding. Inference method 2 means: if the current node meets the 6N qualifications, then turn on DCM encoding. Inference method 3 means: if the current node meets the parent-based qualifications, then turn on DCM encoding.

在对第一标识信息进行编码之后,还可以根据第一标识信息的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据第一标识信息的取值更新编码区间参数的取值之后,可以根据第一标识信息的取值以及编码区间参数的更新值,更新第一概率模型。After encoding the first identification information, the value of the coding interval parameter can also be updated according to the value of the first identification information. The coding interval parameter may include a first parameter and/or a second parameter. The first parameter is used to indicate the starting point of the coding interval (the starting point of the coding interval of the arithmetic encoder). The first parameter can be represented by Low. The second parameter is used to indicate the width of the coding interval. The second parameter can be represented by Range. The initial value of the second parameter can be 510, represented by 9 bits. After updating the value of the coding interval parameter according to the value of the first identification information, the first probability model can be updated according to the value of the first identification information and the updated value of the coding interval parameter.

例如,首先,确定第一标识信息的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。For example, first, determine whether the value of the first identification information is equal to LPS or MPS, so as to update Low and Range. Referring to FIG7 , if Bin=LPS, then Low=Low+R MPS , Range=R LPS ; if Bin=MPS, then Low remains unchanged, and Range is equal to R MPS . R MPS represents the interval width corresponding to MPS, and R LPS represents the interval width corresponding to LPS.

然后,使用Bin值、Low、Range更新概率模型。Then, the probability model is updated using Bin value, Low, and Range.

随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。As Range is updated, the value of Range may be less than half of the initial interval length, that is, less than 256. At this time, a renormalization process is required. Figure 8 shows the process of the renormalization process. During the renormalization process, Low and Range are left shifted until the value of Range is greater than half of the initial interval width. The left shift of Range is to expand the interval width of the arithmetic encoder, and the left shift of Low is to output bits. The number of bits of the left shift of the two is the same.

下面结合具体例子,更加详细地描述实施例一。应注意,下文的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。Embodiment 1 is described in more detail below in conjunction with specific examples. It should be noted that the following examples are only intended to help those skilled in the art understand the embodiments of the present application, rather than to limit the embodiments of the present application to the specific numerical values or specific scenarios illustrated. Those skilled in the art can obviously make various equivalent modifications or changes based on the examples given, and such modifications or changes also fall within the scope of the embodiments of the present application.

下面是本示例涉及的一些语法元素。

The following are some of the syntax elements involved in this example.

上述语法元素中的direct_point_cnt_eq2如果为1,则表示使用节点包括2个不同的点。如果为0,则表示节点仅包含几何信息相同的点(1个点,或者几何信息相同的多个点)。direct_dup_point_cnt用于标识重复点数量,如果不存在direct_dup_point_cnt,则节点内的重复点数量被推断为0,如果存在direct_dup_point_cnt,则direct_dup_point_cnt标识重复点的数量,direct_dup_point_cnt的取值加1为节点内的点的数量。If direct_point_cnt_eq2 in the above syntax element is 1, it means that the node includes 2 different points. If it is 0, it means that the node only contains points with the same geometric information (1 point, or multiple points with the same geometric information). direct_dup_point_cnt is used to identify the number of duplicate points. If direct_dup_point_cnt does not exist, the number of duplicate points in the node is inferred to be 0. If direct_dup_point_cnt exists, direct_dup_point_cnt identifies the number of duplicate points. The value of direct_dup_point_cnt plus 1 is the number of points in the node.

编码端过程:Encoding process:

参见图5,在G-PCC中,对节点或子节点中的点坐标进行熵编码称为DCM。DCM主要用于处理孤立节点。八叉树划分过程会利用邻居上下文信息进行熵编码。与八叉树划分过程不同,DCM直接对该点的三个分量坐标进行编码。As shown in Figure 5, in G-PCC, entropy coding of point coordinates in a node or subnode is called DCM. DCM is mainly used to process isolated nodes. The octree partitioning process uses neighbor context information for entropy coding. Unlike the octree partitioning process, DCM directly encodes the three component coordinates of the point.

对于待编码节点,是否启用DCM是通过父节点及其邻居的信息推断,这一过程被称为IDCM。如图6所示,IDCM会先确定当前节点是否具有DCM编码资格(eligible)。如果当前节点具有DCM编码资格,则可以对当前节点进行DCM编码(当然,还可以引入其他判断条件的判断,如当前节点中的点的数量是否小于阈值(nb_points≤th)等)。如果当前节点不具有DCM编码资格,则可以对当前节点进行八叉树编码。For the node to be encoded, whether DCM is enabled is inferred from the information of the parent node and its neighbors, a process called IDCM. As shown in Figure 6, IDCM will first determine whether the current node is eligible for DCM encoding. If the current node is eligible for DCM encoding, the current node can be DCM encoded (of course, other judgment conditions can also be introduced, such as whether the number of points in the current node is less than a threshold (nb_points≤th), etc.). If the current node is not eligible for DCM encoding, the current node can be octree encoded.

当前节点是否具有DCM编码资格可以基于当前节点的父节点本身或父节点的邻居信息确定,这些信息可以称为推论(inference)。Whether the current node is eligible for DCM coding may be determined based on the parent node of the current node itself or the neighbor information of the parent node, which may be referred to as inference.

DCM编码资格的推论可以分为如下两种:The inferences of DCM coding eligibility can be divided into the following two categories:

1)基于父母的资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且祖父节点(即父节点的父节点)最多具有两个被占用的子节点(即父节点以及可能还有一个其他节点)。1) Parent-based eligibility: There is only one occupied child node at the parent node level (i.e. the current node), and the grandparent node (i.e. the parent node's parent node) has at most two occupied child nodes (i.e. the parent node and possibly one other node).

2)6N资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且没有被占用的邻居节点(这里提到的邻居指的是上下左右前后6个邻居节点)。2) 6N qualification: There is only one occupied child node (i.e. the current node) at the parent node level, and no occupied neighbor nodes (the neighbors mentioned here refer to the 6 neighbor nodes above, below, left, right, front and back).

为了适应不同的压缩效率和/或编码时间,IDCM有三种可能推断方式。推断方式1指的是:如果当前节点满足基于父母的资格和6N资格,则开启DCM编码,这种推断方式压缩效果最好,但压缩时间较长。推断方式2指的是:如果当前节点满足6N资格,则开启DCM编码,这种推断方式2放宽了DCM的判断条件,更多的节点会启用DCM。推断方式3指的是:如果当前节点满足基于父母的资格,则开启DCM编码,这种推断方式采用了更宽松的判断条件,但压缩效率较低。In order to adapt to different compression efficiency and/or encoding time, IDCM has three possible inference methods. Inference method 1 means: if the current node meets the parent-based qualifications and 6N qualifications, DCM encoding is turned on. This inference method has the best compression effect, but the compression time is longer. Inference method 2 means: if the current node meets the 6N qualifications, DCM encoding is turned on. This inference method 2 relaxes the judgment conditions of DCM, and more nodes will enable DCM. Inference method 3 means: if the current node meets the parent-based qualifications, DCM encoding is turned on. This inference method uses more relaxed judgment conditions, but the compression efficiency is lower.

如果当前节点满足DCM编码资格,则首先编码一个二进制标志位,以指示当前节点是否使用DCM。如果该标志为1,则表示当前节点使用DCM;如果该标志为0,则表示当前节点不使用DCM。If the current node meets the DCM encoding qualification, a binary flag is first encoded to indicate whether the current node uses DCM. If the flag is 1, it means that the current node uses DCM; if the flag is 0, it means that the current node does not use DCM.

如果采用DCM模式,则可以采用如下步骤对当前节点进行编码。If the DCM mode is adopted, the following steps can be used to encode the current node.

第一:编码二进制语法元素direct_point_cnt_eq2。direct_point_cnt_eq2标识当前节点是否包含2个不同的点(即2个点的几何信息不同)。如果direct_point_cnt_eq2为1,则表示当前节点包含2个不同的点;如果direct_point_cnt_eq2为0,则表示当前节点仅包含几何信息相同的点(可以是仅包含1个点,也可以是包含几何信息相同的多个点)。First: Encode the binary syntax element direct_point_cnt_eq2. direct_point_cnt_eq2 identifies whether the current node contains two different points (i.e., the geometric information of the two points is different). If direct_point_cnt_eq2 is 1, it means that the current node contains two different points; if direct_point_cnt_eq2 is 0, it means that the current node only contains points with the same geometric information (it can contain only one point or multiple points with the same geometric information).

第二:如果direct_point_cnt_eq2为0,则编码重复点数量direct_dup_point_cnt。首先,编码二进制语法元素DupPointsCntGt0,以标识当前节点是否包含重复点。如果DupPointsCntGt0为1,则表示当前节点包含重复点;如果DupPointsCntGt0为0,则表示当前节点不包含重复点,此时,重复点数量为0。如果DupPointsCntGt0为1,则进一步编码二进制语法元素DupPointsCntGt1。DupPointsCntGt1用于标识当前节点是否包含1个重复点(即2个点的几何信息相同)。如果DupPointsCntGt1为1,则表示当前节点包含1个以上重复点;如果DupPointsCntGt1为0,则表示当前节点包含1个重复点,此时direct_dup_point_cnt=1。如果DupPointsCntGt1为1,则进一步编码语法元素DupPointsCntEg1。DupPointsCntEg1+2即为重复点数量,此时direct_dup_point_cnt=DupPointsCntEg1+2。Second: If direct_point_cnt_eq2 is 0, encode the number of duplicate points direct_dup_point_cnt. First, encode the binary syntax element DupPointsCntGt0 to identify whether the current node contains duplicate points. If DupPointsCntGt0 is 1, it means that the current node contains duplicate points; if DupPointsCntGt0 is 0, it means that the current node does not contain duplicate points, and the number of duplicate points is 0. If DupPointsCntGt0 is 1, further encode the binary syntax element DupPointsCntGt1. DupPointsCntGt1 is used to identify whether the current node contains 1 duplicate point (that is, the geometric information of the two points is the same). If DupPointsCntGt1 is 1, it means that the current node contains more than 1 duplicate point; if DupPointsCntGt1 is 0, it means that the current node contains 1 duplicate point, and direct_dup_point_cnt=1. If DupPointsCntGt1 is 1, the syntax element DupPointsCntEg1 is further encoded. DupPointsCntEg1+2 is the number of repeated points, and direct_dup_point_cnt=DupPointsCntEg1+2.

在对DupPointsCntGt0进行熵编码时,使用第一概率模型对DupPointsCntGt0进行熵编码。第一概率模型的初始值(即MPS为0的概率)可以设置为1。16位二进制精度时为0xffff。由于DupPointsCntGt0的取值为0的概率非常高,因此,将第一概率模型的初始值设置为1,与实际情况更相符,可以最大程度减少编码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升编码效率。此外,DupPointsCntGt0与DupPointsCntGt0L(用于标识多叉树叶子节点是否包含重复点)使用不同的概率模型。When DupPointsCntGt0 is entropy encoded, the first probability model is used to entropy encode DupPointsCntGt0. The initial value of the first probability model (i.e., the probability that MPS is 0) can be set to 1. It is 0xffff at 16-bit binary precision. Since the probability that DupPointsCntGt0 takes the value of 0 is very high, setting the initial value of the first probability model to 1 is more consistent with the actual situation, which can minimize the process of the encoder continuously updating the MPS interval width based on the renormalization operation, thereby improving the encoding efficiency. In addition, DupPointsCntGt0 and DupPointsCntGt0L (used to identify whether a multi-tree tree leaf node contains duplicate points) use different probability models.

在对DupPointsCntGt0进行编码之后,还可以根据DupPointsCntGt0的取值更新编码区间参数的取 值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据DupPointsCntGt0的取值更新编码区间参数的取值之后,可以根据DupPointsCntGt0的取值以及编码区间参数的更新值,更新第一概率模型。After encoding DupPointsCntGt0, the encoding interval parameter can also be updated according to the value of DupPointsCntGt0. Value. The coding interval parameter may include a first parameter and/or a second parameter. The first parameter is used to indicate the starting point of the coding interval (the coding interval starting point of the arithmetic encoder). The first parameter can be represented by Low. The second parameter is used to indicate the width of the coding interval. The second parameter can be represented by Range. The initial value of the second parameter can be 510, represented by 9 bits. After updating the value of the coding interval parameter according to the value of DupPointsCntGt0, the first probability model can be updated according to the value of DupPointsCntGt0 and the updated value of the coding interval parameter.

例如,首先,确定DupPointsCntGt0的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。For example, first, determine whether the value of DupPointsCntGt0 is equal to LPS or MPS, so as to update Low and Range. Referring to FIG7 , if Bin=LPS, then Low=Low+R MPS , Range=R LPS ; if Bin=MPS, then Low remains unchanged, and Range is equal to R MPS . R MPS represents the interval width corresponding to MPS, and R LPS represents the interval width corresponding to LPS.

然后,使用Bin值、Low、Range更新概率模型。Then, the probability model is updated using Bin value, Low, and Range.

随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。As Range is updated, the value of Range may be less than half of the initial interval length, that is, less than 256. At this time, a renormalization process is required. Figure 8 shows the process of the renormalization process. During the renormalization process, Low and Range are left shifted until the value of Range is greater than half of the initial interval width. The left shift of Range is to expand the interval width of the arithmetic encoder, and the left shift of Low is to output bits. The number of bits of the left shift of the two is the same.

解码端过程:Decoding process:

对于待解码节点,是否启用DCM是通过父节点及其邻居的信息进行推断的,这一过程被称为IDCM。如图6所示,IDCM会先确定当前节点是否具有DCM解码资格(eligible)。如果当前节点具有DCM解码资格,则可以对当前节点进行DCM解码(当然,还可以引入其他判断条件的判断,如当前节点中的点的数量是否小于阈值(nb_points≤th)等)。如果当前节点不具有DCM解码资格,则可以对当前节点进行八叉树解码。For the node to be decoded, whether DCM is enabled is inferred from the information of the parent node and its neighbors, a process called IDCM. As shown in Figure 6, IDCM will first determine whether the current node is eligible for DCM decoding. If the current node is eligible for DCM decoding, DCM decoding can be performed on the current node (of course, other judgment conditions can also be introduced, such as whether the number of points in the current node is less than a threshold (nb_points≤th), etc.). If the current node is not eligible for DCM decoding, octree decoding can be performed on the current node.

当前节点是否具有DCM解码资格可以基于当前节点的父节点本身或父节点的邻居信息确定,这些信息可以称为推论(inference)。Whether the current node is eligible for DCM decoding may be determined based on the parent node of the current node itself or neighbor information of the parent node, which may be referred to as inference.

DCM解码资格的推论可以分为如下两种:The inference of DCM decoding eligibility can be divided into the following two categories:

1)基于父母的资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且祖父节点(即父节点的父节点)最多具有两个被占用的子节点(即父节点以及可能还有一个其他节点)。1) Parent-based eligibility: There is only one occupied child node at the parent node level (i.e. the current node), and the grandparent node (i.e. the parent node's parent node) has at most two occupied child nodes (i.e. the parent node and possibly one other node).

2)6N资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且没有被占用的邻居节点(这里提到的邻居指的是上下左右前后6个邻居节点)。2) 6N qualification: There is only one occupied child node (i.e. the current node) at the parent node level, and no occupied neighbor nodes (the neighbors mentioned here refer to the 6 neighbor nodes above, below, left, right, front and back).

为了适应不同的压缩效率和/或解码时间,IDCM有三种可能推断方式。推断方式1指的是:如果当前节点满足基于父母的资格和6N资格,则开启DCM解码,这种推断方式压缩效果最好,但压缩时间较长。推断方式2指的是:如果当前节点满足6N资格,则开启DCM解码,这种推断方式2放宽了DCM的判断条件,更多的节点会启用DCM。推断方式3指的是:如果当前节点满足基于父母的资格,则开启DCM解码,这种推断方式采用了更宽松的判断条件,但压缩效率较低。In order to adapt to different compression efficiency and/or decoding time, IDCM has three possible inference methods. Inference method 1 means: if the current node meets the parent-based qualifications and 6N qualifications, DCM decoding is enabled. This inference method has the best compression effect, but the compression time is longer. Inference method 2 means: if the current node meets the 6N qualifications, DCM decoding is enabled. This inference method 2 relaxes the judgment conditions of DCM, and more nodes will enable DCM. Inference method 3 means: if the current node meets the parent-based qualifications, DCM decoding is enabled. This inference method uses more relaxed judgment conditions, but the compression efficiency is lower.

如果当前节点满足DCM解码资格,则首先解码一个二进制标志位,以指示当前节点是否使用DCM。如果该标志为1,则表示当前节点使用DCM;如果该标志为0,则表示当前节点不使用DCM。If the current node meets the DCM decoding qualification, a binary flag is first decoded to indicate whether the current node uses DCM. If the flag is 1, it means that the current node uses DCM; if the flag is 0, it means that the current node does not use DCM.

如果采用DCM模式,则可以采用如下步骤对当前节点进行解码。If the DCM mode is adopted, the following steps can be used to decode the current node.

第一:解码二进制语法元素direct_point_cnt_eq2。direct_point_cnt_eq2标识当前节点是否包含2个不同的点(即2个点的几何信息不同)。如果direct_point_cnt_eq2为1,则表示当前节点包含2个不同的点;如果direct_point_cnt_eq2为0,则表示当前节点仅包含几何信息相同的点(可以是仅包含1个点,也可以是包含几何信息相同的多个点)。First: Decode the binary syntax element direct_point_cnt_eq2. direct_point_cnt_eq2 identifies whether the current node contains two different points (i.e., the geometric information of the two points is different). If direct_point_cnt_eq2 is 1, it means that the current node contains two different points; if direct_point_cnt_eq2 is 0, it means that the current node only contains points with the same geometric information (it can contain only one point or multiple points with the same geometric information).

第二:如果direct_point_cnt_eq2为0,则解码二进制语法元素DupPointsCntGt0,以标识当前节点是否包含重复点。如果DupPointsCntGt0为1,则表示当前节点包含重复点;如果DupPointsCntGt0为0,则表示当前节点不包含重复点,即direct_dup_point_cnt=0。如果DupPointsCntGt0为1,则进一步解码二进制语法元素DupPointsCntGt1。DupPointsCntGt1用于标识当前节点是否包含1个重复点(即2个点的几何信息相同)。如果DupPointsCntGt1为1,则表示当前节点包含1个以上重复点;如果DupPointsCntGt1为0,则表示当前节点包含1个重复点,direct_dup_point_cnt=1。如果DupPointsCntGt1为1,则进一步解码语法元素DupPointsCntEg1。direct_dup_point_cnt=DupPointsCntEg1+2。Second: If direct_point_cnt_eq2 is 0, decode the binary syntax element DupPointsCntGt0 to identify whether the current node contains duplicate points. If DupPointsCntGt0 is 1, it means that the current node contains duplicate points; if DupPointsCntGt0 is 0, it means that the current node does not contain duplicate points, that is, direct_dup_point_cnt = 0. If DupPointsCntGt0 is 1, further decode the binary syntax element DupPointsCntGt1. DupPointsCntGt1 is used to identify whether the current node contains 1 duplicate point (that is, the geometric information of the two points is the same). If DupPointsCntGt1 is 1, it means that the current node contains more than 1 duplicate points; if DupPointsCntGt1 is 0, it means that the current node contains 1 duplicate point, direct_dup_point_cnt = 1. If DupPointsCntGt1 is 1, further decode the syntax element DupPointsCntEg1. direct_dup_point_cnt=DupPointsCntEg1+2.

在对DupPointsCntGt0进行熵解码时,可以使用第一概率模型对DupPointsCntGt0进行熵解码。第一概率模型的初始值(即MPS为0的概率)可以设置为1。16位二进制精度时为0xffff。由于DupPointsCntGt0的取值为0的概率非常高,因此,将第一概率模型的初始值设置为1,与实际情况更相符,可以最大程度减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。此外,DupPointsCntGt0与DupPointsCntGt0L(用于标识多叉树叶子节点是否包含重复点)使用不同的概率模型。When entropy decoding DupPointsCntGt0, the first probability model can be used to entropy decode DupPointsCntGt0. The initial value of the first probability model (i.e., the probability that MPS is 0) can be set to 1. It is 0xffff at 16-bit binary precision. Since the probability that DupPointsCntGt0 takes the value of 0 is very high, setting the initial value of the first probability model to 1 is more consistent with the actual situation, which can minimize the process of the decoder continuously updating the MPS interval width based on the renormalization operation, thereby improving decoding efficiency. In addition, DupPointsCntGt0 and DupPointsCntGt0L (used to identify whether a multi-tree tree leaf node contains duplicate points) use different probability models.

在对DupPointsCntGt0进行解码之后,还可以根据DupPointsCntGt0的取值更新编码区间参数的取 值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据DupPointsCntGt0的取值更新编码区间参数的取值之后,可以根据DupPointsCntGt0的取值以及编码区间参数的更新值,更新第一概率模型。After decoding DupPointsCntGt0, the encoding interval parameter can also be updated according to the value of DupPointsCntGt0. Value. The coding interval parameter may include a first parameter and/or a second parameter. The first parameter is used to indicate the starting point of the coding interval. The first parameter may be represented by Low. The second parameter is used to indicate the width of the coding interval. The second parameter may be represented by Range. The initial value of the second parameter may be 510, represented by 9 bits. After updating the value of the coding interval parameter according to the value of DupPointsCntGt0, the first probability model may be updated according to the value of DupPointsCntGt0 and the updated value of the coding interval parameter.

例如,首先,确定DupPointsCntGt0的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。For example, first, determine whether the value of DupPointsCntGt0 is equal to LPS or MPS, so as to update Low and Range. Referring to FIG7 , if Bin=LPS, then Low=Low+R MPS , Range=R LPS ; if Bin=MPS, then Low remains unchanged, and Range is equal to R MPS . R MPS represents the interval width corresponding to MPS, and R LPS represents the interval width corresponding to LPS.

然后,使用Bin值、Low、Range更新概率模型。Then, the probability model is updated using Bin value, Low, and Range.

随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。As Range is updated, the value of Range may be less than half of the initial interval length, that is, less than 256. At this time, a renormalization process is required. Figure 8 shows the process of the renormalization process. During the renormalization process, Low and Range are left shifted until the value of Range is greater than half of the initial interval width. The left shift of Range is to expand the interval width, and the left shift of Low is to output bits. The number of bits of the left shift of the two is the same.

本技术方案合理使用了概率模型以及正确的初始值,使G-PCC几何编码效率进一步提高。几何信息无损压缩条件下的每输入点的比特数比率(bits per input point ratio,Bpip Ratio)表示:在点云质量无损失的情况下,本技术方案的编码码率占相关技术编码码率的百分比。该参数的数值越低,表示本技术方案节省的码率越大。表1示出了本技术方案的测试结果,从表1可以看出,本技术方案相对相关技术在码流节省方面有了不小的提升。This technical solution reasonably uses the probability model and the correct initial value to further improve the efficiency of G-PCC geometric coding. The bits per input point ratio (Bpip Ratio) under the condition of lossless compression of geometric information indicates: the percentage of the encoding rate of this technical solution to the encoding rate of related technologies without loss of point cloud quality. The lower the value of this parameter, the greater the bit rate saved by this technical solution. Table 1 shows the test results of this technical solution. It can be seen from Table 1 that this technical solution has made a significant improvement in bit rate saving compared with related technologies.

表1基于几何的稠密点云测试模型(geometry-based solid content test model,GES-TM)-v3.0无损压缩(CW条件下)的Bpip Ratio
Table 1 Bpip Ratio of geometry-based solid content test model (GES-TM)-v3.0 lossless compression (CW condition)

实施例二:多叉树叶子节点编解码Embodiment 2: Multi-tree leaf node encoding and decoding

图11为本申请实施例提供的解码方法的流程示意图。图11的方法可应用于点云解码器。该解码器例如可以是支持G-PCC的解码器。FIG11 is a flow chart of a decoding method provided in an embodiment of the present application. The method of FIG11 can be applied to a point cloud decoder. The decoder can be, for example, a decoder supporting G-PCC.

在步骤S1110,根据第一概率模型对第一标识信息进行解码(如熵解码)。第一标识信息用于指示当前节点是否包含重复点。与实施例一不同的是,这里提到的当前节点指的是多叉树(如八叉树、四叉树或二叉树)的叶子节点。第一标识信息例如可以是二进制语法元素DupPointsCntGt0L。第一标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第一标识信息的取值为值a,则可以表示当前节点包含重复点。如果第一标识信息的取值为值b,则可以表示多叉树叶子节点不包含重复点。In step S1110, the first identification information is decoded (such as entropy decoding) according to the first probability model. The first identification information is used to indicate whether the current node contains duplicate points. Different from the first embodiment, the current node mentioned here refers to the leaf node of a multi-branch tree (such as an octree, a quadtree, or a binary tree). The first identification information can be, for example, a binary syntax element DupPointsCntGt0L. The value of the first identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the first identification information is value a, it can be indicated that the current node contains duplicate points. If the value of the first identification information is value b, it can be indicated that the leaf node of the multi-branch tree does not contain duplicate points.

第一概率模型指的是用于对第一标识信息进行熵解码的概率模型。第一概率模型的MPS可以为0(即bin值0),LPS可以为1(即bin值1)。第一概率模型的初始值可以包括第一概率模型的MPS的概率初始值和/或LPS的概率初始值。也就是说,第一概率模型的初始值可用于表示第一概率模型为0和/或为1的概率。The first probability model refers to a probability model for entropy decoding the first identification information. The MPS of the first probability model can be 0 (i.e., bin value 0), and the LPS can be 1 (i.e., bin value 1). The initial value of the first probability model may include the probability initial value of the MPS of the first probability model and/or the probability initial value of the LPS. In other words, the initial value of the first probability model can be used to represent the probability that the first probability model is 0 and/or 1.

在一些实现方式中,第一概率模型的初始值不等于第一值(第一值对应于MPS和LPS的概率相等)。也就是说,第一概率模型中,MPS对应的初始区间宽度大于LPS对应的初始区间宽度。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为不等于第一值,与实际情况更相符,可以减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。In some implementations, the initial value of the first probability model is not equal to the first value (the probability that the first value corresponds to the MPS and the LPS is equal). That is, in the first probability model, the initial interval width corresponding to the MPS is greater than the initial interval width corresponding to the LPS. Since the probability that the value of the first identification information is 0 is very high, setting the initial value of the first probability model to be not equal to the first value is more consistent with the actual situation, and can reduce the process of the decoder continuously updating the MPS interval width based on the renormalization operation, thereby improving decoding efficiency.

示例性地,第一概率模型的初始值的设置可以使得MPS的概率大于或等于0.6,0.7,0.8或0.9。可选地,第一概率模型的初始值(即MPS为0的概率)的设置可以使得MPS的概率等于1。第一概率模型的初始值例如可以等于1,16位二进制精度时为0xffff。。由于第一标识信息的取值为0的概率非 常高,因此,将第一概率模型的初始值设置为使得MPS的概率等于1的值,与实际情况更相符,可以最大程度减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。Exemplarily, the initial value of the first probability model may be set so that the probability of MPS is greater than or equal to 0.6, 0.7, 0.8 or 0.9. Optionally, the initial value of the first probability model (i.e., the probability that MPS is 0) may be set so that the probability of MPS is equal to 1. The initial value of the first probability model may be, for example, equal to 1, or 0xffff at 16-bit binary precision. Since the probability that the first identification information is 0 is not Therefore, setting the initial value of the first probability model to a value that makes the probability of MPS equal to 1 is more consistent with the actual situation and can minimize the process of the decoder continuously updating the MPS interval width based on the renormalization operation, thereby improving decoding efficiency.

前文提到,第一概率模型用于对第一标识信息进行解码。在一些实现方式中,除了用于对第一标识信息进行解码之外,第一概率模型还可用于对第二标识信息解码。第二标识信息用于指示使用DCM的节点是否包含重复点。第二标识信息例如可以是二进制语法元素DupPointsCntGt0。第二标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第二标识信息的取值为值a,则可以表示使用DCM的节点包含重复点。如果第二标识信息的取值为值b,则可以表示使用DCM的节点不包含重复点。As mentioned above, the first probability model is used to decode the first identification information. In some implementations, in addition to being used to decode the first identification information, the first probability model can also be used to decode the second identification information. The second identification information is used to indicate whether the node using DCM contains duplicate points. The second identification information can be, for example, a binary syntax element DupPointsCntGt0. The value of the second identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the second identification information is value a, it can be indicated that the node using DCM contains duplicate points. If the value of the second identification information is value b, it can be indicated that the node using DCM does not contain duplicate points.

但是,使用DCM的节点包含重复点的实际概率与多叉树叶子节点包含重复点的实际概率是不同的,二者使用同一概率模型进行熵解码与实际情况不符,可能会降低解码效率。因此,在另一些实现方式中,第二标识信息可以对应第二概率模型(即第二标识信息可以使用第二概率模型进行解码)。将第二标识信息和第一标识信息对应的概率模型设置为不同的概率模型,两个概率模型的更新过程互不影响,有助于提升解码效率。However, the actual probability that a node using DCM contains duplicate points is different from the actual probability that a multi-tree tree leaf node contains duplicate points. Using the same probability model for entropy decoding is inconsistent with the actual situation and may reduce decoding efficiency. Therefore, in other implementations, the second identification information may correspond to a second probability model (i.e., the second identification information may be decoded using a second probability model). The probability models corresponding to the second identification information and the first identification information are set to different probability models, and the update processes of the two probability models do not affect each other, which helps to improve decoding efficiency.

继续参见图11,在步骤S1120,如果第一标识信息指示当前节点包含重复点,则确定当前节点包含的重复点数量。例如,可以基于指数哥伦布解码当前节点包含的重复点数量。11 , in step S1120 , if the first identification information indicates that the current node contains duplicate points, the number of duplicate points contained in the current node is determined. For example, the number of duplicate points contained in the current node may be determined based on Exponential Golomb decoding.

在对第一标识信息进行解码之后,还可以根据第一标识信息的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据第一标识信息的取值更新编码区间参数的取值之后,可以根据第一标识信息的取值以及编码区间参数的更新值,更新第一概率模型。After decoding the first identification information, the value of the coding interval parameter can also be updated according to the value of the first identification information. The coding interval parameter may include a first parameter and/or a second parameter. The first parameter is used to indicate the starting point of the coding interval (the starting point of the coding interval of the arithmetic encoder). The first parameter can be represented by Low. The second parameter is used to indicate the width of the coding interval. The second parameter can be represented by Range. The initial value of the second parameter can be 510, represented by 9 bits. After updating the value of the coding interval parameter according to the value of the first identification information, the first probability model can be updated according to the value of the first identification information and the updated value of the coding interval parameter.

例如,首先,确定第一标识信息的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。For example, first, determine whether the value of the first identification information is equal to LPS or MPS, so as to update Low and Range. Referring to FIG7 , if Bin=LPS, then Low=Low+R MPS , Range=R LPS ; if Bin=MPS, then Low remains unchanged, and Range is equal to R MPS . R MPS represents the interval width corresponding to MPS, and R LPS represents the interval width corresponding to LPS.

然后,使用Bin值、Low、Range更新概率模型。Then, the probability model is updated using Bin value, Low, and Range.

随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。As Range is updated, the value of Range may be less than half of the initial interval length, that is, less than 256. At this time, a renormalization process is required. Figure 8 shows the process of the renormalization process. During the renormalization process, Low and Range are left shifted until the value of Range is greater than half of the initial interval width. The left shift of Range is to expand the interval width of the arithmetic encoder, and the left shift of Low is to output bits. The number of bits of the left shift of the two is the same.

上文结合图11,详细描述了本申请实施例提供的解码方法。下文结合图12,详细描述本申请实施例提供的编码方法。The decoding method provided by the embodiment of the present application is described in detail above in conjunction with Figure 11. The encoding method provided by the embodiment of the present application is described in detail below in conjunction with Figure 12.

图12为本申请实施例提供的编码方法的流程示意图。图12的方法可应用于点云编码器。该点云编码器例如可以是支持G-PCC的编码器。FIG12 is a flow chart of an encoding method provided in an embodiment of the present application. The method of FIG12 can be applied to a point cloud encoder. The point cloud encoder can be, for example, an encoder supporting G-PCC.

在步骤S1210,根据第一概率模型对第一标识信息进行编码(如熵编码)。第一标识信息用于指示当前节点是否包含重复点。与实施例一不同的是,这里提到的当前节点指的是多叉树(如八叉树、四叉树或二叉树)的叶子节点。第一标识信息例如可以是二进制语法元素DupPointsCntGt0L。第一标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第一标识信息的取值为值a,则可以表示当前节点包含重复点。如果第一标识信息的取值为值b,则可以表示多叉树叶子节点不包含重复点。In step S1210, the first identification information is encoded (such as entropy coding) according to the first probability model. The first identification information is used to indicate whether the current node contains duplicate points. Different from the first embodiment, the current node mentioned here refers to the leaf node of a multi-branch tree (such as an octree, a quadtree, or a binary tree). The first identification information can be, for example, a binary syntax element DupPointsCntGt0L. The value of the first identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the first identification information is value a, it can be indicated that the current node contains duplicate points. If the value of the first identification information is value b, it can be indicated that the leaf node of the multi-branch tree does not contain duplicate points.

第一概率模型指的是用于对第一标识信息进行熵编码的概率模型。第一概率模型的MPS可以为0(即bin值0),LPS可以为1(即bin值1)。第一概率模型的初始值可以包括第一概率模型的MPS的概率初始值和/或LPS的概率初始值。也就是说,第一概率模型的初始值可用于表示第一概率模型为0和/或为1的概率。The first probability model refers to a probability model for entropy encoding the first identification information. The MPS of the first probability model can be 0 (i.e., bin value 0), and the LPS can be 1 (i.e., bin value 1). The initial value of the first probability model may include the probability initial value of the MPS of the first probability model and/or the probability initial value of the LPS. In other words, the initial value of the first probability model can be used to represent the probability that the first probability model is 0 and/or 1.

在一些实现方式中,第一概率模型的初始值不等于第一值(第一值对应于MPS和LPS的概率相等)。也就是说,第一概率模型中,MPS对应的初始区间宽度大于LPS对应的初始区间宽度。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为不等于第一值,与实际情况更相符,可以减少编码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升编码效率。In some implementations, the initial value of the first probability model is not equal to the first value (the probability that the first value corresponds to the MPS and the LPS is equal). That is, in the first probability model, the initial interval width corresponding to the MPS is greater than the initial interval width corresponding to the LPS. Since the probability that the value of the first identification information is 0 is very high, setting the initial value of the first probability model to be not equal to the first value is more consistent with the actual situation, and can reduce the process of the encoder continuously updating the MPS interval width based on the renormalization operation, thereby improving the encoding efficiency.

示例性地,第一概率模型的初始值的设置可以使得MPS的概率大于或等于0.6,0.7,0.8或0.9。可选地,第一概率模型的初始值(即MPS为0的概率)的设置可以使得MPS的概率等于1。第一概率模型的初始值例如可以等于1,16位二进制精度时为0xffff。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为使得MPS的概率等于1的值,与实际情况更相符,可以最大程度减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。Exemplarily, the initial value of the first probability model can be set so that the probability of MPS is greater than or equal to 0.6, 0.7, 0.8 or 0.9. Optionally, the initial value of the first probability model (i.e., the probability that MPS is 0) can be set so that the probability of MPS is equal to 1. The initial value of the first probability model can be equal to 1, for example, or 0xffff at 16-bit binary precision. Since the probability that the value of the first identification information is 0 is very high, setting the initial value of the first probability model to a value that makes the probability of MPS equal to 1 is more consistent with the actual situation, and can minimize the process of the decoder continuously updating the MPS interval width based on the renormalization operation, thereby improving decoding efficiency.

前文提到,第一概率模型用于对第一标识信息进行编码。在一些实现方式中,除了用于对第一标识 信息进行编码之外,第一概率模型还可用于对第二标识信息编码。第二标识信息用于指示使用DCM的节点是否包含重复点。第二标识信息例如可以是二进制语法元素DupPointsCntGt0。第二标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第二标识信息的取值为值a,则可以表示使用DCM的节点包含重复点。如果第二标识信息的取值为值b,则可以表示使用DCM的节点不包含重复点。As mentioned above, the first probability model is used to encode the first identification information. In some implementations, in addition to encoding the first identification information In addition to encoding the information, the first probability model can also be used to encode the second identification information. The second identification information is used to indicate whether the node using DCM contains duplicate points. The second identification information can be, for example, a binary syntax element DupPointsCntGt0. The value of the second identification information may include a value and b value. Among them, the value a can be, for example, 1, and the value b can be, for example, 0. If the value of the second identification information is value a, it can be indicated that the node using DCM contains duplicate points. If the value of the second identification information is value b, it can be indicated that the node using DCM does not contain duplicate points.

但是,使用DCM的节点包含重复点的实际概率与多叉树叶子节点包含重复点的实际概率是不同的,二者使用同一概率模型进行熵编码与实际情况不符,可能会降低编码效率。因此,在另一些实现方式中,第二标识信息可以对应第二概率模型(即第二标识信息可以使用第二概率模型进行编码)。将第二标识信息和第一标识信息对应的概率模型设置为不同的概率模型,两个概率模型的更新过程互不影响,有助于提升编码效率。However, the actual probability that a node using DCM contains duplicate points is different from the actual probability that a multi-tree tree leaf node contains duplicate points. Using the same probability model for entropy coding for both is inconsistent with the actual situation and may reduce coding efficiency. Therefore, in other implementations, the second identification information may correspond to the second probability model (i.e., the second identification information may be encoded using the second probability model). The probability models corresponding to the second identification information and the first identification information are set to different probability models, and the update processes of the two probability models do not affect each other, which helps to improve coding efficiency.

继续参见图12,在步骤S1220,如果第一标识信息指示当前节点包含重复点,则对当前节点包含的重复点数量进行编码。例如,可以基于指数哥伦布编码当前节点包含的重复点数量。Continuing to refer to Fig. 12, in step S1220, if the first identification information indicates that the current node contains duplicate points, the number of duplicate points contained in the current node is encoded. For example, the number of duplicate points contained in the current node may be encoded based on the Exponential Golomb coding.

在对第一标识信息进行编码之后,还可以根据第一标识信息的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据第一标识信息的取值更新编码区间参数的取值之后,可以根据第一标识信息的取值以及编码区间参数的更新值,更新第一概率模型。After encoding the first identification information, the value of the coding interval parameter can also be updated according to the value of the first identification information. The coding interval parameter may include a first parameter and/or a second parameter. The first parameter is used to indicate the starting point of the coding interval (the starting point of the coding interval of the arithmetic encoder). The first parameter can be represented by Low. The second parameter is used to indicate the width of the coding interval. The second parameter can be represented by Range. The initial value of the second parameter can be 510, represented by 9 bits. After updating the value of the coding interval parameter according to the value of the first identification information, the first probability model can be updated according to the value of the first identification information and the updated value of the coding interval parameter.

例如,首先,确定第一标识信息的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。For example, first, determine whether the value of the first identification information is equal to LPS or MPS, so as to update Low and Range. Referring to FIG7 , if Bin=LPS, then Low=Low+R MPS , Range=R LPS ; if Bin=MPS, then Low remains unchanged, and Range is equal to R MPS . R MPS represents the interval width corresponding to MPS, and R LPS represents the interval width corresponding to LPS.

然后,使用Bin值、Low、Range更新概率模型。Then, the probability model is updated using Bin value, Low, and Range.

随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。As Range is updated, the value of Range may be less than half of the initial interval length, that is, less than 256. At this time, a renormalization process is required. Figure 8 shows the process of the renormalization process. During the renormalization process, Low and Range are left shifted until the value of Range is greater than half of the initial interval width. The left shift of Range is to expand the interval width of the arithmetic encoder, and the left shift of Low is to output bits. The number of bits of the left shift of the two is the same.

下面结合具体例子,更加详细地描述实施例二。应注意,下文的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。Embodiment 2 is described in more detail below in conjunction with specific examples. It should be noted that the following examples are only intended to help those skilled in the art understand the embodiments of the present application, rather than to limit the embodiments of the present application to the specific numerical values or specific scenarios illustrated. Those skilled in the art can obviously make various equivalent modifications or changes based on the examples given, and such modifications or changes also fall within the scope of the embodiments of the present application.

编码端过程:Encoding process:

在G-PCC的多叉树(如八叉树)编码中,多叉树叶子节点可能包含的重复点。多叉树叶子节点的编码方法包括如下步骤。首先,编码二进制语法元素DupPointsCntGt0L。DupPointsCntGt0L可用于表示叶子节点是否包含重复点。如果DupPointsCntGt0L为1,则表示该叶子节点包含重复点;如果DupPointsCntGt0L为0,则表示该叶子节点不包含重复点。然后,当DupPointsCntGt0L为1,使用指数哥伦布编码重复点的数量。In the multi-branch tree (such as octree) encoding of G-PCC, the multi-branch tree leaf nodes may contain duplicate points. The encoding method of the multi-branch tree leaf nodes includes the following steps. First, encode the binary syntax element DupPointsCntGt0L. DupPointsCntGt0L can be used to indicate whether the leaf node contains duplicate points. If DupPointsCntGt0L is 1, it means that the leaf node contains duplicate points; if DupPointsCntGt0L is 0, it means that the leaf node does not contain duplicate points. Then, when DupPointsCntGt0L is 1, the number of duplicate points is encoded using Exponential Columbus.

在编码二进制语法元素DupPointsCntGt0L时,可以使用第一概率模型对DupPointsCntGt0L进行熵编码。第一概率模型的初始值(即MPS为0的概率)可以设置为1。16位二进制精度时为0xffff。由于DupPointsCntGt0L的取值为0的概率非常高,因此,将第一概率模型的初始值设置为1,与实际情况更相符,可以最大程度减少编码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升编码效率。此外,DupPointsCntGt0L与DupPointsCntGt0(用于标识使用DCM的节点是否包含重复点)使用不同的概率模型。When encoding the binary syntax element DupPointsCntGt0L, the first probability model can be used to perform entropy coding on DupPointsCntGt0L. The initial value of the first probability model (i.e., the probability that MPS is 0) can be set to 1. It is 0xffff at 16-bit binary precision. Since the probability that DupPointsCntGt0L takes a value of 0 is very high, setting the initial value of the first probability model to 1 is more consistent with the actual situation, which can minimize the process of the encoder continuously updating the MPS interval width based on the renormalization operation, thereby improving the coding efficiency. In addition, DupPointsCntGt0L and DupPointsCntGt0 (used to identify whether a node using DCM contains duplicate points) use different probability models.

在对DupPointsCntGt0L进行编码之后,还可以根据DupPointsCntGt0L的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据DupPointsCntGt0L的取值更新编码区间参数的取值之后,可以根据DupPointsCntGt0L的取值以及编码区间参数的更新值,更新第一概率模型。After encoding DupPointsCntGt0L, the value of the coding interval parameter can also be updated according to the value of DupPointsCntGt0L. The coding interval parameter may include a first parameter and/or a second parameter. The first parameter is used to indicate the starting point of the coding interval (the coding interval starting point of the arithmetic encoder). The first parameter can be represented by Low. The second parameter is used to indicate the width of the coding interval. The second parameter can be represented by Range. The initial value of the second parameter can be 510, represented by 9 bits. After updating the value of the coding interval parameter according to the value of DupPointsCntGt0L, the first probability model can be updated according to the value of DupPointsCntGt0L and the updated value of the coding interval parameter.

例如,首先,确定DupPointsCntGt0L的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。For example, first, determine whether the value of DupPointsCntGt0L is equal to LPS or MPS, so as to update Low and Range. Referring to FIG7 , if Bin=LPS, then Low=Low+R MPS , Range=R LPS ; if Bin=MPS, then Low remains unchanged, and Range is equal to R MPS . R MPS represents the interval width corresponding to MPS, and R LPS represents the interval width corresponding to LPS.

然后,使用Bin值、Low、Range更新概率模型。Then, the probability model is updated using Bin value, Low, and Range.

随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操 作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。As Range is updated, the value of Range may be less than half of the initial interval length, that is, less than 256. At this time, a renormalization process is required. Figure 8 shows the process of the renormalization process. During the renormalization process, Low and Range are shifted left. The operation is repeated until the value of Range is greater than half of the initial interval width. The left shift of Range is to expand the interval width of the arithmetic encoder, and the left shift of Low is to output bits. The number of bits of the left shift of the two is the same.

解码端过程:Decoding process:

多叉树叶子节点的解码方法包括如下步骤。首先,解码出二进制语法元素DupPointsCntGt0L。如果DupPointsCntGt0L为1,则表示该叶子节点包含重复点;如果DupPointsCntGt0L为0,则表示该叶子节点不包含重复点。当DupPointsCntGt0L为1,则继续使用指数哥伦布解码出重复点的数量。The decoding method of a multi-tree leaf node includes the following steps. First, decode the binary syntax element DupPointsCntGt0L. If DupPointsCntGt0L is 1, it means that the leaf node contains duplicate points; if DupPointsCntGt0L is 0, it means that the leaf node does not contain duplicate points. When DupPointsCntGt0L is 1, continue to use the exponential Columbus decoding to decode the number of duplicate points.

在编码二进制语法元素DupPointsCntGt0L时,可以使用第一概率模型对DupPointsCntGt0L进行熵解码。第一概率模型的初始值(即MPS为0的概率)可以设置为1。16位二进制精度时为0xffff。由于DupPointsCntGt0L的取值为0的概率非常高,因此,将第一概率模型的初始值设置为1,与实际情况更相符,可以最大程度减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。此外,DupPointsCntGt0L与DupPointsCntGt0(用于标识使用DCM的节点是否包含重复点)使用不同的概率模型。When encoding the binary syntax element DupPointsCntGt0L, the first probability model can be used to entropy decode DupPointsCntGt0L. The initial value of the first probability model (i.e., the probability that MPS is 0) can be set to 1. It is 0xffff at 16-bit binary precision. Since the probability that DupPointsCntGt0L takes a value of 0 is very high, setting the initial value of the first probability model to 1 is more consistent with the actual situation, which can minimize the process of the decoder continuously updating the MPS interval width based on the renormalization operation, thereby improving decoding efficiency. In addition, DupPointsCntGt0L and DupPointsCntGt0 (used to identify whether a node using DCM contains duplicate points) use different probability models.

在对DupPointsCntGt0L进行解码之后,还可以根据DupPointsCntGt0L的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据DupPointsCntGt0L的取值更新编码区间参数的取值之后,可以根据DupPointsCntGt0L的取值以及编码区间参数的更新值,更新第一概率模型。After decoding DupPointsCntGt0L, the value of the coding interval parameter can also be updated according to the value of DupPointsCntGt0L. The coding interval parameter may include a first parameter and/or a second parameter. The first parameter is used to indicate the starting point of the coding interval. The first parameter can be represented by Low. The second parameter is used to indicate the width of the coding interval. The second parameter can be represented by Range. The initial value of the second parameter can be 510, represented by 9 bits. After updating the value of the coding interval parameter according to the value of DupPointsCntGt0L, the first probability model can be updated according to the value of DupPointsCntGt0L and the updated value of the coding interval parameter.

例如,首先,确定DupPointsCntGt0L的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。For example, first, determine whether the value of DupPointsCntGt0L is equal to LPS or MPS, so as to update Low and Range. Referring to FIG7 , if Bin=LPS, then Low=Low+R MPS , Range=R LPS ; if Bin=MPS, then Low remains unchanged, and Range is equal to R MPS . R MPS represents the interval width corresponding to MPS, and R LPS represents the interval width corresponding to LPS.

然后,使用Bin值、Low、Range更新概率模型。Then, the probability model is updated using Bin value, Low, and Range.

随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。As Range is updated, the value of Range may be less than half of the initial interval length, that is, less than 256. At this time, a renormalization process is required. Figure 8 shows the process of the renormalization process. During the renormalization process, Low and Range are left shifted until the value of Range is greater than half of the initial interval width. The left shift of Range is to expand the interval width, and the left shift of Low is to output bits. The number of bits of the left shift of the two is the same.

本技术方案合理使用了概率模型以及正确的初始值,使G-PCC几何编码效率进一步提高。几何信息无损压缩条件下的Bpip Ratio表示:在点云质量无损失的情况下,本技术方案的编码码率占相关技术编码码率的百分比。该参数的数值越低,表示本技术方案节省的码率越大。表2示出了本技术方案的测试结果,从表2可以看出,本技术方案相对相关技术在码流节省方面有了不小的提升。This technical solution reasonably uses the probability model and the correct initial value to further improve the G-PCC geometric coding efficiency. Bpip Ratio under lossless compression of geometric information means: the percentage of the encoding rate of this technical solution to the encoding rate of related technologies without loss of point cloud quality. The lower the value of this parameter, the greater the bit rate saved by this technical solution. Table 2 shows the test results of this technical solution. It can be seen from Table 2 that this technical solution has made a significant improvement in bit stream saving compared with related technologies.

表2 GES-TM-v3.0无损压缩(CW条件下)的Bpip Ratio
Table 2 Bpip Ratio of GES-TM-v3.0 lossless compression (CW condition)

上文结合图1至图12,详细描述了本申请的方法实施例,下面结合图13至图16,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。The method embodiment of the present application is described in detail above in conjunction with Figures 1 to 12, and the device embodiment of the present application is described in detail below in conjunction with Figures 13 to 16. It should be understood that the description of the method embodiment corresponds to the description of the device embodiment, so the part not described in detail can refer to the previous method embodiment.

图13为本申请一个实施例提供的点云解码器的流程示意图。图13所示的点云解码器1300包括解码单元1310和确定单元1320。解码单元1310配置为根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;确定单元1320配置为如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中, 所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。Figure 13 is a flow chart of a point cloud decoder provided by an embodiment of the present application. The point cloud decoder 1300 shown in Figure 13 includes a decoding unit 1310 and a determination unit 1320. The decoding unit 1310 is configured to decode the first identification information according to a first probability model, and the first identification information is used to indicate whether the current node contains duplicate points; the determination unit 1320 is configured to determine the number of duplicate points contained in the current node if the first identification information indicates that the current node contains duplicate points; wherein the first probability model satisfies at least one of the following: the initial value of the first probability model is not equal to the first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein, The first identification information is used to indicate whether a node using a direct coding mode contains duplicate points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains duplicate points, and the second identification information is used to indicate whether a node using a direct coding mode contains duplicate points.

在一些实现方式中,所述第一概率模型的初始值的设置使得所述MPS的概率大于或等于0.8。In some implementations, the initial value of the first probability model is set so that the probability of the MPS is greater than or equal to 0.8.

在一些实现方式中,所述第一概率模型的初始值的设置使得所述MPS的概率等于1。In some implementations, the initial value of the first probability model is set so that the probability of the MPS is equal to 1.

在一些实现方式中,所述MPS为0,所述LPS为1。In some implementations, the MPS is 0 and the LPS is 1.

在一些实现方式中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点。In some implementations, the first identification information is used to indicate whether a node using a direct coding mode contains a repeated point.

在一些实现方式中,所述解码单元1310配置为:对第三标识信息进行解码,所述第三标识信息用于指示所述当前节点是否包含几何信息不同的点;如果所述第三标识信息指示所述当前节点仅包含几何信息相同的点,则根据所述第一概率模型对所述第一标识信息进行解码。In some implementations, the decoding unit 1310 is configured to: decode third identification information, where the third identification information is used to indicate whether the current node contains points with different geometric information; if the third identification information indicates that the current node only contains points with the same geometric information, decode the first identification information according to the first probability model.

在一些实现方式中,所述确定单元1320配置为:对第四标识信息进行解码,所述第四标识信息用于指示所述当前节点是否包含1个重复点;如果所述第四标识信息指示所述当前节点包含1个重复点,则确定所述重复点数量为1。In some implementations, the determination unit 1320 is configured to: decode fourth identification information, where the fourth identification information is used to indicate whether the current node contains 1 repeated point; if the fourth identification information indicates that the current node contains 1 repeated point, determine that the number of repeated points is 1.

在一些实现方式中,所述确定单元1320还配置为:如果所述第四标识信息指示所述当前节点包括多个重复点,则对第五标识信息进行解码,所述第五标识信息用于确定所述当前节点包含的重复点数量;根据所述第五标识信息的取值确定所述当前节点包含的重复点数量。In some implementations, the determination unit 1320 is further configured to: if the fourth identification information indicates that the current node includes multiple repeated points, decode the fifth identification information, and the fifth identification information is used to determine the number of repeated points contained in the current node; determine the number of repeated points contained in the current node based on the value of the fifth identification information.

在一些实现方式中,所述确定单元1320配置为:将所述第五标识信息的取值与2之和确定为所述当前节点包含的重复点数量。In some implementations, the determination unit 1320 is configured to: determine the sum of the value of the fifth identification information and 2 as the number of repeated points included in the current node.

在一些实现方式中,所述对第五标识信息进行解码,包括:基于0阶指数哥伦布解码所述第五标识信息。In some implementations, the decoding the fifth identification information includes: decoding the fifth identification information based on a 0th-order Exponential Columbus.

在一些实现方式中,所述确定单元1320还配置为:在所述根据第一概率模型对第一标识信息进行解码之前,根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式。In some implementations, the determination unit 1320 is further configured to: before decoding the first identification information according to the first probability model, determine whether the current node uses a direct encoding mode according to information of a parent node of the current node.

在一些实现方式中,所述确定单元1320配置为:根据所述父节点的信息确定第一条件和/或第二条件是否满足;如果所述第一条件和/或所述第二条件满足,则确定所述当前节点使用直接编码模式;其中,所述第一条件包括所述父节点的被占用的子节点的数量为1,且所述当前节点的祖父节点的被占用的子节点的数量小于或等于2;其中,所述第二条件包括所述父节点的被占用的子节点的数量为1,且所述父节点的邻居节点均未被占用。In some implementations, the determination unit 1320 is configured to: determine whether the first condition and/or the second condition is met based on the information of the parent node; if the first condition and/or the second condition is met, determine that the current node uses a direct coding mode; wherein the first condition includes that the number of occupied child nodes of the parent node is 1, and the number of occupied child nodes of the grandparent node of the current node is less than or equal to 2; wherein the second condition includes that the number of occupied child nodes of the parent node is 1, and none of the neighboring nodes of the parent node are occupied.

在一些实现方式中,所述解码单元1310还配置为:如果所述当前节点不使用直接编码模式,则对所述当前节点进行多叉树解码。In some implementations, the decoding unit 1310 is further configured to: if the current node does not use the direct coding mode, perform multi-tree decoding on the current node.

在一些实现方式中,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点。In some implementations, the first identification information is used to indicate whether a leaf node of the multi-branch tree contains a duplicate point.

在一些实现方式中,所述确定单元1320配置为:基于指数哥伦布解码所述当前节点包含的重复点数量。In some implementations, the determining unit 1320 is configured to: determine the number of repeated points contained in the current node based on Exponential Golomb decoding.

在一些实现方式中,所述点云解码器1300还包括:更新单元,配置为:根据所述第一标识信息的取值更新编码区间参数的取值,所述编码区间参数包括第一参数和/或第二参数,所述第一参数用于指示编码区间的起始点,所述第二参数用于指示所述编码区间的宽度;根据所述第一标识信息的取值以及所述编码区间参数的更新值,更新所述第一概率模型。In some implementations, the point cloud decoder 1300 also includes: an updating unit, configured to: update the value of the coding interval parameter according to the value of the first identification information, the coding interval parameter includes a first parameter and/or a second parameter, the first parameter is used to indicate the starting point of the coding interval, and the second parameter is used to indicate the width of the coding interval; update the first probability model according to the value of the first identification information and the updated value of the coding interval parameter.

在一些实现方式中,所述更新单元配置为:如果所述第一标识信息的取值等于MPS,则将所述MPS的概率确定为所述第二参数的更新值;和/或如果所述第一标识信息的取值等于LPS,则将所述第一参数的取值与MPS的概率之和确定为所述第一参数的更新值,并将所述LPS的概率确定为所述第二参数的更新值。In some implementations, the update unit is configured to: if the value of the first identification information is equal to MPS, determine the probability of the MPS as the updated value of the second parameter; and/or if the value of the first identification information is equal to LPS, determine the sum of the value of the first parameter and the probability of MPS as the updated value of the first parameter, and determine the probability of the LPS as the updated value of the second parameter.

在一些实现方式中,所述更新单元还配置为:如果所述第二参数的更新值小于所述第二参数的初始值的一半,则对所述第一参数和所述第二参数执行左移操作。In some implementations, the updating unit is further configured to: if the updated value of the second parameter is less than half of the initial value of the second parameter, perform a left shift operation on the first parameter and the second parameter.

可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。It is understandable that in the embodiments of the present application, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course, it may be a module, or it may be non-modular. Moreover, the components in the present embodiment may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of a software functional module.

所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、 磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, server, or network device, etc.) or a processor to perform all or part of the steps of the method described in this embodiment. The aforementioned storage media include: U disk, mobile hard disk, read only memory (ROM), random access memory (RAM), Any medium that can store program code, such as a disk or CD.

因此,本申请实施例提供了一种计算机可读存储介质,应用于点云解码器1300,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述解码方法。Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the point cloud decoder 1300. The computer-readable storage medium stores a computer program, and the computer program implements the aforementioned decoding method when executed by a processor.

基于上述点云解码器的组成以及计算机可读存储介质,参见图14,其示出了本申请实施例提供的点云解码器的具体硬件结构示意图。如图14所示,点云解码器1400可以包括:通信接口1410、存储器1420和处理器1430;各个组件通过总线系统1440耦合在一起。可理解,总线系统1440用于实现这些组件之间的连接通信。总线系统1440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图14中将各种总线都标为总线系统1440。其中,Based on the composition of the above-mentioned point cloud decoder and the computer-readable storage medium, refer to Figure 14, which shows a specific hardware structure diagram of the point cloud decoder provided in an embodiment of the present application. As shown in Figure 14, the point cloud decoder 1400 may include: a communication interface 1410, a memory 1420 and a processor 1430; each component is coupled together through a bus system 1440. It can be understood that the bus system 1440 is used to achieve connection and communication between these components. In addition to the data bus, the bus system 1440 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 1440 in Figure 14. Among them,

通信接口1410,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送。The communication interface 1410 is used to receive and send signals when sending and receiving information with other external network elements.

存储器1420,用于存储计算机程序。The memory 1420 is used to store computer programs.

处理器1430,用于在运行所述计算机程序时,执行:The processor 1430 is configured to, when running the computer program, execute:

根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;Decoding first identification information according to a first probability model, where the first identification information is used to indicate whether the current node contains a duplicate point;

如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;If the first identification information indicates that the current node includes duplicate points, determining the number of duplicate points included in the current node;

其中,所述第一概率模型满足以下中的至少一项:The first probability model satisfies at least one of the following:

所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;The initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probability of MPS and LPS being equal;

所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。The first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct coding mode contains repeated points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains repeated points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains repeated points, and the second identification information is used to indicate whether a node using a direct coding mode contains repeated points.

可以理解,本申请实施例中的存储器1420可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的存储器1420旨在包括但不限于这些和任意其它适合类型的存储器。It can be understood that the memory 1420 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (DRRAM). The memory 1420 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

而处理器1430可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1430中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1430可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1420,处理器1430读取存储器1420中的信息,结合其硬件完成上述方法的步骤。The processor 1430 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit in the processor 1430 or the instruction in the form of software. The above processor 1430 may be a general processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to execute, or the hardware and software modules in the decoding processor can be executed. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 1420, and the processor 1430 reads the information in the memory 1420 and completes the steps of the above method in combination with its hardware.

可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。It is understood that the embodiments described in this application can be implemented in hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof. For software implementation, the technology described in this application can be implemented by a module (such as a process, function, etc.) that performs the functions described in this application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.

可选地,作为另一个实施例,处理器1430还配置为在运行所述计算机程序时,执行前述实施例所述的解码方法。Optionally, as another embodiment, the processor 1430 is further configured to execute the decoding method described in the above embodiment when running the computer program.

图15为本申请一个实施例提供的点云编码器的结构示意图。图15的点云编码器1500包括第一编码单元1510和第二编码单元1520。第一编码单元1510配置为根据第一概率模型对第一标识信息进行 编码,所述第一标识信息用于指示当前节点是否包含重复点;第二编码单元1520配置为如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。FIG15 is a schematic diagram of the structure of a point cloud encoder provided by an embodiment of the present application. The point cloud encoder 1500 of FIG15 includes a first encoding unit 1510 and a second encoding unit 1520. The first encoding unit 1510 is configured to encode the first identification information according to the first probability model. encoding, the first identification information is used to indicate whether the current node contains repeated points; the second encoding unit 1520 is configured to encode the number of repeated points contained in the current node if the first identification information indicates that the current node contains repeated points; wherein the first probability model satisfies at least one of the following: an initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probabilities of MPS and LPS are equal; the first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct encoding mode contains repeated points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains repeated points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains repeated points, and the second identification information is used to indicate whether a node using a direct encoding mode contains repeated points.

在一些实现方式中,所述第一概率模型的初始值的设置使得所述MPS的概率大于或等于0.8。In some implementations, the initial value of the first probability model is set so that the probability of the MPS is greater than or equal to 0.8.

在一些实现方式中,所述第一概率模型的初始值的设置使得所述MPS的概率等于1。In some implementations, the initial value of the first probability model is set so that the probability of the MPS is equal to 1.

在一些实现方式中,所述MPS为0,所述LPS为1。In some implementations, the MPS is 0 and the LPS is 1.

在一些实现方式中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点。In some implementations, the first identification information is used to indicate whether a node using a direct coding mode contains a repeated point.

在一些实现方式中,所述第一编码单元1510配置为:对第三标识信息进行编码,所述第三标识信息用于指示所述当前节点是否包含几何信息不同的点;如果所述第三标识信息指示所述当前节点仅包含几何信息相同的点,则根据所述第一概率模型对所述第一标识信息进行编码。In some implementations, the first encoding unit 1510 is configured to: encode third identification information, where the third identification information is used to indicate whether the current node contains points with different geometric information; if the third identification information indicates that the current node only contains points with the same geometric information, encode the first identification information according to the first probability model.

在一些实现方式中,所述第二编码单元1520配置为:对第四标识信息进行编码,所述第四标识信息用于指示所述当前节点是否包含1个重复点,如果所述第四标识信息指示所述当前节点包含1个重复点,则所述重复点数量为1。In some implementations, the second encoding unit 1520 is configured to: encode fourth identification information, where the fourth identification information is used to indicate whether the current node contains 1 repeated point, and if the fourth identification information indicates that the current node contains 1 repeated point, the number of repeated points is 1.

在一些实现方式中,所述第二编码单元1520还配置为:如果所述第四标识信息指示所述当前节点包括多个重复点,则对第五标识信息进行编码,所述重复点数量等于所述第五标识信息的取值与2之和。In some implementations, the second encoding unit 1520 is further configured to: if the fourth identification information indicates that the current node includes multiple repeated points, encode the fifth identification information, and the number of repeated points is equal to the sum of the value of the fifth identification information and 2.

在一些实现方式中,所述第二编码单元1520配置为:基于0阶指数哥伦布编码所述第五标识信息。In some implementations, the second encoding unit 1520 is configured to: encode the fifth identification information based on a 0th-order exponential Golomb encoding.

在一些实现方式中,所述编码器1500还包括第一确定单元,配置为在所述根据第一概率模型对第一标识信息进行编码之前,根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式。In some implementations, the encoder 1500 further includes a first determination unit configured to determine whether the current node uses a direct encoding mode based on information of a parent node of the current node before encoding the first identification information based on the first probability model.

在一些实现方式中,所述确定单元配置为:根据所述父节点的信息确定第一条件和/或第二条件是否满足;如果所述第一条件和/或所述第二条件满足,则确定所述当前节点使用直接编码模式;其中,所述第一条件包括所述父节点的被占用的子节点的数量为1,且所述当前节点的祖父节点的被占用的子节点的数量小于或等于2;其中,所述第二条件包括所述父节点的被占用的子节点的数量为1,且所述父节点的邻居节点均未被占用。In some implementations, the determination unit is configured to: determine whether the first condition and/or the second condition is met based on the information of the parent node; if the first condition and/or the second condition is met, determine that the current node uses a direct coding mode; wherein the first condition includes that the number of occupied child nodes of the parent node is 1, and the number of occupied child nodes of the grandparent node of the current node is less than or equal to 2; wherein the second condition includes that the number of occupied child nodes of the parent node is 1, and none of the neighboring nodes of the parent node are occupied.

在一些实现方式中,所述编码器1500还包括第三编码单元,配置为:如果所述当前节点不使用直接编码模式,则对所述当前节点进行多叉树编码。In some implementations, the encoder 1500 further includes a third encoding unit configured to: if the current node does not use a direct encoding mode, perform multi-tree encoding on the current node.

在一些实现方式中,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点。In some implementations, the first identification information is used to indicate whether a leaf node of the multi-branch tree contains a duplicate point.

在一些实现方式中,所述第二编码单元1520配置为:基于指数哥伦布编码所述当前节点包含的重复点数量。In some implementations, the second encoding unit 1520 is configured to: encode the number of repeated points contained in the current node based on exponential Golomb coding.

在一些实现方式中,所述编码器1500还包括更新单元,配置为:根据所述第一标识信息的取值更新编码区间参数的取值,所述编码区间参数包括第一参数和/或第二参数,所述第一参数用于指示编码区间的起始点,所述第二参数用于指示所述编码区间的宽度;根据所述第一标识信息的取值以及所述编码区间参数的更新值,更新所述第一概率模型。In some implementations, the encoder 1500 also includes an updating unit, configured to: update the value of a coding interval parameter according to the value of the first identification information, the coding interval parameter including a first parameter and/or a second parameter, the first parameter being used to indicate the starting point of the coding interval, and the second parameter being used to indicate the width of the coding interval; update the first probability model according to the value of the first identification information and the updated value of the coding interval parameter.

在一些实现方式中,所述更新单元配置为:如果所述第一标识信息的取值等于MPS,则将所述MPS的概率确定为所述第二参数的更新值;和/或,如果所述第一标识信息的取值等于LPS,则将所述第一参数的取值与MPS的概率之和确定为所述第一参数的更新值,并将所述LPS的概率确定为所述第二参数的更新值。In some implementations, the update unit is configured to: if the value of the first identification information is equal to the MPS, determine the probability of the MPS as the updated value of the second parameter; and/or, if the value of the first identification information is equal to the LPS, determine the sum of the value of the first parameter and the probability of the MPS as the updated value of the first parameter, and determine the probability of the LPS as the updated value of the second parameter.

在一些实现方式中,所述更新单元还配置为:如果所述第二参数的更新值小于所述第二参数的初始值的一半,则对所述第一参数和所述第二参数执行左移操作。In some implementations, the updating unit is further configured to: if the updated value of the second parameter is less than half of the initial value of the second parameter, perform a left shift operation on the first parameter and the second parameter.

可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。It is understandable that in the embodiments of the present application, a "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., and of course, it may be a module, or it may be non-modular. Moreover, the components in the present embodiment may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of a software functional module.

所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设 备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device) to perform operations. The aforementioned storage medium includes: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and other media that can store program codes.

因此,本申请实施例提供了一种计算机可读存储介质,应用于点云编码器1500,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例中的编码方法。Therefore, an embodiment of the present application provides a computer-readable storage medium, which is applied to the point cloud encoder 1500. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the encoding method in the aforementioned embodiment is implemented.

基于上述编码器1500的组成以及计算机可读存储介质,参见图16,其示出了本申请实施例提供的点云编码器的具体硬件结构示意图。如图16所示,点云编码器1600可以包括:通信接口1610、存储器1620和处理器1630;各个组件通过总线系统1640耦合在一起。可理解,总线系统1640用于实现这些组件之间的连接通信。总线系统1640除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图16中将各种总线都标为总线系统1640。其中,Based on the composition of the above-mentioned encoder 1500 and the computer-readable storage medium, refer to Figure 16, which shows a specific hardware structure diagram of the point cloud encoder provided in an embodiment of the present application. As shown in Figure 16, the point cloud encoder 1600 may include: a communication interface 1610, a memory 1620 and a processor 1630; each component is coupled together through a bus system 1640. It can be understood that the bus system 1640 is used to achieve connection and communication between these components. In addition to the data bus, the bus system 1640 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, various buses are labeled as bus system 1640 in Figure 16. Among them,

通信接口1610,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送。The communication interface 1610 is used to receive and send signals when sending and receiving information with other external network elements.

存储器1620,用于存储计算机程序。The memory 1620 is used to store computer programs.

处理器1630,用于在运行所述计算机程序时,执行:The processor 1630 is configured to, when running the computer program, execute:

根据第一概率模型对第一标识信息进行编码,所述第一标识信息用于指示当前节点是否包含重复点;Encoding first identification information according to a first probability model, where the first identification information is used to indicate whether the current node contains a duplicate point;

如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;If the first identification information indicates that the current node includes repeated points, encoding the number of repeated points included in the current node;

其中,所述第一概率模型满足以下中的至少一项:The first probability model satisfies at least one of the following:

所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;The initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probability of MPS and LPS being equal;

所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。The first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; wherein the first identification information is used to indicate whether a node using a direct coding mode contains repeated points, and the second identification information is used to indicate whether a leaf node of a multi-branch tree contains repeated points; or, the first identification information is used to indicate whether a leaf node of a multi-branch tree contains repeated points, and the second identification information is used to indicate whether a node using a direct coding mode contains repeated points.

可以理解,本申请实施例中的存储器1620可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的存储器1620旨在包括但不限于这些和任意其它适合类型的存储器。It can be understood that the memory 1620 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous DRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (DRRAM). The memory 1620 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

而处理器1630可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1630中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1630可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1620,处理器1630读取存储器1620中的信息,结合其硬件完成上述方法的步骤。The processor 1630 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit in the processor 1630 or the instruction in the form of software. The above processor 1630 may be a general processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application can be directly embodied as a hardware decoding processor to execute, or the hardware and software modules in the decoding processor can be executed. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 1620, and the processor 1630 reads the information in the memory 1620 and completes the steps of the above method in combination with its hardware.

可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。It is understood that the embodiments described in this application can be implemented in hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in this application or a combination thereof. For software implementation, the technology described in this application can be implemented by a module (such as a process, function, etc.) that performs the functions described in this application. The software code can be stored in a memory and executed by a processor. The memory can be implemented in the processor or outside the processor.

可选地,作为另一个实施例,处理器1630还配置为在运行所述计算机程序时,执行前述实施例所 述的编码方法。Optionally, as another embodiment, the processor 1630 is further configured to execute the aforementioned embodiment when running the computer program. The encoding method described.

需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。It should be noted that, in this application, the terms "include", "comprises" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "includes a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。The serial numbers of the above-mentioned embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.

本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。The methods disclosed in several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.

本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。The features disclosed in several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.

本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。The features disclosed in several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。 The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims (42)

一种解码方法,应用于点云解码器,包括:A decoding method, applied to a point cloud decoder, comprising: 根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;Decoding first identification information according to a first probability model, where the first identification information is used to indicate whether the current node contains a duplicate point; 如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;If the first identification information indicates that the current node includes duplicate points, determining the number of duplicate points included in the current node; 其中,所述第一概率模型满足以下中的至少一项:The first probability model satisfies at least one of the following: 所述第一概率模型的初始值不等于第一值,所述第一值对应于:最大概率符号MPS和最小概率符号LPS的概率相等;The initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probability of the maximum probability symbol MPS and the minimum probability symbol LPS are equal; 所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;The first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; 其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,The first identification information is used to indicate whether a node using the direct coding mode contains a repeated point, and the second identification information is used to indicate whether a leaf node of the multi-branch tree contains a repeated point; or 所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。The first identification information is used to indicate whether a leaf node of the multi-branch tree contains a repeated point, and the second identification information is used to indicate whether a node using a direct coding mode contains a repeated point. 根据权利要求1所述的方法,其中,所述第一概率模型的初始值的设置使得所述MPS的概率大于或等于0.8。The method according to claim 1, wherein the initial value of the first probability model is set so that the probability of the MPS is greater than or equal to 0.8. 根据权利要求1所述的方法,其中,所述第一概率模型的初始值的设置使得所述MPS的概率等于1。The method according to claim 1, wherein the initial value of the first probability model is set so that the probability of the MPS is equal to 1. 根据权利要求1所述的方法,其中,所述MPS为0,所述LPS为1。The method according to claim 1, wherein the MPS is 0 and the LPS is 1. 根据权利要求1所述的方法,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点。According to the method according to claim 1, the first identification information is used to indicate whether the node using the direct coding mode contains repeated points. 根据权利要求5所述的方法,其中,所述根据第一概率模型对第一标识信息进行解码,包括:The method according to claim 5, wherein decoding the first identification information according to the first probability model comprises: 对第三标识信息进行解码,所述第三标识信息用于指示所述当前节点是否包含几何信息不同的点;Decoding third identification information, where the third identification information is used to indicate whether the current node includes a point with different geometric information; 如果所述第三标识信息指示所述当前节点仅包含几何信息相同的点,则根据所述第一概率模型对所述第一标识信息进行解码。If the third identification information indicates that the current node only includes points with the same geometric information, the first identification information is decoded according to the first probability model. 根据权利要求5所述的方法,其中,所述确定所述当前节点包含的重复点数量,包括:The method according to claim 5, wherein the determining the number of repeated points contained in the current node comprises: 对第四标识信息进行解码,所述第四标识信息用于指示所述当前节点是否包含1个重复点;Decoding fourth identification information, where the fourth identification information is used to indicate whether the current node includes one repeated point; 如果所述第四标识信息指示所述当前节点包含1个重复点,则确定所述重复点数量为1。If the fourth identification information indicates that the current node includes 1 repeated point, it is determined that the number of repeated points is 1. 根据权利要求7所述的方法,其中,所述确定所述当前节点包含的重复点数量,还包括:The method according to claim 7, wherein the determining the number of repeated points contained in the current node further comprises: 如果所述第四标识信息指示所述当前节点包括多个重复点,则对第五标识信息进行解码,所述第五标识信息用于确定所述当前节点包含的重复点数量;If the fourth identification information indicates that the current node includes a plurality of repeated points, decoding the fifth identification information, where the fifth identification information is used to determine the number of repeated points included in the current node; 根据所述第五标识信息的取值确定所述当前节点包含的重复点数量。The number of repeated points included in the current node is determined according to the value of the fifth identification information. 根据权利要求8所述的方法,其中,所述根据所述第五标识信息的取值确定所述当前节点包含的重复点数量,包括:The method according to claim 8, wherein the determining the number of repeated points contained in the current node according to the value of the fifth identification information comprises: 将所述第五标识信息的取值与2之和确定为所述当前节点包含的重复点数量。The sum of the value of the fifth identification information and 2 is determined as the number of repeated points contained in the current node. 根据权利要求8或9所述的方法,其中,所述对第五标识信息进行解码,包括:The method according to claim 8 or 9, wherein decoding the fifth identification information comprises: 基于0阶指数哥伦布解码所述第五标识信息。The fifth identification information is decoded based on the 0th order Exponential Golomb decoding. 根据权利要求5所述的方法,其中,在所述根据第一概率模型对第一标识信息进行解码之前,所述方法还包括:The method according to claim 5, wherein, before decoding the first identification information according to the first probability model, the method further comprises: 根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式。Determine whether the current node uses a direct coding mode according to information of the parent node of the current node. 根据权利要求11所述的方法,其中,所述根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式,包括:The method according to claim 11, wherein the determining whether the current node uses the direct coding mode according to the information of the parent node of the current node comprises: 根据所述父节点的信息确定第一条件和/或第二条件是否满足;Determine whether the first condition and/or the second condition is satisfied according to the information of the parent node; 如果所述第一条件和/或所述第二条件满足,则确定所述当前节点使用直接编码模式;If the first condition and/or the second condition is satisfied, determining that the current node uses a direct coding mode; 其中,所述第一条件包括所述父节点的被占用的子节点的数量为1,且所述当前节点的祖父节点的被占用的子节点的数量小于或等于2;The first condition includes that the number of occupied child nodes of the parent node is 1, and the number of occupied child nodes of the grandparent node of the current node is less than or equal to 2; 其中,所述第二条件包括所述父节点的被占用的子节点的数量为1,且所述父节点的邻居节点均未被占用。The second condition includes that the number of occupied child nodes of the parent node is 1, and none of the neighboring nodes of the parent node are occupied. 根据权利要求11所述的方法,其中,所述方法还包括:The method according to claim 11, wherein the method further comprises: 如果所述当前节点不使用直接编码模式,则对所述当前节点进行多叉树解码。If the current node does not use the direct coding mode, multitree decoding is performed on the current node. 根据权利要求1所述的方法,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点。According to the method according to claim 1, the first identification information is used to indicate whether the leaf node of the multi-branch tree contains duplicate points. 根据权利要求14所述的方法,所述确定所述当前节点包含的重复点数量,包括: According to the method of claim 14, the determining the number of repeated points contained in the current node comprises: 基于指数哥伦布解码所述当前节点包含的重复点数量。The number of duplicate points contained in the current node based on Exponential Columbus decoding. 根据权利要求1所述的方法,其中,所述方法还包括:The method according to claim 1, wherein the method further comprises: 根据所述第一标识信息的取值更新编码区间参数的取值,所述编码区间参数包括第一参数和/或第二参数,所述第一参数用于指示编码区间的起始点,所述第二参数用于指示所述编码区间的宽度;Update the value of the coding interval parameter according to the value of the first identification information, the coding interval parameter includes a first parameter and/or a second parameter, the first parameter is used to indicate the starting point of the coding interval, and the second parameter is used to indicate the width of the coding interval; 根据所述第一标识信息的取值以及所述编码区间参数的更新值,更新所述第一概率模型。The first probability model is updated according to the value of the first identification information and the updated value of the coding interval parameter. 根据权利要求16所述的方法,其中,所述根据所述第一标识信息的取值更新编码区间参数的取值,包括:The method according to claim 16, wherein updating the value of the coding interval parameter according to the value of the first identification information comprises: 如果所述第一标识信息的取值等于MPS,则将所述MPS的概率确定为所述第二参数的更新值;和/或If the value of the first identification information is equal to the MPS, determining the probability of the MPS as the updated value of the second parameter; and/or 如果所述第一标识信息的取值等于LPS,则将所述第一参数的取值与MPS的概率之和确定为所述第一参数的更新值,并将所述LPS的概率确定为所述第二参数的更新值。If the value of the first identification information is equal to LPS, the sum of the value of the first parameter and the probability of MPS is determined as the updated value of the first parameter, and the probability of LPS is determined as the updated value of the second parameter. 根据权利要求17所述的方法,其中,所述方法还包括:The method according to claim 17, wherein the method further comprises: 如果所述第二参数的更新值小于所述第二参数的初始值的一半,则对所述第一参数和所述第二参数执行左移操作。If the updated value of the second parameter is less than half of the initial value of the second parameter, a left shift operation is performed on the first parameter and the second parameter. 一种编码方法,应用于点云编码器,包括:A coding method, applied to a point cloud encoder, comprising: 根据第一概率模型对第一标识信息进行编码,所述第一标识信息用于指示当前节点是否包含重复点;Encoding first identification information according to a first probability model, where the first identification information is used to indicate whether the current node contains a duplicate point; 如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;If the first identification information indicates that the current node includes repeated points, encoding the number of repeated points included in the current node; 其中,所述第一概率模型满足以下中的至少一项:The first probability model satisfies at least one of the following: 所述第一概率模型的初始值不等于第一值,所述第一值对应于:最大概率符号MPS和最小概率符号LPS的概率相等;The initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probability of the maximum probability symbol MPS and the minimum probability symbol LPS are equal; 所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;The first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; 其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,The first identification information is used to indicate whether a node using the direct coding mode contains a repeated point, and the second identification information is used to indicate whether a leaf node of the multi-branch tree contains a repeated point; or, 所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。The first identification information is used to indicate whether a leaf node of the multi-branch tree contains a repeated point, and the second identification information is used to indicate whether a node using a direct coding mode contains a repeated point. 根据权利要求19所述的方法,其中,所述第一概率模型的初始值的设置使得所述MPS的概率大于或等于0.8。The method according to claim 19, wherein the initial value of the first probability model is set so that the probability of the MPS is greater than or equal to 0.8. 根据权利要求19所述的方法,其中,所述第一概率模型的初始值的设置使得所述MPS的概率等于1。The method according to claim 19, wherein the initial value of the first probability model is set so that the probability of the MPS is equal to 1. 根据权利要求19所述的方法,其中,所述MPS为0,所述LPS为1。The method according to claim 19, wherein the MPS is 0 and the LPS is 1. 根据权利要求19所述的方法,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点。According to the method according to claim 19, the first identification information is used to indicate whether the node using the direct coding mode contains repeated points. 根据权利要求23所述的方法,其中,所述根据第一概率模型对第一标识信息进行编码,包括:The method according to claim 23, wherein encoding the first identification information according to the first probability model comprises: 对第三标识信息进行编码,所述第三标识信息用于指示所述当前节点是否包含几何信息不同的点;Encoding third identification information, where the third identification information is used to indicate whether the current node includes a point with different geometric information; 如果所述第三标识信息指示所述当前节点仅包含几何信息相同的点,则根据所述第一概率模型对所述第一标识信息进行编码。If the third identification information indicates that the current node only includes points with the same geometric information, the first identification information is encoded according to the first probability model. 根据权利要求23所述的方法,其中,所述对所述当前节点包含的重复点数量进行编码,包括:The method according to claim 23, wherein encoding the number of repeated points contained in the current node comprises: 对第四标识信息进行编码,所述第四标识信息用于指示所述当前节点是否包含1个重复点,如果所述第四标识信息指示所述当前节点包含1个重复点,则所述重复点数量为1。The fourth identification information is encoded, where the fourth identification information is used to indicate whether the current node includes one repeated point. If the fourth identification information indicates that the current node includes one repeated point, the number of repeated points is 1. 根据权利要求25所述的方法,其中,所述对所述当前节点包含的重复点数量进行编码,还包括:The method according to claim 25, wherein the encoding of the number of repeated points contained in the current node further comprises: 如果所述第四标识信息指示所述当前节点包括多个重复点,则对第五标识信息进行编码,所述重复点数量等于所述第五标识信息的取值与2之和。If the fourth identification information indicates that the current node includes multiple repeated points, the fifth identification information is encoded, and the number of repeated points is equal to the sum of the value of the fifth identification information and 2. 根据权利要求26所述的方法,其中,所述对第五标识信息进行编码,包括:The method according to claim 26, wherein encoding the fifth identification information comprises: 基于0阶指数哥伦布编码所述第五标识信息。The fifth identification information is encoded based on the 0th order Exponential Golomb encoding. 根据权利要求23所述的方法,其中,在所述根据第一概率模型对第一标识信息进行编码之前,所述方法还包括:The method according to claim 23, wherein before encoding the first identification information according to the first probability model, the method further comprises: 根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式。Determine whether the current node uses a direct coding mode according to information of the parent node of the current node. 根据权利要求28所述的方法,其中,所述根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式,包括: The method according to claim 28, wherein the determining whether the current node uses the direct encoding mode according to the information of the parent node of the current node comprises: 根据所述父节点的信息确定第一条件和/或第二条件是否满足;Determine whether the first condition and/or the second condition is satisfied according to the information of the parent node; 如果所述第一条件和/或所述第二条件满足,则确定所述当前节点使用直接编码模式;If the first condition and/or the second condition is satisfied, determining that the current node uses a direct coding mode; 其中,所述第一条件包括所述父节点的被占用的子节点的数量为1,且所述当前节点的祖父节点的被占用的子节点的数量小于或等于2;The first condition includes that the number of occupied child nodes of the parent node is 1, and the number of occupied child nodes of the grandparent node of the current node is less than or equal to 2; 其中,所述第二条件包括所述父节点的被占用的子节点的数量为1,且所述父节点的邻居节点均未被占用。The second condition includes that the number of occupied child nodes of the parent node is 1, and none of the neighboring nodes of the parent node are occupied. 根据权利要求28所述的方法,其中,所述方法还包括:The method according to claim 28, wherein the method further comprises: 如果所述当前节点不使用直接编码模式,则对所述当前节点进行多叉树编码。If the current node does not use the direct coding mode, multi-tree coding is performed on the current node. 根据权利要求19所述的方法,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点。According to the method according to claim 19, the first identification information is used to indicate whether the leaf node of the multi-branch tree contains duplicate points. 根据权利要求31所述的方法,所述对所述当前节点包含的重复点数量进行编码,包括:According to the method of claim 31, encoding the number of repeated points contained in the current node comprises: 基于指数哥伦布编码所述当前节点包含的重复点数量。The number of duplicate points contained in the current node based on the Exponential Golomb code. 根据权利要求19所述的方法,其中,所述方法还包括:The method according to claim 19, wherein the method further comprises: 根据所述第一标识信息的取值更新编码区间参数的取值,所述编码区间参数包括第一参数和/或第二参数,所述第一参数用于指示编码区间的起始点,所述第二参数用于指示所述编码区间的宽度;Update the value of the coding interval parameter according to the value of the first identification information, the coding interval parameter includes a first parameter and/or a second parameter, the first parameter is used to indicate the starting point of the coding interval, and the second parameter is used to indicate the width of the coding interval; 根据所述第一标识信息的取值以及所述编码区间参数的更新值,更新所述第一概率模型。The first probability model is updated according to the value of the first identification information and the updated value of the coding interval parameter. 根据权利要求33所述的方法,其中,所述根据所述第一标识信息的取值更新编码区间参数的取值,包括:The method according to claim 33, wherein updating the value of the coding interval parameter according to the value of the first identification information comprises: 如果所述第一标识信息的取值等于MPS,则将所述MPS的概率确定为所述第二参数的更新值;和/或If the value of the first identification information is equal to the MPS, determining the probability of the MPS as the updated value of the second parameter; and/or 如果所述第一标识信息的取值等于LPS,则将所述第一参数的取值与MPS的概率之和确定为所述第一参数的更新值,并将所述LPS的概率确定为所述第二参数的更新值。If the value of the first identification information is equal to LPS, the sum of the value of the first parameter and the probability of MPS is determined as the updated value of the first parameter, and the probability of LPS is determined as the updated value of the second parameter. 根据权利要求34所述的方法,其中,所述方法还包括:The method according to claim 34, wherein the method further comprises: 如果所述第二参数的更新值小于所述第二参数的初始值的一半,则对所述第一参数和所述第二参数执行左移操作。If the updated value of the second parameter is less than half of the initial value of the second parameter, a left shift operation is performed on the first parameter and the second parameter. 一种点云解码器,包括:A point cloud decoder, comprising: 解码单元,配置为根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;a decoding unit, configured to decode first identification information according to a first probability model, wherein the first identification information is used to indicate whether a current node contains a duplicate point; 确定单元,配置为如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;a determining unit, configured to determine the number of repeated points included in the current node if the first identification information indicates that the current node includes repeated points; 其中,所述第一概率模型满足以下中的至少一项:The first probability model satisfies at least one of the following: 所述第一概率模型的初始值不等于第一值,所述第一值对应于:最大概率符号MPS和最小概率符号LPS的概率相等;The initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probability of the maximum probability symbol MPS and the minimum probability symbol LPS are equal; 所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;The first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; 其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,The first identification information is used to indicate whether a node using the direct coding mode contains a repeated point, and the second identification information is used to indicate whether a leaf node of the multi-branch tree contains a repeated point; or 所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。The first identification information is used to indicate whether a leaf node of the multi-branch tree contains a repeated point, and the second identification information is used to indicate whether a node using a direct coding mode contains a repeated point. 一种点云解码器,包括:A point cloud decoder, comprising: 存储器,用于存储计算机程序;Memory for storing computer programs; 处理器,用于在运行所述计算机程序时,执行如权利要求1至18中任一项所述的方法。A processor, configured to execute the method according to any one of claims 1 to 18 when running the computer program. 一种点云编码器,包括:A point cloud encoder, comprising: 第一编码单元,配置为根据第一概率模型对第一标识信息进行编码,所述第一标识信息用于指示当前节点是否包含重复点;A first encoding unit, configured to encode first identification information according to a first probability model, wherein the first identification information is used to indicate whether a current node contains a duplicate point; 第二编码单元,配置为如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;a second encoding unit, configured to encode the number of repeated points included in the current node if the first identification information indicates that the current node includes repeated points; 其中,所述第一概率模型满足以下中的至少一项:The first probability model satisfies at least one of the following: 所述第一概率模型的初始值不等于第一值,所述第一值对应于:最大概率符号MPS和最小概率符号LPS的概率相等;The initial value of the first probability model is not equal to a first value, and the first value corresponds to: the probability of the maximum probability symbol MPS and the minimum probability symbol LPS are equal; 所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;The first probability model is different from the second probability model, and the second probability model is a probability model corresponding to the second identification information; 其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,The first identification information is used to indicate whether a node using the direct coding mode contains a repeated point, and the second identification information is used to indicate whether a leaf node of the multi-branch tree contains a repeated point; or 所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用 直接编码模式的节点是否包含重复点。The first identification information is used to indicate whether the leaf node of the multi-branch tree contains duplicate points, and the second identification information is used to indicate whether the leaf node of the multi-branch tree contains duplicate points. Whether the nodes in direct encoding mode contain duplicate points. 一种点云编码器,包括:A point cloud encoder, comprising: 存储器,用于存储计算机程序;Memory for storing computer programs; 处理器,用于在运行所述计算机程序时,执行如权利要求19至35中任一项所述的方法。A processor for executing the method according to any one of claims 19 to 35 when running the computer program. 一种存储比特流的非易失性计算机可读存储介质,所述比特流通过利用编码器的编码方法而生成,或者,所述比特流通过利用解码器的解码方法而解码,其中,所述解码方法为如权利要求1至18中任一项所述的方法、所述编码方法为如权利要求19至35中任一项所述的方法。A non-volatile computer-readable storage medium storing a bit stream, wherein the bit stream is generated by an encoding method using an encoder, or the bit stream is decoded by a decoding method using a decoder, wherein the decoding method is the method described in any one of claims 1 to 18, and the encoding method is the method described in any one of claims 19 to 35. 一种码流,所述码流包括如权利要求19至35中任一项所述的方法生成的码流。A code stream, comprising a code stream generated by the method according to any one of claims 19 to 35. 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1至18或19至35中任一项所述的方法。 A computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed, the method according to any one of claims 1 to 18 or 19 to 35 is implemented.
PCT/CN2023/143518 2023-12-29 2023-12-29 Encoding method, decoding method, point cloud encoder, point cloud decoder, bitstream, and storage medium Pending WO2025138196A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2023/143518 WO2025138196A1 (en) 2023-12-29 2023-12-29 Encoding method, decoding method, point cloud encoder, point cloud decoder, bitstream, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2023/143518 WO2025138196A1 (en) 2023-12-29 2023-12-29 Encoding method, decoding method, point cloud encoder, point cloud decoder, bitstream, and storage medium

Publications (1)

Publication Number Publication Date
WO2025138196A1 true WO2025138196A1 (en) 2025-07-03

Family

ID=96216401

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/143518 Pending WO2025138196A1 (en) 2023-12-29 2023-12-29 Encoding method, decoding method, point cloud encoder, point cloud decoder, bitstream, and storage medium

Country Status (1)

Country Link
WO (1) WO2025138196A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210218994A1 (en) * 2020-01-09 2021-07-15 Apple Inc. Geometry Encoding of Duplicate Points
CN113892128A (en) * 2019-12-02 2022-01-04 腾讯美国有限责任公司 Point cloud encoding and decoding method and device
CN115379191A (en) * 2022-08-22 2022-11-22 腾讯科技(深圳)有限公司 Point cloud decoding method, point cloud encoding method and related equipment
US20230099908A1 (en) * 2021-09-27 2023-03-30 Qualcomm Incorporated Coding point cloud data using direct mode for inter-prediction in g-pcc
CN116097651A (en) * 2020-11-25 2023-05-09 Oppo广东移动通信有限公司 Point cloud encoding and decoding method, encoder, decoder and computer storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113892128A (en) * 2019-12-02 2022-01-04 腾讯美国有限责任公司 Point cloud encoding and decoding method and device
US20210218994A1 (en) * 2020-01-09 2021-07-15 Apple Inc. Geometry Encoding of Duplicate Points
CN116097651A (en) * 2020-11-25 2023-05-09 Oppo广东移动通信有限公司 Point cloud encoding and decoding method, encoder, decoder and computer storage medium
US20230099908A1 (en) * 2021-09-27 2023-03-30 Qualcomm Incorporated Coding point cloud data using direct mode for inter-prediction in g-pcc
CN115379191A (en) * 2022-08-22 2022-11-22 腾讯科技(深圳)有限公司 Point cloud decoding method, point cloud encoding method and related equipment

Similar Documents

Publication Publication Date Title
US11683524B2 (en) Method and apparatus for point cloud compression
CN113615181B (en) Methods and devices for point cloud encoding and decoding
US20220180567A1 (en) Method and apparatus for point cloud coding
US12444090B2 (en) Point cloud attribute prediction method and apparatus, and related device
CN115914650A (en) Point cloud encoding and decoding method, encoder, decoder and storage medium
EP4258671A1 (en) Point cloud attribute predicting method, encoder, decoder, and storage medium
WO2024221458A9 (en) Point cloud encoding/decoding method and apparatus, device, and storage medium
WO2025138196A1 (en) Encoding method, decoding method, point cloud encoder, point cloud decoder, bitstream, and storage medium
TW202425653A (en) Point cloud encoding and decoding method, device, equipment and storage medium
WO2024174086A1 (en) Decoding method, encoding method, decoders and encoders
CN118525299A (en) Encoding method, decoding method, encoder, decoder, and storage medium
EP4395321A1 (en) Point cloud encoding/decoding method, apparatus and device, and storage medium
WO2024174092A1 (en) Encoding/decoding method, code stream, encoder, decoder, and storage medium
WO2024082152A1 (en) Encoding and decoding methods and apparatuses, encoder and decoder, code stream, device, and storage medium
WO2024187380A1 (en) Encoding method, decoding method, code stream, encoder, decoder and storage medium
WO2025039122A1 (en) Point cloud encoding method, point cloud decoding method, code stream, encoder, decoder, and storage medium
WO2025039113A1 (en) Encoding method, decoding method, code stream, encoder, decoder, and storage medium
WO2024207235A1 (en) Encoding/decoding method, bitstream, encoder, decoder, and storage medium
WO2025039125A1 (en) Encoding method, decoding method, encoder, decoder, and storage medium
WO2024216649A1 (en) Point cloud encoding and decoding method, encoder, decoder, code stream, and storage medium
WO2025076659A1 (en) Point cloud encoding method, point cloud decoding method, code stream, encoder, decoder and storage medium
WO2025076662A1 (en) Point cloud encoding method, point cloud decoding method, code stream, encoder, decoder, and storage medium
WO2025039120A1 (en) Encoding method, decoding method, encoder, decoder, and storage medium
HK40084120A (en) Point cloud encoding and decoding method, encoder, decoder, and storage medium
WO2025039127A1 (en) Encoding method, decoding method, encoder, decoder, and storage medium

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: 23962870

Country of ref document: EP

Kind code of ref document: A1