WO2025138196A1 - 编解码方法、点云编解码器、码流以及存储介质 - Google Patents
编解码方法、点云编解码器、码流以及存储介质 Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree 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
提供一种编解码方法、点云编解码器、码流以及存储介质。解码方法包括:根据第一概率模型对第一标识信息进行解码,第一标识信息用于指示当前节点是否包含重复点;如果第一标识信息指示当前节点包含重复点,则确定当前节点包含的重复点数量;第一概率模型满足以下中的至少一项:第一概率模型的初始值不等于第一值,第一值对应于:MPS和LPS的概率相等;第一概率模型与第二概率模型不同,第二概率模型与第二标识信息对应;其中,第一标识信息用于指示使用DCM的节点是否包含重复点,第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,第一标识信息用于指示多叉树的叶子节点是否包含重复点,第二标识信息用于指示使用DCM的节点是否包含重复点。
Description
本申请涉及视频编解码技术领域,尤其涉及一种编解码方法、点云编解码器、码流以及存储介质。
在基于几何的点云压缩(geometry-based point cloud compression,G-PCC)编解码框架中,点云的几何信息和属性信息是分开进行编解码的。几何编码过程中,有关重复点的编解码方案的设计存在不合理之处,降低了编码效率。
发明内容
本申请提供一种编解码方法、点云编解码器、码流以及存储介质。下面对本申请涉及的各个方面进行介绍。
第一方面,提供一种解码方法,应用于点云解码器,包括:根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:最大概率符号(most probability symbol,MPS)和最小概率符号(low probability symbol,LPS)的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
第二方面,提供一种编码方法,应用于点云编码器,包括:根据第一概率模型对第一标识信息进行编码,所述第一标识信息用于指示当前节点是否包含重复点;如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
第三方面,提供一种点云解码器,包括:解码单元,配置为根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;确定单元,配置为如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
第四方面,提供了一种点云解码器,包括:存储器,用于存储计算机程序;处理器,用于在运行计算机程序时,执行如第一方面的方法。
第五方面,提供一种点云编码器,包括:第一编码单元,配置为根据第一概率模型对第一标识信息进行编码,所述第一标识信息用于指示当前节点是否包含重复点;第二编码单元,配置为如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
第六方面,提供了一种点云编码器,包括:存储器,用于存储计算机程序;处理器,用于在运行计算机程序时,执行如第二方面的方法。
第七方面,提供了一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,计算机程序被执行时实现如第一方面至第二方面中任一项的方法。
第八方面,提供一种计算机程序产品,包括计算机程序,计算机程序被执行时实现如第一方面至第二方面中任一项的方法。
第九方面,提供一种存储比特流的非易失性计算机可读存储介质,比特流通过利用点云编码器的编码方法而生成,或者,比特流通过利用点云解码器的解码方法而解码,其中,解码方法为第一方面所述的方法、编码方法为第二方面所述的方法。
第十方面,提供一种码流,包括根据第二方面所述的方法生成的码流。
本申请实施例对重复点相关的标识信息的概率模型进行了调整,调整后的概率模型更符合实际情况,有助于提升点云的编解码效率。
图1A为一种三维点云图像示意图。
图1B为一种三维点云图像的局部放大图。
图2A为一种点云图像的六个观看角度示意图。
图2B为一种点云图像对应的数据存储格式示意图。
图3为一种点云编解码的网络架构示意图。
图4A为一种G-PCC编码器的组成框架示意图。
图4B为一种G-PCC解码器的组成框架示意图。
图5为直接编码模式(direct coding model,DCM)的示例图。
图6为推断直接编码模式(infer direct coding model,IDCM)的推断过程的示例图。
图7为概率模型的更新过程的示意图。
图8为重归一化过程的示意图。
图9为本申请一个实施例提供的解码方法的流程图。
图10为本申请一个实施例提供的编码方法的流程图。
图11为本申请另一实施例提供的解码方法的流程图。
图12为本申请另一实施例提供的编码方法的流程图。
图13为本申请一个实施例提供的点云解码器的结构示意图。
图14为本申请另一实施例提供的点云解码器的结构示意图。
图15为本申请一个实施例提供的点云编码器的结构示意图。
图16为本申请另一实施例提供的点云编码器的结构示意图。
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”或“一些实现方式”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”或“一些实现方式”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
本申请实施例可应用于点云编解码,为了便于理解,下面先对点云及其编解码方式进行介绍。
点云(point cloud)是物体表面的三维表现形式,通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云。
点云是空间中一组无规则分布的、表达三维物体或场景的空间结构及表面属性的离散点集。图1A展示了三维点云图像。图1B展示了该三维点云图像的局部放大图。从图1A和图1B可以看出,点云表面是由分布稠密的点所组成的。
二维图像在每一个像素点均有信息表达,分布规则,因此不需要额外记录其位置信息。然而,点云中的点在三维空间中的分布具有随机性和不规则性,因此需要记录每一个点在空间中的位置,才能完整地表达一幅点云。与二维图像类似,采集过程中每一个位置均有对应的属性信息,通常为RGB颜色值,颜色值反映物体的色彩。对于点云来说,每一个点所对应的属性信息除了颜色信息以外,还有比较常见的是反射率(reflectance)值,反射率值反映物体的表面材质。因此,点云数据通常包括点的位置信息
和点的属性信息。点的位置信息也可称为点的几何信息。例如,点的几何信息可以是点的三维坐标信息(x,y,z)。点的属性信息可以包括颜色信息和/或反射率等。例如,反射率可以是一维反射率信息(r);颜色信息可以是任意一种色彩空间上的信息,或者颜色信息也可以是三维颜色信息,如RGB信息。在这里,R表示红色(red,R),G表示绿色(green,G),B表示蓝色(blue,B)。再如,颜色信息可以是亮度色度(YCbCr,YUV)信息。其中,Y表示明亮度(luma),Cb(U)表示蓝色色差,Cr(V)表示红色色差。
根据激光测量原理得到的点云,点云中的点可以包括点的三维坐标信息和点的反射率值。再如,根据摄影测量原理得到的点云,点云中的点可以可包括点的三维坐标信息和点的三维颜色信息。再如,结合激光测量和摄影测量原理得到点云,点云中的点可以可包括点的三维坐标信息、点的反射率值和点的三维颜色信息。
图2A和图2B所示为一幅点云图像及其对应的数据存储格式。其中,图2A提供了点云图像的六个观看角度,图2B由文件头信息部分和数据部分组成,头信息包含了数据格式、数据表示类型、点云总点数、以及点云所表示的内容。例如,点云为“.ply”格式,由ASCII码表示,总点数为207242,每个点具有三维坐标信息(x,y,z)和三维颜色信息(r,g,b)。
点云可以按获取的途径分为如下几种类型:
静态点云:即物体是静止的,获取点云的设备也是静止的;
动态点云:物体是运动的,但获取点云的设备是静止的;
动态获取点云:获取点云的设备是运动的。
例如,按点云的用途分为两大类:
类别一:机器感知点云,其可以用于自主导航系统、实时巡检系统、地理信息系统、视觉分拣机器人、抢险救灾机器人等场景;
类别二:人眼感知点云,其可以用于数字文化遗产、自由视点广播、三维沉浸通信、三维沉浸交互等点云应用场景。
点云可以灵活方便地表达三维物体或场景的空间结构及表面属性,并且由于点云通过直接对真实物体采样获得,在保证精度的前提下能提供极强的真实感,因而应用广泛,其范围包括虚拟现实游戏、计算机辅助设计、地理信息系统、自动导航系统、数字文化遗产、自由视点广播、三维沉浸远程呈现、生物组织器官三维重建等。
点云的采集主要有以下途径:计算机生成、3D激光扫描、3D摄影测量等。计算机可以生成虚拟三维物体及场景的点云;3D激光扫描可以获得静态现实世界三维物体或场景的点云,每秒可以获取百万级点云;3D摄影测量可以获得动态现实世界三维物体或场景的点云,每秒可以获取千万级点云。这些技术降低了点云数据获取成本和时间周期,提高了数据的精度。点云数据获取方式的变革,使大量点云数据的获取成为可能,伴随着应用需求的增长,海量3D点云数据的处理遭遇存储空间和传输带宽限制的瓶颈。
示例性地,以帧率为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。由此可见,点云视频的数据量远超过相同时长的二维视频和三维视频的数据量。因此,为更好地实现数据管理,节省服务器存储空间,降低服务器与客户端之间的传输流量及传输时间,点云压缩成为促进点云产业发展的关键问题。也就是说,由于点云是海量点的集合,存储点云不仅会消耗大量的内存,而且不利于传输,也没有这么大的带宽可以支持将点云不经过压缩直接在网络层进行传输,因此,需要对点云进行压缩。
目前,可对点云进行压缩的点云编码框架可以是运动图像专家组(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。
图3示出的是一种点云编解码的网络架构示意图。如图3所示,该网络架构包括一个或多个电子设备13至1N和通信网络01,其中,电子设备13至1N可以通过通信网络01进行视频交互。电子设备
在实施的过程中可以为各种类型的具有点云编解码功能的设备,例如,所述电子设备可以包括手机、平板电脑、个人计算机、个人数字助理、导航仪、数字电话、视频电话、电视机、传感设备、服务器等,本申请实施例不作限制。其中,本申请实施例中的解码器或编码器就可以为上述电子设备。
其中,本申请实施例中的电子设备具有点云编解码功能,一般包括点云编码器(即编码器)和点云解码器(即解码器)。
下面以G-PCC编解码框架为例对点云编解码方式进行举例说明。
在点云G-PCC编解码框架中,针对待编码的点云数据,首先通过片(slice)划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和属性信息是分开进行编码的。
图4A示出了一种G-PCC编码器的编码框架示意图。如图4A所示,在几何编码过程中,对几何信息进行坐标转换,使点云全都包含在一个包围盒(bounding box)中,然后再进行量化。量化主要起到缩放的作用,由于量化取整,使得一部分点云的几何信息相同,于是再基于参数来决定是否移除重复点。量化和移除重复点这一过程又被称为体素化过程。接着对包围盒进行八叉树划分或者预测树构建。在该过程中,针对划分的叶子结点中的点进行算术编码,生成二进制的几何比特流;或者,针对划分产生的交点(vertex)进行算术编码(基于交点进行表面拟合),生成二进制的几何比特流。在属性编码过程中,几何编码完成,对几何信息进行重建后,需要先进行颜色转换,将颜色信息(即属性信息)从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。属性编码主要针对颜色信息进行,在颜色信息编码过程中,主要有两种变换方法,一是依赖于细节层次(level of detail,LOD)划分的基于距离的提升变换,二是直接进行区域自适应分层变换(region adaptive hierarchal transform,RAHT)。这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化,再对量化系数进行算术编码,可以生成二进制的属性比特流。
图4B示出了一种G-PCC解码器的解码框架示意图。如图4B所示,针对所获取的二进制比特流,首先对二进制比特流中的几何比特流和属性比特流分别进行独立解码。在对几何比特流的解码时,通过算术解码-重构八叉树/重构预测树-重建几何-坐标逆转换,得到点云的几何信息;在对属性比特流的解码时,通过算术解码-反量化-LOD划分/RAHT-颜色逆转换,得到点云的属性信息,基于几何信息和属性信息还原待编码的点云数据(即输出点云)。
根据图4A和图4B的介绍可知,目前G-PCC的几何编解码可分为:基于八叉树的几何编解码、基于三角面片集(triangle soup,trisoup)的几何编解码和基于预测树的几何编解码。下面对该三种几何编解码方式的具体实现方式进行更为详细地介绍。
基于八叉树的几何编解码
在编码端,首先对点云的几何信息进行坐标转换,使点云全都包含在一个由两个极值点(0,0,0)和(2d,2d,2d)定义的包围盒中。然后,对包围盒中的点进行体素化,即量化、取整、移除重复点(是否移除重复点可以根据参数来决定)。接着,按照广度优先的遍历顺序不断对包围盒中的非空的节点(或称非空的子立方体,即包含点云中的子立方体)进行八叉树划分。在同一八叉树深度下,一个节点将被划分为8个子节点,直到划分得到的叶子节点为1x1x1的单位立方体时停止划分。节点中是否有点占据(1为占据,0为无占据)可以通过8比特的二进制码表示。该8比特的二进制码被称为占位码(occupancy code)。对每个节点的占位码进行编码,从而生成二进制码流。
在解码端,按照广度优先的遍历顺序,不断解析得到每个节点的占位码,并且依次不断划分节点,直至划分得到1x1x1的单位立方体时停止划分。然后,解析得到每个叶子节点中包含的点数,从而恢复点云的重构几何信息。
基于trisoup的几何编解码
在编码端,首先基于八叉树进行划分。区别于基于八叉树结构的几何信息编码,基于trisoup的几何编码不需要将点云逐级划分至边长为1x1x1的叶子节点,而是划分至指定边长的叶子节点。在达到指定边长的叶子节点之后,可以将节点内体素构成的表面信息用一系列三角网格(triangle mesh)表示。G-PCC中用参数trisoup node size表示三角面片所在块(block)的尺寸大小。当trisoup node size大于0时,通过一个几何面片表示节点内的体素集合。几何面片与块的十二条边产生的至多十二个交点称为顶点(vertex)。依次编码每个块的顶点坐标,从而生成二进制码流。
在解码端,为了从节点三角面片中解码出点云的几何信息,需要检查节点立方体内的每个体素是否与三角面片相交,该技术称为三角光栅化。例如,可以利用6个单位向量(0,0,1)、(0,0,1)、(0,0,1)、(0,0,1)、(0,0,1)、(0,0,1)进行相交检验,以检验各单位向量与三角面片是否相交。若相交,则计算交点并输出解码的立方体。解码器中生成的点的数量由网格距离d决定。
基于预测树的几何编解码
在编码端,首先对输入点云进行排序,目前采用的排序方法包括无序、莫顿序、方位角序和径向距离序。在编码端可以利用两种不同的方式建立预测树结构。一种方式是基于KD-Tree构建预测树,这种预测树构建方式也可称为高时延慢速模式。另一种方式是利用激光雷达标定信息,将每个点划分到不同的Laser上,按照不同的Laser建立预测结构。这种预测树构建方式也可称为低时延快速模式。接下来,基于预测树的结构,遍历预测树中的每个节点,通过选取不同的预测模式对节点的几何位置信息进行预测得到预测残差,并且利用量化参数对几何预测残差进行量化。最终通过不断迭代,对预测树节点位置信息的预测残差、预测树结构以及量化参数等进行编码,生成二进制码流。
在解码端,解码器通过不断解析码流,重构预测树结构。其次,解码器通过解析得到每个预测节点的几何位置预测残差信息以及量化参数,并且对预测残差进行反量化,恢复得到每个节点的重构几何位置信息,最终完成解码端的几何重构。
前文对点云的基本概念以及点云编解码的基本方式进行了介绍。本申请实施例主要对点云编解码中的重复点的处理方式进行改进。下文对点云编解码过程中的与重复点有关的技术进行详细介绍。
G-PCC中的量化和重复点去除(体素化)
在G-PCC中,几何预处理阶段包括一个关键步骤,即体素化。在体素化过程中,点的位置在压缩之前以非负整数的形式来表示。为了得到这些整数值,点的位置会进行四舍五入。设点的初始位置为则对该点的量化方式如下:
其中Round(.)表示将括号内的数值四舍五入到最接近整数。
在经过量化之后,可能会出现位置相同的多个点,这些点被称为重复点。重复点的移除过程是可选的,通过几何参数集(geometry parameter set,GPS)层的语法元素geom_unique_points_flag来控制。当unique_points_flag被设置为0时,编码器才会对重复点的数量进行编码。同样,只有在解码得到的unique_points_flag等于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之间的整数值)内的所有点替换为该包围盒的中心点的过程。
直接编码模式(direct coding model,DCM)
参见图5,在G-PCC中,对节点或子节点中的点坐标进行熵编码称为DCM。DCM主要用于处理孤立节点。八叉树划分过程会利用邻居上下文信息进行熵编码,与八叉树划分过程不同,DCM直接对该点的三个坐标分量进行编码。
对于待编码节点,是否启用DCM需要通过父节点及其邻居信息进行推断,这一过程被称为推断直接编码模式(infer direct coding model,IDCM)。如图6所示,IDCM会先确定当前节点是否具有DCM编码资格(eligible)。如果当前节点具有DCM编码资格,则可以对当前节点进行DCM编码(当然,还可以引入其他判断条件,如判断当前节点中的点的数量是否小于阈值(nb_points≤th)等)。如果当前节点不具有DCM编码资格,则可以对当前节点进行八叉树编码。
当前节点是否具有DCM编码资格可以基于当前节点的父节点本身或父节点的邻居信息确定,这些信息可以称为推论(inference)。
DCM编码资格的推论可以分为如下两种:
1)基于父母的资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且祖父节点(即父节点的父节点)最多具有两个被占用的子节点(即父节点以及可能还有一个其他节点)。
2)6N资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且没有被占用的邻居节点(这里提到的邻居节点指的是上下左右前后6个邻居节点)。
为了适应不同的压缩效率和/或编码时间,IDCM有三种可能的推断方式。推断方式1指的是:如果当前节点满足基于父母的资格和6N资格,则开启DCM编码,这种推断方式压缩效果最好,但压缩时间较长。推断方式2指的是:如果当前节点满足6N资格,则开启DCM编码,这种推断方式2放宽了DCM的判断条件,更多的节点会启用DCM。推断方式3指的是:如果当前节点满足基于父母的资格,则开启DCM编码,这种推断方式采用了更宽松的判断条件,但压缩效率较低。
如果当前节点满足DCM编码资格,则首先编码一个二进制标志位,以指示当前节点是否使用DCM。如果该标志为1,则表示当前节点使用DCM;如果该标志为0,则表示当前节点不使用DCM。
如果采用DCM模式,则可以采用如下步骤对当前节点进行编码。
第一:编码二进制语法元素direct_point_cnt_eq2。direct_point_cnt_eq2标识当前节点是否包含2个不同的点(即2个点的几何信息不同)。如果direct_point_cnt_eq2为1,则表示当前节点包含2个不同
的点;如果direct_point_cnt_eq2为0,则表示当前节点仅包含几何信息相同的点(可以是仅包含1个点,也可以是包含几何信息相同的多个点)。
第二:如果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即为重复点数量。
多叉树叶子节点的重复点数编解码
在G-PCC的多叉树(如八叉树)编码中,多叉树叶子节点可能包含重复点。多叉树叶子节点的重复点数的编码方法包括如下步骤。首先,编码二进制语法元素DupPointsCntGt0L。DupPointsCntGt0L可用于表示叶子节点是否包含重复点。如果DupPointsCntGt0L为1,则表示该叶子节点包含重复点;如果DupPointsCntGt0L为0,则表示该叶子节点不包含重复点。然后,当DupPointsCntGt0L为1时,使用指数哥伦布编码该叶子节点内的重复点数量。
多叉树叶子节点的重复点数的解码方法包括如下步骤。首先,解码出二进制语法元素DupPointsCntGt0L。如果DupPointsCntGt0L为1,则表示该叶子节点包含重复点;如果DupPointsCntGt0L为0,则表示该叶子节点不包含重复点。当DupPointsCntGt0L为1时,则继续使用指数哥伦布解码出该叶子节点内的重复点数量。
熵编码概率模型及初始化
对于一个概率模型,首先确定其对应的算术编码器的区间起始点(Low)和区间宽度(Range)。然后,可以根据输入的二进制(bin)值不断更新MPS和LPS的区间大小,最终以Low的取值作为编码的输出。
下文结合图8,详细描述概率模型的更新过程。
首先,初始化Low和Range(Range的初始区间宽度为510,用9比特表示)。如果概率模型的初始值为第一值(第一值对应于MPS和LPS的概率相等的情况,也就是说,如果概率模型的初始值为第一值,则MPS和LPS的概率相等,均为0.5),则MPS的初始区间RMPS宽度与LPS的初始区间宽度RLPS一致,各占Range的初始区间宽度的一半。
其次,确定待编码的Bin值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。
然后,使用Bin值、Low、Range更新概率模型。
随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。
前文对点云编解码以及点云编解码中的重复点处理进行了详细介绍。经过仔细研究发现,点云编解码的某些算法设计仍然存在不合理之处,从而降低了编解码效率。下面对此进行详细分析。
前文提到,DCM编码中的语法元素DupPointsCntGt0用于标识使用DCM的节点是否包含重复点,多叉树叶子节点中的语法元素DupPointsCntGt0L用于标识多叉树叶子节点是否包含重复点。相关技术中,DupPointsCntGt0和DupPointsCntGt0L采用同一概率模型进行熵编码。但是,使用DCM编解码的节点包含重复点的实际概率与多叉树叶子节点包含重复点的实际概率是不同的,二者使用同一概率模型进行熵编码与实际情况不符,因此会带来编码效率的损失。
除此之外,DCM编码中的语法元素DupPointsCntGt0和多叉树叶子节点中的语法元素DupPointsCntGt0L取值为0的概率非常高。即大部分情况下,使用DCM编解码的节点和多叉树叶子节点均不包括重复点。相关技术并未充分利用这一先验信息,将DupPointsCntGt0对应的概率模型(与DupPointsCntGt0L共用同一概率模型)的初始值设置为第一值(第一值对应于MPS和LPS的概率相等的情况,也就是说,如果概率模型的初始值为第一值,则MPS和LPS的概率相等,均为0.5)。如果概率模型的初始值设置为第一值,则MPS和LPS对应的初始区间宽度一致,此时编码器需要不断输出比特(输出bin值0)去更新MPS对应的区间宽度,使MPS的区间宽度达到一定程度。只有当MPS区间宽度达到MPS接近1时对应的区间宽度,才开始节省比特。这些比特的输出其实是由于初始值设置不合理而造成的。如果能够将初始值设定合适,则可以避免上文提到的“不断输出比特,使MPS区间达到一定程度”的过程,进而提升编码效率。
针对上述问题,本申请实施例提出一种编码方法,包括:根据第一概率模型对第一标识信息进行编码,第一标识信息用于指示当前节点是否包含重复点;如果第一标识信息指示当前节点包含重复点,则对当前节点包含的重复点数量进行编码;其中,第一概率模型满足以下中的至少一项:第一概率模型的初始值不等于第一值,第一值对应于:MPS和LPS的概率相等;第一概率模型与第二概率模型不同,第二概率模型为第二标识信息对应的概率模型;其中,第一标识信息用于指示使用DCM的节点是否包含重复点,第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,第一标识信息用于指示多叉树的叶子节点是否包含重复点,第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
本申请实施例还提出一种解码方法,包括:根据第一概率模型对第一标识信息进行解码,第一标识信息用于指示当前节点是否包含重复点;如果第一标识信息指示当前节点包含重复点,则确定当前节点包含的重复点数量;其中,第一概率模型满足以下中的至少一项:第一概率模型的初始值不等于第一值,第一值对应于:MPS和LPS的概率相等;第一概率模型与第二概率模型不同,第二概率模型为第二标识信息对应的概率模型;其中,第一标识信息用于指示使用DCM的节点是否包含重复点,第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,第一标识信息用于指示多叉树的叶子节点是否包含重复点,第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
本申请实施例将第一标识信息对应的概率模型的初始值设置为不等于第一值(第一值对应于MPS和LPS的概率相等的情况)和/或将第一标识信息对应的概率模型与第二标识信息对应的概率模型设置为不同的概率模型,上述设置方式更加符合实际情况,从而有助于提升点云的编解码效率。
下文结合实施例一和实施例二,对本申请实施例进行更为详细地举例说明。实施例一是站在DCM编解码过程进行描述的,实施例二是站在多叉树叶子节点的编解码过程进行描述的。在实施例一中,第一标识信息用于指示使用DCM的节点是否包含重复点,第二标识信息用于指示多叉树的叶子节点是否包含重复点。在实施例二中,第一标识信息用于指示多叉树的叶子节点是否包含重复点,第二标识信息用于指示使用直接编码模式的节点是否包含重复点。应理解,点云编解码过程可能既要进行DCM编解码,还要进行多叉树树叶子节点编解码,因此实施例一和实施例二可以相互组合。
实施例一:DCM编解码
图9为本申请实施例提供的解码方法的流程示意图。图9的方法可应用于解码器。该解码器例如可以是支持G-PCC的解码器。
在步骤S910,根据第一概率模型对第一标识信息进行解码(如熵解码)。第一标识信息用于指示当前节点(该当前节点指的是使用DCM的节点)是否包含重复点。第一标识信息例如可以是二进制语法元素DupPointsCntGt0。第一标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第一标识信息的取值为值a,则可以表示当前节点包含重复点。如果第一标识信息的取值为值b,则可以表示当前节点不包含重复点。
第一概率模型指的是用于对第一标识信息进行熵解码的概率模型。第一概率模型的MPS可以为0(即bin值0),LPS可以为1(即bin值1)。第一概率模型的初始值可以包括第一概率模型的MPS的概率初始值和/或LPS的概率初始值。也就是说,第一概率模型的初始值可用于表示第一概率模型为0和/或为1的概率。
在一些实现方式中,第一概率模型的初始值不等于第一值。第一值对应于MPS和LPS的概率相等的情况。也就是说,如果第一概率模型的初始值为第一值,则MPS和LPS的概率相等。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为不等于第一值,与实际情况更相符,可以减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。
示例性地,第一概率模型的初始值的设置可以使得MPS的概率大于或等于0.6,0.7,0.8或0.9。可选地,第一概率模型的初始值可以使得MPS的概率等于1。例如,第一概率模型的初始值可以等于1,16位二进制精度时为0xffff。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为使得MPS的概率等于1的值,与实际情况更相符,可以最大程度减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。
前文提到,第一概率模型用于对第一标识信息进行解码。在一些实现方式中,除了用于对第一标识信息进行解码之外,第一概率模型还可用于对第二标识信息解码。第二标识信息用于指示多叉树(如八叉树、四叉树或二叉树)的叶子节点是否包含重复点。第二标识信息例如可以是二进制语法元素DupPointsCntGt0L。第二标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第二标识信息的取值为值a,则可以表示多叉树叶子节点包含重复点。如果第二标识信息的取值为值b,则可以表示多叉树叶子节点不包含重复点。
但是,使用DCM的节点包含重复点的实际概率与多叉树叶子节点包含重复点的实际概率是不同的,二者使用同一概率模型进行熵解码与实际情况不符,可能会降低解码效率。因此,在另一些实现方式中,
第二标识信息可以对应第二概率模型(即第二标识信息可以使用第二概率模型进行解码)。将第一标识信息和第二标识信息对应的概率模型设置为不同的概率模型,两个概率模型的更新过程互不影响,有助于提升解码效率。
在一些实现方式中,在执行步骤S910之前,可以先对第三标识信息进行解码。该第三标识信息用于指示当前节点是否包含几何信息不同的点。第三标识信息例如可以是二进制语法元素direct_point_cnt_eq2。第三标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第三标识信息的取值为值a,则可以表示当前节点包含几何信息不同的点(如包括2个几何信息不同的点)。如果第三标识信息的取值为值b,则可以表示当前节点仅包含几何信息相同的点。例如,当前节点仅包括1个点;或者,当前节点包括多个点,且该多个点的几何信息相同。在第三标识信息指示当前节点仅包含几何信息相同的点的情况下,继续执行步骤S910;否则,可以不执行步骤S910。
继续参见图9,在一些实现方式中,图9的方法还可以包括步骤S920,即如果第一标识信息指示当前节点包含重复点,则确定当前节点包含的重复点数量。
例如,可以对第四标识信息进行解码。第四标识信息用于指示当前节点是否包含1个重复点。第四标识信息例如可以是二进制语法元素DupPointsCntGt1。第四标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第四标识信息的取值为值a,则可以表示当前节点包含多个重复点(或1个以上重复点)。如果第四标识信息的取值为值b,则可以表示当前节点包含1个重复点。如果第四标识信息指示当前节点包含1个重复点,则确定重复点数量为1。
进一步地,在一些实现方式中,如果第四标识信息指示当前节点包括多个重复点,则对第五标识信息进行解码。第五标识信息用于指示或确定当前节点包含的重复点数量。第五标识信息例如可以是二进制语法元素DupPointsCntEg1。第五标识信息例如可以基于0阶指数哥伦布解码。在解析得到第五标识信息的取值之后,可以根据第五标识信息的取值确定当前节点包含的重复点数量。例如,可以将第五标识信息的取值与2之和确定为当前节点包含的重复点数量(如DupPointsCntEg1+2)。
前文提到,当前节点为使用DCM的节点(如果当前节点不使用DCM,则可以对当前节点进行多叉树解码)。在执行步骤S910之前,可以先根据父节点的信息和/或父节点的邻居信息推断当前节点是否使用DCM(即是否具有DCM解码资格)。下文对当前节点是否使用DCM的推断方式进行详细地举例说明。
在一些实现方式中,可以根据父节点的信息确定第一条件和/或第二条件是否满足。第一条件可以包括父节点的被占用的子节点的数量为1,且当前节点的祖父节点(即父节点的父节点)的被占用的子节点的数量小于或等于2(即父节点以及可能还有一个其他节点)。第二条件可以包括父节点的被占用的子节点的数量为1,且父节点的邻居节点(这里提到的邻居节点例如可以指上下左右前后6个邻居节点)均未被占用。如果第一条件和/或第二条件满足,则确定当前节点使用DCM。例如,如果第一条件满足,则确定当前节点使用DCM。又如,如果第二条件满足,则确定当前节点使用DCM。又如,如果第一条件和第二条件同时满足,则确定当前节点使用DCM。
下文以第一条件为“基于父母的资格”,第二条件为“6N资格”为例,对当前节点是否使用DCM解码进行更为详细地举例说明。
当前节点是否具有DCM解码资格可以基于当前节点的父节点本身或父节点的邻居信息确定,这些信息可以称为推论(inference)。
DCM解码资格的推论可以分为如下两种:
1)基于父母的资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且祖父节点(即父节点的父节点)最多具有两个被占用的子节点(即父节点以及可能还有一个其他节点)。
2)6N资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且没有被占用的邻居节点(这里提到的邻居指的是上下左右前后6个邻居节点)。
IDCM有三种可能推断方式。推断方式1指的是:如果当前节点满足基于父母的资格和6N资格,则开启DCM解码。推断方式2指的是:如果当前节点满足6N资格,则开启DCM解码。推断方式3指的是:如果当前节点满足基于父母的资格,则开启DCM解码。
在对第一标识信息进行解码之后,还可以根据第一标识信息的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据第一标识信息的取值更新编码区间参数的取值之后,可以根据第一标识信息的取值以及编码区间参数的更新值,更新第一概率模型。
例如,首先,确定第一标识信息的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。
RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。
然后,使用Bin值、Low、Range更新概率模型。
随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作(需要说明的是,本申请各个实施例提及的“对参数进行左移操作”指的是对该参数的二进制值进行左移操作),直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。
上文结合图9,详细描述了本申请实施例提供的解码方法。下文结合图10,详细描述本申请实施例提供的编码方法。
图10为本申请实施例提供的编码方法的流程示意图。图10的方法可应用于点云编码器。该点云编码器例如可以是支持G-PCC的解码器。
在步骤S1010,根据第一概率模型对第一标识信息进行编码(如熵编码)。第一标识信息用于指示当前节点(该当前节点指的是使用DCM的节点)是否包含重复点。第一标识信息例如可以是二进制语法元素DupPointsCntGt0。第一标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第一标识信息的取值为值a,则可以表示当前节点包含重复点。如果第一标识信息的取值为值b,则可以表示当前节点不包含重复点。
第一概率模型指的是用于对第一标识信息进行熵编码的概率模型。第一概率模型的MPS可以为0(即bin值0),LPS可以为1(即bin值1)。第一概率模型的初始值可以包括第一概率模型的MPS的概率初始值和/或LPS的概率初始值。也就是说,第一概率模型的初始值可用于表示第一概率模型为0和/或为1的概率。
在一些实现方式中,第一概率模型的初始值不等于第一值。第一值对应于MPS和LPS的概率相等的情况。也就是说,如果第一概率模型的初始值为第一值,则MPS和LPS的概率相等。也就是说,第一概率模型中,MPS对应的初始区间宽度大于LPS对应的初始区间宽度。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为不等于第一值,与实际情况更相符,可以减少编码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升编码效率。
示例性地,第一概率模型的初始值的设置可以使得MPS的概率大于或等于0.6,0.7,0.8或0.9。可选地,第一概率模型的初始值的设置可以使得MPS的概率等于1。例如,第一概率模型的初始值可以等于1,16位二进制精度时为0xffff。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为使得MPS的概率等于1的值,与实际情况更相符,可以最大程度减少编码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升编码效率。
前文提到,第一概率模型用于对第一标识信息进行编码。在一些实现方式中,除了用于对第一标识信息进行编码之外,第一概率模型还可用于对第二标识信息编码。第二标识信息用于指示多叉树(如八叉树、四叉树或二叉树)的叶子节点是否包含重复点。第二标识信息例如可以是二进制语法元素DupPointsCntGt0L。第二标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第二标识信息的取值为值a,则可以表示多叉树叶子节点包含重复点。如果第二标识信息的取值为值b,则可以表示多叉树叶子节点不包含重复点。
但是,使用DCM的节点包含重复点的实际概率与多叉树叶子节点包含重复点的实际概率是不同的,二者使用同一概率模型进行熵编码与实际情况不符,可能会降低编码效率。因此,在另一些实现方式中,第二标识信息可以对应第二概率模型(即第二标识信息可以使用第二概率模型进行编码)。将第一标识信息和第二标识信息对应的概率模型设置为不同的概率模型,两个概率模型的更新过程互不影响,有助于提升编码效率。
在一些实现方式中,在执行步骤S1010之前,可以先对第三标识信息进行编码。该第三标识信息用于指示当前节点是否包含几何信息不同的点。第三标识信息例如可以是二进制语法元素direct_point_cnt_eq2。第三标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第三标识信息的取值为值a,则可以表示当前节点包含几何信息不同的点(如包括2个几何信息不同的点)。如果第三标识信息的取值为值b,则可以表示当前节点仅包含几何信息相同的点。例如,当前节点仅包括1个点;或者,当前节点包括多个点,且该多个点的几何信息相同。在第三标识信息指示当前节点仅包含几何信息相同的点的情况下,继续执行步骤S1010;否则,可以不执行步骤S1010。
继续参见图10,在一些实现方式中,图10的方法还可以包括步骤S1020,即如果第一标识信息指示当前节点包含重复点,则对当前节点包含的重复点数量进行编码。
例如,可以对第四标识信息进行编码。第四标识信息用于指示当前节点是否包含1个重复点。第四
标识信息例如可以是二进制语法元素DupPointsCntGt1。第四标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第四标识信息的取值为值a,则可以表示当前节点包含多个重复点(或1个以上重复点)。如果第四标识信息的取值为值b,则可以表示当前节点包含1个重复点。如果第四标识信息指示当前节点包含1个重复点,则重复点数量为1。
进一步地,在一些实现方式中,如果第四标识信息指示当前节点包括多个重复点,则对第五标识信息进行编码。第五标识信息用于指示或确定当前节点包含的重复点数量。第五标识信息例如可以是二进制语法元素DupPointsCntEg1。第五标识信息例如可以基于0阶指数哥伦布编码。当前节点包含的重复点数量可以等于第五标识信息的取值与2之和(如DupPointsCntEg1+2)。
前文提到,当前节点为使用DCM的节点(如果当前节点不使用DCM,则可以对当前节点进行多叉树编码)。在执行步骤S1010之前,可以先根据父节点的信息和/或父节点的邻居信息推断当前节点是否使用DCM(即是否具有DCM编码资格)。下文对当前节点是否使用DCM的推断方式进行详细地举例说明。
在一些实现方式中,可以根据父节点的信息确定第一条件和/或第二条件是否满足。第一条件可以包括父节点的被占用的子节点的数量为1,且当前节点的祖父节点(即父节点的父节点)的被占用的子节点的数量小于或等于2(即父节点以及可能还有一个其他节点)。第二条件可以包括父节点的被占用的子节点的数量为1,且父节点的邻居节点(这里提到的邻居节点例如可以指上下左右前后6个邻居节点)均未被占用。如果第一条件和/或第二条件满足,则确定当前节点使用DCM。例如,如果第一条件满足,则确定当前节点使用DCM。又如,如果第二条件满足,则确定当前节点使用DCM。又如,如果第一条件和第二条件同时满足,则确定当前节点使用DCM。
下文以第一条件为“基于父母的资格”,第二条件为“6N资格”为例,对当前节点是否使用DCM编码进行更为详细地举例说明。
当前节点是否具有DCM编码资格可以基于当前节点的父节点本身或父节点的邻居信息确定,这些信息可以称为推论(inference)。
DCM编码资格的推论可以分为如下两种:
1)基于父母的资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且祖父节点(即父节点的父节点)最多具有两个被占用的子节点(即父节点以及可能还有一个其他节点)。
2)6N资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且没有被占用的邻居节点(这里提到的邻居指的是上下左右前后6个邻居节点)。
IDCM有三种可能推断方式。推断方式1指的是:如果当前节点满足基于父母的资格和6N资格,则开启DCM编码。推断方式2指的是:如果当前节点满足6N资格,则开启DCM编码。推断方式3指的是:如果当前节点满足基于父母的资格,则开启DCM编码。
在对第一标识信息进行编码之后,还可以根据第一标识信息的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据第一标识信息的取值更新编码区间参数的取值之后,可以根据第一标识信息的取值以及编码区间参数的更新值,更新第一概率模型。
例如,首先,确定第一标识信息的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。
然后,使用Bin值、Low、Range更新概率模型。
随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。
下面结合具体例子,更加详细地描述实施例一。应注意,下文的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
下面是本示例涉及的一些语法元素。
上述语法元素中的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为节点内的点的数量。
编码端过程:
参见图5,在G-PCC中,对节点或子节点中的点坐标进行熵编码称为DCM。DCM主要用于处理孤立节点。八叉树划分过程会利用邻居上下文信息进行熵编码。与八叉树划分过程不同,DCM直接对该点的三个分量坐标进行编码。
对于待编码节点,是否启用DCM是通过父节点及其邻居的信息推断,这一过程被称为IDCM。如图6所示,IDCM会先确定当前节点是否具有DCM编码资格(eligible)。如果当前节点具有DCM编码资格,则可以对当前节点进行DCM编码(当然,还可以引入其他判断条件的判断,如当前节点中的点的数量是否小于阈值(nb_points≤th)等)。如果当前节点不具有DCM编码资格,则可以对当前节点进行八叉树编码。
当前节点是否具有DCM编码资格可以基于当前节点的父节点本身或父节点的邻居信息确定,这些信息可以称为推论(inference)。
DCM编码资格的推论可以分为如下两种:
1)基于父母的资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且祖父节点(即父节点的父节点)最多具有两个被占用的子节点(即父节点以及可能还有一个其他节点)。
2)6N资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且没有被占用的邻居节点(这里提到的邻居指的是上下左右前后6个邻居节点)。
为了适应不同的压缩效率和/或编码时间,IDCM有三种可能推断方式。推断方式1指的是:如果当前节点满足基于父母的资格和6N资格,则开启DCM编码,这种推断方式压缩效果最好,但压缩时间较长。推断方式2指的是:如果当前节点满足6N资格,则开启DCM编码,这种推断方式2放宽了DCM的判断条件,更多的节点会启用DCM。推断方式3指的是:如果当前节点满足基于父母的资格,则开启DCM编码,这种推断方式采用了更宽松的判断条件,但压缩效率较低。
如果当前节点满足DCM编码资格,则首先编码一个二进制标志位,以指示当前节点是否使用DCM。如果该标志为1,则表示当前节点使用DCM;如果该标志为0,则表示当前节点不使用DCM。
如果采用DCM模式,则可以采用如下步骤对当前节点进行编码。
第一:编码二进制语法元素direct_point_cnt_eq2。direct_point_cnt_eq2标识当前节点是否包含2个不同的点(即2个点的几何信息不同)。如果direct_point_cnt_eq2为1,则表示当前节点包含2个不同的点;如果direct_point_cnt_eq2为0,则表示当前节点仅包含几何信息相同的点(可以是仅包含1个点,也可以是包含几何信息相同的多个点)。
第二:如果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。
在对DupPointsCntGt0进行熵编码时,使用第一概率模型对DupPointsCntGt0进行熵编码。第一概率模型的初始值(即MPS为0的概率)可以设置为1。16位二进制精度时为0xffff。由于DupPointsCntGt0的取值为0的概率非常高,因此,将第一概率模型的初始值设置为1,与实际情况更相符,可以最大程度减少编码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升编码效率。此外,DupPointsCntGt0与DupPointsCntGt0L(用于标识多叉树叶子节点是否包含重复点)使用不同的概率模型。
在对DupPointsCntGt0进行编码之后,还可以根据DupPointsCntGt0的取值更新编码区间参数的取
值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据DupPointsCntGt0的取值更新编码区间参数的取值之后,可以根据DupPointsCntGt0的取值以及编码区间参数的更新值,更新第一概率模型。
例如,首先,确定DupPointsCntGt0的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。
然后,使用Bin值、Low、Range更新概率模型。
随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。
解码端过程:
对于待解码节点,是否启用DCM是通过父节点及其邻居的信息进行推断的,这一过程被称为IDCM。如图6所示,IDCM会先确定当前节点是否具有DCM解码资格(eligible)。如果当前节点具有DCM解码资格,则可以对当前节点进行DCM解码(当然,还可以引入其他判断条件的判断,如当前节点中的点的数量是否小于阈值(nb_points≤th)等)。如果当前节点不具有DCM解码资格,则可以对当前节点进行八叉树解码。
当前节点是否具有DCM解码资格可以基于当前节点的父节点本身或父节点的邻居信息确定,这些信息可以称为推论(inference)。
DCM解码资格的推论可以分为如下两种:
1)基于父母的资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且祖父节点(即父节点的父节点)最多具有两个被占用的子节点(即父节点以及可能还有一个其他节点)。
2)6N资格:在父节点层级上只有一个被占用的子节点(即当前节点),并且没有被占用的邻居节点(这里提到的邻居指的是上下左右前后6个邻居节点)。
为了适应不同的压缩效率和/或解码时间,IDCM有三种可能推断方式。推断方式1指的是:如果当前节点满足基于父母的资格和6N资格,则开启DCM解码,这种推断方式压缩效果最好,但压缩时间较长。推断方式2指的是:如果当前节点满足6N资格,则开启DCM解码,这种推断方式2放宽了DCM的判断条件,更多的节点会启用DCM。推断方式3指的是:如果当前节点满足基于父母的资格,则开启DCM解码,这种推断方式采用了更宽松的判断条件,但压缩效率较低。
如果当前节点满足DCM解码资格,则首先解码一个二进制标志位,以指示当前节点是否使用DCM。如果该标志为1,则表示当前节点使用DCM;如果该标志为0,则表示当前节点不使用DCM。
如果采用DCM模式,则可以采用如下步骤对当前节点进行解码。
第一:解码二进制语法元素direct_point_cnt_eq2。direct_point_cnt_eq2标识当前节点是否包含2个不同的点(即2个点的几何信息不同)。如果direct_point_cnt_eq2为1,则表示当前节点包含2个不同的点;如果direct_point_cnt_eq2为0,则表示当前节点仅包含几何信息相同的点(可以是仅包含1个点,也可以是包含几何信息相同的多个点)。
第二:如果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。
在对DupPointsCntGt0进行熵解码时,可以使用第一概率模型对DupPointsCntGt0进行熵解码。第一概率模型的初始值(即MPS为0的概率)可以设置为1。16位二进制精度时为0xffff。由于DupPointsCntGt0的取值为0的概率非常高,因此,将第一概率模型的初始值设置为1,与实际情况更相符,可以最大程度减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。此外,DupPointsCntGt0与DupPointsCntGt0L(用于标识多叉树叶子节点是否包含重复点)使用不同的概率模型。
在对DupPointsCntGt0进行解码之后,还可以根据DupPointsCntGt0的取值更新编码区间参数的取
值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据DupPointsCntGt0的取值更新编码区间参数的取值之后,可以根据DupPointsCntGt0的取值以及编码区间参数的更新值,更新第一概率模型。
例如,首先,确定DupPointsCntGt0的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。
然后,使用Bin值、Low、Range更新概率模型。
随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。
本技术方案合理使用了概率模型以及正确的初始值,使G-PCC几何编码效率进一步提高。几何信息无损压缩条件下的每输入点的比特数比率(bits per input point ratio,Bpip Ratio)表示:在点云质量无损失的情况下,本技术方案的编码码率占相关技术编码码率的百分比。该参数的数值越低,表示本技术方案节省的码率越大。表1示出了本技术方案的测试结果,从表1可以看出,本技术方案相对相关技术在码流节省方面有了不小的提升。
表1基于几何的稠密点云测试模型(geometry-based solid content test model,GES-TM)-v3.0无损压缩(CW条件下)的Bpip Ratio
实施例二:多叉树叶子节点编解码
图11为本申请实施例提供的解码方法的流程示意图。图11的方法可应用于点云解码器。该解码器例如可以是支持G-PCC的解码器。
在步骤S1110,根据第一概率模型对第一标识信息进行解码(如熵解码)。第一标识信息用于指示当前节点是否包含重复点。与实施例一不同的是,这里提到的当前节点指的是多叉树(如八叉树、四叉树或二叉树)的叶子节点。第一标识信息例如可以是二进制语法元素DupPointsCntGt0L。第一标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第一标识信息的取值为值a,则可以表示当前节点包含重复点。如果第一标识信息的取值为值b,则可以表示多叉树叶子节点不包含重复点。
第一概率模型指的是用于对第一标识信息进行熵解码的概率模型。第一概率模型的MPS可以为0(即bin值0),LPS可以为1(即bin值1)。第一概率模型的初始值可以包括第一概率模型的MPS的概率初始值和/或LPS的概率初始值。也就是说,第一概率模型的初始值可用于表示第一概率模型为0和/或为1的概率。
在一些实现方式中,第一概率模型的初始值不等于第一值(第一值对应于MPS和LPS的概率相等)。也就是说,第一概率模型中,MPS对应的初始区间宽度大于LPS对应的初始区间宽度。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为不等于第一值,与实际情况更相符,可以减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。
示例性地,第一概率模型的初始值的设置可以使得MPS的概率大于或等于0.6,0.7,0.8或0.9。可选地,第一概率模型的初始值(即MPS为0的概率)的设置可以使得MPS的概率等于1。第一概率模型的初始值例如可以等于1,16位二进制精度时为0xffff。。由于第一标识信息的取值为0的概率非
常高,因此,将第一概率模型的初始值设置为使得MPS的概率等于1的值,与实际情况更相符,可以最大程度减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。
前文提到,第一概率模型用于对第一标识信息进行解码。在一些实现方式中,除了用于对第一标识信息进行解码之外,第一概率模型还可用于对第二标识信息解码。第二标识信息用于指示使用DCM的节点是否包含重复点。第二标识信息例如可以是二进制语法元素DupPointsCntGt0。第二标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第二标识信息的取值为值a,则可以表示使用DCM的节点包含重复点。如果第二标识信息的取值为值b,则可以表示使用DCM的节点不包含重复点。
但是,使用DCM的节点包含重复点的实际概率与多叉树叶子节点包含重复点的实际概率是不同的,二者使用同一概率模型进行熵解码与实际情况不符,可能会降低解码效率。因此,在另一些实现方式中,第二标识信息可以对应第二概率模型(即第二标识信息可以使用第二概率模型进行解码)。将第二标识信息和第一标识信息对应的概率模型设置为不同的概率模型,两个概率模型的更新过程互不影响,有助于提升解码效率。
继续参见图11,在步骤S1120,如果第一标识信息指示当前节点包含重复点,则确定当前节点包含的重复点数量。例如,可以基于指数哥伦布解码当前节点包含的重复点数量。
在对第一标识信息进行解码之后,还可以根据第一标识信息的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据第一标识信息的取值更新编码区间参数的取值之后,可以根据第一标识信息的取值以及编码区间参数的更新值,更新第一概率模型。
例如,首先,确定第一标识信息的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。
然后,使用Bin值、Low、Range更新概率模型。
随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。
上文结合图11,详细描述了本申请实施例提供的解码方法。下文结合图12,详细描述本申请实施例提供的编码方法。
图12为本申请实施例提供的编码方法的流程示意图。图12的方法可应用于点云编码器。该点云编码器例如可以是支持G-PCC的编码器。
在步骤S1210,根据第一概率模型对第一标识信息进行编码(如熵编码)。第一标识信息用于指示当前节点是否包含重复点。与实施例一不同的是,这里提到的当前节点指的是多叉树(如八叉树、四叉树或二叉树)的叶子节点。第一标识信息例如可以是二进制语法元素DupPointsCntGt0L。第一标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第一标识信息的取值为值a,则可以表示当前节点包含重复点。如果第一标识信息的取值为值b,则可以表示多叉树叶子节点不包含重复点。
第一概率模型指的是用于对第一标识信息进行熵编码的概率模型。第一概率模型的MPS可以为0(即bin值0),LPS可以为1(即bin值1)。第一概率模型的初始值可以包括第一概率模型的MPS的概率初始值和/或LPS的概率初始值。也就是说,第一概率模型的初始值可用于表示第一概率模型为0和/或为1的概率。
在一些实现方式中,第一概率模型的初始值不等于第一值(第一值对应于MPS和LPS的概率相等)。也就是说,第一概率模型中,MPS对应的初始区间宽度大于LPS对应的初始区间宽度。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为不等于第一值,与实际情况更相符,可以减少编码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升编码效率。
示例性地,第一概率模型的初始值的设置可以使得MPS的概率大于或等于0.6,0.7,0.8或0.9。可选地,第一概率模型的初始值(即MPS为0的概率)的设置可以使得MPS的概率等于1。第一概率模型的初始值例如可以等于1,16位二进制精度时为0xffff。由于第一标识信息的取值为0的概率非常高,因此,将第一概率模型的初始值设置为使得MPS的概率等于1的值,与实际情况更相符,可以最大程度减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。
前文提到,第一概率模型用于对第一标识信息进行编码。在一些实现方式中,除了用于对第一标识
信息进行编码之外,第一概率模型还可用于对第二标识信息编码。第二标识信息用于指示使用DCM的节点是否包含重复点。第二标识信息例如可以是二进制语法元素DupPointsCntGt0。第二标识信息的取值可以包括值a和值b。其中,值a例如可以是1,值b例如可以是0。如果第二标识信息的取值为值a,则可以表示使用DCM的节点包含重复点。如果第二标识信息的取值为值b,则可以表示使用DCM的节点不包含重复点。
但是,使用DCM的节点包含重复点的实际概率与多叉树叶子节点包含重复点的实际概率是不同的,二者使用同一概率模型进行熵编码与实际情况不符,可能会降低编码效率。因此,在另一些实现方式中,第二标识信息可以对应第二概率模型(即第二标识信息可以使用第二概率模型进行编码)。将第二标识信息和第一标识信息对应的概率模型设置为不同的概率模型,两个概率模型的更新过程互不影响,有助于提升编码效率。
继续参见图12,在步骤S1220,如果第一标识信息指示当前节点包含重复点,则对当前节点包含的重复点数量进行编码。例如,可以基于指数哥伦布编码当前节点包含的重复点数量。
在对第一标识信息进行编码之后,还可以根据第一标识信息的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据第一标识信息的取值更新编码区间参数的取值之后,可以根据第一标识信息的取值以及编码区间参数的更新值,更新第一概率模型。
例如,首先,确定第一标识信息的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。
然后,使用Bin值、Low、Range更新概率模型。
随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。
下面结合具体例子,更加详细地描述实施例二。应注意,下文的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
编码端过程:
在G-PCC的多叉树(如八叉树)编码中,多叉树叶子节点可能包含的重复点。多叉树叶子节点的编码方法包括如下步骤。首先,编码二进制语法元素DupPointsCntGt0L。DupPointsCntGt0L可用于表示叶子节点是否包含重复点。如果DupPointsCntGt0L为1,则表示该叶子节点包含重复点;如果DupPointsCntGt0L为0,则表示该叶子节点不包含重复点。然后,当DupPointsCntGt0L为1,使用指数哥伦布编码重复点的数量。
在编码二进制语法元素DupPointsCntGt0L时,可以使用第一概率模型对DupPointsCntGt0L进行熵编码。第一概率模型的初始值(即MPS为0的概率)可以设置为1。16位二进制精度时为0xffff。由于DupPointsCntGt0L的取值为0的概率非常高,因此,将第一概率模型的初始值设置为1,与实际情况更相符,可以最大程度减少编码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升编码效率。此外,DupPointsCntGt0L与DupPointsCntGt0(用于标识使用DCM的节点是否包含重复点)使用不同的概率模型。
在对DupPointsCntGt0L进行编码之后,还可以根据DupPointsCntGt0L的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点(算术编码器的编码区间起始点)。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据DupPointsCntGt0L的取值更新编码区间参数的取值之后,可以根据DupPointsCntGt0L的取值以及编码区间参数的更新值,更新第一概率模型。
例如,首先,确定DupPointsCntGt0L的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。
然后,使用Bin值、Low、Range更新概率模型。
随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操
作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大算术编码器的区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。
解码端过程:
多叉树叶子节点的解码方法包括如下步骤。首先,解码出二进制语法元素DupPointsCntGt0L。如果DupPointsCntGt0L为1,则表示该叶子节点包含重复点;如果DupPointsCntGt0L为0,则表示该叶子节点不包含重复点。当DupPointsCntGt0L为1,则继续使用指数哥伦布解码出重复点的数量。
在编码二进制语法元素DupPointsCntGt0L时,可以使用第一概率模型对DupPointsCntGt0L进行熵解码。第一概率模型的初始值(即MPS为0的概率)可以设置为1。16位二进制精度时为0xffff。由于DupPointsCntGt0L的取值为0的概率非常高,因此,将第一概率模型的初始值设置为1,与实际情况更相符,可以最大程度减少解码器基于重归一化操作不断更新MPS区间宽度的过程,从而提升解码效率。此外,DupPointsCntGt0L与DupPointsCntGt0(用于标识使用DCM的节点是否包含重复点)使用不同的概率模型。
在对DupPointsCntGt0L进行解码之后,还可以根据DupPointsCntGt0L的取值更新编码区间参数的取值。编码区间参数可以包括第一参数和/或第二参数。第一参数用于指示编码区间的起始点。第一参数可以使用Low表示。第二参数用于指示编码区间的宽度。第二参数可以使用Range表示。第二参数的初始值可以为510,用9比特表示。在根据DupPointsCntGt0L的取值更新编码区间参数的取值之后,可以根据DupPointsCntGt0L的取值以及编码区间参数的更新值,更新第一概率模型。
例如,首先,确定DupPointsCntGt0L的取值等于LPS还是MPS,从而更新Low和Range。参见图7,如果Bin=LPS,则Low=Low+RMPS,Range=RLPS;如果Bin=MPS,则Low保持不变,Range等于RMPS。RMPS表示MPS对应的区间宽度,RLPS表示LPS对应的区间宽度。
然后,使用Bin值、Low、Range更新概率模型。
随着Range的更新,Range的取值可能会小于初始区间长度的一半,即小于256。此时,需要进行重归一化过程。图8示出了重归一化过程的流程。在重归一化过程中,会对Low和Range进行左移操作,直到Range的取值大于初始区间宽度的一半。对Range的左移是为了扩大区间宽度,对Low的左移是为了输出比特,两者左移的位数是相同的。
本技术方案合理使用了概率模型以及正确的初始值,使G-PCC几何编码效率进一步提高。几何信息无损压缩条件下的Bpip Ratio表示:在点云质量无损失的情况下,本技术方案的编码码率占相关技术编码码率的百分比。该参数的数值越低,表示本技术方案节省的码率越大。表2示出了本技术方案的测试结果,从表2可以看出,本技术方案相对相关技术在码流节省方面有了不小的提升。
表2 GES-TM-v3.0无损压缩(CW条件下)的Bpip Ratio
上文结合图1至图12,详细描述了本申请的方法实施例,下面结合图13至图16,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图13为本申请一个实施例提供的点云解码器的流程示意图。图13所示的点云解码器1300包括解码单元1310和确定单元1320。解码单元1310配置为根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;确定单元1320配置为如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,
所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
在一些实现方式中,所述第一概率模型的初始值的设置使得所述MPS的概率大于或等于0.8。
在一些实现方式中,所述第一概率模型的初始值的设置使得所述MPS的概率等于1。
在一些实现方式中,所述MPS为0,所述LPS为1。
在一些实现方式中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点。
在一些实现方式中,所述解码单元1310配置为:对第三标识信息进行解码,所述第三标识信息用于指示所述当前节点是否包含几何信息不同的点;如果所述第三标识信息指示所述当前节点仅包含几何信息相同的点,则根据所述第一概率模型对所述第一标识信息进行解码。
在一些实现方式中,所述确定单元1320配置为:对第四标识信息进行解码,所述第四标识信息用于指示所述当前节点是否包含1个重复点;如果所述第四标识信息指示所述当前节点包含1个重复点,则确定所述重复点数量为1。
在一些实现方式中,所述确定单元1320还配置为:如果所述第四标识信息指示所述当前节点包括多个重复点,则对第五标识信息进行解码,所述第五标识信息用于确定所述当前节点包含的重复点数量;根据所述第五标识信息的取值确定所述当前节点包含的重复点数量。
在一些实现方式中,所述确定单元1320配置为:将所述第五标识信息的取值与2之和确定为所述当前节点包含的重复点数量。
在一些实现方式中,所述对第五标识信息进行解码,包括:基于0阶指数哥伦布解码所述第五标识信息。
在一些实现方式中,所述确定单元1320还配置为:在所述根据第一概率模型对第一标识信息进行解码之前,根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式。
在一些实现方式中,所述确定单元1320配置为:根据所述父节点的信息确定第一条件和/或第二条件是否满足;如果所述第一条件和/或所述第二条件满足,则确定所述当前节点使用直接编码模式;其中,所述第一条件包括所述父节点的被占用的子节点的数量为1,且所述当前节点的祖父节点的被占用的子节点的数量小于或等于2;其中,所述第二条件包括所述父节点的被占用的子节点的数量为1,且所述父节点的邻居节点均未被占用。
在一些实现方式中,所述解码单元1310还配置为:如果所述当前节点不使用直接编码模式,则对所述当前节点进行多叉树解码。
在一些实现方式中,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点。
在一些实现方式中,所述确定单元1320配置为:基于指数哥伦布解码所述当前节点包含的重复点数量。
在一些实现方式中,所述点云解码器1300还包括:更新单元,配置为:根据所述第一标识信息的取值更新编码区间参数的取值,所述编码区间参数包括第一参数和/或第二参数,所述第一参数用于指示编码区间的起始点,所述第二参数用于指示所述编码区间的宽度;根据所述第一标识信息的取值以及所述编码区间参数的更新值,更新所述第一概率模型。
在一些实现方式中,所述更新单元配置为:如果所述第一标识信息的取值等于MPS,则将所述MPS的概率确定为所述第二参数的更新值;和/或如果所述第一标识信息的取值等于LPS,则将所述第一参数的取值与MPS的概率之和确定为所述第一参数的更新值,并将所述LPS的概率确定为所述第二参数的更新值。
在一些实现方式中,所述更新单元还配置为:如果所述第二参数的更新值小于所述第二参数的初始值的一半,则对所述第一参数和所述第二参数执行左移操作。
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、
磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种计算机可读存储介质,应用于点云解码器1300,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述解码方法。
基于上述点云解码器的组成以及计算机可读存储介质,参见图14,其示出了本申请实施例提供的点云解码器的具体硬件结构示意图。如图14所示,点云解码器1400可以包括:通信接口1410、存储器1420和处理器1430;各个组件通过总线系统1440耦合在一起。可理解,总线系统1440用于实现这些组件之间的连接通信。总线系统1440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图14中将各种总线都标为总线系统1440。其中,
通信接口1410,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送。
存储器1420,用于存储计算机程序。
处理器1430,用于在运行所述计算机程序时,执行:
根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;
如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;
其中,所述第一概率模型满足以下中的至少一项:
所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;
所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
可以理解,本申请实施例中的存储器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旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器1430可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1430中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1430可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1420,处理器1430读取存储器1420中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,处理器1430还配置为在运行所述计算机程序时,执行前述实施例所述的解码方法。
图15为本申请一个实施例提供的点云编码器的结构示意图。图15的点云编码器1500包括第一编码单元1510和第二编码单元1520。第一编码单元1510配置为根据第一概率模型对第一标识信息进行
编码,所述第一标识信息用于指示当前节点是否包含重复点;第二编码单元1520配置为如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
在一些实现方式中,所述第一概率模型的初始值的设置使得所述MPS的概率大于或等于0.8。
在一些实现方式中,所述第一概率模型的初始值的设置使得所述MPS的概率等于1。
在一些实现方式中,所述MPS为0,所述LPS为1。
在一些实现方式中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点。
在一些实现方式中,所述第一编码单元1510配置为:对第三标识信息进行编码,所述第三标识信息用于指示所述当前节点是否包含几何信息不同的点;如果所述第三标识信息指示所述当前节点仅包含几何信息相同的点,则根据所述第一概率模型对所述第一标识信息进行编码。
在一些实现方式中,所述第二编码单元1520配置为:对第四标识信息进行编码,所述第四标识信息用于指示所述当前节点是否包含1个重复点,如果所述第四标识信息指示所述当前节点包含1个重复点,则所述重复点数量为1。
在一些实现方式中,所述第二编码单元1520还配置为:如果所述第四标识信息指示所述当前节点包括多个重复点,则对第五标识信息进行编码,所述重复点数量等于所述第五标识信息的取值与2之和。
在一些实现方式中,所述第二编码单元1520配置为:基于0阶指数哥伦布编码所述第五标识信息。
在一些实现方式中,所述编码器1500还包括第一确定单元,配置为在所述根据第一概率模型对第一标识信息进行编码之前,根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式。
在一些实现方式中,所述确定单元配置为:根据所述父节点的信息确定第一条件和/或第二条件是否满足;如果所述第一条件和/或所述第二条件满足,则确定所述当前节点使用直接编码模式;其中,所述第一条件包括所述父节点的被占用的子节点的数量为1,且所述当前节点的祖父节点的被占用的子节点的数量小于或等于2;其中,所述第二条件包括所述父节点的被占用的子节点的数量为1,且所述父节点的邻居节点均未被占用。
在一些实现方式中,所述编码器1500还包括第三编码单元,配置为:如果所述当前节点不使用直接编码模式,则对所述当前节点进行多叉树编码。
在一些实现方式中,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点。
在一些实现方式中,所述第二编码单元1520配置为:基于指数哥伦布编码所述当前节点包含的重复点数量。
在一些实现方式中,所述编码器1500还包括更新单元,配置为:根据所述第一标识信息的取值更新编码区间参数的取值,所述编码区间参数包括第一参数和/或第二参数,所述第一参数用于指示编码区间的起始点,所述第二参数用于指示所述编码区间的宽度;根据所述第一标识信息的取值以及所述编码区间参数的更新值,更新所述第一概率模型。
在一些实现方式中,所述更新单元配置为:如果所述第一标识信息的取值等于MPS,则将所述MPS的概率确定为所述第二参数的更新值;和/或,如果所述第一标识信息的取值等于LPS,则将所述第一参数的取值与MPS的概率之和确定为所述第一参数的更新值,并将所述LPS的概率确定为所述第二参数的更新值。
在一些实现方式中,所述更新单元还配置为:如果所述第二参数的更新值小于所述第二参数的初始值的一半,则对所述第一参数和所述第二参数执行左移操作。
可以理解地,在本申请实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设
备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种计算机可读存储介质,应用于点云编码器1500,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例中的编码方法。
基于上述编码器1500的组成以及计算机可读存储介质,参见图16,其示出了本申请实施例提供的点云编码器的具体硬件结构示意图。如图16所示,点云编码器1600可以包括:通信接口1610、存储器1620和处理器1630;各个组件通过总线系统1640耦合在一起。可理解,总线系统1640用于实现这些组件之间的连接通信。总线系统1640除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图16中将各种总线都标为总线系统1640。其中,
通信接口1610,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送。
存储器1620,用于存储计算机程序。
处理器1630,用于在运行所述计算机程序时,执行:
根据第一概率模型对第一标识信息进行编码,所述第一标识信息用于指示当前节点是否包含重复点;
如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;
其中,所述第一概率模型满足以下中的至少一项:
所述第一概率模型的初始值不等于第一值,所述第一值对应于:MPS和LPS的概率相等;
所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
可以理解,本申请实施例中的存储器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旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器1630可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1630中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1630可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1620,处理器1630读取存储器1620中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,处理器1630还配置为在运行所述计算机程序时,执行前述实施例所
述的编码方法。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (42)
- 一种解码方法,应用于点云解码器,包括:根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:最大概率符号MPS和最小概率符号LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
- 根据权利要求1所述的方法,其中,所述第一概率模型的初始值的设置使得所述MPS的概率大于或等于0.8。
- 根据权利要求1所述的方法,其中,所述第一概率模型的初始值的设置使得所述MPS的概率等于1。
- 根据权利要求1所述的方法,其中,所述MPS为0,所述LPS为1。
- 根据权利要求1所述的方法,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点。
- 根据权利要求5所述的方法,其中,所述根据第一概率模型对第一标识信息进行解码,包括:对第三标识信息进行解码,所述第三标识信息用于指示所述当前节点是否包含几何信息不同的点;如果所述第三标识信息指示所述当前节点仅包含几何信息相同的点,则根据所述第一概率模型对所述第一标识信息进行解码。
- 根据权利要求5所述的方法,其中,所述确定所述当前节点包含的重复点数量,包括:对第四标识信息进行解码,所述第四标识信息用于指示所述当前节点是否包含1个重复点;如果所述第四标识信息指示所述当前节点包含1个重复点,则确定所述重复点数量为1。
- 根据权利要求7所述的方法,其中,所述确定所述当前节点包含的重复点数量,还包括:如果所述第四标识信息指示所述当前节点包括多个重复点,则对第五标识信息进行解码,所述第五标识信息用于确定所述当前节点包含的重复点数量;根据所述第五标识信息的取值确定所述当前节点包含的重复点数量。
- 根据权利要求8所述的方法,其中,所述根据所述第五标识信息的取值确定所述当前节点包含的重复点数量,包括:将所述第五标识信息的取值与2之和确定为所述当前节点包含的重复点数量。
- 根据权利要求8或9所述的方法,其中,所述对第五标识信息进行解码,包括:基于0阶指数哥伦布解码所述第五标识信息。
- 根据权利要求5所述的方法,其中,在所述根据第一概率模型对第一标识信息进行解码之前,所述方法还包括:根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式。
- 根据权利要求11所述的方法,其中,所述根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式,包括:根据所述父节点的信息确定第一条件和/或第二条件是否满足;如果所述第一条件和/或所述第二条件满足,则确定所述当前节点使用直接编码模式;其中,所述第一条件包括所述父节点的被占用的子节点的数量为1,且所述当前节点的祖父节点的被占用的子节点的数量小于或等于2;其中,所述第二条件包括所述父节点的被占用的子节点的数量为1,且所述父节点的邻居节点均未被占用。
- 根据权利要求11所述的方法,其中,所述方法还包括:如果所述当前节点不使用直接编码模式,则对所述当前节点进行多叉树解码。
- 根据权利要求1所述的方法,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点。
- 根据权利要求14所述的方法,所述确定所述当前节点包含的重复点数量,包括:基于指数哥伦布解码所述当前节点包含的重复点数量。
- 根据权利要求1所述的方法,其中,所述方法还包括:根据所述第一标识信息的取值更新编码区间参数的取值,所述编码区间参数包括第一参数和/或第二参数,所述第一参数用于指示编码区间的起始点,所述第二参数用于指示所述编码区间的宽度;根据所述第一标识信息的取值以及所述编码区间参数的更新值,更新所述第一概率模型。
- 根据权利要求16所述的方法,其中,所述根据所述第一标识信息的取值更新编码区间参数的取值,包括:如果所述第一标识信息的取值等于MPS,则将所述MPS的概率确定为所述第二参数的更新值;和/或如果所述第一标识信息的取值等于LPS,则将所述第一参数的取值与MPS的概率之和确定为所述第一参数的更新值,并将所述LPS的概率确定为所述第二参数的更新值。
- 根据权利要求17所述的方法,其中,所述方法还包括:如果所述第二参数的更新值小于所述第二参数的初始值的一半,则对所述第一参数和所述第二参数执行左移操作。
- 一种编码方法,应用于点云编码器,包括:根据第一概率模型对第一标识信息进行编码,所述第一标识信息用于指示当前节点是否包含重复点;如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:最大概率符号MPS和最小概率符号LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
- 根据权利要求19所述的方法,其中,所述第一概率模型的初始值的设置使得所述MPS的概率大于或等于0.8。
- 根据权利要求19所述的方法,其中,所述第一概率模型的初始值的设置使得所述MPS的概率等于1。
- 根据权利要求19所述的方法,其中,所述MPS为0,所述LPS为1。
- 根据权利要求19所述的方法,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点。
- 根据权利要求23所述的方法,其中,所述根据第一概率模型对第一标识信息进行编码,包括:对第三标识信息进行编码,所述第三标识信息用于指示所述当前节点是否包含几何信息不同的点;如果所述第三标识信息指示所述当前节点仅包含几何信息相同的点,则根据所述第一概率模型对所述第一标识信息进行编码。
- 根据权利要求23所述的方法,其中,所述对所述当前节点包含的重复点数量进行编码,包括:对第四标识信息进行编码,所述第四标识信息用于指示所述当前节点是否包含1个重复点,如果所述第四标识信息指示所述当前节点包含1个重复点,则所述重复点数量为1。
- 根据权利要求25所述的方法,其中,所述对所述当前节点包含的重复点数量进行编码,还包括:如果所述第四标识信息指示所述当前节点包括多个重复点,则对第五标识信息进行编码,所述重复点数量等于所述第五标识信息的取值与2之和。
- 根据权利要求26所述的方法,其中,所述对第五标识信息进行编码,包括:基于0阶指数哥伦布编码所述第五标识信息。
- 根据权利要求23所述的方法,其中,在所述根据第一概率模型对第一标识信息进行编码之前,所述方法还包括:根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式。
- 根据权利要求28所述的方法,其中,所述根据所述当前节点的父节点的信息确定所述当前节点是否使用直接编码模式,包括:根据所述父节点的信息确定第一条件和/或第二条件是否满足;如果所述第一条件和/或所述第二条件满足,则确定所述当前节点使用直接编码模式;其中,所述第一条件包括所述父节点的被占用的子节点的数量为1,且所述当前节点的祖父节点的被占用的子节点的数量小于或等于2;其中,所述第二条件包括所述父节点的被占用的子节点的数量为1,且所述父节点的邻居节点均未被占用。
- 根据权利要求28所述的方法,其中,所述方法还包括:如果所述当前节点不使用直接编码模式,则对所述当前节点进行多叉树编码。
- 根据权利要求19所述的方法,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点。
- 根据权利要求31所述的方法,所述对所述当前节点包含的重复点数量进行编码,包括:基于指数哥伦布编码所述当前节点包含的重复点数量。
- 根据权利要求19所述的方法,其中,所述方法还包括:根据所述第一标识信息的取值更新编码区间参数的取值,所述编码区间参数包括第一参数和/或第二参数,所述第一参数用于指示编码区间的起始点,所述第二参数用于指示所述编码区间的宽度;根据所述第一标识信息的取值以及所述编码区间参数的更新值,更新所述第一概率模型。
- 根据权利要求33所述的方法,其中,所述根据所述第一标识信息的取值更新编码区间参数的取值,包括:如果所述第一标识信息的取值等于MPS,则将所述MPS的概率确定为所述第二参数的更新值;和/或如果所述第一标识信息的取值等于LPS,则将所述第一参数的取值与MPS的概率之和确定为所述第一参数的更新值,并将所述LPS的概率确定为所述第二参数的更新值。
- 根据权利要求34所述的方法,其中,所述方法还包括:如果所述第二参数的更新值小于所述第二参数的初始值的一半,则对所述第一参数和所述第二参数执行左移操作。
- 一种点云解码器,包括:解码单元,配置为根据第一概率模型对第一标识信息进行解码,所述第一标识信息用于指示当前节点是否包含重复点;确定单元,配置为如果所述第一标识信息指示所述当前节点包含重复点,则确定所述当前节点包含的重复点数量;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:最大概率符号MPS和最小概率符号LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用直接编码模式的节点是否包含重复点。
- 一种点云解码器,包括:存储器,用于存储计算机程序;处理器,用于在运行所述计算机程序时,执行如权利要求1至18中任一项所述的方法。
- 一种点云编码器,包括:第一编码单元,配置为根据第一概率模型对第一标识信息进行编码,所述第一标识信息用于指示当前节点是否包含重复点;第二编码单元,配置为如果所述第一标识信息指示所述当前节点包含重复点,则对所述当前节点包含的重复点数量进行编码;其中,所述第一概率模型满足以下中的至少一项:所述第一概率模型的初始值不等于第一值,所述第一值对应于:最大概率符号MPS和最小概率符号LPS的概率相等;所述第一概率模型与第二概率模型不同,所述第二概率模型为第二标识信息对应的概率模型;其中,所述第一标识信息用于指示使用直接编码模式的节点是否包含重复点,所述第二标识信息用于指示多叉树的叶子节点是否包含重复点;或者,所述第一标识信息用于指示多叉树的叶子节点是否包含重复点,所述第二标识信息用于指示使用 直接编码模式的节点是否包含重复点。
- 一种点云编码器,包括:存储器,用于存储计算机程序;处理器,用于在运行所述计算机程序时,执行如权利要求19至35中任一项所述的方法。
- 一种存储比特流的非易失性计算机可读存储介质,所述比特流通过利用编码器的编码方法而生成,或者,所述比特流通过利用解码器的解码方法而解码,其中,所述解码方法为如权利要求1至18中任一项所述的方法、所述编码方法为如权利要求19至35中任一项所述的方法。
- 一种码流,所述码流包括如权利要求19至35中任一项所述的方法生成的码流。
- 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现如权利要求1至18或19至35中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/143518 WO2025138196A1 (zh) | 2023-12-29 | 2023-12-29 | 编解码方法、点云编解码器、码流以及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/143518 WO2025138196A1 (zh) | 2023-12-29 | 2023-12-29 | 编解码方法、点云编解码器、码流以及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025138196A1 true WO2025138196A1 (zh) | 2025-07-03 |
Family
ID=96216401
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/143518 Pending WO2025138196A1 (zh) | 2023-12-29 | 2023-12-29 | 编解码方法、点云编解码器、码流以及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025138196A1 (zh) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210218994A1 (en) * | 2020-01-09 | 2021-07-15 | Apple Inc. | Geometry Encoding of Duplicate Points |
| CN113892128A (zh) * | 2019-12-02 | 2022-01-04 | 腾讯美国有限责任公司 | 点云编解码方法和装置 |
| CN115379191A (zh) * | 2022-08-22 | 2022-11-22 | 腾讯科技(深圳)有限公司 | 一种点云解码方法、点云编码方法及相关设备 |
| US20230099908A1 (en) * | 2021-09-27 | 2023-03-30 | Qualcomm Incorporated | Coding point cloud data using direct mode for inter-prediction in g-pcc |
| CN116097651A (zh) * | 2020-11-25 | 2023-05-09 | Oppo广东移动通信有限公司 | 点云编解码方法、编码器、解码器以及计算机存储介质 |
-
2023
- 2023-12-29 WO PCT/CN2023/143518 patent/WO2025138196A1/zh active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113892128A (zh) * | 2019-12-02 | 2022-01-04 | 腾讯美国有限责任公司 | 点云编解码方法和装置 |
| US20210218994A1 (en) * | 2020-01-09 | 2021-07-15 | Apple Inc. | Geometry Encoding of Duplicate Points |
| CN116097651A (zh) * | 2020-11-25 | 2023-05-09 | Oppo广东移动通信有限公司 | 点云编解码方法、编码器、解码器以及计算机存储介质 |
| US20230099908A1 (en) * | 2021-09-27 | 2023-03-30 | Qualcomm Incorporated | Coding point cloud data using direct mode for inter-prediction in g-pcc |
| CN115379191A (zh) * | 2022-08-22 | 2022-11-22 | 腾讯科技(深圳)有限公司 | 一种点云解码方法、点云编码方法及相关设备 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113615181B (zh) | 用于点云编解码的方法、装置 | |
| US11683524B2 (en) | Method and apparatus for point cloud compression | |
| US20220180567A1 (en) | Method and apparatus for point cloud coding | |
| US12444090B2 (en) | Point cloud attribute prediction method and apparatus, and related device | |
| CN115914650A (zh) | 点云编解码方法、编码器、解码器及存储介质 | |
| EP4258671A1 (en) | Point cloud attribute predicting method, encoder, decoder, and storage medium | |
| WO2024221458A9 (zh) | 点云编解码方法、装置、设备及存储介质 | |
| WO2025138196A1 (zh) | 编解码方法、点云编解码器、码流以及存储介质 | |
| TW202425653A (zh) | 點雲編解碼方法、裝置、設備及儲存媒介 | |
| WO2024174086A1 (zh) | 解码方法、编码方法、解码器以及编码器 | |
| EP4395321A1 (en) | Point cloud encoding/decoding method, apparatus and device, and storage medium | |
| WO2024174092A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024082152A1 (zh) | 编解码方法及装置、编解码器、码流、设备、存储介质 | |
| WO2024187380A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025039122A1 (zh) | 点云编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025039113A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2024207235A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025039125A1 (zh) | 编解码方法、编解码器以及存储介质 | |
| WO2024216649A1 (zh) | 点云编解码方法、编码器、解码器、码流及存储介质 | |
| WO2024103304A1 (zh) | 点云编解码方法、编码器、解码器、码流及存储介质 | |
| WO2025076659A1 (zh) | 点云编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025076662A1 (zh) | 点云编解码方法、码流、编码器、解码器以及存储介质 | |
| WO2025039120A1 (zh) | 编解码方法、编解码器以及存储介质 | |
| HK40084120A (zh) | 点云编解码方法、编码器、解码器及存储介质 | |
| WO2025039127A1 (zh) | 编解码方法、编解码器以及存储介质 |
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 |