Point cloud encoding method, point cloud decoding method, encoder, decoder, bitstream, and storage medium

By introducing the second parameter as the context model, the number of context models in the point cloud encoding and decoding process is reduced, and the encoding and decoding performance is improved.

WO2025217813A1PCT designated stage Publication Date: 2025-10-23GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/088076
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-16
Publication Date
2025-10-23

AI Technical Summary

Technical Problem

When encoding and decoding point clouds in the existing technology, a large number of contexts are used for encoding and decoding using the intersection centroid offset value, which affects the encoding and decoding performance.

Method used

By introducing the second parameter as a context model for determining the third parameter, the number of context models is reduced, and one value of the second parameter is used to correspond to multiple values ​​of the first parameter, thereby improving encoding and decoding performance.

Benefits of technology

The number of context models is reduced, and the encoding and decoding performance is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024088076_23102025_PF_FP_ABST
    Figure CN2024088076_23102025_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a point cloud encoding method, a point cloud decoding method, an encoder, a decoder, a bitstream, and a storage medium. The point cloud decoding method comprises: determining a first parameter of a current block on the basis of at least one intersection point in a reference block, wherein the first parameter is used for indicating the number of inaccurate values among intersection point prediction values determined on the basis of the at least one intersection point; determining a second parameter on the basis of the first parameter, wherein the second parameter comprises a first value, and the first value corresponds to a plurality of values of the first parameter; determining a context model of a third parameter on the basis of the second parameter, wherein the third parameter is used for indicating whether an intersection point centroid offset value of the current block is equal to an inter-frame prediction value of the intersection point centroid offset value; and decoding the third parameter on the basis of the context model of the third parameter.
Need to check novelty before this filing date? Find Prior Art

Description

Point cloud coding method, coder, bitstream and storage medium TECHNICAL FIELD

[0001] The present application relates to the technical field of point cloud coding, and in particular to a point cloud coding method, a coder, a bitstream and a storage medium. BACKGROUND

[0002] The shape of the point cloud can be restored more accurately by using the intersection centroid offset value. When coding the intersection centroid offset value, in order to reduce the bitstream overhead, the intersection centroid offset value can be coded by using a context model. However, the number of contexts used for coding the intersection centroid offset value is large, which is not conducive to improving the coding performance.

[0003] SUMMARY

[0004] Embodiments of the present application provide a point cloud coding method, a coder, a bitstream and a storage medium. Each aspect of the present application is described below.

[0005] In a first aspect, a point cloud decoding method is provided, applied to a decoder, including: determining a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point; determining a second parameter according to the first parameter, the second parameter including a first value, and the first value corresponding to multiple values of the first parameter; determining a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection centroid offset value of the current block is equal to an inter-frame prediction value of the intersection centroid offset value; and decoding the third parameter according to the context model of the third parameter.

[0006] In a second aspect, a point cloud encoding method is provided, applied to an encoder, including: determining a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point; determining a second parameter according to the first parameter, the second parameter including a first value, and the first value corresponding to multiple values of the first parameter; determining a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection centroid offset value of the current block is equal to an inter-frame prediction value of the intersection centroid offset value; and encoding the third parameter according to the context model of the third parameter.

[0007] In a third aspect, a decoder is provided, comprising: a first determining unit configured to determine a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point; a second determining unit configured to determine a second parameter according to the first parameter, the second parameter comprising a first value corresponding to a plurality of values of the first parameter; a third determining unit configured to determine a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection point centroid offset value of the current block is equal to an inter prediction value of the intersection point centroid offset value; and a decoding unit configured to decode the third parameter according to the context model of the third parameter.

[0008] In a fourth aspect, a decoder is provided, comprising: a memory configured to store a computer program; and a processor configured to execute the method of the first aspect when the computer program is run.

[0009] In a fifth aspect, an encoder is provided, comprising: a first determining unit configured to determine a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point; a second determining unit configured to determine a second parameter according to the first parameter, the second parameter comprising a first value corresponding to a plurality of values of the first parameter; a third determining unit configured to determine a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection point centroid offset value of the current block is equal to an inter prediction value of the intersection point centroid offset value; and an encoding unit configured to encode the third parameter according to the context model of the third parameter.

[0010] In a sixth aspect, an encoder is provided, comprising: a memory configured to store a computer program; and a processor configured to execute the method of the second aspect when the computer program is run.

[0011] In a seventh aspect, a computer readable storage medium is provided, wherein the computer readable storage medium stores a computer program, and the computer program is executed to implement the method of the first aspect or the second aspect.

[0012] In an eighth aspect, a non-volatile computer readable storage medium storing a bitstream is provided, the bitstream being generated by using an encoding method of an encoder, or the bitstream being decoded by using a decoding method of a decoder, wherein the decoding method is the method of the first aspect, and the encoding method is the method of the second aspect.

[0013] In a ninth aspect, a bitstream is provided, comprising a bitstream generated according to the method of the second aspect.

[0014] The embodiment of the present application proposes that the second parameter can be used as the parameter of the context model for determining the third parameter (which can be used to determine the intersection centroid offset value of the current block), wherein one value of the second parameter corresponds to multiple values of the first parameter. In this way, the number of index values (or values) of the second parameter is less than the number of index values of the first parameter, compared with the way of directly using the first parameter to determine the context model of the third parameter, the context model of the third parameter determined by the second parameter can reduce the number of required context models, and is beneficial to improving the performance of coding and decoding the third parameter. BRIEF DESCRIPTION OF DRAWINGS

[0015] FIG. 1A is a schematic diagram of a three-dimensional point cloud image.

[0016] FIG. 1B is a local enlarged view of a three-dimensional point cloud image.

[0017] FIG. 2A is a schematic diagram of six viewing angles of a point cloud image.

[0018] FIG. 2B is a schematic diagram of a data storage format corresponding to a point cloud image.

[0019] FIG. 3 is a schematic diagram of a network architecture of point cloud coding.

[0020] FIG. 4A is a schematic diagram of the composition framework of a G-PCC encoder.

[0021] FIG. 4B is a schematic diagram of the composition framework of a G-PCC decoder.

[0022] FIG. 5A is a schematic diagram of a low plane position in the Z-axis direction.

[0023] FIG. 5B is a schematic diagram of a high plane position in the Z-axis direction.

[0024] FIG. 6 is a schematic diagram of a node coding order.

[0025] FIG. 7A is a schematic diagram of plane identification information.

[0026] FIG. 7B is another schematic diagram of plane identification information.

[0027] FIG. 8 is a schematic diagram of sibling nodes of a current node.

[0028] FIG. 9 is a schematic diagram of calculating a centroid offset value.

[0029] FIG. 10A is a schematic diagram of three intersection points included in a sub-block.

[0030] FIG. 10B is a schematic diagram of a triangular patch set fitted by using three intersection points.

[0031] FIG. 10C is a schematic diagram of upsampling of a triangular patch set.

[0032] FIG. 11 is a flowchart of a process of calculating a centroid offset value.

[0033] FIG. 12 is a diagram of a context required for decoding Intersameflag.

[0034] FIG. 13 is a flowchart of a point cloud decoding method provided by an embodiment of the present application.

[0035] FIG. 14 is a flowchart of a point cloud encoding method provided by an embodiment of the present application.

[0036] FIG. 15 is a flowchart of a process of calculating a centroid offset value provided by an embodiment of the present application.

[0037] FIG. 16 is a diagram of a context required for decoding Intersameflag provided by an embodiment of the present application.

[0038] FIG. 17 is a structural diagram of a decoder provided by an embodiment of the present application.

[0039] FIG. 18 is a structural diagram of a decoder provided by another embodiment of the present application.

[0040] FIG. 19 is a structural diagram of an encoder provided by an embodiment of the present application.

[0041] FIG. 20 is a structural diagram of an encoder provided by another embodiment of the present application. DETAILED DESCRIPTION

[0042] In order to enable a person skilled in the art to more fully understand the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings, which are only used for reference and are not intended to limit the embodiments of the present application.

[0043] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present application belongs. The terms used herein are only for the purpose of describing the embodiments of the present application and are not intended to limit the present application.

[0044] In the following description, “some embodiments” are described, which describe a subset of all possible embodiments, but it can be understood that “some embodiments” can be the same subset or different subsets of all possible embodiments, and can be combined with each other without conflict.

[0045] It should also be noted that the terms "first", "second", "third" and the like in the embodiments of the present application are only used to distinguish similar objects, and do not represent a specific order for the objects. Understandably, "first", "second", "third" and the like can be interchanged in a specific order or sequence as allowed, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.

[0046] A point cloud is a set of discrete points in space that are irregularly distributed, expressing the spatial structure and surface attributes of a three-dimensional object or scene. These points contain geometric information for representing spatial positions and attribute information for representing the appearance texture of the point cloud. FIG. 1A shows a three-dimensional point cloud image, and FIG. 1B shows a local enlarged view of the three-dimensional point cloud image. As can be seen, the surface of the point cloud is composed of densely distributed points.

