Coding and decoding method, codec, code stream and computer storage medium
Patent Information
- Application Number
- CN202280099923.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-18
- Publication Date
- 2025-04-18
AI Technical Summary
In geometry-based point cloud compression technology, the computational complexity when using planar mode is high, resulting in the inability to fully utilize the encoding and decoding gains brought by planar mode.
By determining the position information of the current node at the encoding and decoding end, and assigning an identifier based on the satisfied conditions, it is decided whether to allow the use of planar mode for decoding or encoding, which simplifies the computational complexity and improves encoding and decoding efficiency.
The computational complexity is reduced, the encoding and decoding gain of the planar mode is improved, and more efficient point cloud data compression and decoding are achieved.
Smart Images

Figure CN119856497A_ABST
Abstract
Description
Coding and decoding method, codec, code stream and computer storage medium Technical Field
[0001] The embodiments of the present application relate to plane mode technology in point cloud encoding and decoding, and more particularly to an encoding and decoding method, a codec, a bit stream, and a computer storage medium. Background Art
[0002] In the Geometry-based Point Cloud Compression (G-PCC) codec framework, the point cloud's geometric information and corresponding attribute information are encoded separately. The encoding of geometric information can be done using either an octree-based or a trisoup-based framework.
[0003] In the octree-based geometric information coding framework, whether to allow octree nodes to use planar mode in constructing the context model brings a lot of computational complexity in related technologies, making it impossible to better utilize the encoding and decoding gains brought by the planar mode.
[0004] Summary of the Invention
[0005] In view of this, embodiments of the present application provide a coding and decoding method, a codec, a bit stream, and a computer storage medium, which can reduce the computational complexity when determining the eligibility of the planar mode while improving the coding and decoding gain of the planar mode.
[0006] The technical solution of the embodiment of the present application can be implemented as follows:
[0007] In a first aspect, an embodiment of the present application provides a point cloud decoding method, which is applied to a decoder and includes:
[0008] Decode the point cloud code stream to determine the location information of the current node;
[0009] When the location information of the current node meets a first condition, determining that the identifier of the current node is a first identifier value;
[0010] When the location information of the current node satisfies a second condition, determining that the identifier of the current node is a second identifier value;
[0011] Among them, the identifier indicates whether the plane mode is allowed to be used to decode the current node; the first identifier value indicates that the plane mode is allowed to be used to decode the current node; the second identifier value indicates that the plane mode is not allowed to be used to decode the current node.
[0012] In a second aspect, an embodiment of the present application provides a point cloud decoding method, which is applied to a decoder and includes:
[0013] Decode the point cloud code stream and determine the identity of the current node;
[0014] The identifier of the current node indicates whether the current node is allowed to be decoded using the planar mode.
[0015] In a third aspect, an embodiment of the present application provides a point cloud encoding method, which is applied to an encoder and includes:
[0016] Determine the location information of the current node;
[0017] When the location information of the current node meets a first condition, determining that the identifier of the current node is a first identifier value;
[0018] When the location information of the current node satisfies a second condition, determining that the identifier of the current node is a second identifier value;
[0019] Among them, the identifier indicates whether the current node is allowed to be encoded using the planar mode; the first identifier value indicates that the current node is allowed to be encoded using the planar mode; the second identifier value indicates that the current node is not allowed to be encoded using the planar mode.
[0020] In a fourth aspect, an embodiment of the present application provides a decoder, comprising:
[0021] A first determination module is configured to decode the point cloud code stream and determine the position information of the current node;
[0022] a second determining module, configured to, when the location information of the current node satisfies a first condition, determine that the identifier of the current node is a first identifier value;
[0023] a third determining module, configured to, when the location information of the current node satisfies a second condition, determine that the identifier of the current node is a second identifier value;
[0024] Among them, the identifier indicates whether the plane mode is allowed to be used to decode the current node; the first identifier value indicates that the plane mode is allowed to be used to decode the current node; the second identifier value indicates that the plane mode is not allowed to be used to decode the current node.
[0025] In a fifth aspect, an embodiment of the present application provides a decoder, comprising:
[0026] a fourth determination module configured to decode the point cloud code stream and determine the identity of the current node;
[0027] The identifier of the current node indicates whether the current node is allowed to be decoded using the planar mode.
[0028] In a sixth aspect, an embodiment of the present application provides an encoder, comprising:
[0029] a fifth determining module, configured to determine location information of a current node;
[0030] a sixth determining module, configured to, when the location information of the current node satisfies a first condition, determine that the identifier of the current node is a first identifier value;
[0031] a seventh determining module, configured to, when the location information of the current node satisfies a second condition, determine that the identifier of the current node is a second identifier value;
[0032] Among them, the identifier indicates whether the current node is allowed to be encoded using the planar mode; the first identifier value indicates that the current node is allowed to be encoded using the planar mode; the second identifier value indicates that the current node is not allowed to be encoded using the planar mode.
[0033] In a seventh aspect, an embodiment of the present application provides a decoder, comprising:
[0034] A processor and a storage medium storing instructions executable by the processor, wherein the storage medium relies on the processor to perform operations through a communication bus, and when the instructions are executed by the processor, the point cloud decoding method described in the first aspect above is executed.
[0035] In an eighth aspect, an embodiment of the present application provides an encoder, comprising:
[0036] A processor and a storage medium storing instructions executable by the processor, wherein the storage medium relies on the processor to perform operations through a communication bus, and when the instructions are executed by the processor, the point cloud encoding method described in the second aspect above is executed.
[0037] In a ninth aspect, an embodiment of the present application provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least: an identifier of the current node.
[0038] In the tenth aspect, an embodiment of the present application provides a computer storage medium storing executable instructions. When the executable instructions are executed by one or more processors, the processor executes the point cloud decoding method described in the first aspect or the point cloud encoding method described in the second aspect.
[0039] The embodiment of the present application provides a coding and decoding method, a codec, a code stream and a computer storage medium, which determines the position information of the current node at the coding end, encodes and decodes the point cloud code stream at the decoding end, determines the position information of the current node, and when the position information of the current node meets the first condition, determines the identifier of the current node as the first identifier value, and when the position information of the current node meets the second condition, determines the identifier of the current node as the second identifier value, wherein the identifier indicates whether the plane mode is allowed to be used to decode the current node, the first identifier value indicates that the plane mode is allowed to be used to decode the current node, and the second identifier value indicates that the plane mode is not allowed to be used to decode the current node. In this way, at the codec end, the identifier of the current node is respectively determined based on whether the position information of the current node meets the first condition and the second condition, so that a smaller amount of calculation can be used to determine whether the plane mode is allowed to be used to decode or encode the current node. In addition, at the decoding end, the value of the identifier of the current node can be decoded from the bit stream. In this way, it can be determined whether the plane mode is allowed to be used to decode the current node. Compared with the method used in the related art to determine whether the plane mode is allowed to be used to decode or encode the current node, the calculation complexity is simplified while the encoding and decoding gain of the plane mode is improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] FIG1 is a schematic diagram of a network architecture of a point cloud encoding and decoding method provided in an embodiment of the present application;
[0041] FIG2 is a schematic diagram of a composition framework of a G-PCC encoder;
[0042] FIG3 is a schematic diagram of a composition framework of a G-PCC decoder;
[0043] FIG4 is a schematic diagram of a flow chart of an optional point cloud decoding method provided in an embodiment of the present application;
[0044] FIG5 is a flow chart of another optional point cloud decoding method provided in an embodiment of the present application;
[0045] FIG6 is a flow chart of an optional point cloud encoding method provided in an embodiment of the present application;
[0046] FIG7 is a first structural diagram of an optional decoder provided in an embodiment of the present application;
[0047] FIG8 is a second structural diagram of an optional decoder provided in an embodiment of the present application;
[0048] FIG9 is a first structural diagram of an optional encoder provided in an embodiment of the present application;
[0049] FIG10 is a third structural diagram of an optional decoder provided in an embodiment of the present application;
[0050] FIG11 is a second structural diagram of an optional decoder provided in an embodiment of the present application. DETAILED DESCRIPTION
[0051] In order to enable a more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below with reference to the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present application.
[0052] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
[0053] In the following description, references to "some embodiments" describe a subset of all possible embodiments. However, it is understood that "some embodiments" may be the same subset or different subsets of all possible embodiments, and may be combined with each other without conflict. It should also be noted that the terms "first, second, and third" used in the embodiments of this application are merely used to distinguish similar objects and do not represent a specific ordering of the objects. It is understood that the specific order or sequence of "first, second, and third" may be interchanged where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.
[0054] Before further explaining the embodiments of the present application in detail, the nouns and terms involved in the embodiments of the present application are explained first. The nouns and terms involved in the embodiments of the present application are subject to the following interpretations:
[0055] Point Cloud Compression (PCC);
[0056] Geometry-based Point Cloud Compression (G-PCC or GPCC);
[0057] Video-based Point Cloud Compression (V-PCC or VPCC);
[0058] Octree;
[0059] Triangle soup (Trisoup);
[0060] Intra Prediction;
[0061] Look Up Table (LUT);
[0062] Red-Green-Blue (RGB);
[0063] Luminance-Chrominance (YUV);
[0064] Level of Detail (LOD);
[0065] Predicting Transform;
[0066] Lifting Transform;
[0067] Region Adaptive Hierarchal Transform (RAHT);
[0068] Context-based Adaptive Binary Arithmetic Coding (CABAC)
[0069] Point cloud is a three-dimensional representation of the surface of an object. Point cloud (data) of the surface of an object can be collected through acquisition equipment such as photoelectric radar, lidar, laser scanner, and multi-view camera.
[0070] A point cloud refers to a collection of massive three-dimensional points. The points in the point cloud can include both their location information and their attribute information. For example, the location information of a point can be its three-dimensional coordinate information. The location information of a point can also be referred to as its geometric information. For example, the attribute information of a point can include color information and / or reflectivity, etc. For example, color information can be information in any color space. For example, color information can be RGB information, where R represents red (Red, R), G represents green (Green, G), and B represents blue (Blue, B). For another example, color information can be luminance and chrominance (YCbCr, YUV) information, where Y represents brightness, Cb (U) represents blue chrominance, and Cr (V) represents red chrominance.
[0071] For example, a point cloud obtained based on the principle of laser measurement can include the three-dimensional coordinate information of the point and the laser reflection intensity (reflectance) of the point. For another example, a point cloud obtained based on the principle of photogrammetry can include the three-dimensional coordinate information of the point and the color information of the point. For another example, a point cloud obtained by combining the principles of laser measurement and photogrammetry can include the three-dimensional coordinate information of the point, the laser reflection intensity (reflectance) of the point, and the color information of the point.
[0072] Point clouds can be divided into the following categories according to the acquisition method:
[0073] The first type of static point cloud: the object is stationary and the device used to obtain the point cloud is also stationary;
[0074] The second type of dynamic point cloud: the object is moving, but the device that obtains the point cloud is stationary;
[0075] The third type of dynamic point cloud acquisition: the device that acquires the point cloud is moving.
[0076] For example, point clouds can be divided into two categories according to their usage:
[0077] Category 1: Machine perception point cloud, which can be used in scenarios such as autonomous navigation systems, real-time inspection systems, geographic information systems, visual sorting robots, and disaster relief robots;
[0078] Category 2: Human eye perception point cloud, which can be used in point cloud application scenarios such as digital cultural heritage, free viewpoint broadcasting, 3D immersive communication, and 3D immersive interaction.
[0079] Since point clouds are a collection of massive points, storing point clouds not only consumes a lot of memory, but is also not conducive to transmission. There is also not enough bandwidth to support direct transmission of point clouds at the network layer without compression. Therefore, point clouds need to be compressed.
[0080] To date, the point cloud coding framework that can compress point clouds can be the G-PCC codec framework or the V-PCC codec framework provided by the Moving Picture Experts Group (MPEG), or the AVS-PCC codec framework provided by the Audio Video Standard (AVS). Among them, the G-PCC codec framework can be used to compress the first type of static point cloud and the third type of dynamically acquired point cloud, and the V-PCC codec framework can be used to compress the second type of dynamic point cloud. In the embodiments of the present application, the description is mainly based on the G-PCC codec framework.
[0081] An embodiment of the present application provides a network architecture of a point cloud encoding and decoding system including a decoding method and an encoding method. FIG1 is a schematic diagram of a network architecture of a point cloud encoding and decoding system provided by an embodiment of the present application. As shown in FIG1 , the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. During the implementation process, the electronic device can be various types of devices with point cloud encoding and decoding functions. For example, the electronic device can include a mobile phone, a tablet computer, a personal computer, a personal digital assistant, a navigator, a digital phone, a video phone, a television, a sensor device, a server, etc., which is not limited by the embodiment of the present application. Among them, the decoder or encoder in the embodiment of the present application can be the above-mentioned electronic device.
[0082] Among them, the electronic device in the embodiment of the present application has a point cloud encoding and decoding function, generally including a point cloud encoder (ie, encoder) and a point cloud decoder (ie, decoder).
[0083] The following describes the related technologies using the G-PCC encoding and decoding framework as an example.
[0084] It can be understood that in the point cloud G-PCC encoding and decoding framework, after the point cloud of the input 3D image model is sliced, each slice can be independently encoded.
[0085] Figure 2 is a schematic diagram of the G-PCC encoder framework. As shown in Figure 2, the G-PCC encoder is applied to a point cloud encoder. In this G-PCC encoding framework, the input point cloud is sliced, and each slice is independently encoded. Within a slice, the geometric information of the point cloud and the attribute information corresponding to each point in the point cloud are encoded separately. The G-PCC encoder first encodes the geometric information. The encoder transforms the geometric information so that the entire point cloud is contained within a bounding box. It then performs quantization, which primarily serves a scaling purpose. Due to quantization rounding, some points have identical geometric information. Parameters are used to determine whether to remove duplicate points. This process of quantization and removing duplicate points is also known as voxelization. Next, the bounding box is partitioned using an octree. Depending on the depth of the octree partitioning hierarchy, the encoding of geometric information can be divided into two frameworks: octree-based and triangle facet-based.
[0086] In the octree-based geometry information coding framework, the bounding box is divided into eight equal parts, and the placeholder bits of each sub-cube are recorded (where 1 indicates a non-empty sub-cube and 0 indicates an empty sub-cube). The non-empty sub-cubes are further divided into eight equal parts, usually stopping when the resulting leaf node is a 1×1×1 unit cube. During this process, the placeholder bits are intra-predicted using the spatial correlation between the node and its surrounding nodes. Finally, CABAC encoding based on the context model is performed to generate a binary geometry bit stream, also known as the geometry code stream.
[0087] In the triangle facet-based geometric information coding framework, octree partitioning is also performed first. However, the difference is that the octree-based geometric information coding method does not need to divide the point cloud into unit cubes with a side length of 1×1×1. Instead, the partitioning stops when the block side length is W. Based on the surface formed by the distribution of the point cloud in each block, the surface and the twelve edges of the block are obtained. Finally, the vertex coordinates of each block are encoded in sequence to generate a binary geometric bit stream, namely the geometric code stream.
[0088] After completing the geometric information encoding, the G-PCC encoder reconstructs the geometric information and uses the reconstructed geometric information to encode the attribute information of the point cloud. Currently, the attribute encoding of point clouds mainly encodes the color information of the points in the point cloud. First, the encoder can perform color space conversion on the color information of the points. For example, when the color information of the points in the input point cloud is represented using the RGB color space, the encoder can convert the color information from the RGB color space to the YUV color space. Then, the point cloud is recolored using the reconstructed geometric information so that the unencoded attribute information corresponds to the reconstructed geometric information. In color information encoding, there are two main transformation methods. One method is a distance-based lifting transformation that relies on LOD partitioning, and the other method is a direct RAHT transformation. Both methods transform the color information from the spatial domain to the frequency domain, obtaining high-frequency coefficients and low-frequency coefficients. Finally, the coefficients are quantized and encoded to generate a binary attribute bit stream, namely the attribute code stream.
[0089] Figure 3 is a schematic diagram of the composition framework of a G-PCC decoder. As shown in Figure 3, the G-PCC decoder is applied to a point cloud encoder. In the G-PCC decoding framework, after obtaining the binary code stream, the geometric bit stream and attribute bit stream in the binary code stream are independently decoded. When decoding the geometric bit stream, the geometric information of the point cloud is obtained through arithmetic decoding-octree synthesis-surface fitting-reconstruction geometry-inverse coordinate transformation; when decoding the attribute bit stream, the attribute information of the point cloud is obtained through arithmetic decoding-inverse quantization-LOD-based inverse lifting or RAHT-based inverse transformation-inverse color conversion. The slice to be encoded can be restored based on the geometric information and attribute information; then, after merging the slices, the three-dimensional image model of the input point cloud can be restored.
[0090] In the related art, in the context modeling shown in Figure 2 or Figure 3, it is necessary to determine whether the current node is eligible to use the plane mode. Unqualified nodes use the placeholder bit mode, and qualified nodes continue to determine whether to use the plane mode based on the distribution of child nodes.
[0091] In determining whether the current node is eligible to use the plane mode, the two eligibility conditions are:
[0092] 1. The local occupancy density of the node is greater than the preset threshold;
[0093] 2. The proportion of nodes that have adopted the planar coding mode in a certain direction (x, y or z) is greater than the preset corresponding threshold (a total of 3 thresholds corresponding to the x, y or z directions).
[0094] As can be seen, the main method to determine whether sufficient qualifications for using planar mode is to use the relationship between the local occupancy density of the node and the preset threshold, and the relationship between the proportion of nodes that have already adopted the planar mode in a certain direction (x, y, or z) and the corresponding preset threshold (corresponding to three thresholds in the x, y, or z directions). However, this method involves the real-time updating of two variables: the local occupancy density of the node and the proportion of nodes that have already adopted the planar mode, which brings a lot of computational complexity. In addition, the four threshold settings increase the difficulty of optimizing the method, making it impossible to better utilize the planar coding mode to bring more coding gain.
[0095] Based on this, an embodiment of the present application provides a point cloud decoding method, which is applied to a decoder. FIG4 is a flow chart of an optional point cloud decoding method provided in an embodiment of the present application. Referring to FIG4 , the method may include:
[0096] S401: Decode the point cloud code stream to determine the location information of the current node;
[0097] For the decoding end, when decoding the point cloud code stream, the position information of the current node is determined, wherein the current node is one of the nodes obtained by octree division. In S101, after obtaining the octree, the nodes of the octree are traversed starting from the root node of the octree. The position information of the current node may include: the layer number of the current node, the neighbor nodes of the current node, etc. For example, when the current node is the root node, the layer number of the current node is 1, the layer number of the child node of the root node is 2, and so on, the layer number of the child node of the child node of the root node is 3...; the neighbor nodes of the current node can be the node corresponding to the sub-cube above the sub-cube corresponding to the current node, the node corresponding to the sub-cube below, the node corresponding to the sub-cube in front, the node corresponding to the sub-cube behind, the node corresponding to the sub-cube on the left, and the node corresponding to the sub-cube on the right, that is, the neighbor nodes of the current node can include 6 neighbor nodes.
[0098] S402: When the location information of the current node meets the first condition, determine that the identifier of the current node is a first identifier value;
[0099] S403: When the location information of the current node meets the second condition, determine that the identifier of the current node is a second identifier value.
[0100] After determining the location information of the current node through S101, determine whether the location information of the current node meets the first condition or the second condition. When the location information of the current node meets the first condition, set the value of the identifier of the current node to the first identifier value. When the location information of the current node meets the second condition, set the value of the identifier of the current node to the second identifier value. The identifier indicates whether the planar mode is allowed to be used to decode the current node. The first identifier value indicates that the planar mode is allowed to be used to decode the current node. The second identifier value indicates that the planar mode is not allowed to be used to decode the current node. In this way, the value of the identifier of the current node is determined by the conditions met by the location information of the current node. Compared with the method used in the related art to determine whether the planar mode is allowed to be used to decode or encode the current node, the computational complexity is simplified while the encoding and decoding gain of the planar mode is improved.
[0101] Regarding the first condition above, in an optional embodiment, the first condition includes:
[0102] The location information of the current node indicates that the number of nodes in the Nth layer where the current node is located is less than the product of the node data in the N-1th layer and the first preset value, or the location information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is equal to the second preset value.
[0103] It can be understood that the layer number of the current node, that is, the Nth layer, can be known from the location information of the current node, and the number of nodes in the Nth layer can be known. The product of the node data of the N-1th layer and the first preset value is calculated to determine whether the number of nodes in the Nth layer is less than the above product. In addition, the occupancy pattern of the neighboring nodes of the current node can be known from the location information of the current node, where the occupancy pattern of the neighboring nodes is an integer composed of the occupancy bits of the neighboring nodes, and it is determined whether the occupancy pattern of the neighboring nodes of the current node is equal to the second preset value.
[0104] Through the above judgment, when the number of nodes in the Nth layer where the current node is located is less than the above product, and the occupancy pattern of the neighboring nodes of the current node is the second preset value, it is determined that the location information of the current node meets the first condition, and the value of the identifier of the current node is set to the first identifier value.
[0105] Regarding the second condition, in an optional embodiment, the second condition includes:
[0106] The location information of the current node indicates that the number of nodes in the Nth layer where the current node is located is greater than the product of the node data in the N-1th layer and the first preset value, and the location information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is not equal to the second preset value.
[0107] It can be understood that the layer number of the current node, that is, the Nth layer, can be known from the position information of the current node, and the number of nodes in the Nth layer can be known. The product of the node data of the N-1th layer and the first preset value is calculated to determine whether the number of nodes in the Nth layer is greater than the above product. In addition, the occupancy pattern of the neighboring nodes of the current node can be known from the position information of the current node, where the occupancy pattern of the neighboring nodes is an integer composed of the occupancy bits of the neighboring nodes, and it is determined whether the occupancy pattern of the neighboring nodes of the current node is equal to the second preset value.
[0108] Through the above judgment, when the number of nodes in the Nth layer where the current node is located is greater than the above product, and the occupancy pattern of the neighboring nodes of the current node is not equal to the second preset value, it is determined that the location information of the current node meets the second condition, and the value of the identifier of the current node is set to the second identifier value.
[0109] For the root node of the octree, in an optional embodiment, when the number of nodes in the Nth layer is 1, the number of nodes in the N-1th layer is 0.
[0110] It should be noted that for the current node is the root node of the octree, that is, when the number of nodes in the Nth layer is 1, the current node is the root node. Since the root node does not have a node in the previous layer, the number of nodes in the N-1th layer is set to 0.
[0111] In addition, in order to improve the coding gain, usually, the first preset value is 2.
[0112] Regarding the above-mentioned second preset value, in an optional embodiment, the second preset value is any integer greater than or equal to 0 and less than or equal to 63.
[0113] It can be understood that the current node includes 6 neighbor nodes, so it can be seen that the placeholder pattern formed by the placeholder bits of the above 6 neighbor nodes can be an integer greater than or equal to 0 and less than or equal to 63, and the second preset value can be any integer greater than or equal to 0 and less than or equal to 63.
[0114] Regarding the identifier of the current node, in an optional embodiment, the first identifier value is 1 and the second identifier value is 0.
[0115] In practical applications, the first identification value is usually set to 1 and the second identification value is set to 0. That is to say, when the value of the current node identification is 1, the plane mode is allowed to decode the current node. When the value of the current node identification is 0, the plane mode is not allowed to decode the current node.
[0116] It should be noted that, for the case where the number of nodes in the Nth layer where the current node is located is equal to the product of the node data of the N-1th layer and the first preset value, it can belong to the first condition or the second condition, that is, it can be that when the number of nodes in the Nth layer where the current node is located is less than or equal to the above product, or the occupancy pattern of the neighboring nodes of the current node is equal to the second preset value, the identifier of the current node is set to the first identification value; it can also be that when the number of nodes in the Nth layer where the current node is located is greater than or equal to the above product, and the occupancy pattern of the neighboring nodes of the current node is not equal to the second preset value, the identifier of the current node is set to the second identification value; here, the embodiment of the present application does not make specific limitations on this.
[0117] In addition, the embodiment of the present application further provides a point cloud decoding method, which is applied to a decoding process. FIG5 is a flow chart of another optional point cloud decoding method provided in the embodiment of the present application. Referring to FIG5 , the method may include:
[0118] S501: Decode the point cloud code stream and determine the identifier of the current node;
[0119] The identifier of the current node indicates whether the planar mode is allowed to be used to decode the current node.
[0120] It should be noted that when the encoding end adopts the method of assigning a value to the identifier of the current node in the manner of satisfying the first condition or the second condition, if the value of the identifier of the current node is encoded and the encoded bits are written into the bit stream, the bit stream can be directly decoded at the decoding end to obtain the value of the identifier of the current node.
[0121] When the decoded identifier of the current node is the first identifier value, the planar mode is allowed to be used to decode the current node. When the decoded identifier of the current node is the second identifier value, the planar mode is not allowed to be used to decode the current node.
[0122] For the encoding end, consistent with the way the decoding end assigns a value to the identifier of the current node, an embodiment of the present application further provides a point cloud encoding method, which is applied to an encoder. FIG6 is a flow chart of an optional point cloud encoding method provided in an embodiment of the present application. Referring to FIG6, the method may include:
[0123] S601: Determine the location information of the current node;
[0124] S602: When the location information of the current node meets the first condition, determine that the identifier of the current node is a first identifier value;
[0125] S603: When the location information of the current node meets the second condition, determine that the identifier of the current node is a second identifier value.
[0126] The flag indicates whether the current node is allowed to be encoded using the planar mode; the first flag value indicates that the current node is allowed to be encoded using the planar mode; the second flag value indicates that the current node is not allowed to be encoded using the planar mode.
[0127] In an optional embodiment, the first condition includes:
[0128] The location information of the current node indicates that the number of nodes in the Nth layer where the current node is located is less than the product of the node data in the N-1th layer and the first preset value, or the location information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is equal to the second preset value.
[0129] In an optional embodiment, the second condition includes:
[0130] The location information of the current node indicates that the number of nodes in the Nth layer where the current node is located is greater than the product of the node data in the N-1th layer and the first preset value, and the location information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is not equal to the second preset value.
[0131] In an optional embodiment, when the number of nodes in the Nth layer is 1, the number of nodes in the N-1th layer is 0.
[0132] In an optional embodiment, the first preset value is 2.
[0133] In an optional embodiment, the second preset value is any integer greater than or equal to 0 and less than or equal to 63.
[0134] In an optional embodiment, the first identification value is 1 and the second identification value is 0.
[0135] An embodiment of the present application provides a coding and decoding method, which determines the position information of the current node at the coding end, encodes and decodes the point cloud code stream at the decoding end, determines the position information of the current node, and when the position information of the current node meets the first condition, determines the identifier of the current node as a first identifier value, and when the position information of the current node meets the second condition, determines the identifier of the current node as a second identifier value, wherein the identifier indicates whether the current node is allowed to be decoded using the planar mode, the first identifier value indicates that the current node is allowed to be decoded using the planar mode, and the second identifier value indicates that the current node is not allowed to be decoded using the planar mode; in this way, at the coding and decoding end, the identifier of the current node is respectively determined based on whether the position information of the current node meets the first condition and the second condition, so that it is possible to determine whether the current node is allowed to be decoded or encoded using the planar mode with a smaller amount of calculation. In addition, at the decoding end, the value of the identifier of the current node can be decoded from the code stream, so that it is possible to determine whether the current node is allowed to be decoded using the planar mode. Compared with the method of determining whether the current node is allowed to be decoded or encoded using the planar mode adopted in the related art, the computational complexity is simplified while the coding and decoding gain of the planar mode is improved.
[0136] The point cloud encoding and decoding method described in one or more of the above embodiments is described below with examples.
[0137] This example proposes a new method for determining plane mode based on the number of nodes in the point cloud octree hierarchy and the occupancy pattern of the current node's neighboring nodes. A unified plane mode qualification value (equivalent to the above-mentioned identifier) is set for all directions of nodes in a certain layer under the octree framework. Taking the encoding end as an example, the specific implementation of the encoding end is described as follows:
[0138] The qualification value of the plane mode of the current node is determined based on the number of nodes in the Dpth layer of the octree OccNodeCnt[Dpth], the number of nodes in the Dpth-1 layer OccNodeCnt[Dpth-1], and the occupancy pattern of the neighboring nodes of the current node:
[0139] PlanarEligibleByRate[k]=OccNodeCnt[Dpth]<(OccNodeCnt[Dpth-1]*2)||! OccNeighPat
[0140] Among them, k represents the current node, PlanarEligibleByRate[k] represents the value of the identifier of the current node, OccNodeCnt[Dpth] represents the number of nodes in the Dpth layer, OccNodeCnt[Dpth-1] represents the number of nodes in the Dpth-1 layer, and OccNeighPat represents a value in the value range of the occupancy pattern, that is, the second preset value mentioned above.
[0141] That is to say, taking the first preset value as 2 and the second preset value as 0 as an example, that is, OccNodeCnt[Dpth] is less than twice OccNodeCnt[Dpth-1], or when the neighbor node occupancy mode of the current node is 0, PlanarEligibleByRate[k] is set to 1, otherwise it is set to 0.
[0142] It should be noted that the specific implementation description of the decoding end is exactly the same as that of the encoding end.
[0143] In addition, an alternative solution in the above method for determining the identifier of the current node is: the above second preset value may be 2, or may be replaced by other values; in the OccNeighPat condition, OccNeighPat may be any integer in [0, 63].
[0144] In this example, the number of nodes in the point cloud at different octree levels and the occupancy pattern of the current node's neighbor nodes are used to determine the plane pattern eligibility value. Compared with related technologies, this eliminates the need to determine the eligibility value and update the probability for each node, reducing computational complexity. At the same time, the use of true density more accurately determines whether all nodes at a certain level are qualified for the plane pattern, resulting in performance gains. See Tables 1 and 2 for details.
[0145] Table 1
[0146]
[0147] Table 2
[0148]
[0149] As can be seen from Tables 1 and 2 above, BD-Rate under lossy compression of geometric information indicates the percentage of bitrate savings (negative BD-Rate) or increases (positive BD-Rate) achieved by this example method compared to the related art while maintaining the same encoding quality. Bpip Ratio under lossless compression of geometric information indicates the percentage of bitrate savings achieved by this example method compared to the related art while maintaining the same quality. The lower the value, the greater the bitrate savings achieved by this example method.
[0150] Based on the same inventive concept as the above embodiments, the present embodiment further provides a decoder. FIG7 is a first structural diagram of an optional decoder provided in the present embodiment. The decoder 700 may include:
[0151] A first determination module 71 is configured to decode the point cloud code stream and determine the position information of the current node;
[0152] A second determining module 72 is configured to determine that the identifier of the current node is a first identifier value when the location information of the current node meets the first condition;
[0153] A third determining module 73 is configured to determine that the identifier of the current node is a second identifier value when the location information of the current node meets the second condition;
[0154] The flag indicates whether the current node is allowed to be decoded using the planar mode; the first flag value indicates that the current node is allowed to be decoded using the planar mode; the second flag value indicates that the current node is not allowed to be decoded using the planar mode.
[0155] In an optional embodiment, the first condition includes:
[0156] The location information of the current node indicates that the number of nodes in the Nth layer where the current node is located is less than the product of the node data in the N-1th layer and the first preset value, or the location information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is equal to the second preset value.
[0157] In an optional embodiment, the second condition includes:
[0158] The location information of the current node indicates that the number of nodes in the Nth layer where the current node is located is greater than the product of the node data in the N-1th layer and the first preset value, and the location information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is not equal to the second preset value.
[0159] In an optional embodiment, when the number of nodes in the Nth layer is 1, the number of nodes in the N-1th layer is 0.
[0160] In an optional embodiment, the first preset value is 2.
[0161] In an optional embodiment, the second preset value is any integer greater than or equal to 0 and less than or equal to 63.
[0162] In an optional embodiment, the first identification value is 1 and the second identification value is 0.
[0163] In practical applications, the above-mentioned first determination module 71, second determination module 72 and third determination module 74 can be implemented by a processor located on the decoder, specifically a central processing unit (CPU), a microprocessor (MPU), a digital signal processor (DSP) or a field programmable gate array (FPGA).
[0164] The present application also provides a decoder. FIG8 is a second schematic diagram of the structure of an optional decoder provided in the present application. The decoder 800 may include:
[0165] The fourth determination module 81 is configured to decode the point cloud code stream and determine the identifier of the current node; wherein the identifier of the current node indicates whether the planar mode is allowed to be used to decode the current node.
[0166] In practical applications, the fourth determination module 81 may be implemented by a processor located on the decoder, specifically a CPU, MPU, DSP or FPGA.
[0167] The present application also provides an encoder. FIG9 is a first structural diagram of an optional encoder provided in the present application. The decoder 900 may include:
[0168] A fifth determining module 91 is configured to determine the location information of the current node;
[0169] a sixth determining module 92 configured to determine that the identifier of the current node is a first identifier value when the location information of the current node satisfies the first condition;
[0170] a seventh determining module 93 configured to determine that the identifier of the current node is a second identifier value when the location information of the current node satisfies the second condition;
[0171] The flag indicates whether the current node is allowed to be encoded using the planar mode; the first flag value indicates that the current node is allowed to be encoded using the planar mode; the second flag value indicates that the current node is not allowed to be encoded using the planar mode.
[0172] In an optional embodiment, the first condition includes:
[0173] The location information of the current node indicates that the number of nodes in the Nth layer where the current node is located is less than the product of the node data in the N-1th layer and the first preset value, or the location information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is equal to the second preset value.
[0174] In an optional embodiment, the second condition includes:
[0175] The location information of the current node indicates that the number of nodes in the Nth layer where the current node is located is greater than the product of the node data in the N-1th layer and the first preset value, and the location information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is not equal to the second preset value.
[0176] In an optional embodiment, when the number of nodes in the Nth layer is 1, the number of nodes in the N-1th layer is 0.
[0177] In an optional embodiment, the first preset value is 2.
[0178] In an optional embodiment, the second preset value is any integer greater than or equal to 0 and less than or equal to 63.
[0179] In an optional embodiment, the first identification value is 1 and the second identification value is 0.
[0180] In practical applications, the fifth determination module 91 , the sixth determination module 92 and the seventh determination module 93 may be implemented by a processor located on the encoder, specifically a CPU, an MPU, a DSP or an FPGA.
[0181] The embodiment of the present application provides a decoder. FIG10 is a third structural diagram of an optional decoder provided in the embodiment of the present application. As shown in FIG10 , the embodiment of the present application provides a decoder 1000, including:
[0182] A processor 101 and a storage medium 102 storing executable instructions of the processor 101, wherein the storage medium 102 relies on the processor 101 to perform operations through a communication bus 103, and when the instructions are executed by the processor 101, the point cloud decoding method performed in one or more of the above embodiments is executed.
[0183] It should be noted that in actual use, the various components in the terminal are coupled together via a communication bus 103. It will be understood that the communication bus 103 is used to enable communication between these components. In addition to the data bus, the communication bus 103 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in FIG10 , all of these buses are labeled as the communication bus 103.
[0184] The embodiment of the present application provides a decoder. FIG11 is a second structural diagram of an optional decoder provided in the embodiment of the present application. As shown in FIG11 , the embodiment of the present application provides an encoder 1100, including:
[0185] A processor 111 and a storage medium 112 storing executable instructions of the processor 111, wherein the storage medium 112 relies on the processor 111 to perform operations through a communication bus 113, and when the instructions are executed by the processor 111, the point cloud encoding method performed in one or more of the above embodiments is executed.
[0186] It should be noted that in actual use, the various components in the terminal are coupled together via a communication bus 113. It will be understood that the communication bus 113 is used to enable communication between these components. In addition to the data bus, the communication bus 113 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in FIG11 , all of these buses are labeled as the communication bus 113.
[0187] An embodiment of the present application provides a code stream, which is generated by bit encoding based on information to be encoded; wherein the information to be encoded includes at least: an identifier of a current node.
[0188] An embodiment of the present application provides a computer-readable storage medium storing executable instructions. When the executable instructions are executed by one or more processors, the processor executes the point cloud decoding method described in one or more of the above embodiments or the point cloud encoding method described in one or more of the above embodiments.
[0189] Among them, the computer-readable storage medium can be a magnetic random access memory (FRAM), a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a flash memory, a magnetic surface storage device, an optical disc, or a compact disc read-only memory (CD-ROM) and other memories.
[0190] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of hardware embodiments, software embodiments, or embodiments combining software and hardware. Furthermore, the present application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage and optical storage, etc.) containing computer-usable program code.
[0191] The present application is described with reference to the flow chart and / or block diagram of the method, device (system), and computer program product according to the embodiment of the present application. It should be understood that each flow process and / or box in the flow chart and / or block diagram and the combination of the flow process and / or box in the flow chart and / or block diagram can be realized by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processing machine or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device produce a device for realizing the function specified in one flow chart flow or multiple flows and / or one box or multiple boxes of the block diagram.
[0192] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a product including an instruction device that implements the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0193] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0194] The above description is merely a preferred embodiment of the present application and is not intended to limit the scope of protection of the present application. Industrial Applicability
[0195] In an embodiment of the present application, at the encoding and decoding end, the identifier of the current node is respectively taken according to whether the position information of the current node meets the first condition and the second condition, so that a smaller amount of calculation can be used to determine whether the planar mode is allowed to be used to decode or encode the current node. In addition, at the decoding end, the value of the identifier of the current node can be decoded from the bit stream. In this way, it can be determined whether the planar mode is allowed to be used to decode the current node. Compared with the method used in the related art to determine whether the planar mode is allowed to be used to decode or encode the current node, the calculation complexity is simplified while the encoding and decoding gain of the planar mode is improved.
Claims
1. A point cloud decoding method, applied to a decoder, comprising: Decode the point cloud code stream to determine the location information of the current node; When the location information of the current node meets a first condition, determining that the identifier of the current node is a first identifier value; When the location information of the current node meets the second condition, determining that the identifier of the current node is a second identifier value; The flag indicates whether the current node is allowed to be decoded using a planar mode; The first identification value indicates that the planar mode is allowed to be used to decode the current node; the second identification value indicates that the planar mode is not allowed to be used to decode the current node.
2. The method according to claim 1, wherein The first condition includes: The position information of the current node indicates that the number of nodes in the Nth layer where the current node is located is less than the product of the node data of the N-1th layer and the first preset value, or the position information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is equal to the second preset value.
3. The method according to claim 1, wherein The second condition includes: The location information of the current node indicates that the number of nodes in the Nth layer where the current node is located is greater than the product of the node data in the N-1th layer and the first preset value, and the location information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is not equal to the second preset value.
4. The method according to claim 2 or 3, wherein: When the number of nodes in the Nth layer is 1, the number of nodes in the N-1th layer is 0.
5. The method according to claim 2 or 3, wherein: The first preset value is 2.
6. The method according to claim 2 or 3, wherein: The second preset value is any integer greater than or equal to 0 and less than or equal to 63.
7. The method according to claim 1, wherein The first identification value is 1, and the second identification value is 0.
8. A point cloud decoding method, the method being applied to a decoder, the method comprising: Decode the point cloud code stream and determine the identity of the current node; The identifier of the current node indicates whether the current node is allowed to be decoded using the planar mode.
9. A point cloud encoding method, the method being applied to an encoder, the method comprising: Determine the location information of the current node; When the location information of the current node meets a first condition, determining that the identifier of the current node is a first identifier value; When the location information of the current node satisfies a second condition, determining that the identifier of the current node is a second identifier value; Among them, the identifier indicates whether the current node is allowed to be encoded using the planar mode; the first identifier value indicates that the current node is allowed to be encoded using the planar mode; the second identifier value indicates that the current node is not allowed to be encoded using the planar mode.
10. The method according to claim 9, wherein: The first condition includes: The position information of the current node indicates that the number of nodes in the Nth layer where the current node is located is less than the product of the node data of the N-1th layer and the first preset value, or the position information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is equal to the second preset value.
11. The method according to claim 9, wherein The second condition includes: The location information of the current node indicates that the number of nodes in the Nth layer where the current node is located is greater than the product of the node data in the N-1th layer and the first preset value, and the location information of the current node indicates that the occupancy pattern of the neighboring nodes of the current node is not equal to the second preset value.
12. The method according to claim 10 or 11, wherein: When the number of nodes in the Nth layer is 1, the number of nodes in the N-1th layer is 0.
13. The method according to claim 10 or 11, wherein: The first preset value is 2.
14. The method according to claim 13, wherein The second preset value is any integer greater than or equal to 0 and less than or equal to 63.
15. The method according to claim 9, wherein The first identification value is 1, and the second identification value is 0.
16. The method according to claim 9, wherein The method further comprises: The value of the identifier of the current node is encoded, and the obtained encoded bits are written into the code stream.
17. A decoder, comprising: A first determination module is configured to decode the point cloud code stream and determine the position information of the current node; a second determining module, configured to, when the location information of the current node satisfies a first condition, determine that the identifier of the current node is a first identifier value; a third determining module, configured to, when the location information of the current node satisfies a second condition, determine that the identifier of the current node is a second identifier value; The flag indicates whether the current node is allowed to be decoded using a planar mode; The first identification value indicates that the planar mode is allowed to be used to decode the current node; the second identification value indicates that the planar mode is not allowed to be used to decode the current node.
18. A decoder, comprising: The fourth determination module is used to decode the point cloud code stream and determine the identity of the current node; The identifier of the current node indicates whether the current node is allowed to be decoded using the planar mode.
19. An encoder, comprising: a fifth determining module, configured to determine location information of a current node; a sixth determining module, configured to, when the location information of the current node satisfies a first condition, determine that the identifier of the current node is a first identifier value; a seventh determining module, configured to, when the location information of the current node satisfies a second condition, determine that the identifier of the current node is a second identifier value; Among them, the identifier indicates whether the current node is allowed to be encoded using the planar mode; the first identifier value indicates that the current node is allowed to be encoded using the planar mode; the second identifier value indicates that the current node is not allowed to be encoded using the planar mode.
20. A decoder, comprising: A processor and a storage medium storing instructions executable by the processor, wherein the storage medium relies on the processor to perform operations through a communication bus, and when the instructions are executed by the processor, the point cloud decoding method described in any one of claims 1 to 8 is executed.
21. An encoder, comprising: A processor and a storage medium storing instructions executable by the processor, wherein the storage medium relies on the processor to perform operations through a communication bus, and when the instructions are executed by the processor, the point cloud encoding method described in any one of claims 9 to 16 is executed.
22. A code stream, the code stream being generated by bit encoding based on information to be encoded; wherein, The information to be encoded includes at least: an identifier of the current node.
23. A computer storage medium storing executable instructions, wherein when the executable instructions are executed by one or more processors, the processor executes the point cloud decoding method described in any one of claims 1 to 8 or the point cloud encoding method described in any one of claims 9 to 16.