[0047] A two-dimensional image has information expressed at each pixel point, and the distribution is regular, so there is no need to record the position information. However, the distribution of points in a point cloud in three-dimensional space is random and irregular, so the position of each point in space needs to be recorded in order to completely express a point cloud. Similar to a two-dimensional image, each position has corresponding attribute information during the collection process, which is usually an RGB color value, and the color value reflects the color of the object. For a point cloud, the attribute information corresponding to each point, in addition to color information, also includes reflectance value, which reflects the surface material of the object. Therefore, point cloud data usually includes position information of points and attribute information of points. The position information of points can also be referred to as geometric information of points. For example, the geometric information of points can be three-dimensional coordinate information (x, y, z) of points. The attribute information of points can include color information and / or reflectance, etc. For example, the reflectance can be one-dimensional reflectance information (r); the color information can be information on any color space, or the color information can be three-dimensional color information such as RGB information. Here, R represents red (red, R), G represents green (green, G), and B represents blue (blue, B). For another example, the color information can be luma chroma (YCbCr, YUV) information. Y represents luma, Cb (U) represents blue color difference, and Cr (V) represents red color difference.

[0048] According to the principle of laser measurement, the points in the point cloud can include three-dimensional coordinate information of points and reflectance values of points. For another example, according to the principle of photogrammetry, the points in the point cloud can include three-dimensional coordinate information of points and three-dimensional color information of points. For another example, a point cloud is obtained by combining laser measurement and photogrammetry, and the points in the point cloud can include three-dimensional coordinate information of points, reflectance values of points, and three-dimensional color information of points.

[0049] A point cloud image and its corresponding data storage format are shown in FIG. 2A and FIG. 2B. FIG. 2A provides six viewing angles of the point cloud image, and FIG. 2B is composed of a file header information part and a data part. The header information includes data format, data representation type, total number of points of the point cloud, and content represented by the point cloud. For example, the point cloud is in ".ply" format, represented by ASCII code, with a total of 207242 points, each point having three-dimensional coordinate information (x, y, z) and three-dimensional color information (r, g, b).

[0050] Point clouds can be classified by the way they are obtained as follows:

[0051] Static point cloud: the object is static, and the device for obtaining the point cloud is also static;

[0052] Dynamic point cloud: the object is moving, but the device for obtaining the point cloud is static;

[0053] Dynamic point cloud: the device for obtaining the point cloud is moving.

[0054] For example, point clouds can be classified into two categories according to their use as follows:

[0055] Category I: machine perception point cloud, which can be used in autonomous navigation systems, real-time inspection systems, geographic information systems, vision sorting robots, rescue robots, etc.

[0056] Category II: human eye perception point cloud, which can be used in digital cultural heritage, free-view broadcast, three-dimensional immersive communication, three-dimensional immersive interaction, etc.

[0057] Point clouds can flexibly and conveniently express the spatial structure and surface properties of three-dimensional objects or scenes, and can provide strong realism under the premise of ensuring accuracy because point clouds are obtained by directly sampling real objects. Therefore, point clouds are widely used in virtual reality games, computer-aided design, geographic information systems, autonomous navigation systems, digital cultural heritage, free-view broadcast, three-dimensional immersive remote presentation, three-dimensional reconstruction of biological tissues and organs, etc.

[0058] Point clouds can be obtained by the following methods: computer generation, 3D laser scanning, 3D photogrammetry, etc. A computer can generate point clouds of virtual three-dimensional objects and scenes; 3D laser scanning can obtain point clouds of static real-world three-dimensional objects or scenes, and can obtain millions of point clouds per second; 3D photogrammetry can obtain point clouds of dynamic real-world three-dimensional objects or scenes, and can obtain tens of millions of point clouds per second. These technologies reduce the cost and time period of obtaining point cloud data and improve the accuracy of the data. The change in the way point cloud data is obtained makes it possible to obtain a large amount of point cloud data, and with the growth of application demand, the processing of massive 3D point cloud data encounters a bottleneck of storage space and transmission bandwidth limitation.

[0059] Exemplarily, taking a point cloud video with a frame rate of 30 frames per second (fps) as an example, the number of points of each frame of point cloud is 700,000, each point has coordinate information xyz (float) and color information RGB (uchar), and the data volume of a 10s point cloud video is about 0.7 million x (4 Byte x 3 + 1 Byte x 3) x 30 fps x 10s = 3.15 GB, wherein 1 Byte is 10 bits; while the YUV sampling format is 4:2:0, the frame rate of a 1280 x 720 two-dimensional video is 30 fps, and the data volume of a 10s video is about 1280 x 720 x 12 bits x 30 frames x 10s = 0.39 GB, and the data volume of a 10s two-view three-dimensional video is about 0.39 x 2 = 0.78 GB. As can be seen, the data volume of the point cloud video far exceeds that of the two-dimensional video and the three-dimensional video of the same length. Therefore, in order to better realize data management, save server storage space, and reduce transmission flow and transmission time between the server and the client, point cloud compression has become a key problem to promote the development of the point cloud industry.

[0060] That is, since the point cloud is a collection of a large number of points, storing the point cloud not only consumes a large amount of memory, but also is not conducive to transmission, and there is no such large bandwidth to support the transmission of the point cloud directly on the network layer without compression, therefore, the point cloud needs to be compressed.

[0061] At present, the point cloud encoding framework that can compress the point cloud can be a geometry-based point cloud compression (G-PCC) coding framework or a video-based point cloud compression (V-PCC) coding framework provided by the moving picture experts group (MPEG), or an AVS-PCC coding framework provided by the AVS. The G-PCC coding framework can be used for compressing the first type of static point cloud and the third type of dynamically acquired point cloud, which can be based on a test model compression 13 (TMC13), and the V-PCC coding framework can be used for compressing the second type of dynamic point cloud, which can be based on a test model compression 2 (TMC2). Therefore, the G-PCC coding framework is also called a point cloud codec TMC13, and the V-PCC coding framework is also called a point cloud codec TMC2.

[0062] The embodiment of the present application provides a network architecture of a point cloud coding system comprising a decoding method and an encoding method. FIG. 3 is a schematic diagram of a network architecture of a point cloud coding provided by the embodiment of the present application. As shown in FIG. 3, the network architecture comprises one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. The electronic devices in the implementation process can be various types of devices with a point cloud coding function, for example, the electronic devices can comprise a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital telephone, a video telephone, a television, a sensing device, a server, and the like, and the embodiment of the present application is not limited thereto. The decoder or the encoder in the embodiment of the present application can be the above-mentioned electronic devices.

[0063] In the embodiment of the present application, the electronic device with the point cloud coding function generally comprises a point cloud encoder (i.e., an encoder) and a point cloud decoder (i.e., a decoder).

[0064] The following describes related technologies by taking a G-PCC coding framework and an AVS coding framework as examples.

[0065] It can be understood that in the point cloud G-PCC coding framework, for the point cloud data to be encoded, the point cloud data is first divided into multiple slices through slice division.

[0066] FIG. 4A shows a schematic diagram of a G-PCC encoder. As shown in FIG. 4A, in the geometry encoding process, the geometry information is first converted in coordinates, so that all the point clouds are contained in a bounding box, and then quantized, which mainly plays a role of scaling. Due to the quantization rounding, the geometry information of a part of the point clouds is the same, and then it is determined based on the parameters whether to remove the duplicate points. This process of quantization and removal of duplicate points is also called the voxelization process. Then, the bounding box is divided by an octree or a prediction tree is constructed. In this process, the points in the divided leaf nodes are arithmetically encoded to generate a binary geometry bitstream, or the vertices generated by the division are arithmetically encoded (surface fitting based on the vertices) to generate a binary geometry bitstream. In the attribute encoding process, after the geometry encoding is completed and the geometry information is reconstructed, color conversion is needed to convert the color information (i.e., attribute information) from the RGB color space to the YUV color space. Then, the reconstructed geometry information is used to recolor the point cloud, so that the unencoded attribute information corresponds to the reconstructed geometry information. Attribute encoding is mainly for color information. In the color information encoding process, there are mainly three transformation methods. The first two methods depend on the level of detail (LOD) division, which are distance-based lifting transformation and prediction transformation. The third method is to directly perform RAHT. These three methods all convert the color information from the spatial domain to the frequency domain, obtain high-frequency coefficients and low-frequency coefficients through transformation, quantize the coefficients, and then arithmetically encode the quantized coefficients to generate a binary attribute bitstream.

[0067] FIG. 4B shows a schematic diagram of a G-PCC decoder. As shown in FIG. 4B, for the obtained binary bitstream, the geometry bitstream and the attribute bitstream in the binary bitstream are first independently decoded. In the decoding of the geometry bitstream, the geometry information of the point cloud is obtained through arithmetic decoding-reconstructing an octree / reconstructing a prediction tree-reconstructing geometry-coordinate inverse conversion. In the decoding of the attribute bitstream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD division / RAHT-color inverse conversion. Based on the geometry information and the attribute information, the point cloud data to be encoded (i.e., the output point cloud) is restored.

[0068] It should be noted that, as shown in FIG. 4A or FIG. 4B, the geometry encoding and decoding of the current G-PCC can be divided into octree-based geometry encoding and decoding (identified by a dashed line box) and prediction tree-based geometry encoding and decoding (identified by a dotted line box).

[0069] For octree-based geometry encoding (OctGeomEnc), the octree-based geometry encoding includes: first, coordinate conversion is performed on the geometry information, so that the point cloud is all contained in a bounding box. Then quantization is performed, which mainly plays a scaling role. Due to quantization rounding, the geometry information of a part of points is the same. Whether to remove the duplicate points is determined according to the parameters. The quantization and removal of duplicate points are also called the voxelization process. Next, the bounding box is continuously divided into a tree (such as an octree, a quadtree, a binary tree, etc.) in the order of breadth-first traversal, and the occupancy code of each node is encoded. In the related art, a company proposes an implicit geometry division method. First, the bounding box of the point cloud is calculated Assume d x > d y > d z The bounding box corresponds to a cuboid. In the geometry division, first, a binary tree division is performed based on the x-axis to obtain two child nodes; until the condition d x = d y > d z is met, a quadtree division is performed based on the x and y axes to obtain four child nodes; when the condition d x = d y = d z is finally met, an octree division is continuously performed until the leaf node obtained by the division is a 1x1x1 unit cube, and the points in the leaf node are encoded to generate a binary code stream. In the process of binary tree / quadtree / octree division, two parameters K and M are introduced. Parameter K indicates the maximum number of binary tree / quadtree divisions before octree division; parameter M is used to indicate the minimum block length corresponding to the binary tree / quadtree division, which is 2 M . At the same time, K and M must satisfy the condition: assume d max = max(d x , d y , d z ), d min = min(d x , d y , d z ), parameter K satisfies: K ≥ d max -d min ; parameter M satisfies: M ≥ d minThe parameters K and M satisfy the above conditions because the priority of the partition mode in the current G-PCC in the process of geometric implicit partition is binary tree, quadtree and octree, and when the node block size does not satisfy the condition of binary tree / quadtree, the octree partition is performed on the node until the leaf node is partitioned into the minimum unit 1*1*1. The geometric information coding mode based on octree can effectively encode the geometric information of the point cloud by utilizing the correlation between adjacent points in space, but for some relatively flat nodes or nodes with plane characteristics, the coding performance of the point cloud geometric information can be further improved by utilizing plane coding.

[0070] Exemplarily, FIGS. 5A and 5B provide a plane position schematic diagram. Among them, FIG. 5A shows a low plane position schematic diagram in the Z-axis direction, and FIG. 5B shows a high plane position schematic diagram in the Z-axis direction. As shown in FIG. 5A, (a), (a0), (a1), (a2), (a3) here all belong to the low plane position in the Z-axis direction. Taking (a) as an example, it can be seen that the four sub-nodes occupied in the current node are located in the low plane position of the current node in the Z-axis direction, so it can be considered that the current node belongs to a Z plane and is a low plane in the Z-axis direction. Similarly, as shown in FIG. 5B, (b), (b0), (b1), (b2), (b3) here all belong to the high plane position in the Z-axis direction. Taking (b) as an example, it can be seen that the four sub-nodes occupied in the current node are located in the high plane position of the current node in the Z-axis direction, so it can be considered that the current node belongs to a Z plane and is a high plane in the Z-axis direction.

[0071] Further, taking (a) in FIG. 5A as an example, the octree coding and the plane coding performance are compared, and FIG. 6 provides a node coding sequence diagram, i.e., the node coding is performed in the order of 0, 1, 2, 3, 4, 5, 6, 7 shown in FIG. 6. Here, if the octree coding is used for (a) in FIG. 5A, the occupancy information of the current node is represented as: 10101010. However, if the plane coding is used, an identifier needs to be coded first to represent that the current node is a plane in the Z-axis direction, and secondly, if the current node is a plane in the Z-axis direction, the plane position of the current node also needs to be represented. Secondly, only the occupancy information of the low plane node in the Z-axis direction needs to be coded (i.e., the occupancy information of the four child nodes of 0, 2, 4, 6), and therefore, based on the plane coding, only 6 bits are needed to code the current node, which can reduce 2 bits of representation compared with the related art octree coding. Based on this analysis, the plane coding has more obvious coding performance than the octree coding. Therefore, for an occupied node, if the plane coding is used in a certain dimension, the planarMode and PlanePos information of the current node in the dimension need to be represented first, and then the occupancy information of the current node is coded based on the planarMode information of the current node. Exemplarily, FIG. 7A shows a planarMode information diagram. As shown in FIG. 7A, here, it is a low plane in the Z-axis direction. Correspondingly, the value of the planarMode information is true or 1, i.e., planarMode Z = true; and the value of the PlanePosition information is low, i.e., PlanePosition Z = low. FIG. 7B shows another planarMode information diagram. As shown in FIG. 7B, here, it is not a plane in the Z-axis direction. Correspondingly, the value of the planarMode information is false or 0, i.e., planarMode Z = false.

[0072] It should be noted that for PlaneMode i : 0 represents that the current node is not a plane in the i-axis direction, and 1 represents that the current node is a plane in the i-axis direction. If the current node is a plane in the i-axis direction, for PlanePosition i : 0 represents that the current node is a plane in the i-axis direction and the plane position is low, and 1 represents that the current node is a high plane in the i-axis direction. Wherein, i represents the coordinate dimension, which can be the X-axis direction, the Y-axis direction or the Z-axis direction, so i = 0, 1, 2.

[0073] The octree-based geometry information coding mode has an efficient compression rate only for points with correlation in space, and for points in isolated positions in the geometry space, the use of a direct coding mode (DCM) can greatly reduce complexity. For all nodes in the octree, the use of DCM is not represented by flag information, but is inferred by the current node parent and neighbor information. There are three ways to determine whether the current node has DCM coding qualifications, as follows:

[0074] (1) The current node has no brother and sister child nodes, that is, the parent node of the current node has only one child node, and the parent node of the parent node of the current node has only two occupied child nodes, that is, the current node has at most one neighbor node.

[0075] (2) The parent node of the current node has only one occupied child node, and the six neighbor nodes sharing a face with the current node are all empty nodes.

[0076] (3) The number of brother and sister nodes of the current node is greater than 1.

[0077] Exemplarily, FIG. 8 provides an IDCM coding schematic. If the current node does not have DCM coding qualifications, it will be divided into an octree, and if it has DCM coding qualifications, it will further determine the number of points contained in the node. When the number of points is less than a threshold (for example, 2), the node is coded by DCM, otherwise the octree division is continued. When the DCM coding mode is applied, it is necessary to code whether the current node is a truly isolated point, that is, IDCM_flag. When IDCM_flag is true, the current node adopts DCM coding, otherwise it still adopts octree coding. When the current node satisfies the DCM coding, the DCM coding mode of the current node needs to be coded. There are two DCM modes at present, which are: (a) only one point exists (or multiple points, but they are duplicate points); (b) contains two points. Finally, the geometry information of each point needs to be coded. Assuming that the edge length of the node is 2 d , when coding each component of the geometry coordinates of the node, d bits are needed, and the bit information is directly coded into the code stream. It should be noted here that when coding the laser radar point cloud, the three-dimensional coordinate information is predicted and coded by using the laser radar acquisition parameters, so as to further improve the coding performance of the geometry information.

[0078] It should be noted that when the node is divided into a leaf node, the number of repeated points in the leaf node needs to be encoded in the case of geometric lossless coding. Finally, the occupancy information of all nodes is encoded to generate a binary code stream. In addition, G-PCC currently introduces a plane coding mode. During the process of dividing the geometry, it is judged whether the child nodes of the current node are in the same plane. If the child nodes of the current node meet the condition of the same plane, the plane is used to represent the child nodes of the current node.

[0079] For octree-based geometry decoding, the decoding end first judges whether the current node is plane decoding or IDCM decoding by using the reconstructed geometry information before decoding the occupancy information of each node in the order of breadth-first traversal. If the current node meets the condition of plane decoding, the plane identifier and plane position information of the current node are decoded first, and then the occupancy information of the current node is decoded based on the plane information. If the current node meets the condition of IDCM decoding, it is first decoded whether the current node is a real IDCM node. If it is a real IDCM node, the DCM decoding mode of the current node is parsed, the number of points in the current DCM node is obtained, and finally the geometry information of each point is decoded. For nodes that do not meet the conditions of plane decoding and DCM decoding, the occupancy information of the current node is decoded. By continuously parsing the occupancy code of each node in this way and continuously dividing the nodes in turn, the number of points contained in each leaf node is parsed until the division of 1×1×1 unit cubes is stopped, and the geometry reconstruction point cloud information is finally recovered.

[0080] For triangle soup (trisoup) based geometry information coding, in the trisoup based geometry information coding framework, geometry division is also needed first, but unlike the geometry information coding based on binary tree / quaternary tree / octree, this method does not need to divide the point cloud to a unit cube with an edge length of 1×1×1, but stops dividing when the block edge length is W. Based on the surface formed by the distribution of points in each block, at most twelve intersection points (vertices) generated by the surface and the twelve edges of the block are obtained. The vertex coordinates of each block are encoded in turn to generate a binary code stream.

[0081] After encoding / decoding at most twelve vertices, in order to restore the shape of the point cloud more accurately, the intersection point centroid offset value of the cube is encoded / decoded. In the process of encoding the intersection point centroid offset value, the centroid of at most twelve vertices (intersection points) is first calculated, denoted as C meanAt the encoding end, the centroid C is calculated using the partial real point cloud point set of the cube, and The normal vector of the centroid point is shown in FIG. 9. Wherein a is the intersection centroid offset value, and a needs to be encoded and decoded. Thus, the final point cloud triangular patches are CV1V2, CV2V3, CV3V4, and CV4V1. The point cloud is restored using these triangular patches.

[0082] For point cloud geometry information reconstruction based on trisoup, at the decoding end, the vertex coordinates are first decoded to complete triangular patch reconstruction, and the process is shown in FIGS. 10A, 10B, and 10C. As shown in FIG. 10A, there are three intersection points (v1, v2, v3) in the block, and the triangular patch set formed by the three intersection points in a certain order is called triangle soup, i.e., trisoup, as shown in FIG. 10B. Then, sampling is performed on the triangular patch set, and the obtained sampling points are used as the reconstructed point cloud in the block, as shown in FIG. 10C.

[0083] For the intersection centroid offset value a, it can be decoded at the decoding end. The process of decoding the intersection centroid offset value a at the decoding end is described in detail below.

[0084] At the decoding end, up to twelve intersection points in the current block can be decoded to obtain the up to twelve intersection points. Then, the up to twelve intersection points are compared with up to twelve intersection points in a reference block (or a decoded block) to determine the inaccuracy value qualitySKIP of the prediction of the up to twelve intersection points. The qualitySKIP is used to indicate the number of inaccuracy values of the prediction of the up to twelve intersection points. If the qualitySKIP is less than K, it indicates that the prediction of the up to twelve intersection points in the current block is relatively accurate, and the intersection centroid offset value of the current block is probably equal to the intersection centroid offset value of the reference block. If the qualitySKIP is less than K, the possibleSKIP can be recorded as 1. The intersection centroid offset value of the reference block is also called the inter-frame prediction value driftSKIP of the intersection centroid offset value. The driftSKIP can be obtained by decoding the reference block previously. The reference block can be the previous block of the current block. Of course, the reference block can also be other blocks.

[0085] If the possibleSKIP is 1, a flag bit intersameflag is decoded to determine whether the intersection centroid offset value of the current block is equal to the inter-frame prediction value of the intersection centroid offset value. If the intersection centroid offset value of the current block is equal to the inter-frame prediction value of the intersection centroid offset value, the decoding ends; if the intersection centroid offset value of the current block is not equal to the inter-frame prediction value of the intersection centroid offset value, the subsequent decoding continues.

[0086] For example, if the Intersameflag is equal to 1, it means that the intersection centroid offset value of the current block is equal to the inter prediction value of the intersection centroid offset value; if the Intersameflag is equal to 0, it means that the intersection centroid offset value of the current block is not equal to the inter prediction value of the intersection centroid offset value.

[0087] Similarly, the intersection centroid offset value a can also be encoded in the above manner at the encoding end.

[0088] In order to reduce the code stream overhead of the Intersameflag, the arithmetic coding manner can be used to code and decode the Intersameflag. When coding and decoding the Intersameflag, the context model can be used to code and decode the Intersameflag.

[0089] The context model of the Intersameflag can be determined based on the qualitySKIP and the driftSKIP. For example: Intersameflag = decode(ctxtMemOctree.ctxDriftSKIP[qualitySKIP][driftSKIP == 0]).

[0090] The framework of decoding the Intersameflag is shown in FIG. 11. First, the qualitySKIP is calculated. It is determined whether the qualitySKIP is less than K. If the qualitySKIP < K, the possibleSKIP = 1; if the qualitySKIP >= K, the possibleSKIP = 0. If the possibleSKIP = 1, the Intersameflag is decoded; if the possibleSKIP is not equal to 1, the intersection centroid offset value of the current block is decoded by other methods. If the Intersameflag = 1, the intersection centroid offset value of the current block is equal to the driftSKIP. If the Intersameflag is not equal to 1, the intersection centroid offset value of the current block is decoded by other methods.

[0091] When decoding the Intersameflag, the parameters qualitySKIP and driftSKIP are needed. The qualitySKIP corresponds to 12 index values, i.e. 0-11; the driftSKIP == 0 corresponds to 2 index values, i.e. 0 and 1. Therefore, 12*2 = 24 contexts are used to decode the Intersameflag, as shown in FIG. 12. Decoding the Intersameflag in this manner will cause the number of contexts to be large, which will affect the coding and decoding performance.

[0092] Based on this, the application provides a point cloud encoding method, comprising: determining a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point; determining a second parameter according to the first parameter, the second parameter comprising a first value, and the first value corresponding to multiple values of the first parameter; determining a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection point centroid offset value of the current block is equal to an inter-frame prediction value of the intersection point centroid offset value; and encoding the third parameter according to the context model of the third parameter.

[0093] The application also provides a point cloud decoding method, comprising: determining a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point; determining a second parameter according to the first parameter, the second parameter comprising a first value, and the first value corresponding to multiple values of the first parameter; determining a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection point centroid offset value of the current block is equal to an inter-frame prediction value of the intersection point centroid offset value; and decoding the third parameter according to the context model of the third parameter.

[0094] Considering that probabilities corresponding to multiple values in the first parameter (such as qualitySKIP) are approximately equal, the application proposes that the second parameter can be used as a parameter for determining the context model of the third parameter (such as Intersameflag), wherein one value of the second parameter corresponds to multiple values of the first parameter. In this way, the number of index values (or values) of the second parameter is less than the number of index values of the first parameter. Compared with the manner of directly using the first parameter to determine the context model of the third parameter, using the second parameter to determine the context model of the third parameter can reduce the number of context models required, which is beneficial to improving the performance of encoding and decoding the third parameter.

[0095] The point cloud decoding method of the application will be described in detail below.

[0096] FIG. 13 is a flow diagram of a point cloud decoding method according to an embodiment of the present application. The method shown in FIG. 13 can be applied to a decoder. The point cloud decoding method shown in FIG. 13 can be used to decode the geometry information of a point cloud. In some implementations, the decoding method can be applied to a trisoup-based decoding method. In some implementations, the decoding method is based on a geometry-based solid content test model (GES-TM). The GES-TM is a coding framework proposed for dense point clouds (e.g., point clouds captured in an augmented reality (AR) or virtual reality (VR) scene).

[0097] Referring to FIG. 13, in step S1310, a first parameter of the current block is determined according to at least one intersection point in the reference block.

[0098] The at least one intersection point can be an intersection point of the point cloud in the reference block and 12 edges of the reference block. The number of the at least one intersection point is greater than 0 and less than or equal to 12. The at least one intersection point can be obtained by decoding the reference block. The reference block can be a decoded block. The reference block can be the reference block in the trisoup-based coding method described above. The reference block can also be referred to as a block.

[0099] The first parameter can be used to indicate the number of inaccurate values in the intersection point prediction values determined based on the at least one intersection point. The first parameter can be, for example, qualitySKIP (of course, the first parameter can also be represented by any other letter and / or number). The value of the first parameter can be 0-11, or in other words, the value of the first parameter is an integer greater than or equal to 0 and less than or equal to 11.

[0100] The first parameter can be determined based on the relationship between the at least one intersection point in the reference block and the at least one intersection point in the current block. For example, if the intersection point 1 in the reference block is the same as the intersection point 1 in the current block, it means that the prediction value of the intersection point 1 in the current block is accurate; if the intersection point 1 in the reference block is different from the intersection point 1 in the current block, it means that the prediction value of the intersection point 1 in the current block is inaccurate. By comparing the at least one intersection point in the reference block with the at least one intersection point in the current block, the first parameter can be determined.

[0101] Continuing to refer to FIG. 13, in step S1320, a second parameter is determined according to the first parameter.

[0102] The second parameter can be a newly defined parameter. For example, the second parameter can be represented by Index_New (of course, the second parameter can also be represented by any other letter and / or number).

[0103] The second parameter can comprise a first value, and the first value corresponds to a plurality of values of the first parameter. In other words, when the first parameter takes any value in the plurality of values, the second parameter takes the first value. In some embodiments, the plurality of values correspond to equal or approximately equal probabilities (or probability distributions). Thus, the contexts indexed by the plurality of values can be simplified to one, so as to reduce the number of contexts.

[0104] The plurality of values are not specifically limited in the embodiments of the present application. For example, the plurality of values can be values in the first parameter values within a first value range. The plurality of values can be consecutive values. Alternatively, the plurality of values can be discontinuous values or scattered values.

[0105] The first value range can comprise some or all of the values from 1 to 11. For example, the first value range can be 1-11. For another example, the first value range can be P-11, where P is an integer greater than 1, and P can be 2, 3, 4 or 5, etc. For another example, the first value range can be 1-Q, where Q is an integer less than 11 and greater than 1, and Q can be 10, 9, 8 or 7, etc.

[0106] The first value can be 0 or 1, for example, so as to reduce the complexity of coding and decoding. Taking the first value as 0 for example, when the first parameter takes any value in the plurality of values, the second parameter takes 0. Taking the first value as 1 for example, when the first parameter takes any value in the plurality of values, the second parameter takes 1.

[0107] Taking the plurality of values as 1-11 for example, when the first parameter takes a value from 1 to 11, the second parameter takes 0 or 1.

[0108] In some embodiments, the second parameter further comprises a second value. The second value can correspond to a value of the first parameter other than the plurality of values. For example, the second value corresponds to one value of the first parameter, which can be any value other than the plurality of values. The one value can be 0, for example. For example, if the first value corresponds to a value from 1 to 11 of the first parameter, the second value corresponds to 0 of the first parameter. In other words, the first value and the second value of the second parameter can correspond to all values of the first parameter.

[0109] The second value can be 1 or 0. The first value is different from the second value. If the first value is 0, the second value is 1; if the first value is 1, the second value is 0.

[0110] The relationship between the value of the first parameter and the value of the second parameter can be implemented by a function or by a mapping table, and the embodiments of the present application do not make specific limitations thereon. For example, the second parameter can be determined based on the first parameter and the first mapping relationship. The first mapping relationship can be used to indicate the mapping relationship between the value of the first parameter and the value of the second parameter. By indicating the relationship between the value of the first parameter and the value of the second parameter through a mapping table, the running speed of coding and decoding can be improved.

[0111] Continuing to refer to FIG. 13, at step S1330, a context model of the third parameter is determined according to the second parameter.

[0112] The third parameter can be used to indicate whether the intersection centroid offset value of the current block is equal to the inter prediction value of the intersection centroid offset value. The third parameter can be Intersameflag described above (of course, the third parameter can also be represented by any other letter and / or number).

[0113] The inter prediction value of the intersection centroid offset value can be a centroid offset value obtained by prediction. The inter prediction value of the intersection centroid offset value can be the intersection centroid offset value of the reference block.

[0114] If the value of the third parameter is 1, it indicates that the intersection centroid offset value of the current block is equal to the inter prediction value of the intersection centroid offset value; if the value of the third parameter is 0, it indicates that the intersection centroid offset value of the current block is not equal to the inter prediction value of the intersection centroid offset value. Alternatively, if the value of the third parameter is 0, it indicates that the intersection centroid offset value of the current block is equal to the inter prediction value of the intersection centroid offset value; if the value of the third parameter is 1, it indicates that the intersection centroid offset value of the current block is not equal to the inter prediction value of the intersection centroid offset value.

[0115] The third parameter can be determined based on the context model. In other words, the third parameter can be decoded based on the context model. The context model of the third parameter is related to the second parameter.

[0116] In some implementations, the context model of the third parameter can be determined based on the second parameter and a fourth parameter. The fourth parameter can be used to indicate the inter prediction value of the intersection centroid offset value. The fourth parameter can be driftSKIP described above (of course, the fourth parameter can also be represented by any other letter and / or number).

[0117] In some implementations, the context model of the third parameter can be determined based on the second parameter and whether the fourth parameter is 0. If the second parameter includes 2 values, and whether the fourth parameter is 0 corresponds to 2 values, then the number of contexts of the third parameter is 2*2=4, which is 20 contexts less than the 24 contexts in the traditional scheme, and can greatly reduce the number of contexts.

[0118] In some embodiments, the decoding of the third parameter is performed when a value of a fifth parameter satisfies a first condition, and the value of the fifth parameter is determined based on a value of the first parameter. The fifth parameter can be possibleSKIP as described above (of course, the fifth parameter can also be represented by other arbitrary letters and / or numbers). By decoding the third parameter when the first condition is satisfied, unnecessary decoding operations can be avoided, and the performance of the coding and decoding can be improved.

[0119] The first condition can include that the value of the fifth parameter is 1. If the value of the fifth parameter is 1, the decoder decodes the third parameter; if the value of the fifth parameter is not 1, such as 0, the decoder does not decode the third parameter.

[0120] In some embodiments, if the value of the first parameter is less than a first threshold, the value of the fifth parameter is 1. The first threshold can be K, for example, and if the value of the first parameter is less than K, the value of the fifth parameter is 1. K is an integer less than or equal to 12. K can be 6 or 12, for example.

[0121] Continuing to refer to FIG. 13, at step S1340, the third parameter is decoded according to the context model of the third parameter.

[0122] The decoder can decode the third parameter according to the context model using an arithmetic decoding method to determine the value of the third parameter. If the value of the third parameter is 1, it is determined that the centroid offset value of the current block is the inter-frame prediction value of the centroid offset value; if the value of the third parameter is 0, it is determined that the centroid offset value of the current block is not the inter-frame prediction value of the centroid offset value. If the centroid offset value of the current block is not the inter-frame prediction value of the centroid offset value, the decoder can determine the centroid offset value of the current block in other ways.

[0123] In some embodiments, the decoder can determine the reconstruction value of the point cloud in the current block according to the intersection point in the current block.

[0124] The point cloud decoding method provided by the embodiments of the present application is described in detail above in combination with FIG. 13. The point cloud encoding method provided by the embodiments of the present application is described in detail below in combination with FIG. 14.

[0125] FIG. 14 is a flow diagram of a point cloud encoding method according to an embodiment of the present application. The point cloud encoding method of FIG. 14 can be applied to an encoder. The point cloud encoding method of FIG. 14 can be used to encode geometry information of a point cloud. In some implementations, the encoding method can be applied to a trisoup-based encoding method. In some implementations, the encoding method is based on a geometry-based solid content test model (GES-TM). The GES-TM is a coding framework proposed for dense point clouds (e.g., point clouds captured in an augmented reality (AR) or virtual reality (VR) scene).

[0126] Referring to FIG. 14, in step S1410, a first parameter of a current block is determined according to at least one intersection point in a reference block.

[0127] The at least one intersection point can be an intersection point of a point cloud in the reference block and 12 edges of the reference block. The number of the at least one intersection point is greater than 0 and less than or equal to 12. The at least one intersection point can be obtained by decoding the reference block. The reference block can be a decoded block. The reference block can be the reference block in the trisoup-based coding method described above. The reference block can also be referred to as a block.

[0128] The first parameter can be used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point. The first parameter can be, for example, qualitySKIP (of course, the first parameter can also be represented by any other letter and / or number). The value of the first parameter can be 0-11, or in other words, the value of the first parameter is an integer greater than or equal to 0 and less than or equal to 11.

[0129] The first parameter can be determined based on a relationship between the at least one intersection point in the reference block and the at least one intersection point in the current block. For example, if the intersection point 1 in the reference block is the same as the intersection point 1 in the current block, it indicates that the prediction value of the intersection point 1 in the current block is accurate; if the intersection point 1 in the reference block is different from the intersection point 1 in the current block, it indicates that the prediction value of the intersection point 1 in the current block is inaccurate. By comparing the at least one intersection point in the reference block with the at least one intersection point in the current block, the first parameter can be determined.

[0130] Continuing to refer to FIG. 14, in step S1420, a second parameter is determined according to the first parameter.

[0131] The second parameter can be a newly defined parameter. For example, the second parameter can be represented by Index_New (of course, the second parameter can also be represented by any other letter and / or number).

[0132] The second parameter can comprise a first value, and the first value corresponds to a plurality of values of the first parameter. In other words, when the first parameter takes any value in the plurality of values, the second parameter takes the first value. In some embodiments, the plurality of values correspond to equal or approximately equal probabilities (or probability distributions). Thus, the contexts indexed by the plurality of values can be simplified to one, so as to reduce the number of contexts.

[0133] The plurality of values are not specifically limited in the embodiments of the present application. For example, the plurality of values can be values in the first parameter values within a first value range. The plurality of values can be consecutive values. Alternatively, the plurality of values can be discontinuous values or scattered values.

[0134] The first value range can comprise some or all of the values from 1 to 11. For example, the first value range can be 1-11. For another example, the first value range can be P-11, where P is an integer greater than 1, and P can be 2, 3, 4 or 5, for example. For another example, the first value range can be 1-Q, where Q is an integer less than 11 and greater than 1, and Q can be 10, 9, 8 or 7, for example.

[0135] The first value can be 0 or 1, for example, so as to reduce the complexity of coding and decoding. Taking the first value as 0 as an example, when the first parameter takes any value in the plurality of values, the second parameter takes 0. Taking the first value as 1 as an example, when the first parameter takes any value in the plurality of values, the second parameter takes 1.

[0136] Taking the plurality of values as 1-11 as an example, when the first parameter takes a value from 1 to 11, the second parameter takes 0 or 1.

[0137] In some embodiments, the second parameter further comprises a second value. The second value can correspond to a value of the first parameter other than the plurality of values. For example, the second value corresponds to one value of the first parameter, which can be any value other than the plurality of values. The one value can be 0, for example. Taking the first value as corresponding to values from 1 to 11 of the first parameter as an example, the second value corresponds to a value of 0 of the first parameter. In other words, the first value and the second value of the second parameter can correspond to all values of the first parameter.

[0138] The second value can be 1 or 0. The first value is different from the second value. If the first value is 0, the second value is 1; if the first value is 1, the second value is 0.

[0139] The relationship between the value of the first parameter and the value of the second parameter can be implemented by a function or by a mapping table, and the embodiments of the present application do not make specific limitations thereon. For example, the second parameter can be determined based on the first parameter and the first mapping relationship. The first mapping relationship can be used to indicate the mapping relationship between the value of the first parameter and the value of the second parameter. By indicating the relationship between the value of the first parameter and the value of the second parameter through a mapping table, the running speed of coding and decoding can be improved.

[0140] Continuing to refer to FIG. 14, in step S1430, a context model of the third parameter is determined according to the second parameter.

[0141] The third parameter can be used to indicate whether the intersection centroid offset value of the current block is equal to the inter-frame predicted value of the intersection centroid offset value. The third parameter can be Intersameflag described above (of course, the third parameter can also be represented by any other letter and / or number).

[0142] The inter-frame predicted value of the intersection centroid offset value can be a centroid offset value obtained by prediction. The inter-frame predicted value of the intersection centroid offset value can be the intersection centroid offset value of the reference block.

[0143] If the value of the third parameter is 1, it indicates that the intersection centroid offset value of the current block is equal to the inter-frame predicted value of the intersection centroid offset value; if the value of the third parameter is 0, it indicates that the intersection centroid offset value of the current block is not equal to the inter-frame predicted value of the intersection centroid offset value. Alternatively, if the value of the third parameter is 0, it indicates that the intersection centroid offset value of the current block is equal to the inter-frame predicted value of the intersection centroid offset value; if the value of the third parameter is 1, it indicates that the intersection centroid offset value of the current block is not equal to the inter-frame predicted value of the intersection centroid offset value.

[0144] The third parameter can be determined based on the context model. In other words, the third parameter can be encoded based on the context model. The context model of the third parameter is related to the second parameter.

[0145] In some implementations, the context model of the third parameter can be determined based on the second parameter and a fourth parameter. The fourth parameter can be used to indicate the inter-frame predicted value of the intersection centroid offset value. The fourth parameter can be driftSKIP described above (of course, the fourth parameter can also be represented by any other letter and / or number).

[0146] In some implementations, the context model of the third parameter can be determined based on the second parameter and whether the fourth parameter is 0. If the second parameter includes 2 values, and whether the fourth parameter is 0 corresponds to 2 values, then the number of contexts of the third parameter is 2*2=4, which is 20 contexts less than the 24 contexts in the traditional scheme, and can greatly reduce the number of contexts.

[0147] In some embodiments, the encoding of the third parameter is performed when the value of the fifth parameter satisfies a first condition, and the value of the fifth parameter is determined based on the value of the first parameter. The fifth parameter may, for example, be possibleSKIP described above (of course, the fifth parameter may also be represented by other arbitrary letters and / or numbers). By encoding the third parameter when the first condition is satisfied, some unnecessary encoding operations can be avoided, which is beneficial to improve the performance of the encoding and decoding.

[0148] The first condition may, for example, include that the value of the fifth parameter is 1. If the value of the fifth parameter is 1, the encoder encodes the third parameter; if the value of the fifth parameter is not 1, such as 0, the encoder does not encode the third parameter.

[0149] In some embodiments, the value of the fifth parameter is 1 if the value of the first parameter is less than a first threshold. The first threshold may, for example, be K, and the value of the fifth parameter is 1 if the value of the first parameter is less than K. K is an integer less than or equal to 12. K may, for example, be 6 or 12, etc.

[0150] Continuing to refer to FIG. 14, at step S1440, the third parameter is encoded according to the context model of the third parameter. The encoder may, for example, use an arithmetic encoding method to encode the third parameter according to the context model.

[0151] The embodiments of the present application will be described in more detail with reference to specific examples. It should be noted that the examples below are only intended to help those skilled in the art understand the embodiments of the present application, and are not intended to limit the embodiments of the present application to the specific values or specific scenarios exemplified. Those skilled in the art can obviously make various equivalent modifications or changes based on the examples given below, and such modifications or changes also fall within the scope of the embodiments of the present application.

[0152] In the related art, when decoding the intersection centroid offset value, when the intersameflag flag bit is decoded, the context model indexed by the value of qualitySKIP (0 to 11) is redundant, and since the probability distribution of qualitySKIP not being 0 (1 to 11) is approximate, the contex indexed by qualitySKIP not being 0 (1 to 11) can be simplified to one. The optimization algorithm proposed in the present application can reduce the contex model without affecting the performance and time complexity.

[0153] The improvement proposed in the present application is that when decoding the flag Intersameflag, qualitySKIP is converted into a new index value Index_New. Since the probability distribution of qualitySKIP not being 0 (1 to 11) is approximate, the original 12 contexts (0 to 11, a total of 12) can be reduced to 2 contexts (e.g. 0 is one kind, and 1 to 11 are another kind), without affecting the performance and time complexity, to reduce the number of contexts at the decoding end.

[0154] Intersameflag = decode (ctxtMemOctree.ctxDriftSKIP[Index_New][driftSKIP == 0])

[0155] Wherein the index value required for decoding Intersameflag is Index_New and driftSKIP == 0.

[0156] Method one:

[0157] If 0 <= quantitySKIP < K-1, then Index_New = 0, otherwise Index_New = 1.

[0158] The pseudo code is as follows:

[0159] If 0 <= quantitySKIP < K-1:

[0160] Index_New = 0

[0161] Else

[0162] Index_New = 1

[0163] Take K = 2 as an example. If K takes 2, there are the following schemes.

[0164] If quantitySKIP == 0, then Index_New = 0, otherwise Index_New = 1.

[0165] The pseudo code is as follows:

[0166] If quantitySKIP == 0:

[0167] Index_New = 0

[0168] Else (i.e. quantitySKIP takes 1-11 randomly)

[0169] Index_New = 1

[0170] where the context used to decode Intersameflag is:

[0171] Index_New--》2 index values;

[0172] driftSKIP==0--》2 index values.

[0173] Intersameflag=decode(ctxtMemOctree.ctxDriftSKIP[Index_New][driftSKIP==0])

[0174] Method one needs 2*2=4 contexts in total, which is 20 contexts less than the related art (24 contexts).

[0175] Method two:

[0176] Method two uses a mapping table (Look Up table) approach, i.e. the relationship between the value of qualitySKIP and the value of Index_New can be realized through a mapping table.

[0177] The mapping table of Index_New and qualitySKIP is:

[0178] TABLE_QUANLITY_CONTEX=[0,1,1,1,1,1,1,1,1,1,1,1] or [1,0,0,0,0,0,0,0,0,0,0,0];

[0179] Index_New=TABLE_QUANLITY_CONTEX[qualitySKIP].

[0180] where the context used to decode Intersameflag is:

[0181] Index_New--》2 index values;

[0182] driftSKIP==0--》2 index values.

[0183] Intersameflag=decode(ctxtMemOctree.ctxDriftSKIP[Index_New][driftSKIP==0])

[0184] Method two needs 2*2=4 contexts in total, which is 20 contexts less than the related art (24 contexts).

[0185] FIG. 15 shows a framework diagram of decoding the intersection centroid drift value, and FIG. 16 shows a framework diagram of decoding the context of Intersameflag. The framework diagram shown in FIG. 15 is similar to the framework shown in FIG. 11. First, qualitySKIPis calculated. It is determined whether qualitySKIPis less than K. If qualitySKIP<K, then possibleSKIP=1; if qualitySKIP≥K, then possibleSKIP=0. If possibleSKIP=1, then Intersameflagis decoded; if possibleSKIPis not equal to 1, then the intersection centroid drift value of the current block is decoded by other methods. If Intersameflag=1, then the intersection centroid drift value of the current block is equal to driftSKIP. If Intersameflagis not equal to 1, then the intersection centroid drift value of the current block is decoded by other methods.

[0186] Referring to FIG. 16, the context model of Intersameflagmay be determined based on Index_Newand driftSKIP=0. Since Index_Newincludes 2 values, driftSKIP=0 corresponds to 2 values, the number of contexts required to decode Intersameflagis 4, thereby greatly reducing the number of contexts required to decode Intersameflag.

[0187] Table 1 and Table 2 show the test results of Method 1 and Method 2, respectively. As can be seen from Table 1 and Table 2, the scheme of the present application has little effect on the performance and time complexity, but reduces 20 contexts at the decoding end. In decoding the intersection centroid drift value a, the number of contexts used by the related art is 73, and the number of contexts used by the scheme of the present application, Method 1 or Method 2, is 53, which is equivalent to reducing the number of contexts by 27%.

[0188] The present application uses a new index method when decoding the intersection centroid drift value, converting the qualitySKIPindex into a new index Index_New. Using the new index method, the number of contexts can be reduced without affecting the performance and time complexity.

[0189] Table 1

[0190] Table 2

[0191] The method embodiments of the present application are described in detail above in combination with FIG. 1 to FIG. 16, and the device embodiments of the present application are described in detail below in combination with FIG. 17 to FIG. 20. It should be understood that the description of the method embodiments corresponds to the description of the device embodiments, and therefore, the parts not described in detail can be referred to the method embodiments described above.

[0192] FIG. 17 is a structural schematic diagram of a decoder according to an embodiment of the present application. As shown in FIG. 17, the decoder 1700 can include a first determining unit 1710, a second determining unit 1720, a third determining unit 1730, and a decoding unit 1740.

[0193] The first determining unit 1710 is configured to determine a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point.

[0194] The second determining unit 1720 is configured to determine a second parameter according to the first parameter, the second parameter including a first value, and the first value corresponding to a plurality of values of the first parameter.

[0195] The third determining unit 1730 is configured to determine a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection point centroid offset value of the current block is equal to an inter-frame prediction value of the intersection point centroid offset value.

[0196] The decoding unit 1740 is configured to decode the third parameter according to the context model of the third parameter.

[0197] In some implementations, the plurality of values are values in a first value range among the values of the first parameter.

[0198] In some implementations, the first value range includes some or all values in 1 to 11.

[0199] In some implementations, the first value is 0 or 1.

[0200] In some implementations, the second parameter further includes a second value, and the second value corresponds to one value of the values of the first parameter.

[0201] In some implementations, the value of the first parameter corresponding to the second value is 0.

[0202] In some implementations, the second value is 1 or 0.

[0203] In some embodiments, the second parameter is determined based on the first parameter and a first mapping relationship, the first mapping relationship being used to indicate a mapping relationship between a value of the first parameter and a value of the second parameter.

[0204] In some embodiments, the context model is determined based on the second parameter and a fourth parameter, the fourth parameter being used to indicate an inter-frame prediction value of the intersection centroid offset value.

[0205] In some embodiments, the decoding of the third parameter is performed in a case that a value of a fifth parameter satisfies a first condition, the value of the fifth parameter being determined based on the value of the first parameter.

[0206] In some embodiments, the first condition is that the value of the fifth parameter is 1.

[0207] In some embodiments, if the value of the first parameter is less than a first threshold, the value of the fifth parameter is 1.

[0208] In some embodiments, the decoder further comprises a fourth determining unit configured to determine a reconstruction value of the point cloud within the current block according to the intersection point in the current block.

[0209] It can be understood that, in the embodiments of the present application, the "unit" can be a part of circuit, a part of processor, a part of program or software, etc., and of course can also be a module, and can also be non-modular. Moreover, the components in the embodiments can be integrated in one processing unit, or can be physically present individually, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software function module.

[0210] The integrated unit, if realized in the form of a software function module and not sold or used as an independent product, can be stored in a computer readable storage medium, based on such understanding, the technical solutions of the embodiments can be embodied in the form of a software product, the computer software product is stored in a storage medium, and includes a plurality of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to perform all or part of the steps of the methods described in the embodiments. The foregoing storage medium includes: a U disk, a mobile hard disk, a read only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various media that can store program codes.

[0211] Therefore, the embodiment of the present application provides a computer readable storage medium applied to the decoder 1700, the computer readable storage medium stores a computer program, and the computer program is executed by a processor to implement the decoding method in any one of the foregoing embodiments.

[0212] Based on the components of the decoder 1700 and the computer readable storage medium, referring to FIG. 18, a specific hardware structure diagram of an encoder 1800 provided by the embodiment of the present application is shown. As shown in FIG. 18, the encoder 1800 can include a communication interface 1810, a memory 1820 and a processor 1830; each component is coupled together through a bus system 1840. It can be understood that the bus system 1840 is used to realize the connection communication between the components. In addition to the data bus, the bus system 1840 also includes a power bus, a control bus and a status signal bus. However, in order to clearly illustrate, various buses are marked as the bus system 1840 in FIG. 18. Among them,

[0213] The communication interface 1810 is configured to receive and send signals in the process of transceiving information with other external network elements;

[0214] The memory 1820 is configured to store a computer program;

[0215] The processor 1830 is configured to, when running the computer program, perform the following: determining a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in an intersection point prediction value determined based on the at least one intersection point; determining a second parameter according to the first parameter, the second parameter including a first value, and the first value corresponding to multiple values of the first parameter; determining a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection point centroid offset value of the current block is equal to an inter-frame prediction value of the intersection point centroid offset value; and decoding the third parameter according to the context model of the third parameter.

[0216] It is to be understood that the memory 1820 in the embodiments of the present application can be a volatile memory or a nonvolatile memory, or can include both volatile and nonvolatile memory. Among them, the nonvolatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically EPROM (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM) used as an external cache. By way of example, and not limitation, many forms of RAM can be used, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchlink DRAM (SLDRAM), and direct rambus RAM (DRRAM). The memory 1820 of the system and method described in the present application is intended to include, but not be limited to, these and any other suitable types of memory.

[0217] The processor 1830 can be an integrated circuit chip on which signal processing capabilities are implemented. In implementation, the steps of the above method can be completed by integrated logic circuits or instructions in software form in the processor 1830. The processor 1830 described above can be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general purpose processor can be a microprocessor or the processor can also be any conventional processor. The steps of the method disclosed in conjunction with the embodiments of the present application can be directly embodied as a hardware code processor for execution, or a combination of hardware and software modules in the code processor for execution. The software module can be located in 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 storage 1820, and the processor 1830 reads the information in the storage 1820 and combines the hardware to complete the steps of the above method.

[0218] It can be understood that the embodiments described in the present application can be realized by hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general purpose processors, controllers, microcontrollers, microprocessors, other electronic units for executing functions described in the present application or a combination thereof. For software implementation, the technology described in the present application can be implemented by modules (such as processes, functions, etc.) for executing functions described in the present 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.

[0219] Optionally, as another embodiment, the processor 1830 is further configured to, when executing the computer program, perform the decoding method according to any one of the preceding embodiments.

[0220] FIG. 19 is a schematic diagram of a structure of an encoder according to an embodiment of the present application. As shown in FIG. 19, the encoder 1900 includes a first determining unit 1910, a second determining unit 1920, a third determining unit 1930, and an encoding unit 1940.

[0221] The first determining unit 1910 is configured to determine a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point.

[0222] The second determining unit 1920 is configured to determine a second parameter according to the first parameter, the second parameter including a first value, and the first value corresponding to a plurality of values of the first parameter.

[0223] The third determining unit 1930 is configured to determine a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection point centroid offset value of the current block is equal to an inter-frame prediction value of the intersection point centroid offset value.

[0224] The encoding unit 1940 is configured to encode the third parameter according to the context model of the third parameter.

[0225] In some implementations, the plurality of values are values of the first parameter within a first value range.

[0226] In some implementations, the first value range includes some or all of the values from 1 to 11.

[0227] In some implementations, the first value is 0 or 1.

[0228] In some implementations, the second parameter further includes a second value, and the second value corresponds to one of the values of the first parameter.

[0229] In some implementations, the value of the first parameter corresponding to the second value is 0.

[0230] In some implementations, the second value is 1 or 0.

[0231] In some implementations, the second parameter is determined based on the first parameter and a first mapping relationship, and the first mapping relationship is used to indicate a mapping relationship between the values of the first parameter and the values of the second parameter.

[0232] In some embodiments, the context model is determined based on the second parameter and a fourth parameter, the fourth parameter being used to indicate an inter prediction value of the intersection centroid offset value.

[0233] In some embodiments, the encoding of the third parameter is performed when a fifth parameter satisfies a first condition, a value of the fifth parameter being determined based on a value of the first parameter.

[0234] In some embodiments, the first condition is that the value of the fifth parameter is 1.

[0235] In some embodiments, the value of the fifth parameter is 1 if the value of the first parameter is less than a first threshold.

[0236] It can be understood that, in the embodiments of the present application, the "unit" can be a part of circuit, a part of processor, a part of program or software, etc., and of course can be a module, and can also be non-modular. Moreover, the components in the embodiments can be integrated in one processing unit, or can be physically present individually, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software function module.

[0237] When the integrated unit is realized in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the embodiments can be embodied in the form of a software product, and the computer software product is stored in a storage medium, and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to perform all or part of the steps of the methods described in the embodiments. The foregoing storage medium includes various media that can store program codes, such as U disk, mobile hard disk, ROM, RAM, magnetic disk, or optical disk.

[0238] Therefore, the embodiments of the present application provide a computer readable storage medium applied to an encoder 1900, and the computer readable storage medium stores a computer program, and the computer program is executed by a processor to implement the decoding method in any one of the foregoing embodiments.

[0239] Based on the above components of the encoder 1900 and the computer readable storage medium, referring to FIG. 20, a specific hardware structure diagram of an encoder 2000 is shown according to an embodiment of the present application. As shown in FIG. 20, the encoder 2000 can include a communication interface 2010, a memory 2020 and a processor 2030, and the various components are coupled together via a bus system 2040. It can be understood that the bus system 2040 is used to realize the connection and communication between the components. The bus system 2040 includes not only a data bus, but also a power bus, a control bus and a status signal bus. However, for the purpose of clarity, all kinds of buses are marked as the bus system 2040 in FIG. 20. Among them,

[0240] The communication interface 2010 is configured to receive and send signals in the process of transceiving information with other external network elements.

[0241] The memory 2020 is configured to store a computer program.

[0242] The processor 2030 is configured to, when running the computer program, perform the following steps: determining a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in an intersection point prediction value determined based on the at least one intersection point; determining a second parameter according to the first parameter, the second parameter including a first value corresponding to a plurality of values of the first parameter; determining a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection centroid offset value of the current block is equal to an inter-frame prediction value of the intersection centroid offset value; and encoding the third parameter according to the context model of the third parameter.

[0243] It can be understood that the memory 2020 in the embodiments 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 ROM, a PROM, an EPROM, an EEPROM or a flash memory. The volatile memory can be a RAM used as an external cache. By way of example, but not limitation, many forms of RAMs can be used, such as SRAM, DRAM, SDRAM, DDRSDRAM, ESDRAM, SLDRAM and DRDRAM. The memory 2020 of the system and method described in the present application is intended to include, but not limited to, these and any other suitable types of memory.

[0244] The processor 2030 can be an integrated circuit chip, which has the processing capability of signals. In the implementation process, each step of the above method can be completed by the integrated logic circuit of hardware in the processor 2030 or the instruction in the form of software. The processor 2030 described above can be a general processor, DSP, ASIC, FPGA or other programmable logic device, discrete gate or transistor logic device, discrete hardware component. Each method, step and logic block disclosed in the embodiment 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. The steps of the method disclosed in combination with the embodiment of the present application can be directly embodied as hardware code processor execution, or executed by hardware and software module combination in the code processor. The software module can be located in the random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, register or other mature storage medium in the art. The storage medium is located in the storage 2020, and the processor 2030 reads the information in the storage 2020, and combines the hardware to complete the steps of the above method.

[0245] It can be understood that the embodiments described in the present application can be realized by hardware, software, firmware, middleware, microcode or combination thereof. For hardware implementation, the processing unit can be realized in one or more ASICs, DSPs, DSPDs, PLDs, FPGAs, general processors, controllers, microcontrollers, microprocessors, other electronic units for executing functions described in the present application or combination thereof. For software implementation, the technology described in the present application can be realized by modules (such as processes, functions, etc.) for executing functions described in the present application. The software code can be stored in the memory and executed by the processor. The memory can be realized in the processor or outside the processor.

[0246] Optionally, as another embodiment, the processor 2030 is further configured to execute the encoding method in any one of the preceding embodiments when running the computer program.

[0247] The embodiment of the present application also provides a computer readable storage medium, which is a nonvolatile computer readable storage medium for storing a bit stream, the bit stream can be generated by using the encoding method of the encoder, or the bit stream is decoded by using the decoding method of the decoder, wherein the decoding method can be the decoding method described in any one of the preceding embodiments, and the encoding method can be the encoding method described in any one of the preceding embodiments.

[0248] It should be noted that, in the present application, the terms "comprising", "including", or any other variant thereof, are intended to cover a non-exclusive inclusion, so that a process, method, article, or apparatus that comprises a list of elements does not include only those elements, but can also include other elements not expressly listed, or inherent to such process, method, article, or apparatus. Without more limitations, the element defined by the statement "comprising a" does not exclude the presence of additional identical elements in the process, method, article, or apparatus that includes the element.

[0249] The above-mentioned sequence numbers of embodiments of the present application are only for description, and do not represent the advantages and disadvantages of the embodiments.

[0250] The methods disclosed in the several method embodiments provided by the present application can be combined arbitrarily without conflict to obtain new method embodiments.

[0251] The features disclosed in the several product embodiments provided by the present application can be combined arbitrarily without conflict to obtain new product embodiments.

[0252] The features disclosed in the several method or device embodiments provided by the present application can be combined arbitrarily without conflict to obtain new method or device embodiments.

[0253] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of changes or replacements within the technical scope disclosed by the present application, which should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A method for decoding a point cloud, comprising: determining a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point; determining a second parameter according to the first parameter, the second parameter comprising a first value, and the first value corresponding to a plurality of values of the first parameter; determining a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection point centroid offset value of the current block is equal to an inter-frame predicted value of the intersection point centroid offset value; decoding the third parameter according to the context model of the third parameter.

2. The method of claim 1, wherein, The plurality of values are values of the first parameter within a first value range.

3. The method of claim 2, wherein, The first value range comprises some or all of values from 1 to 11.

4. The method of claim 1, wherein, The first value is 0 or 1.

5. The method of claim 1, wherein, The second parameter further comprises a second value, and the second value corresponds to one of the values of the first parameter.

6. The method of claim 5, wherein, The value of the first parameter corresponding to the second value is 0.

7. The method of claim 5, wherein, The second value is 1 or 0.

8. The method of claim 1, wherein, The second parameter is determined based on the first parameter and a first mapping relationship, and the first mapping relationship is used to indicate a mapping relationship between the values of the first parameter and the values of the second parameter.

9. The method of claim 1, wherein, The context model is determined based on the second parameter and a fourth parameter, and the fourth parameter is used to indicate the inter-frame predicted value of the intersection point centroid offset value.

10. The method of claim 1, wherein, The decoding of the third parameter is performed when a value of a fifth parameter satisfies a first condition, and the value of the fifth parameter is determined based on the value of the first parameter.

11. The method of claim 10, wherein, The first condition is that the value of the fifth parameter is 1.

12. The method of claim 10, wherein, If the value of the first parameter is less than a first threshold, the value of the fifth parameter is 1.

13. The method of claim 1, wherein, The method further comprises: determining a reconstructed value of the point cloud within the current block according to the intersection point in the current block.

14. A method for encoding a point cloud, comprising: determining a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point; determining a second parameter according to the first parameter, the second parameter comprising a first value, and the first value corresponding to a plurality of values of the first parameter; determining a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection point centroid offset value of the current block is equal to an inter-frame predicted value of the intersection point centroid offset value; encoding the third parameter according to the context model of the third parameter.

15. The method of claim 14, wherein, The plurality of values are values of the first parameter within a first value range.

16. The method of claim 15, wherein, The first value range comprises some or all of values from 1 to 11.

17. The method of claim 14, wherein, The first value is 0 or 1.

18. The method of claim 14, wherein, The second parameter further comprises a second value, and the second value corresponds to one of the values of the first parameter.

19. The method of claim 18, wherein, The value of the first parameter corresponding to the second value is 0.

20. The method of claim 18, wherein, The second value is 1 or 0.

21. The method of claim 14, wherein, The second parameter is determined based on the first parameter and a first mapping relationship, and the first mapping relationship is used to indicate a mapping relationship between a value of the first parameter and a value of the second parameter.

22. The method of claim 14, wherein, The context model of the third parameter is determined based on the second parameter and a fourth parameter, and the fourth parameter is used to indicate an inter-frame predicted value of the intersection centroid offset value.

23. The method of claim 14, wherein, The encoding of the third parameter is performed in a case where a value of a fifth parameter satisfies a first condition, and the value of the fifth parameter is determined based on a value of the first parameter.

24. The method of claim 23, wherein, The first condition is that the value of the fifth parameter is 1.

25. The method of claim 23, wherein, If the value of the first parameter is less than a first threshold, the value of the fifth parameter is 1.

26. A decoder, comprising: a first determining unit configured to determine a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point; a second determining unit configured to determine a second parameter according to the first parameter, the second parameter including a first value, and the first value corresponding to multiple values of the first parameter; a third determining unit configured to determine a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection centroid offset value of the current block is equal to an inter-frame predicted value of the intersection centroid offset value; a decoding unit configured to decode the third parameter according to the context model of the third parameter.

27. A decoder, comprising: a memory configured to store a computer program; a processor configured to execute a method recited in any one of claims 1 to 13 when the computer program is run.

28. An encoder, comprising: a first determining unit configured to determine a first parameter of a current block according to at least one intersection point in a reference block, the first parameter being used to indicate a number of inaccurate values in intersection point prediction values determined based on the at least one intersection point; a second determining unit configured to determine a second parameter according to the first parameter, the second parameter including a first value, and the first value corresponding to multiple values of the first parameter; a third determining unit configured to determine a context model of a third parameter according to the second parameter, the third parameter being used to indicate whether an intersection centroid offset value of the current block is equal to an inter-frame predicted value of the intersection centroid offset value; an encoding unit configured to encode the third parameter according to the context model of the third parameter.

29. An encoder, comprising: a memory configured to store a computer program; a processor configured to execute a method recited in any one of claims 14 to 25 when the computer program is run.

30. A non-transitory computer readable storage medium storing a bitstream, the bitstream generated by an encoding method with an encoder or the bitstream decoded by a decoding method with a decoder, wherein, The decoding method is the method recited in any one of claims 1 to 13, and the encoding method is the method recited in any one of claims 14 to 25.

31. A bitstream, the bitstream comprising a bitstream generated by the method recited in any one of claims 14 to 25.

32. A computer readable storage medium, wherein, The computer readable storage medium stores a computer program, and the computer program is executed to implement the method recited in any one of claims 1 to 13 or 14 to 25.

Citation Information

Patent Citations

  • Method for decoding and encoding a 3D point cloud

    CN117795554A

  • Coding point cloud data using direct mode for inter-prediction in g-pcc

    US20230099908A1

  • Point cloud encoding method and apparatus, point cloud decoding method and apparatus, and storage medium

    WO2022109810A1

  • Point cloud encoding method and apparatus, point cloud decoding method and apparatus, devices, and storage medium

    WO2024065270A1