WO2023142133A1 - 编码方法、解码方法、编码器、解码器及存储介质 - Google Patents

编码方法、解码方法、编码器、解码器及存储介质 Download PDF

Info

Publication number
WO2023142133A1
WO2023142133A1 PCT/CN2022/075269 CN2022075269W WO2023142133A1 WO 2023142133 A1 WO2023142133 A1 WO 2023142133A1 CN 2022075269 W CN2022075269 W CN 2022075269W WO 2023142133 A1 WO2023142133 A1 WO 2023142133A1
Authority
WO
WIPO (PCT)
Prior art keywords
mode
current node
plane
node layer
layer
Prior art date
Application number
PCT/CN2022/075269
Other languages
English (en)
French (fr)
Inventor
杨付正
霍俊彦
李明
Original Assignee
Oppo广东移动通信有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Priority to PCT/CN2022/075269 priority Critical patent/WO2023142133A1/zh
Publication of WO2023142133A1 publication Critical patent/WO2023142133A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • the embodiments of the present application relate to the technical field of point cloud encoding and decoding, and in particular, relate to an encoding method, a decoding method, an encoder, a decoder, and a storage medium.
  • the bounding box is divided into 8 sub-cubes, and the occupancy bits of the sub-cubes are recorded (1 is not empty, 0 is empty), and the non-empty sub-cube Continue to perform eight equal divisions, and usually stop division when the resulting leaf nodes are 1x1x1 unit cubes.
  • the spatial correlation between the node and the surrounding nodes is used to perform intra prediction (intra prediction) on the occupancy bits, and finally perform Context-based Adaptive Binary Arithmetic Coding (CABAC) based on the context model. , to generate a binary code stream.
  • intra prediction intra prediction
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • Adaptive binary arithmetic coding based on the context model in the process of generating the binary code stream, it is necessary to judge whether the current node is qualified to use the planar coding mode, mainly considering the local occupancy density of the node and adopting a certain direction (x, y or z ) is judged in a way that the proportion of nodes in the planar coding mode is greater than a preset corresponding threshold (corresponding to three thresholds in x, y or z direction).
  • Embodiments of the present application provide an encoding method, a decoding method, an encoder, a decoder, and a storage medium, which can reduce the computational complexity of encoding and decoding, and at the same time increase the gain of encoding and decoding.
  • the embodiment of the present application provides a decoding method applied to a decoder, and the method includes:
  • the plane decoding mode is used to decode the nodes of the current node layer.
  • the embodiment of the present application provides an encoding method applied to an encoder, and the method includes:
  • the plane coding mode qualification value corresponding to the current node layer is the third preset value, it is determined that the plane coding mode is used to encode the nodes in the current node layer, and the plane mode corresponding to the level of the current node layer is generated using Can identify.
  • the embodiment of the present application provides a decoder, including:
  • the first determining part is configured to determine the planar mode enabling identifier of the point cloud and the geometric encoding information of the point cloud;
  • the decoding part is configured to, when decoding the geometric coding information of the nodes of the current node layer, if the plane mode enabling flag corresponding to the level of the current node layer is the first preset value, then use the plane decoding mode to decode the current node layer node to decode.
  • the embodiment of the present application provides a decoder, including:
  • the acquisition part is configured to acquire the geometric information of the point cloud
  • the second determination part is configured to determine a plane coding mode qualification value corresponding to the current node layer corresponding to the geometry information
  • the coding part is configured to, if the qualification value of the plane coding mode corresponding to the current node layer is a third preset value, determine to use the plane coding mode to code the nodes in the current node layer, and generate the current node layer
  • the plane mode enable flag corresponding to the level is a third preset value.
  • the embodiment of the present application provides a decoder, where the decoder includes a first memory and a first processor, wherein,
  • a first memory for storing a computer program capable of running on the first processor
  • the first processor is configured to execute the method as described in the first aspect when running the computer program.
  • the embodiment of the present application provides an encoder, the encoder includes a second memory and a second processor, wherein,
  • a second memory for storing a computer program capable of running on the second processor
  • the second processor is configured to execute the method as described in the second aspect when running the computer program.
  • the embodiment of the present application provides a computer-readable storage medium, the computer-readable storage medium stores a computer program, and when the computer program is executed by the first processor, the decoding method as described in the first aspect, Or implement the encoding method as described in the second aspect when executed by the second processor.
  • the embodiment of the present application provides an encoding method, a decoding method, an encoder, a decoder, and a storage medium.
  • the method can be applied to a decoder, and enables identification and geometric encoding information of the point cloud by determining the planar mode of the point cloud; when decoding the geometry coding information of the nodes of the current node layer, if the plane mode enabling flag corresponding to the level of the current node layer is the first preset value, the plane decoding mode is used to decode the nodes of the current node layer.
  • the plane mode enabling flag can be obtained during decoding, it can be determined whether the current node layer uses the plane decoding mode for decoding through the plane mode enabling flag, which reduces the time required for calculating the plane coding mode qualification value of the current node layer at the decoder side.
  • the process reduces the computational complexity of decoding and improves the decoding gain at the same time.
  • the method can also be applied to the encoder, by obtaining the geometric information of the point cloud; determining the plane coding mode qualification value corresponding to the current node layer corresponding to the geometric information; if the plane coding mode qualification value corresponding to the current node layer is the third preset value , it is determined that the nodes in the current node layer are encoded using the plane coding mode, and a plane mode enabling flag corresponding to the level of the current node layer is generated.
  • the encoder determines the qualification value of the plane encoding mode corresponding to the current node layer of the point cloud, which saves the process of determining the qualification value of the plane encoding mode for each node, which can help reduce the computational complexity of encoding and improve the quality of encoding. gain.
  • FIG. 1 is a schematic diagram of an exemplary octree structure provided by an embodiment of the present application
  • FIG. 2 is a schematic diagram of a cube of an exemplary octree structure provided in an embodiment of the present application
  • Fig. 3 is a block flow diagram of a kind of G-PCC coding that the embodiment of the present application provides;
  • Fig. 4 is a flow block diagram of a kind of G-PCC decoding that the embodiment of the present application provides;
  • FIG. 5A is a flow chart 1 of a decoding method provided by an embodiment of the present application.
  • FIG. 5B is the second flow chart of a decoding method provided by the embodiment of the present application.
  • FIG. 6 is a flow chart 1 of an encoding method provided by an embodiment of the present application.
  • FIG. 7 is a flowchart 2 of an encoding method provided by an embodiment of the present application.
  • FIG. 8 is a flowchart three of a decoding method provided by an embodiment of the present application.
  • FIG. 9 is a schematic structural diagram of a decoder provided in an embodiment of the present application.
  • FIG. 10 is a schematic diagram of a hardware structure of a decoder provided in an embodiment of the present application.
  • FIG. 11 is a schematic diagram of the composition and structure of an encoder provided in an embodiment of the present application.
  • FIG. 12 is a schematic diagram of a hardware structure of an encoder provided by an embodiment of the present application.
  • This application is applicable to the technical field of point cloud data compression. First, related terms involved in the embodiments of the present application are described.
  • Point cloud is a three-dimensional (3D) representation of the surface of an object, which can refer to a collection of massive three-dimensional points. Each point has associated properties such as color, material properties, etc. Exemplarily, a point cloud can be used to reconstruct an object or a scene into a combination of points.
  • the points in the point cloud can include point geometric information and point attribute information.
  • the geometric information of the point may be three-dimensional coordinate information of the point, for example, may be represented by (x, y, z) in a Cartesian coordinate system or any coordinate system.
  • the geometric information of a point may also be referred to as the positional information of a point.
  • these points may have associated attribute information such as color, such as red-green-blue (Red-Green-Blue, RGB) or (Luminance-Chrominance, YUV) three-component value, etc.
  • attribute information such as color, such as red-green-blue (Red-Green-Blue, RGB) or (Luminance-Chrominance, YUV) three-component value, etc.
  • Other attribute information may include transparency, reflection
  • the rate normal vector and the like are not limited in this embodiment of the present application.
  • Point clouds can be static or dynamic.
  • detailed scans or maps of objects or terrain can be static point cloud data
  • environmental scans for machine vision purposes can be dynamic point cloud data.
  • the dynamic point cloud data changes with time
  • the dynamic point cloud can be a sequence of point clouds sorted by time.
  • Point cloud can be applied to various fields, for example, virtual/augmented reality, machine vision, geographic information system, medical field, etc.
  • photoelectric radar, laser radar, laser scanner, multi-view camera and other acquisition equipment the point cloud of the surface of the object can be collected.
  • the number of points in the point cloud is large, for example, up to billions, so the amount of original data of the point cloud is particularly huge. Therefore, effective compression technology, that is, encoding and decoding processing, is required to reduce the amount of point cloud data.
  • the tree structure of the point cloud can represent the division result of the geometric information of the point cloud in the process of encoding or decoding the point cloud.
  • the volume space of the point cloud is recursively divided into sub-volumes, and the corresponding volume space corresponds to the root node of the tree structure, and each sub-volume corresponds to the node of the tree structure.
  • it may be determined whether to further divide the subvolume based on whether the subvolume contains points.
  • Each node may have a placeholder bit indicating whether the subvolume corresponding to the node contains a point.
  • arithmetic coding can be performed on these placeholder bits to obtain a binary code stream.
  • the tree structure may be an octree.
  • the volume space or sub-volumes are cubes, and each split further produces eight sub-volumes/sub-cubes.
  • FIG. 1 shows a schematic diagram of an octree structure.
  • node 10 may be a root node, and may correspond to a volume space of a complete point cloud, such as a cube.
  • the volume space corresponding to the node 10 can be divided into 8 sub-volumes, and each sub-volume corresponds to a node in the dashed box 20 .
  • the node 10 is the parent node of the node in the dotted box 20, and the corresponding node in the dotted box 20 is the child node of the node 10, and each child node may be called a brother node.
  • the child nodes of the node 10 ie, the nodes in the dotted box 20
  • a node whose occupation bit is 1 may also be referred to as an occupied node, which is not limited in this application.
  • the sub-nodes of the node 10 may also include nodes that do not contain dots, and their placeholder bits are 0, indicating that the sub-volume corresponding to this node does not contain dots, that is, the sub-volume is empty.
  • a parent node can be represented by the placeholder bits of its child nodes.
  • node 10 can be expressed in a binary form of "00001001", indicating that the placeholder bits of child nodes 21 and 22 are 1.
  • the corresponding subvolume may be further divided into 8 subvolumes.
  • the nodes 21 and 22 are the parent nodes of the corresponding nodes of the 8 sub-volumes further divided by their respective sub-volumes, and the 8 sub-volumes further divided are sub-nodes, such as the nodes in the dotted line box 30 .
  • node 21 can be expressed in binary form of "01001000", indicating that the occupying bits of child nodes 31 and 32 are 1;
  • node 22 can be expressed in binary form of "001000000", indicating that occupying bits of child node 33 are 1 .
  • arithmetic coding can be performed on these placeholder bits to obtain a binary code stream.
  • the node 10 may also be a node corresponding to the subvolume, that is, the octree structure in FIG. 1 may be a part of the octree structure corresponding to the complete point cloud, which is not limited in this application.
  • nodes with the same depth in the octree structure may form a node layer.
  • the octree structure may include at least two node layers, each node layer may include at least one node, and each node may correspond to a child.
  • each node in the dotted box 20 has a depth value of 1 and belongs to a node layer, which may be referred to as a layer for short.
  • the node layer corresponding to the dotted box 20 may be the 0th layer of the octree structure.
  • each node in the dotted box 30 has a depth value of 2 and belongs to one node layer.
  • the node layer corresponding to the dotted box 30 may be the first layer of the octree structure.
  • the octree structure may have nodes with a greater depth, corresponding to more node layers.
  • the depth value of the node increases, the number of layers of each node layer increases sequentially.
  • FIG. 2 shows a schematic diagram of the spatial positions of eight child nodes (ie, child nodes 0 to 7) generated by octree division relative to their parent nodes (ie, the current node).
  • the neighbor reference information of the same layer can be obtained, for example, the neighbor child nodes in the three directions of left, front and bottom (such as the negative direction of x, y and z axes in the coordinate system) placeholder information.
  • At least one neighbor among 3 co-planar, 3 co-linear and 1 co-vertex neighbors of the same layer may be used as a reference node.
  • the occupancy of its reference nodes at the same layer may correspond to one piece of context information respectively.
  • Fig. 3 is a schematic block diagram of an encoder 100 provided by an embodiment of the present application.
  • the encoder 100 may be a G-PCC encoder.
  • each slice is encoded independently.
  • FIG. 3 it shows a block diagram of a G-PCC coding process provided by a related technical solution.
  • the flowchart of G-PCC encoding shown in Figure 3 is applied to a point cloud encoder (i.e. encoder), and for the point cloud data to be encoded, the point cloud data is first divided into multiple slices through slice division. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately. In the process of geometric encoding, the geometric information is transformed into coordinates, so that all point clouds are contained in a bounding box (bounding box), and then quantized. This step of quantization mainly plays the role of scaling.
  • bounding box bounding box
  • the geometric information of the point cloud is the same, so the process of determining whether to remove duplicate points based on parameters, quantifying and removing duplicate points is also called the voxelization process. Then perform octree division on the bounding box. According to the depth of the octree division level, the encoding of geometric information can be divided into encoding based on octree and encoding based on triangle soup (trisoup).
  • the bounding box can be divided into 8 sub-cubes, and the occupancy bits of the sub-cubes can be recorded.
  • the occupancy bit of the sub-cube is 1, indicating that the sub-cube is not empty, in other words, the sub-cube is occupied by points in the point cloud, that is, the sub-cube contains points in the point cloud.
  • the occupancy bit of the sub-cube is 0, indicating that the sub-cube is empty, in other words, the sub-cube is not occupied by points in the point cloud, that is, the sub-cube does not contain points in the point cloud.
  • the division may be stopped when the resulting leaf nodes are 1x1x1 unit cubes.
  • a sub-cube may be called a sub-volume, which is obtained by dividing a bounding box or a volume space.
  • the bounding box may be called a root node
  • each sub-cube may be called a child node of the root node.
  • the spatial correlation between the node and the surrounding nodes can be used to perform intra-frame prediction (intra-frame prediction) on the occupancy bits.
  • context modeling can be performed to obtain the context information of the node, and arithmetic coding (for example, adaptive binary arithmetic coding) is performed based on the context information to generate a binary code stream, that is, a geometric code stream.
  • the octree division is also performed. Different from the encoding process based on octree, in the encoding process based on trisoup, it is not necessary to divide the point cloud into unit cubes with a side length of 1x1x1, but to block (block) when the side length is W Stop dividing. Based on the surface formed by the distribution of point clouds in each block, at most twelve intersection points (vertex) generated by the surface and twelve edges of the block are obtained. The vertex coordinates of each block are encoded sequentially to generate a binary code stream, that is, a geometric code stream.
  • the geometric encoding is completed, and after the geometric information is reconstructed, color conversion is performed to convert the color information (that is, the attribute information) from the RGB color space to the YUV color space. Then, the point cloud is recolored with the reconstructed geometry information so that the unencoded attribute information corresponds to the reconstructed geometry information.
  • Attribute encoding is mainly carried out for color information. In the process of color information encoding, there are mainly two transformation methods. One is the distance-based lifting transformation that relies on the level of detail (Level of Detail, LOD) division.
  • LOD Level of Detail
  • LOD LOD by distance
  • LOD based on fixed sampling rate mainly for Category3 sequences
  • RAHT Region Adaptive Hierarchal Transform
  • these two methods will convert the color information from the spatial domain to the frequency domain, and obtain high-frequency coefficients and low-frequency coefficients through the transformation, and finally quantize the coefficients (that is, quantized coefficients).
  • the vertex coordinates of each block are sequentially encoded (that is, the arithmetic encoding) to generate a binary attribute bit stream, that is, an attribute code stream.
  • Morton codes can be used to sort the point cloud, and the nearest neighbors of the points to be encoded (also called points to be predicted) can be searched using the geometric spatial relationship, and the found neighbors can be used to The reconstructed attribute value of the to-be-encoded point is interpolated and predicted to obtain the predicted attribute value, and then the real attribute value and the predicted attribute value can be differentially calculated to obtain the predicted residual, and finally the predicted residual is quantized and arithmetically encoded to obtain a binary code stream.
  • the nearest neighbors of the points to be encoded also called points to be predicted
  • the found neighbors can be used to The reconstructed attribute value of the to-be-encoded point is interpolated and predicted to obtain the predicted attribute value, and then the real attribute value and the predicted attribute value can be differentially calculated to obtain the predicted residual, and finally the predicted residual is quantized and arithmetically encoded to obtain a binary code stream.
  • FIG. 4 it shows a block diagram of a G-PCC decoding process provided by a related technical solution.
  • the flowchart of G-PCC decoding shown in Figure 4 is applied to the point cloud decoder (i.e. decoder), and for the obtained binary code stream, firstly, the geometric bit stream and the attribute bit stream in the binary code stream are respectively for independent decoding.
  • the geometric information of the point cloud is obtained through context modeling-arithmetic decoding-octree synthesis-surface fitting-geometry reconstruction-inverse coordinate transformation; when decoding the attribute bit stream, through Arithmetic decoding-inverse quantization-inverse transformation based on LOD or inverse transformation based on RAHT-inverse color conversion to obtain the attribute information of the point cloud, restore the slice to be encoded based on the geometric information and attribute information, and finally merge the slices to obtain the point cloud data 3D image model.
  • the local occupancy density of the node (Occupancy Density) is greater than the preset threshold
  • the proportion of nodes that have adopted the plane coding mode in a certain direction is greater than the preset corresponding threshold.
  • the threshold values for the three directions are respectively corresponding.
  • the local occupancy density of each node in the octree structure is updated in real time, and the proportion of nodes that have adopted a plane coding mode in a certain direction (x, y or z axis) is two variables.
  • the node's local Occupancy density is updated. Specifically, it can be shown in the following formula (1):
  • OccupancyDensity (255*OccupancyDensity+1024*numSiblings+128)>>8 (1)
  • the OccupancyDensity on the left side of the equation represents the updated local occupancy density value of the current node
  • the OccupancyDensity on the right side of the equation represents the local occupancy density value before updating the current node.
  • it can be the real-time update of the previous node.
  • Local occupancy density value can be the real-time update of the previous node.
  • the embodiment of the present application provides a coding method, by determining the plane coding mode qualification value corresponding to the node layer in the tree structure of the geometric information of the point cloud, and according to the plane coding mode qualification value corresponding to the node layer, it is determined whether to use the plane
  • the encoding mode encodes a node (eg, the current node) in the node layer.
  • the process of determining the plane coding mode qualification value for each node in the tree structure is omitted, so that it can have It helps to reduce the computational complexity of encoding while increasing the encoding gain.
  • the embodiment of the present application also provides a decoding method corresponding to the above encoding method. Specifically, it can be determined whether the current node uses the planar decoding mode for decoding by directly determining the enable flag of the planar mode. In the embodiment of the present application, by determining whether the node layer in the tree structure corresponding to the geometric information of the point cloud can perform the plane decoding mode, the process of determining the plane decoding mode qualification value for each node in the tree structure is omitted, which can help It is used to reduce the computational complexity of decoding and increase the decoding gain at the same time.
  • FIG. 5A shows a schematic flowchart of a decoding method provided by an embodiment of the present application.
  • This method is applied to a decoder (also called a point cloud decoder) and acts on the context modeling part in FIG. 4 , the method can include:
  • the point to be decoded refers to a point or node in the point cloud data of the object to be decoded in the point cloud. Because the encoder can obtain multiple strips, that is, slices, by spatially dividing the point cloud data during encoding. The encoding method or decoding method provided by the embodiment of the present application is performed on the point cloud in each slice. Therefore, when decoding, the decoder decodes the point cloud in each slice, and finally slices to obtain all the decoding information, and then obtains the 3D image model.
  • the decoder can obtain the tree structure corresponding to the geometric information of the point cloud, such as the related information of the octree structure, and then obtain the tree structure of the geometric information of the point cloud, such as the octree structure.
  • the decoder can obtain the number of points of the point cloud sent by the encoding end (such as the encoder), related information of the octree structure, such as the number of layers, node information of each layer, etc., and these information can be compared with The binary code stream is sent to the decoder together.
  • the point number of the point cloud and related information of the octree structure may be included in the header file for transmission, which is not limited in this embodiment of the present application.
  • the tree structure of the point cloud for each slice may include at least two node layers, and each node layer may include at least one node.
  • the volume space corresponding to the point cloud can be divided to obtain the tree structure, the volume space corresponds to the root node of the tree structure, and the child volumes obtained by dividing the volume space correspond to the nodes in the tree structure.
  • the tree structure refer to the descriptions in FIG. 1 and FIG. 2 above, and will not be repeated here.
  • the encoder 100 performs coordinate conversion, voxelization, and octree division on the geometric information of the point cloud, and obtains an octree structure of the geometric information of the point cloud, and the octree structure may include at least one node layer , for example, layer 0, layer 1...M layer, etc., where M is a positive integer greater than 1.
  • the octree structure can correspond to the tree structure obtained by octree division in the octree-based encoding process, and can also correspond to the tree structure obtained by octree division in the trisoup-based encoding process , which is not limited in this application.
  • the decoder can determine the plane mode enabling flag corresponding to the node layer, so as to determine whether to decode the plane decoding mode for the node of the current node layer directly according to the plane mode enabling flag.
  • the decoder obtains the geometric coding information of the point cloud (a slice).
  • the plane mode is used.
  • the decoding mode decodes the nodes of the current node layer. If the plane mode enabling flag corresponding to the level of the current node layer is the second preset value, the plane decoding mode is not used to decode the nodes of the current node layer.
  • the plane mode enabling flag indicates whether the node layer allows the plane decoding mode. Different values can be used to indicate whether to allow or not to allow. When the planar mode enabling flag is the first preset value, it means that the current node layer allows the plane decoding mode; when the plane mode enabling flag is the second preset value, it means that the current node layer does not allow the plane decoding mode.
  • the first preset value may be 1, and the second preset value may be 0.
  • the embodiment of this application is not limited.
  • the decoder may use the following two methods to determine the plane mode enabling flag of the point cloud:
  • Mode 1 the decoder parses the code stream to obtain the planar mode enabling flag corresponding to the level of the current node layer.
  • Method 2 The decoder parses the code stream to obtain the plane mode enabling level of the point cloud; the plane mode enabling level represents the minimum depth level at which the plane mode is enabled. If the level of the current node layer is greater than or equal to the plane mode enabling level, then determine that the plane mode enabling flag corresponding to the level of the current node layer is the first preset value.
  • planar mode enabling flag may be generated by the encoder when encoding each node layer and transmitted to the decoder.
  • planar mode enabling flags corresponding to the level of the node layer can encode the plane mode enabling flags of all node layers into slice-level flags in the form of an array when a slice is encoded, and write them into the code stream. It can be written into the code stream as the layer identifier of each node layer, which is not limited in this embodiment of the present application.
  • the plane mode enabling flag can be obtained during decoding, it can be determined whether the current node layer uses the plane decoding mode for decoding through the plane mode enabling flag, which reduces the calculation of the current node layer at the decoder side.
  • the qualification value process reduces the computational complexity of decoding while increasing the decoding gain.
  • the decoder can also encode the minimum depth level (plane mode enablement level) enabled by the planar mode to the decoder at the encoder side, so that the decoder can determine the depth level of the planar mode according to the enablement level of the planar mode. I can identify it.
  • the decoder can obtain the planar mode enablement level of the point cloud from the code stream, and the planar mode enablement level represents the minimum depth level at which the planar mode is enabled in the point cloud.
  • the planar mode enabled level indicates the number of layers at which the planar decoding mode can be started.
  • the planar mode enable flag of the point cloud is determined to be the second preset value.
  • planar_mode_min_octree_depth_minus1 may be used to indicate the enablement level of the planar mode, which is not limited in the embodiment of the present application.
  • the decoder can also decode the nodes of the current node layer using the point position direct decoding mode or the occupied bit decoding mode to complete the decoding process. For nodes that do not use the plane decoding mode, the decoder also needs to use the point position direct decoding mode or the occupied bit decoding mode for decoding.
  • the plane mode enable flag corresponding to the level of the current node layer is the first preset value, it is allowed to decode the node in the k-th axis direction using the plane decoding mode; where k represents Coordinate components. If the plane mode enabling flag corresponding to the level of the current node layer is the second preset value, it is not allowed to use the plane decoding mode to decode the node in the direction of the k-th axis.
  • the plane decoding mode qualification value of the k-th axis of the node is used to indicate whether to decode the node in the plane decoding mode in the direction of the k-th axis.
  • the plane mode enabling flag corresponding to the level of the current node layer is the first preset value, and the nodes of the current node layer meet at least one of the following conditions, it is determined to use Flat decoding mode decodes this node.
  • at least one condition is: the plane decoding mode of the node is enabled; the kth axis of the node occupied by the node has been decoded; the node is a non-leaf node.
  • the decoder may use the plane decoding mode qualification value of the k-th axis of the node to indicate whether to allow the node to be decoded in the plane decoding mode.
  • PlanarEligible[k] may be used to represent the planar decoding mode qualification value of the k-th axis of the node.
  • the level of the current node layer is greater than or equal to the enablement level of the planar mode, determine that the enablement flag of the planar mode corresponding to the level of the current node layer is the first preset value, and then determine that PlanarEligible[k] is 1.
  • planar mode enablement flag can be directly assigned by using the planar encoding qualification value of the node layer, or can be generated by itself.
  • PlanarEligible[k] can be based on the plane of the node layer
  • the encoding qualification value is determined by directly assigning planarEligibleKOctreeDepth or the planar mode enabling flag, which is not limited in this embodiment of the present application.
  • planar encoding qualification value may be represented by planarEligibleKOctreeDepth.
  • the plane encoding qualification value of the node layer is determined during encoding, which will be described in the following embodiments.
  • k can use 0, 1, 2 to represent different coordinate components x, y, z.
  • the value of PlanarEligible[k] can be determined according to "the planar decoding mode is enabled & the kth axis of the occupied tree node has been decoded & this node is not a leaf node", and according to the value of PlanarEligible[k], it can be judged that Whether to use the planar decoding mode to decode the jth node in the k-axis direction.
  • the decoder can directly analyze the enable level of the plane mode from the code stream, and then directly judge whether the current node layer is decoded in the plane decoding mode, it reduces the need for decoding whether the current node layer enters plane decoding by itself.
  • the calculation of the mode reduces the computational complexity.
  • the decoder can also directly judge whether to perform the planar decoding mode only by analyzing the enable level of the planar mode, as shown in FIG. 5B , the following node is the current node for decoding
  • the current node of the layer is taken as an example for illustration.
  • the decoder decodes each node of each node layer in turn.
  • the decoder decodes the current node of the current node layer, it judges the level of the current node layer and the size of the flat mode enabled level.
  • the level of the current node layer is greater than or equal to the flat mode enabled level, the flat mode enabled level is the beginning
  • the level of the plane decoding mode starting from the level of the node layer indicated by the plane mode enabling level, all subsequent levels can enter the plane decoding mode. Therefore, it indicates that the current node layer can be decoded in the plane decoding mode, so it is allowed to decode the current
  • the node uses the flat decoding mode for decoding. In this way, the decoder can use the plane decoding mode to decode the current node in the current node layer.
  • the decoder uses a plane decoding mode to decode the current node in the current node layer.
  • the current node layer if the level of the current node layer is greater than or equal to the plane mode enabling level, and the current node satisfies at least one of the following conditions, it is determined to use the plane decoding mode in the direction of the k-th axis to perform decoding.
  • at least one condition is: the plane decoding mode of the current node is enabled; the kth axis of the tree node occupied by the current node has been decoded; the current node is a non-leaf node.
  • the decoder before the decoder allows the current node to be decoded in the plane decoding mode, it also needs to determine that the current node satisfies that the plane decoding mode of the current node is enabled, the kth axis of the current node occupies the tree node has been decoded, and the current node Be at least one of the non-leaf nodes in the tree structure.
  • the decoder can directly analyze the enable level of the plane mode from the code stream, and then directly judge whether the current node layer is decoded in the plane decoding mode, it reduces the need for decoding whether the current node layer enters plane decoding by itself.
  • the calculation of the mode reduces the computational complexity.
  • the decoding method provided in the embodiment of the present application may further include:
  • the current node if the level of the current node layer is lower than the enable level of the planar mode, the current node is not allowed to use the planar decoding mode for decoding in the direction of the k-th axis.
  • the plane mode enabling level is the level at which the plane decoding mode is started, starting from the level of the node layer indicated by the plane mode enabling level, all subsequent levels can enter the plane decoding mode, therefore, the level of the current node layer is smaller than the plane mode
  • the enabled level that is, the node level before the node level corresponding to the plane mode enabled level, does not allow the current node to be decoded in the plane decoding mode. Therefore, the representation does not allow the plane decoding mode to decode the current node.
  • the current node if the level of the current node layer is lower than the enable level of the planar mode, the current node is not allowed to use the planar decoding mode for decoding in the direction of the k-th axis.
  • the method of S105-S108 when decoding the current node, when the level of the current node layer is lower than the enable level of the planar mode, the method of S105-S108 can also be used to determine whether to allow the planar decoding mode to decode the current node layer. as follows:
  • S105 Determine the number of points in the node layer before the current node layer in the point cloud using the point position direct decoding mode.
  • S106 Determine the number of first occupied sub-nodes corresponding to the upper node layer of the current node layer, wherein the first occupied sub-node number is the occupied sub-nodes of the nodes decoded using the occupied bit decoding mode in the upper node layer The total number of nodes.
  • the decoder determines the point cloud density of the current node layer, and determines the plane decoding mode qualification value of the current node layer according to the point cloud density of the current node layer.
  • the plane decoding qualification value of the node layer can be determined according to the point cloud density of the node layer (and the plane coding qualification value during encoding The value corresponds to planarEligibleKOctreeDepth).
  • determining the point cloud density of the current node layer it is possible to determine the number of points ( numPointsCodedByIdcm), and determine the number of currently occupied subnodes (numSubnodes) corresponding to the upper node layer of the current node layer, wherein the number of currently occupied subnodes is decoded by using the occupied bit decoding mode in the upper layer node layer.
  • the total number of occupied child nodes of the node and then, according to the number of points in the point cloud (numPoints), the number of points in the direct decoding mode of the use point position, and the number of currently occupied child nodes, determine the point of the current node layer Cloud density (can be represented by realDensity).
  • the node layers before the current node layer may include all node layers before the current node layer.
  • the node layers before the current node layer include layer 0, layer 1 and layer 2.
  • the upper layer node layer of the current node layer is the second layer node layer.
  • the decoder determines the point cloud density of the current node layer according to the number of points (numPoints) in the point cloud, the number of points in the point position direct decoding mode, and the number of currently occupied child nodes (realDensity can be used to represent ) as shown in formula (2):
  • the number of currently occupied child nodes is the node in the (i-1)th layer node layer that uses the occupied bit decoding mode to decode
  • the total number of occupied child nodes for example, can be numSubnodes when entering the (i-1)th layer of the octree.
  • the nodes adopting the point position direct decoding mode include the nodes in the current node layer that have entered the plane decoding mode for decoding, and the nodes that have not entered the plane decoding mode for decoding, which is not limited in this application.
  • the number of points in the point position direct decoding mode may be expressed as numPointsCodedByIdcm.
  • the second number of occupied sub-nodes corresponding to the current node layer is updated, wherein the second occupied sub-nodes
  • the number is the number of occupied child nodes of the node decoded in the occupied bit decoding mode in the current node layer.
  • the nodes adopting the occupied bit decoding mode include the nodes in the current node layer that have entered the plane decoding mode for decoding, and the nodes that have not entered the plane decoding mode for decoding, which is not limited in this application.
  • the second number of occupied sub-nodes is the total number of occupied sub-nodes of nodes decoded in the i-th layer node layer using the occupied bit decoding mode, for example, it may be the number of occupied sub-nodes when entering the i-th layer of the octree numSubnodes.
  • the second number of occupied child nodes may be used to determine the realDensity of the (i+1)th layer.
  • the second number of occupied child nodes is initialized before decoding the nodes in the first node layer.
  • the point cloud density is less than the preset threshold, it is determined that the current node is allowed to be decoded in the plane decoding mode; if the point cloud density is greater than or equal to the prediction threshold, it is determined that the current node is not allowed to be decoded in the plane decoding mode .
  • the preset threshold is greater than or equal to 1. For example, set the preset threshold to 1.3.
  • formula (3) is as follows:
  • the above method further includes: S109 or S1010. as follows:
  • the decoder decodes the current node using the point position direct decoding mode, or the decoder decodes the current node occupied bit decoding mode; The plane decoding mode, and then perform point position direct decoding mode or occupied bit decoding mode decoding), until the current node layer decoding is completed, continue to decode the next node layer, until all node layer decoding is completed.
  • the decoder can also first compare the level of the current node layer with the plane mode enabled level, and when the level is greater than or equal to the plane mode enabled level, then enable Flag, to determine whether the current node layer performs decoding in plane decoding mode.
  • the method of comparing the level of the current node layer with the enable level of the planar mode, combined with the enablement of the planar mode of the current node layer to jointly determine whether the current node layer performs decoding in the planar decoding mode can be combined arbitrarily, and this embodiment of the present application does not limit it.
  • the decoding process is as follows:
  • the jth node passes the plane decoding mode, if the node satisfies the point position direct decoding code mode, then directly decode the position information of the node's midpoint; otherwise, the node adopts the occupied bit decoding mode, and the 8 child nodes of the node Binary decoding of placeholder information.
  • step 3 to read the next node.
  • step 2 to enter the next layer of the octree. If all nodes in all layers have been decoded , then end.
  • the decoder can determine whether the node layer can perform the plane decoding mode by determining the node layer in the tree structure of the point cloud and the level size of the plane mode enabling level, eliminating the need for each in the tree structure
  • the process by which the node determines the qualification value of the plane decoding mode can help reduce the computational complexity of decoding and improve the decoding gain at the same time.
  • FIG. 6 it shows a schematic flowchart of an encoding method provided by an embodiment of the present application. This method is applied to an encoder (also called a point cloud encoder) and acts on the context modeling part in FIG. 3 , the method can include:
  • the encoder can obtain multiple strips, that is, slices, by spatially dividing the point cloud data during encoding.
  • the encoding method provided by the embodiment of the present application is performed on the point cloud in each slice.
  • the decoder may acquire the tree structure of the point cloud, such as information related to the octree structure, and then obtain the tree structure of the geometric information of the point cloud, such as the octree structure.
  • the tree structure of the point cloud for each slice may include at least two node layers, and each node layer may include at least one node.
  • the volume space corresponding to the point cloud can be divided to obtain the tree structure, the volume space corresponds to the root node of the tree structure, and the child volumes obtained by dividing the volume space correspond to the nodes in the tree structure.
  • the tree structure refer to the descriptions in FIG. 1 and FIG. 2 above, and will not be repeated here.
  • the encoder 100 performs coordinate conversion, voxelization, and octree division on the geometric information of the point cloud, and obtains an octree structure of the geometric information of the point cloud, and the octree structure may include at least one node layer , for example, layer 0, layer 1...M layer, etc., where M is a positive integer greater than 1.
  • the octree structure can correspond to the tree structure obtained by octree division in the octree-based encoding process, and can also correspond to the tree structure obtained by octree division in the trisoup-based encoding process , which is not limited in this application.
  • the encoder may determine the qualification value of the plane coding mode corresponding to the node layer by taking the node layer as a unit.
  • the following describes the process of encoding the current node, that is, the object is the current node, and the current node refers to a node being encoded in the current node layer.
  • Method 1 The encoder determines the point cloud density of the current node layer; according to the point cloud density of the current node layer, the qualification value of the plane encoding mode corresponding to the current node layer is determined.
  • the encoder determines the number of points using the point position direct coding mode in the node layer before the current node layer in the point cloud; the encoder determines the first occupant corresponding to the node layer above the current node layer The number of nodes, wherein, the first number of occupied sub-nodes is the total number of occupied sub-nodes of the nodes encoded in the upper node layer using the occupied bit coding mode; the encoder uses The number of points in the point position direct coding mode and the number of first occupied child nodes determine the point cloud density of the current node layer.
  • the encoder determines the point cloud density of the current node layer according to the number of points in the point cloud, the number of points using the point position direct coding mode, and the number of first occupied child nodes, which can be: If the point cloud density is less than the preset threshold, the encoder determines that the plane encoding mode qualification value corresponding to the current node layer is the third preset value; if the point cloud density is greater than or equal to the prediction threshold, the encoder determines the plane corresponding to the current node layer
  • the encoding mode qualification value is a fourth preset value.
  • the preset threshold is greater than or equal to 1.
  • the third preset value indicates that the planar coding mode can be entered, for example, 1.
  • the fourth preset value indicates that the planar coding mode cannot be entered, such as 0.
  • the qualification value of the plane coding mode corresponding to the current node layer is the fourth preset value
  • the first method is used to determine the qualification value of the plane coding mode corresponding to the current node layer.
  • the encoder adopts the processing method of mode 1, by determining the plane coding mode qualification value corresponding to the node layer in the tree structure corresponding to the geometric information of the point cloud, eliminating the need to determine the plane for each node in the tree structure
  • the process of encoding the qualification value of the mode can help to reduce the computational complexity of encoding and improve the encoding gain at the same time.
  • Method 2 If the qualification value of the plane coding mode corresponding to the upper node layer corresponding to the current node layer in the tree structure is the third preset value, the encoder determines that the qualification value of the plane coding mode corresponding to the current node layer is the third preset value. set value.
  • the encoder can first determine the plane coding mode qualification value corresponding to the node layer of the lower layer. If the current node layer in the tree structure corresponds to The qualification value of the plane coding mode corresponding to the upper node layer is the third preset value, and the encoder can directly determine the qualification value of the plane coding mode corresponding to the current node layer is the third preset value. Calculate cloud density.
  • the calculated plane coding mode qualification value corresponding to a node layer is the third preset value, that is, it starts to enter the plane coding mode, then the subsequent coding will be performed. All other node layers are determined to be able to enter the plane coding mode, that is, the qualification value of the plane coding mode corresponding to the current node layer is determined to be the third preset value.
  • the encoder adopts method 2, which also reduces the number of times and calculations for the encoder to determine the qualification value of the plane coding mode for each node layer, and further reduces the computational complexity of encoding.
  • the plane coding mode qualification value corresponding to the current node layer is the third preset value, determine that the plane coding mode is used to encode the nodes in the current node layer, and generate a plane mode enabling flag corresponding to the level of the current node layer .
  • the plane coding mode qualification value corresponding to the current node layer of the encoder is the third preset value
  • the plane coding mode is directly used to encode the current node (ie node) in the current node layer.
  • the qualification value of the plane coding mode corresponding to the current node layer is the third preset value, and the current node satisfies at least one of the following conditions, it is determined that the plane coding mode pair is adopted in the k-th axis direction
  • the current node is encoded; k is the coordinate component;
  • At least one condition includes:
  • the plane coding mode of the current node is enabled
  • the current node occupies the kth axis of the tree node encoded
  • the current node is a non-leaf node.
  • the encoder determines that the current node is encoded in the planar encoding mode in the direction of the k-axis, which is consistent with the principle in the decoder that the current node is decoded in the planar decoding mode in the direction of the k-axis. I won't repeat them here.
  • the plane coding mode qualification value corresponding to the current node layer is the fourth preset value, it is determined not to use the plane coding mode to code the nodes in the current node layer, and generate the current node layer
  • the plane mode enabling flag corresponding to the level is the second preset value.
  • the plane mode qualification value corresponding to the current node layer is the third preset value
  • the plane mode enabling flag corresponding to the level of the current node layer is generated as the first preset value.
  • the first preset value may be 1, and the second preset value may be 0.
  • the embodiment of this application is not limited.
  • the encoder determines the plane coding mode qualification value of each node layer through the first method, it can also generate a plane mode enabling flag of each node layer based on the plane coding mode qualification value and send it to the decoder for decoding used when decoding.
  • the plane coding mode qualification value corresponding to the current node layer is the third preset value, it is determined that the plane coding mode is used to code the nodes in the current node layer, and the level of the current node layer
  • the code stream is written as a plane mode enabling level for the decoder to decode the current node layer in plane decoding mode when parsing to the plane mode enabling level.
  • the encoder can write the plane mode enabling layer encoding into the code stream when all node layer encoding is completed.
  • the qualification value of the plane coding mode corresponding to the current node layer is the third preset value
  • the qualification value of the plane coding mode corresponding to the upper node layer corresponding to the current node layer is the fourth preset value value
  • the encoder may write all node layers whose planar coding mode qualification values are the third preset value into the code stream for use by the decoder when decoding each corresponding node layer. It can also be judged that when entering the planar encoding mode for the first time, record the minimum depth level that represents the enablement of the planar mode, and write the minimum depth level enabled by the planar mode as the enablement level of the planar mode into the code stream.
  • the application examples are not limited.
  • the encoder determines the minimum depth level at which the planar mode is initially enabled, it can only transmit the minimum depth level representing the start of the planar mode as the planar mode enabling level for use by the decoder when decoding, reducing the amount of transmission.
  • the encoder generating the plane mode enabling flag corresponding to the level of the current node layer may also include generating the plane mode corresponding to the level of the current node layer if the level of the current node is used as the plane mode enabling level The enable flag is the first preset value. Otherwise, generate a plane mode enable flag as a second preset value.
  • the encoder uses the point cloud density to determine the plane coding mode qualification value corresponding to the current node layer
  • the plane coding mode qualification value corresponding to the current node layer is the third preset value, and the previous When the plane coding mode qualification value corresponding to the layer node layer is the fourth preset value
  • the level of the upper node layer is written into the code stream as the plane mode enabling level.
  • decoder decoding can be as follows: if the level of the current node layer is greater than the enable level of the planar mode, then the current node is allowed to use the planar decoding mode for decoding; otherwise, the current node is not allowed to use the planar decoding mode for decoding .
  • the encoder further includes: S204. as follows:
  • the encoder encodes the nodes of the current node layer in a point position direct coding mode or in an occupied bit coding mode. Then, continue to encode the next node (plane encoding mode, point position direct encoding mode encoding or occupy bit encoding mode for encoding), until the current node layer encoding is completed, carry out the encoding of the next node layer until all node layers until the encoding is complete.
  • the encoder when the plane coding mode qualification value corresponding to the current node layer is the fourth preset value, if the current node in the current node layer is coded in the point position direct coding mode, the encoder will update the use point The value of the number of points for positional direct encoding mode.
  • the plane coding mode qualification value corresponding to the current node layer is the fourth preset value, if the nodes in the current node layer are coded using the occupied bit coding mode, the second number of occupied child nodes corresponding to the current node layer is updated, wherein , the second number of occupied sub-nodes is the number of occupied sub-nodes of nodes encoded in the occupied bit coding mode in the current node layer.
  • the encoder only updates the number of points in the point position direct coding mode or the number of second occupied sub-nodes when the qualification value of the plane coding mode corresponding to the current node layer is the fourth preset value, for the next Determination of Plane Coding Mode Qualification Values for a Node Layer.
  • the qualification value of the plane coding mode corresponding to the current node layer is the third preset value
  • the number of points or the number of second occupied child nodes in the direct coding mode of the point position may not be updated, but the plane code corresponding to the current node layer
  • the mode qualification value is determined as the plane coding mode qualification value of the next node layer, that is, the third preset value. In this way, the computational complexity in the encoding process is reduced.
  • the embodiment of the present application provides a method for determining a plane coding mode, which sets a unified plane coding mode qualification value for all nodes in a certain layer under the octree framework.
  • An example is used to illustrate the encoding process of the plane mode enablement level. The encoding process is as follows:
  • the position information of the midpoint of the node is directly encoded.
  • planarEligibleKOctreeDepth is equal to 0, it is updated according to the points in the node.
  • planarEligibleKOctreeDepth is equal to 0, the numSubnodes value is updated according to the number of occupied child nodes in the node.
  • step 3 to read the next node.
  • planarEligibleKOctreeDepth is already equal to 1
  • step 6 skip directly to step 6; otherwise, calculate the first node according to formula (2).
  • the true density of the point cloud of layer i+1 If the true density of the point cloud is less than 1.3, the qualification values of the planar coding modes of the i+1th layer are determined to be 1 according to formula (3), otherwise they are all 0.
  • step 2 Skip to step 2 to enter the next layer of the octree, if all nodes of all layers have been encoded, then end.
  • the encoder saves the process of determining the qualification value of the plane coding mode for each node in the tree structure by determining the plane coding mode qualification value corresponding to the node layer in the tree structure corresponding to the geometric information of the point cloud, And once the calculated plane coding mode qualification value corresponding to one layer of node layer is the third preset value, it starts to enter the plane coding mode, and then all other node layers that will be coded later are determined to be able to enter the plane coding mode, which reduces the number of times and calculations for the encoder to determine the qualification value of the plane coding mode for each node layer, and further reduces the computational complexity of coding.
  • FIG. 7 shows a schematic flowchart of an encoding method provided by an embodiment of the present application.
  • the encoding method can be applied to the encoder 100 shown in FIG. 3 , for example, the geometric information and attribute information of the point cloud can be input into the encoder 100 to implement compression encoding of the point cloud.
  • FIG. 7 it is illustrated by taking the process of the encoder enabling the level by encoding the plane mode as an example, including S301 to S321 .
  • FIG. 7 shows steps or operations of the encoding method, but these steps or operations are only examples, and other operations or variations of the operations in FIG. 7 may also be performed in the embodiment of the present application.
  • the various steps in FIG. 7 may be performed in a different order than that presented in FIG. 7, and it is possible that not all operations in FIG. 7 are to be performed.
  • the number of points of the point cloud when acquiring a point cloud (a slice), or before compressing and encoding the point cloud, the number of points of the point cloud, that is, the number of all points contained in the point cloud, may be acquired.
  • the number of points in the point cloud can be expressed as numPoints.
  • the tree structure of the geometric information of the point cloud such as an octree structure
  • the tree structure may include at least two node levels, each node level may include at least one node.
  • the volume space corresponding to the point cloud can be divided to obtain the tree structure, the volume space corresponds to the root node of the tree structure, and the child volumes obtained by dividing the volume space correspond to the nodes in the tree structure.
  • the tree structure reference may be made to the descriptions of FIG. 1 and FIG. 2 above, and details will not be repeated here.
  • i represents the number of layers of the current coding node layer (current node layer, also can be referred to as the node layer to be coded) in the octree structure
  • planarEligibleKOctreeDepth represents the planar coding mode qualification value of the current coding node layer in the octree structure
  • numPointsCodedByIdcm Indicates the number of points in the point cloud encoded using point position direct encoding mode.
  • the coding system for example, the values of planarEligibleKOctreeDepth and numPointsCodedByIdcm can be saved in a storage device (such as memory) of the encoder 100, and the values of planarEligibleKOctreeDepth and numPointsCodedByIdcm can be updated and maintained according to the coding situation of each layer.
  • a storage device such as memory
  • S303 may be executed after the execution of S321 is completed, then at this time 0 ⁇ i ⁇ M, that is, after the coding of each node layer is completed, enter the next node layer of the node layer for coding.
  • planarEligibleKOctreeDept is 1.
  • k 0, 1 or 2 in a three-dimensional coordinate system.
  • planarEligibleKOctreeDepth is 1.
  • PlanarEligible[k] represents the planar coding mode qualification value of the current node (that is, the jth node) in the direction of the kth axis.
  • the flat coding mode qualification value of a node may be used to indicate whether the node can use the flat coding mode for coding. For example, when the flat coding mode qualification value is 1, the node can use the flat coding mode for coding; when the flat coding mode qualification value is 0, the node cannot use the flat coding mode for coding.
  • the value of the current planarEligibleKOctreeDepth can be obtained by reading the encoding system, such as the memory of the encoder 100, which is not limited in this application.
  • the j-th node may be encoded in the k-th axis direction using a planar encoding mode.
  • next step is to execute S310; when the point position direct coding mode is not satisfied, the next step is to execute S312.
  • the number of points in the jth node is n, and n is a positive integer.
  • the node may use the occupied bit coding mode, that is, code the occupancy information of the 8 child nodes of the node.
  • the number of occupied child nodes among the 8 child nodes is m, where m ⁇ 8, and is a positive integer.
  • occupying a child node is a child node whose occupying bit is not empty (for example, 1).
  • step 315 the process jumps to S305, continues to read the next node, and executes S305 to S313 for the next node.
  • step S313 after multiple loop operations from step S305 to step S313, all nodes in the i-th layer can be processed.
  • realDensity represents the real point cloud density of the i+1th layer.
  • the real point cloud density may also be referred to as point cloud density, which is not limited.
  • the next step is to execute S318. Otherwise, if the real point cloud density realDensity of the i+1th layer is less than 1.3, then the next step is to execute S318.
  • the preset threshold may be greater than or equal to 1.
  • the preset threshold may be less than a certain value, for example, may be less than 2, or less than 3, or other, which is not limited.
  • the size of the preset threshold can be changed, for example, the predetermined threshold can be reduced to make the judgment condition of the planar coding mode more stringent, or the preset threshold can be increased , making the judgment condition of the planar coding mode more relaxed.
  • planarEligibleKOctreeDepth 1
  • planar_mode_min_octree_depth_minus1 i+1.
  • planar_mode_min_octree_depth_minus1 is the enable level of planar mode.
  • the real point cloud density realDensity of the i+1th layer is less than 1.3
  • the real point cloud density realDensity ⁇ 1.3 of the i+1th layer means that the average number of points per node in the i+1th layer is less than 1.3. At this time, in the i+1th layer, some nodes have points less than 1.3, such as 1, and some nodes have points greater than or equal to 1.3, such as 2 or 3. It can be understood that when the real point cloud density realDensity of the i+1th layer is ⁇ 1.3, it means that the number of points in most nodes in the i+1th layer is 1.
  • the real point cloud density realDensity of the i+1th layer is ⁇ 1.3
  • the real point cloud density realDensity of the i+1th layer is greater than or equal to 1.3, which means that the average number of points per node in the i+1th layer is greater than or equal to 1.3.
  • the points of most nodes are greater than or equal to 1.3, such as 2, 3, 4..., etc., and there may be only a few nodes with points less than 1.3, such as 1.
  • the real point cloud density realDensity of the i+1th layer is greater than or equal to 1.3, it means that the number of points in most nodes in the i+1th layer is 2, or 3, or 4.
  • the embodiment of the present application determines the plane coding mode qualification value corresponding to the node layer according to the real point cloud density of the node layer in the octree, which can help to more accurately judge whether all nodes in the node layer are suitable for the plane coding mode. Qualified, thereby increasing the encoding performance gain.
  • encode planar_mode_min_octree_depth_minus1 write the code stream and transmit it to the decoding end (decoder), and the process ends, that is, the encoding of the point cloud is completed.
  • the flow skips to S303, and continues to enter the i+1th layer of the octree, that is, execute S303 to S319 on the nodes in the next layer, that is, encode the nodes in the next layer.
  • the next layer is the current coding layer, that is, the i-th layer.
  • numPointsCodedByIdcm when the process jumps from S321 to S303, the value of numPointsCodedByIdcm remains unchanged.
  • the value of numPointsCodedByIdcm may be updated according to the coding situation of each node of the current coding node layer. That is to say, numPointsCodedByIdcm corresponds to the number of points in the entire point cloud that satisfy the point position direct coding mode.
  • planarEligibleKOctreeDepth when the process jumps from S321 to S303, the value of planarEligibleKOctreeDepth remains unchanged.
  • it can be determined according to the value of the planarEligibleKOctreeDepth whether to use the planar coding mode to encode each node of the current coding node layer, and according to the corresponding numPointsCodedByIdcm and numSubnodes after all nodes of the current coding node layer have been processed , to update the planarEligibleKOctreeDepth value, that is, to determine the planarEligibleKOctreeDepth value corresponding to the next layer of the current coding node layer.
  • the encoding end (such as an encoder) can combine the number of points of the point cloud, related information of the octree structure, such as the number of layers, node information of each layer, etc., together with the binary code rate obtained by encoding , sent to the decoding end (such as a decoder).
  • the point number of the point cloud and related information of the octree structure may be included in the header file for transmission, which is not limited in this embodiment of the present application.
  • the process of determining the plane coding mode qualification value for each node in the tree structure is omitted, so that it can have It helps to reduce the computational complexity of encoding and decoding while increasing the encoding gain.
  • the qualification value of the plane coding mode corresponding to the current node layer is the third preset value
  • the number of points or the number of second occupied child nodes in the direct coding mode of the point position may not be updated, but the plane code corresponding to the current node layer
  • the mode qualification value is determined as the plane coding mode qualification value of the next node layer, that is, the third preset value. In this way, the computational complexity in the encoding process is reduced.
  • planar_mode_min_octree_depth_minus1 planar mode enable level
  • octree_depth refers to the number of layers of the octree, with a value from 1 to n
  • octree_depth_minus1 refers to the level of the octree (a serial number), with a value from 0 to n-1
  • planar_mode_min_octree_depth_minus1 is the minimum octree depth level enabled in planar mode.
  • planar_mode_min_octree_depth_minus1 parameter is placed in the Geometry data unit header syntax, as shown in Table 1 below.
  • PlanarEligible[k] can be assigned a value directly through planar_mode_min_octree_depth_minus1.
  • occtree_depth_minus1-i can also be used to identify the number of layers planar_mode_enabled_num_octree using the planar mode when encoding the encoder, and then pass i>occtree_depth_minus1-planar_mode_enabled_num_octree to give PlanarEligible[k] at the decoding end
  • the assignment is not limited in the embodiment of this application.
  • the plane mode enabling flag of each node layer can also use a parameter to indicate the code stream to be written, or when a slice encoding is completed, the plane mode enabling flags of all node layers can be set as
  • the array form is encoded as a slice-level identifier, which is written into the code stream in the form of an identifier group.
  • the embodiment of this application is not limited.
  • planar_mode_min_octree_depth_minus1 which is not limited in this embodiment of the present application.
  • planar mode enabling flag corresponding to each node layer indicates whether planar mode encoding and decoding can be performed or not planar mode encoding and decoding can be performed through different assignments.
  • planar mode enabling flag may be directly generated, or obtained by directly assigning a value using planarEligibleKOctreeDepth, which is not limited in this embodiment of the present application.
  • FIG. 8 shows a schematic flowchart of a decoding method provided by an embodiment of the present application.
  • the decoding method can be applied to the decoder 200 shown in FIG. 4 , for example, the geometric code stream and attribute code stream of the point cloud can be input into the decoder 200 to realize the decoding of the point cloud.
  • FIG. 8 it is illustrated by taking the decoding process of the decoder through the enabling layer of the plane mode as an example, and 400 includes S401 to S413 .
  • FIG. 8 shows steps or operations of the decoding method, but these steps or operations are only examples, and other operations or variations of the operations in FIG. 8 may also be performed in this embodiment of the present application.
  • the various steps in FIG. 8 may be performed in a different order than that presented in FIG. 8, and it is possible that not all operations in FIG. 8 are performed.
  • the decoder can parse out the corresponding planar mode enabling level in a slice from the code stream, that is, planar_mode_min_octree_depth_minus1.
  • S403 may be executed after S414 is executed, then at this time 0 ⁇ i ⁇ M, that is, after decoding each node layer, enter the next node layer of the node layer for decoding.
  • the next step is to execute S405; when the j-th node is determined When at least one of the conditions that the planar decoding mode is enabled, the kth axis of the occupied tree node has been decoded, and the node is not a leaf node is not satisfied, or i>planar_mode_min_octree_depth_minus1 is not satisfied, the next step is to execute S407.
  • PlanarEligible[k] 1.
  • PlanarEligible[k] represents the planar decoding mode qualification value of the current node (that is, the jth node) in the direction of the kth axis.
  • the plane decoding mode qualification value of a node may be used to indicate whether the node can use the plane decoding mode for decoding. For example, when the plane decoding mode qualification value is 1, the node can use the plane decoding mode for decoding, and when the plane decoding mode qualification value is 0, the node cannot use the plane decoding mode for decoding.
  • the j-th node may be decoded in the k-th axis direction using a plane decoding mode.
  • the jth node in the case of executing S407 after the execution of 406, the jth node satisfies the requirements that the plane decoding mode has been enabled & the kth axis of the occupied tree node has been decoded & this node is not a leaf node and the corresponding i>planar_mode_min_octree_depth_minus1 of the i-th layer node layer, after the j-th node is decoded using the planar decoding mode, it can be judged whether the j-th node satisfies the point position direct decoding mode.
  • the jth node in the case of executing S407 after S404 or S406 is executed, the jth node does not meet the requirement that the plane decoding mode has been enabled & the kth axis of the occupied tree node has been decoded & this node is not a leaf node At least one condition of , or when the i corresponding to the i-th layer node layer does not satisfy i>planar_mode_min_octree_depth_minus1, it can be judged whether the j-th node satisfies the point position direct decoding mode.
  • next step is to perform S408; when the point position direct decoding mode is not satisfied, the next step is to perform S409.
  • the number of points in the jth node is n, and n is a positive integer.
  • the node may use the occupied bit decoding mode, that is, decode the occupancy information of the 8 child nodes of the node.
  • the number of occupied child nodes among the 8 child nodes is m, where m ⁇ 8, and is a positive integer.
  • occupying a child node is a child node whose occupying bit is not empty (for example, 1).
  • all nodes in the i-th layer can be processed.
  • the process skips to S402, and continues to enter the i+1th layer of the octree, that is, execute S402 to S412 on the nodes in the next layer, that is, decode the nodes in the next layer.
  • the next layer is the current decoding layer, that is, the i-th layer.
  • the decoder can directly analyze the enable level of the planar mode from the code stream, the calculation of whether to enter the planar decoding mode at the current node layer by the decoding itself is reduced, and the computational complexity is reduced.
  • test sequence may include multiple test image sequences, such as Cat1-A average, Cat1-B average, Cat3-fused average, Cat3-frame average, etc.
  • BD-rate geometric encoding bit rate
  • D1 and D2 respectively, where D1 represents the point-to-point geometric information between the point in the original point cloud and the corresponding point in the reconstructed point cloud Error, D2 represents the error of point-to-plane geometric information between a point in the reconstructed point cloud and the plane of the corresponding point in the original point cloud, which is related to the normal vector of the corresponding point.
  • Table 2 shows the BD-Rate of the encoding method provided by the embodiment of the present application under geometric information lossy compression, and the BD-Rate indicates that the encoding method of the embodiment of the present application is relatively Encoding bit rate saving percentage, where BD-Rate is a negative value means saving encoding bit rate, and a positive value means increasing encoding bit rate. It can be seen from Table 2 that most of the test sequences adopt the encoding method of the embodiment of the present application to save the encoding bit rate.
  • Table 3 shows the Bpip Ratio of the encoding method provided by the embodiment of the present application under the lossless compression of geometric information, and the Bpip Ratio indicates that in the case of no loss in point cloud quality, the encoding code rate of the embodiment of the present application accounts for the coding rate of the prior art.
  • FIG. 9 shows a schematic diagram of the composition and structure of a decoder 1 provided by the embodiment of the present application.
  • the decoder 1 may include:
  • the first determining part 10 is configured to determine the plane mode enabling flag of the point cloud and the geometric encoding information of the point cloud;
  • the decoding part 11 is configured to, when decoding the geometric coding information of the nodes of the current node layer, if the plane mode enabling flag corresponding to the level of the current node layer is the first preset value, then use the plane decoding mode to decode the current node The nodes of the layer are decoded.
  • the decoder 1 further includes: an analysis part 12;
  • the parsing part 12 is configured to parse the code stream to obtain the planar mode enablement level of the point cloud; the planar mode enablement level represents the minimum depth level at which the planar mode is enabled.
  • the first determining part 10 is further configured to determine the plane corresponding to the level of the current node level if the level of the current node level is greater than or equal to the plane mode enabling level
  • the mode enable flag is the first preset value.
  • the decoder 1 further includes: an analysis part 12;
  • the parsing part 12 is configured to parse from the code stream to obtain the plane mode enabling flag corresponding to the level of the current node layer. .
  • the first determining part 10 is further configured to determine the point cloud's The enable flag of the planar mode is the second preset value.
  • the decoding part 11 is further configured to decode the nodes of the current node layer by adopting point position direct decoding mode or occupied bit decoding mode.
  • the first determining part 10 is further configured to use the plane decoding mode for all Before the nodes of the current node layer are decoded, it is determined that the nodes of the current node layer satisfy that the plane decoding mode of the node has been enabled, the kth axis of the node occupied by the node has been decoded, and the node is the At least one of the non-leaf nodes in the tree structure.
  • the decoding part 11 is further configured to allow the node in the k-th axis direction to The plane decoding mode is used for decoding; where k represents the coordinate component.
  • the decoding part 11 is further configured to, if the plane mode enabling flag corresponding to the level of the current node layer is the second preset value, then it is not allowed to The plane decoding mode is used for decoding in the direction.
  • the plane decoding mode qualification value of the k-th axis of the node is used to indicate whether to decode the node in the plane decoding mode in the direction of the k-th axis.
  • the plane mode enabling flag can be obtained during decoding, it can be determined whether the current node layer uses the plane decoding mode for decoding through the plane mode enabling flag, which reduces the calculation of the current node layer at the decoder side.
  • the qualification value process reduces the computational complexity of decoding while increasing the decoding gain.
  • a "part” may be a part of a circuit, a part of a processor, a part of a program or software, etc., of course it may also be a module, or it may be non-modular.
  • each component in this embodiment may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units can be implemented in the form of hardware or in the form of software function modules.
  • the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer-readable storage medium.
  • the technical solution of this embodiment is essentially or It is said that the part that contributes to the prior art or the whole or part of the technical solution can be embodied in the form of a software product, the computer software product is stored in a storage medium, and includes several instructions to make a computer device (which can It is a personal computer, a server, or a network device, etc.) or a processor (processor) that executes all or part of the steps of the method described in this embodiment.
  • the aforementioned storage medium includes: U disk, mobile hard disk, read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other various media that can store program codes.
  • this embodiment provides a computer-readable storage medium, where the computer storage medium stores a computer program, and when the computer program is executed by the first processor, the decoding method described in the foregoing embodiments is implemented.
  • FIG. 10 shows the specific hardware structure of the decoder provided by the embodiment of the present application, which may include: a first communication interface 801, a first memory 802 and a first processor 803 ; each component is coupled together through the first bus system 804 .
  • the first bus system 804 is used to realize connection and communication between these components.
  • the first bus system 804 also includes a power bus, a control bus and a status signal bus.
  • the various buses are labeled as the first bus system 804 in FIG. 10 . in,
  • the first communication interface 801 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
  • the first memory 802 is used to store computer programs that can run on the first processor 803;
  • the first processor 803 is configured to execute the decoding method of the decoder when running the computer program.
  • the first memory 802 in the embodiment of the present application may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memories.
  • the non-volatile memory can be read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable ROM, PROM), erasable programmable read-only memory (Erasable PROM, EPROM), electronically programmable Erase Programmable Read-Only Memory (Electrically EPROM, EEPROM) or Flash.
  • the volatile memory can be Random Access Memory (RAM), which acts as external cache memory.
  • RAM Static Random Access Memory
  • DRAM Dynamic Random Access Memory
  • SRAM Dynamic Random Access Memory
  • Synchronous Dynamic Random Access Memory Synchronous Dynamic Random Access Memory
  • SDRAM double data rate synchronous dynamic random access memory
  • Double Data Rate SDRAM, DDRSDRAM enhanced synchronous dynamic random access memory
  • Enhanced SDRAM, ESDRAM synchronous connection dynamic random access memory
  • Synchronous DRAM Synchronous Dynamic Random Access Memory
  • Enhanced SDRAM synchronous dynamic random access memory
  • SLDRAM synchronous connection dynamic random access memory
  • Direct Rambus RAM Direct Rambus RAM
  • the first memory 902 of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
  • the first processor 803 may be an integrated circuit chip with signal processing capability. In the implementation process, each step of the above method may be implemented by an integrated logic circuit of hardware in the first processor 803 or an instruction in the form of software.
  • the above-mentioned first processor 903 may be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a ready-made programmable gate array (Field Programmable Gate Array, FPGA) Or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
  • DSP Digital Signal Processor
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • Various methods, steps, and logic block diagrams disclosed in the embodiments of the present application may be implemented or executed.
  • a general-purpose processor may be a microprocessor, or the processor may be any conventional processor, or the like.
  • the steps of the method disclosed in connection with the embodiments of the present application may be directly implemented by a hardware decoding processor, or implemented by a combination of hardware and software modules in the decoding processor.
  • the software module can be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, register.
  • the storage medium is located in the first memory 802, and the first processor 803 reads the information in the first memory 802, and completes the steps of the above-mentioned decoding method in combination with its hardware.
  • the embodiments described in this application may be implemented by hardware, software, firmware, middleware, microcode or a combination thereof.
  • the processing unit can be implemented in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing device (DSP Device, DSPD), programmable Logic device (Programmable Logic Device, PLD), Field-Programmable Gate Array (Field-Programmable Gate Array, FPGA), general-purpose processor, controller, microcontroller, microprocessor, other devices used to perform the functions described in this application electronic unit or its combination.
  • the techniques described herein can be implemented through modules (eg, procedures, functions, and so on) that perform the functions described herein.
  • Software codes can be stored in memory and executed by a processor. Memory can be implemented within the processor or external to the processor.
  • FIG. 11 shows a schematic structural diagram of an encoder 2 provided by an embodiment of the present application.
  • the Encoder 2 can include:
  • the acquiring part 20 is configured to acquire the geometric information of the point cloud
  • the second determining part 21 is configured to determine the plane coding mode qualification value corresponding to the current node layer corresponding to the geometry information
  • the coding part 22 is configured to, if the plane coding mode qualification value corresponding to the current node layer is a third preset value, determine to use the plane coding mode to code the nodes in the current node layer, and generate the current node layer
  • the second determination part 21 is further configured to determine that if the plane coding mode qualification value corresponding to the upper node layer corresponding to the current node layer is the third preset value The plane coding mode qualification value corresponding to the current node layer is the third preset value.
  • the encoder 2 further includes: a writing part 23;
  • the writing part 23 is further configured to write the plane mode enabling flag corresponding to the level of the current node layer into the code stream.
  • the second determining part 21 is further configured to determine the plane coding mode qualification value corresponding to the current node layer corresponding to the geometric information, if the plane coding mode corresponding to the current node layer The mode qualification value is the third preset value, and the plane coding mode qualification value corresponding to the upper node layer corresponding to the current node layer is the fourth preset value, then the level of the current node layer is used as the plane mode to use capability level; or,
  • the plane coding mode qualification value corresponding to the current node layer is the third preset value, it is determined to use the plane coding mode to encode the nodes in the current node layer, and the level of the current node layer is used as the plane mode enabling level;
  • the writing part 23 is further configured to write the planar mode enabling level into a code stream.
  • the second determination part 21 is further configured to generate a plane mode enabling flag corresponding to the level of the current node level if the level of the current node is used as the plane mode enabling level as The first default value.
  • the second determining part 21 is further configured to determine the The point cloud density of the current node layer; according to the point cloud density of the current node layer, determine the plane coding mode qualification value corresponding to the current node layer.
  • the second determination part 21 is further configured to determine the number of points in the node layer before the current node layer in the point cloud using point position direct coding mode; determine the current The number of first occupied sub-nodes corresponding to the upper node layer of the node layer, wherein the first occupied sub-node number is the number of occupied sub-nodes of the nodes encoded in the upper node layer using the occupied bit coding mode Total number; determine the point cloud density of the current node layer according to the number of points in the point cloud, the number of points using the point position direct coding mode, and the number of the first occupied child nodes.
  • the second determination part 21 is further configured to determine that the plane coding mode qualification value corresponding to the current node layer is the first if the point cloud density is less than a preset threshold. Three preset values; if the point cloud density is greater than or equal to the prediction threshold, determine that the plane coding mode qualification value corresponding to the current node layer is the fourth preset value.
  • the preset threshold is greater than or equal to 1.
  • the coding part 22 is configured to determine that the plane coding mode is used for the current node layer if the qualification value of the plane coding mode corresponding to the current node layer is a third preset value. After the nodes in the node layer are coded, or when the qualification value of the plane coding mode corresponding to the current node layer is the fourth preset value, the nodes in the current node layer are coded using the point position direct coding mode or the occupied bit coding mode .
  • the second determining part 21 is further configured such that when the plane coding mode qualification value corresponding to the current node layer is the fourth preset value, if the If the node is coded using the point position direct coding mode, then the value of the number of points using the point position direct coding mode is updated.
  • the second determining part 21 is further configured such that when the plane coding mode qualification value corresponding to the current node layer is the fourth preset value, if the The node uses the occupied bit encoding mode to encode, then update the second number of occupied sub-nodes corresponding to the current node layer, wherein the second occupied sub-node number is the current node layer using the occupied bit encoding mode The number of occupied child nodes of the encoded node.
  • the coding part 22 is configured such that if the plane coding mode qualification value corresponding to the current node layer is a third preset value, and the node meets at least one of the following conditions, It is then determined that the node is encoded in the k-th axis direction using a plane encoding mode; k is a coordinate component;
  • the at least one condition includes:
  • the flat coding mode of the node is enabled
  • said node occupies the kth axis of the tree node encoded
  • the node is a non-leaf node.
  • the encoder determines the plane coding mode qualification value corresponding to the node layer in the tree structure corresponding to the geometric information of the point cloud, which saves the process of determining the plane coding mode qualification value for each node in the tree structure, thereby It can help to reduce the computational complexity of coding and improve the coding gain at the same time.
  • FIG. 12 shows the specific hardware structure of the encoder provided by the embodiment of the present application, which may include: a second communication interface 1001, a second memory 1002 and a second processor 1003 ; each component is coupled together through the second bus system 1004 .
  • the second bus system 1004 is used to realize connection and communication between these components.
  • the second bus system 1004 also includes a power bus, a control bus and a status signal bus.
  • the various buses are labeled as the second bus system 1004 in FIG. 12 . in,
  • the second communication interface 1001 is used for receiving and sending signals during the process of sending and receiving information with other external network elements;
  • the second memory 1002 is used to store computer programs that can run on the second processor 1003;
  • the second processor 1003 is configured to execute the encoding method described by the encoder when running the computer program.
  • the hardware function of the second memory 1002 is similar to that of the first memory 802, and the hardware function of the second processor 1003 is similar to that of the first processor 803; details will not be described here.
  • the method can be applied to the decoder by determining the plane mode of the point cloud to enable the logo and the geometric encoding information of the point cloud; when decoding the geometric encoding information of the node of the current node layer, if the current node layer If the plane mode enable flag corresponding to the level is the first preset value, the plane decoding mode is used to decode the nodes of the current node layer. In this way, since the plane mode enabling flag can be obtained during decoding, it can be determined whether the current node layer uses the plane decoding mode for decoding through the plane mode enabling flag, which reduces the time required for calculating the plane coding mode qualification value of the current node layer at the decoder side. The process reduces the computational complexity of decoding and improves the decoding gain at the same time.
  • the method can also be applied to the encoder, by obtaining the geometric information of the point cloud; determining the qualification value of the plane coding mode corresponding to the current node layer; if the qualification value of the plane coding mode corresponding to the current node layer is the third preset value, then determine to use
  • the plane encoding mode encodes the nodes in the current node layer, and generates a plane mode enabling flag corresponding to the level of the current node layer. In this way, the encoder determines the plane coding mode qualification value corresponding to the current node layer of the point cloud corresponding to the geometric information, which saves the process of determining the plane coding mode qualification value for each node, thereby helping to reduce the computational complexity of coding , while increasing the coding gain.

Abstract

本申请实施例公开了一种编码方法、解码方法、编码器、解码器及存储介质,该方法应用于解码器时,包括:确定点云的平面模式使能标识和点云的几何编码信息;当解码当前节点层的节点的几何编码信息时,若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对当前节点层的节点进行解码。该方法应用于编码器时,包括:获取点云的几何信息;确定几何信息对应的当前节点层对应的平面编码模式资格值;若当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对当前节点层中的节点进行编码,并生成当前节点层的层级对应的平面模式使能标识。

Description

编码方法、解码方法、编码器、解码器及存储介质 技术领域
本申请实施例涉及点云编解码技术领域,尤其涉及一种编码方法、解码方法、编码器、解码器及存储介质。
背景技术
随着点云技术的不断发展,点云数据的压缩编码成为重要的研究问题。目前,国内数字音视频编解码技术标准工作组(Audio Video coding Standard Workgroup of China,AVS)和国际标准化组织中的运动图像专家组(Moving Picture Experts Group,MPEG)均在制订点云编码的标准,例如基于几何信息的点云压缩编解码(Geometry-based Point Cloud Compression,G-PCC)。如何进一步提高点云编解码的性能是亟待解决的问题。在基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC)编码器框架中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的。几何编码完成后,对几何信息进行重建,而属性信息的编码将依赖于重建的几何信息。
目前,在基于八叉树的几何信息编码过程中,将包围盒八等分为8个子立方体,并记录子立方体的占位比特(1为非空,0为空),对非空的子立方体继续进行八等分,通常划分得到的叶子节点为1x1x1的单位立方体时停止划分。在这个过程中,利用节点与周围节点的空间相关性,对占位比特进行intra prediction(帧内预测),最后进行基于上下文模型的自适应二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC),生成二进制码流。基于上下文模型的自适应二进制算术编码,生成二进制码流的过程中,需要判断当前节点是否有足够的资格使用平面编码模式,主要是考虑节点的局部占据密度和采用某方向(x、y或z)平面编码模式的节点的占比大于预设的相应阈值(对应x、y或z方向共3个阈值)的方式来进行判断。
然而,节点的局部占据密度以及已经采用平面编码模式的节点的占比两个变量的实时更新,会造成大量的计算复杂度。此外,多个阈值设置加大了最优化的难度,从而无法更好的利用平面编码模式带来更多的编码增益。
发明内容
本申请实施例提供一种编码方法、解码方法、编码器、解码器及存储介质,能够降低编解码的计算复杂度,同时提高编解码增益。
本申请实施例的技术方案可以如下实现:
第一方面,本申请实施例提供了一种解码方法,应用于解码器,该方法包括:
确定点云的平面模式使能标识和点云的几何编码信息;
当解码当前节点层的节点的几何编码信息时,若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对所述当前节点层的节点进行解码。
第二方面,本申请实施例提供了一种编码方法,应用于编码器,该方法包括:
获取点云的几何信息;
确定几何信息对应的当前节点层对应的平面编码模式资格值;
若所述当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对所述当前节点层中的节点进行编码,并生成当前节点层的层级对应的平面模式使能标识。
第三方面,本申请实施例提供了一种解码器,包括:
第一确定部分,被配置为确定点云的平面模式使能标识和点云的几何编码信息;
解码部分,被配置为当解码当前节点层的节点的几何编码信息时,若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对所述当前节点层的节点进行解码。
第四方面,本申请实施例提供了一种解码器,包括:
获取部分,被配置为获取点云的几何信息;
第二确定部分,被配置为确定几何信息对应的当前节点层对应的平面编码模式资格值;
编码部分,被配置为若所述当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面 编码模式对所述当前节点层中的节点进行编码,并生成当前节点层的层级对应的平面模式使能标识。
第五方面,本申请实施例提供了一种解码器,该解码器包括第一存储器和第一处理器,其中,
第一存储器,用于存储能够在第一处理器上运行的计算机程序;
第一处理器,用于在运行计算机程序时,执行如第一方面所述的方法。
第六方面,本申请实施例提供了一种编码器,该编码器包括第二存储器和第二处理器,其中,
第二存储器,用于存储能够在第二处理器上运行的计算机程序;
第二处理器,用于在运行计算机程序时,执行如第二方面所述的方法。
第七方面,本申请实施例提供了一种计算机可读存储存储介质,该计算机可读存储介质存储有计算机程序,计算机程序被第一处理器执行时实现如第一方面所述的解码方法、或者被第二处理器执行时实现如第二方面所述的编码方法。
本申请实施例提供了一种编码方法、解码方法、编码器、解码器及存储介质,该方法可以应用于解码器,通过确定点云的平面模式使能标识和点云的几何编码信息;当解码当前节点层的节点的几何编码信息时,若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对当前节点层的节点进行解码。这样,由于解码时可以获取平面模式使能标识,通过平面模式使能标识就可以确定出当前节点层是否采用平面解码模式进行解码,减少了解码器端的当前节点层的计算平面编码模式资格值的过程,降低了解码的计算复杂度,同时提高解码增益。该方法还可以应用于编码器,通过获取点云的几何信息;确定几何信息对应的当前节点层对应的平面编码模式资格值;若当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对当前节点层中的节点进行编码,并生成当前节点层的层级对应的平面模式使能标识。这样,编码器确定点云的当前节点层对应的平面编码模式资格值,省去了为每一个节点确定平面编码模式资格值的过程,从而能够有助于降低编码的计算复杂度,同时提高编码增益。
附图说明
图1为本申请实施例提供的示例性的八叉树结构的一个示意图;
图2为本申请实施例提供的示例性的八叉树结构的立方体一个示意图;
图3为本申请实施例提供的一种G-PCC编码的流程框图;
图4为本申请实施例提供的一种G-PCC解码的流程框图;
图5A为本申请实施例提供的一种解码方法的流程图一;
图5B为本申请实施例提供的一种解码方法的流程图二;
图6为本申请实施例提供的一种编码方法的流程图一;
图7为本申请实施例提供的一种编码方法的流程图二;
图8为本申请实施例提供的一种解码方法的流程图三;
图9为本申请实施例提供的一种解码器的组成结构示意图;
图10为本申请实施例提供的一种解码器的硬件结构示意图;
图11为本申请实施例提供的一种编码器的组成结构示意图;
图12为本申请实施例提供的一种编码器的硬件结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
本申请适用于点云数据压缩技术领域。首先,对本申请实施例涉及的相关术语进行说明。
1)点云(point cloud),是物体表面的三维(3D)表现形式,可以指海量三维点的集合。每个点都具有关联的属性,例如颜色、材质特性等。示例性的,可以利用点云,将对象或场景重构为点的组合。点云中的点可以包括点的几何信息和点的属性信息。作为示例,点的几何信息可以是点的三维坐标信息,例如可以由笛卡尔坐标系,或者任意坐标系中的(x,y,z)表示。点的几何信息也可称为点的位置信息。作为示例,这些点可能具有例如颜色等关联的属性信息,例如红绿蓝(Red-Green-Blue,RGB)或(Luminance-Chrominance,YUV)三分量值等,其他的属性信息可包括透明度、反射率法线矢量等,本申请实施例不做限定。
点云可以是静态或者动态的。例如,对物体或地形的详细扫描或映射可以是静态点云数据,用于机器视觉用途的环境扫描可以是动态点云数据。因为动态点云数据随时间而变化,因此动态点云可以是按 照时间排序的点云序列。
点云可以应用到各个领域,例如,虚拟/增强现实、机器视觉、地理信息系统、医学领域等。通过光电雷达、激光雷达、激光扫描仪、多视角相机等采集设备,可以采集得到物体表面的点云。点云中点的数量较大,例如可达数十亿,因而点云的原始数据量特别巨大,因此,需要有效的压缩技术,即编码和解码处理以减少点云数据量。
2)点云的树结构,可以在对点云进行编码或解码过程中表征点云的几何信息的划分结果。在基于树结构的点云划分过程中,将点云的体空间递归划分为子体,相应的该体空间对应于树结构的根节点,各子体对应于树结构的节点。示例性的,可以基于子体中是否包含点来确定是否进一步划分子体。各节点可以具有占位比特,指示节点对应的子体是否包含点。可选的,可以对这些占位比特进行算术编码,得到二进制码流。
作为示例,树结构可以是八叉树(octree)。在点云的八叉树结构中,体空间或子体都是立方体,并且每次分割都会进一步产生八个子体/子立方体。图1示出了八叉树结构的一个示意图。如图1所示,节点10可以为根节点,可以对应于完整点云的体空间,例如正方体。节点10对应的体空间可以被分割为8个子体,每个子体对应虚线框20中的一个节点。节点10为虚线框20中的节点的父节点,相应的虚线框20中的节点为节点10的子节点,各子节点之间可以互称为兄弟节点。如图1所示,节点10的子节点(即虚线框20中的节点)中,可以包括包含点的节点,其占位比特为1,表示该节点对应的子体中包含点。在一些实施例中,占位比特为1的节点也可以称为占据节点,本申请对此不作限定。节点10的子节点还可以包括不包含点的节点,其占位比特为0,表示该节点对应的子体中不包含点,即该子体为空。父节点可以通过其子节点的占位比特表示,例如节点10可以表示为“00001001”的二进制形式,指示子节点21和22的占位比特为1。
示例性的,虚线框20中的占位比特为1的节点,例如节点21和22,对应的子体可以进一步被分割为8个子体。相应的,节点21和22分别为各自对应的子体进一步分割的8个子体对应节点的父节点,该进一步分割的8个子体为子节点,例如虚线框30中的各节点。类似的,节点21可以表示为“01001000”的二进制形式,指示子节点31和32的占位比特为1;节点22可以表示为“001000000”的二进制形式,指示子节点33的占位比特为1。可选的,可以对这些占位比特进行算术编码,得到二进制码流。
在一些可选的实施例中,节点10还可以为子体对应的节点,即图1中的八叉树结构可以为完整点云对应的八叉树结构的一部分,本申请对此不作限定。
在一些可选的实施例中,八叉树结构中具有相同深度的节点可以构成一个节点层。八叉树结构可以包括至少两个节点层,每个节点层可以包括至少一个节点,每个节点可以对应一个子体。
作为示例,参见图1,当节点10为根节点时,虚线框20中的各节点的深度值为1,属于一个节点层,可以简称为层。示例性的,虚线框20对应的该节点层可以为该八叉树结构的第0层。类似的,虚线框30中的各节点的深度值为2,属于一个节点层。示例性的,虚线框30对应的该节点层可以为该八叉树结构的第1层。当虚线框30中的节点对应的子体进一步被分割时,该八叉树结构可以具有更大的深度的节点,对应更多的节点层。以此类推,随着节点的深度值增大,各节点层的层数依次增大。
3)上下文建模,可以得到八叉树结构中各节点对应的上下文信息。图2示出了八叉树划分产生的8个子节点(即子节点0~7)相对其父节点(即当前节点)的空间位置示意图。在当前节点编码8位空间占位码时,可以获得同一层的邻居参考信息,例如包括左、前、下三个方向(例如坐标系中x、y、z轴的负方向)的邻居子节点的占位信息。示例性的,对于当前节点的不同位置的子节点,可以将与其同层的3个共面、3个共线以及1个共顶点中的至少一个邻居作为参考节点。对于待编码节点,其同层的参考节点的占位情况可以分别对应1个上下文信息。
下面,结合图3和图4对本申请实施例的可适用的用于点云压缩的编解码框架进行说明。
图3是本申请实施例提供的编码器100的示意性框图。示例性的,该编码器100可以为G-PCC编码器。
在本申请实施例中,在点云G-PCC编码器框架中,将输入三维图像模型的点云进行slice划分后,对每一个slice进行独立编码。
参见图3,其示出了相关技术方案提供的一种G-PCC编码的流程框图。如图3所示的G-PCC编码的流程框图中,应用于点云编码器(即编码器),针对待编码的点云数据,首先通过slice划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的。在几何编码过程中,对几何信息进行坐标转换,使点云全都包含在一个bounding box(包围盒)中,然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点云的几何信息相同,于是在基于参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。接着对bounding box进行八叉树划分。根据八叉树划分层级深度的不同,几何信息的编码可以分为基于八叉树 的编码和基于三角面片集(triangle soup,trisoup)的编码。
在基于八叉树的编码过程中,可以将包围盒八等分为8个子立方体,并记录子立方体的占位比特。其中,子立方体的占位比特为1表示该子立方体为非空,换言之该子立方体被点云中的点占据,即该子立方体包含点云中的点。子立方体的占位比特为0表示子立方体为空,换言之该子立方体没有被点云中的点占据,即该子立方体不包含点云中的点。进一步的,对非空的子立方体继续进行八等分。示例性的,可以在划分得到的叶子节点为1x1x1的单位立方体时停止划分。
示例性的,子立方体可以称为子体,即对包围盒或体空间进行划分得到的。在该八叉树中,包围盒可以称为根节点,各子立方体可以称为该根节点的子节点。
在八叉树的划分过程中,可以利用节点与周围节点的空间相关性,对占位比特进行帧内预测(帧内预测)。然后可以进行上下文建模,得到节点的上下文信息,并基于上下文信息进行算术编码(例如自适应二进制算术编码),生成二进制码流,即几何码流。
在基于trisoup的编码过程中,同样也要进行八叉树划分。与基于八叉树的编码过程不同的是,在基于trisoup的编码过程中,不需要将点云逐级划分到边长为1x1x1的单位立方体,而是划分到块(block)边长为W时停止划分。基于每个block中点云的分布所形成的表面,得到该表面与block的十二条边所产生的至多十二个交点(vertex)。依次编码每个block的vertex坐标,生成二进制码流,即几何码流。
在属性编码过程中,几何编码完成,对几何信息进行重建后,进行颜色转换,将颜色信息(即属性信息)从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。属性编码主要针对颜色信息进行,在颜色信息编码过程中,主要有两种变换方法,一是依赖于细节层次(Level of Detail,LOD)划分的基于距离的提升变换,目前划分LOD主要分为基于距离进行划分LOD(主要针对Category1序列)和基于固定采样率进行划分LOD(主要针对Category3序列)等两种方式;二是直接进行区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT)的变换。其中,这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化(即量化系数),最后,将经过八叉树划分及表面拟合的几何编码数据与量化系数处理属性编码数据进行slice合成后,依次编码每个block的vertex坐标(即算数编码),生成二进制的属性比特流,即属性码流。
可选的,在属性信息的编码过程中,可以采用莫顿码对点云进行排序,并利用几何空间关系搜索待编码点(也可以称为待预测点)的最近邻,利用找到的邻点的重建属性值对待编码点进行插值预测,得到预测属性值,然后可以将真实属性值和预测属性值进行差分运算得到预测残差,最后对预测残差进行量化以及算术编码,得到二进制码流。
参见图4,其示出了相关技术方案提供的一种G-PCC解码的流程框图。如图4所示的G-PCC解码的流程框图中,应用于点云解码器(即解码器),针对所获取的二进制码流,首先对二进制码流中的几何比特流和属性比特流分别进行独立解码。在对几何比特流的解码时,通过上下文建模-算术解码-八叉树合成-表面拟合-重建几何-逆坐标转换,得到点云的几何信息;在对属性比特流的解码时,通过算术解码-反量化-基于LOD的提升逆变换或者基于RAHT的逆变换-逆颜色转换,得到点云的属性信息,基于几何信息和属性信息还原待编码的slice,最后进行slice合并得到点云数据的三维图像模型。
在点云的编解码涉及的上下文建模过程中,可以根据节点的上下文信息,判断当前节点是否有资格使用平面编码模式进行编码。相关方案中,在满足以下两个条件时,可以确定当前节点有资格使用平面编码模式:
1、节点的局部占据密度(Occupancy Density)大于预设的阈值;
2、已经采用某方向(x、y或z轴)平面编码模式的节点的占比大于预设的相应阈值。例如,对应于x、y或z轴方向,分别对应3个方向的阈值。
对于八叉树中的每个节点,均实时更新八叉树结构中的每个节点的局部占据密度,以及已经采用了某方向(x、y或z轴)平面编码模式的节点的占比两个变量。
例如,可以根据该节点的父节点中占据节点的个数(numSibling),即该节点的另外7个兄弟节点和该节点本身在内的8个节点中占据节点的个数,对该节点的局部占据密度进行更新。具体可以如下公式(1)所示:
OccupancyDensity=(255*OccupancyDensity+1024*numSiblings+128)>>8        (1)
其中,等式左侧OccupancyDensity的表示当前节点的更新后的局部占据密度值,等式右侧的OccupancyDensity表示在对当前节点更新之前的局部占据密度值,例如可以为对上一个节点实时更新后的局部占据密度值。
因此,对八叉树结构中的每个节点的局部占据密度,以及已经采用了某方向(x、y或z轴)平面编码模式的节点的占比两个变量进行更新,这带来了大量的计算复杂度。此外,上述两个条件共设置了 4个阈值,这进一步加大了计算难度,导致编码增益较低。
本申请实施例提供了一种编码方法,通过确定点云的几何信息的树结构中的节点层对应的平面编码模式资格值,并根据该节点层对应的平面编码模式资格值,确定是否采用平面编码模式对该节点层中的节点(例如当前节点)进行编码。本申请实施例通过确定点云的几何信息对应的树结构中的节点层对应的平面编码模式资格值,省去了为树结构中的每一个节点确定平面编码模式资格值的过程,从而能够有助于降低编码的计算复杂度,同时提高编码增益。
本申请实施例还提供了一种解码方法,与上述编码方法对应,具体的可以通过直接确定平面模式使能标识,就可以确定出当前节点是否采用平面解码模式进行解码。本申请实施例通过确定点云的几何信息对应的树结构中的节点层是否可以进行平面解码模式,省去了为树结构中的每一个节点确定平面解码模式资格值的过程,从而能够有助于降低解码的计算复杂度,同时提高解码增益。
下面将结合附图对本申请各实施例进行详细说明。
参见图5A,其示出了本申请实施例提供的一种解码方法的流程示意图,该方法应用于解码器(也可以称为点云解码器),作用在图4中的上下文建模的部分,该方法可以包括:
S1、确定点云的平面模式使能标识和点云的几何编码信息。
S2、当解码当前节点层的节点的几何编码信息时,若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对当前节点层的节点进行解码。
在本申请实施例中,待解码点表示点云中待解码对象的点云数据中的点或者节点。由于编码器在编码时,通过对点云数据进行空间划分,可以得到多个条带,即slice。对每个slice中的点云均进行本申请实施例提供的编码方法或解码方法。因此,解码器在解码时,对每个slice中的点云进行解码,最后再进行slice得到全部的解码信息,进而得到三维图像模型。
在本申请实施例中,针对每个slice,解码器可以获取点云的几何信息对应的树结构,例如八叉树结构的相关信息,进而获得点云的几何信息的树结构,例如八叉树结构。
在一些可选的实施例中,解码器可以获取编码端(例如编码器)发送的点云的点数、八叉树结构的相关信息,例如层数、每层的节点信息等,这些信息可以与二进制码流一起发送给解码器。示例性的,点云的点数、八叉树结构的相关信息可以包括在头文件中传输,本申请实施例对此不作限定。
在本申请实施例中,针对每个slice的点云的树结构可以包括至少两个节点层,每个节点层可以包括至少一个节点。
示例性的,可以对点云对应的体空间进行分割,得到该树结构,该体空间对应该树结构的根节点,对该体空间进行分割得到的子体对应该树结构中的节点。详细的,该树结构可以参见上文中图1和图2的描述,这里不再赘述。
示例性的,编码器100对点云的几何信息进行坐标转换、体素化和八叉树划分,获取该点云的几何信息的八叉树结构,该八叉树结构可以包括至少一个节点层,例如依次为第0层、第1层…第M层等,其中M为大于1的正整数。
需要说明的是,该八叉树结构可以对应基于八叉树的编码过程中的进行八叉树划分得到的树结构,也可以对应基于trisoup的编码过程中的进行八叉树划分得到的树结构,本申请对此不作限定。
在本申请实施例中,解码器可以确定节点层对应的平面模式使能标识,从而可以直接根据平面模式使能标识就确定是否对当前节点层的节点进行平面解码模式的解码了。解码器获取点云(一个slice)的几何编码信息,当解码当前节点层的节点的几何编码信息时,若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对当前节点层的节点进行解码。若当前节点层的层级对应的平面模式使能标识为第二预设值,则不采用平面解码模式对当前节点层的节点进行解码。
在本申请的一些实施例中,平面模式使能标识表示的是节点层是否允许采用平面解码模式的。可采用不同的值表示允许还是不允许。平面模式使能标识为第一预设值时,表征当前节点层允许采用平面解码模式;平面模式使能标识为第二预设值时,表征当前节点层不允许采用平面解码模式。
示例性的,第一预设值可以为1,第二预设值可以为0。本申请实施例不作限制。
在本申请的一些实施例中,解码器确定点云的平面模式使能标识可以采用以下两种方式:
方式一,解码器从码流中解析得到当前节点层的层级对应的平面模式使能标识。
方式二,解码器解析码流,获取点云的平面模式使能层级;平面模式使能层级表征平面模式开始使能的最小深度层级。若当前节点层的层级大于或者等于平面模式使能层级,则确定当前节点层的层级对应的平面模式使能标识为第一预设值。
也就是说,平面模式使能标识可以是编码器在编码每个节点层的时候同时生成的,传输给解码器的。
需要说明的是,节点层的层级对应的平面模式使能标识可以在一个slice编码完成时,将所有节点层的平面模式使能标识以数组形式编码为slice级的标识,写入码流,也可以作为每个节点层的层级标 识写入码流,本申请实施例不作限制。
可以理解的是,由于解码时可以获取平面模式使能标识,通过平面模式使能标识就可以确定出当前节点层是否采用平面解码模式进行解码,减少了解码器端的当前节点层的计算平面编码模式资格值的过程,降低了解码的计算复杂度,同时提高解码增益。
另外,解码器也可以是编码端将平面模式开始使能的最小深度层级(平面模式使能层级)编码传给解码器的,这样解码器就可以根据平面模式使能层级,来确定平面模式使能标识了。
需要说明的是,在本申请实施例中,解码器可以从码流中获取到点云的平面模式使能层级,平面模式使能层级表征点云中平面模式开始使能的最小深度层级。平面模式使能层级指示了可以进行平面解码模式的开始的层级的层数。
在本申请的一些实施例中,当解码当前节点层的节点时,若当前节点层的层级小于平面模式使能层级,则确定点云的平面模式使能标识为第二预设值。
在本申请实施例中,可以采用planar_mode_min_octree_depth_minus1来表示平面模式使能层级,本申请实施例不作限制。
在本申请的一些实施例中,解码器在对当前节点层的节点进行平面解码模式解码后,还可以对当前节点层的节点采用点位置直接解码模式或者占用比特解码模式进行解码,以便完成解码过程。解码器对不采用平面解码模式的节点,也同样需要进行采用点位置直接解码模式或者占用比特解码模式进行解码。
需要说明的是,针对一个节点,采用点位置直接解码模式或者占用比特解码模式进行解码是需要二选一来实现的。
在本申请的一些实施例中,若当前节点层的层级对应的平面模式使能标识为第一预设值,则允许对节点在第k轴方向上采用平面解码模式进行解码;其中,k表征坐标分量。若当前节点层的层级对应的平面模式使能标识为第二预设值,则不允许对节点在第k轴方向上采用平面解码模式进行解码。
在本申请的一些实施例中,采用节点的第k轴的平面解码模式资格值表示是否对节点在第k轴方向上采用平面解码模式进行解码。
在一些可选的实施例中,若当前节点层的层级对应的平面模式使能标识为第一预设值,且当前节点层的节点满足以下至少一种条件,则确定在第k轴方向采用平面解码模式对该节点进行解码。其中,至少一种条件为:节点的平面解码模式已使能;节点占用树节点的第k轴已解码;节点为非叶子节点。
需要说明的是,在本申请实施例中,解码器可以采用节点的第k轴的平面解码模式资格值表示是否允许对节点采用平面解码模式进行解码。
在本申请实施例中,可以采用PlanarEligible[k]表示节点的第k轴的平面解码模式资格值。示例性的,PlanarEligible[k]=1表征确定在第k轴方向采用平面解码模式对该节点进行解码,即允许;PlanarEligible[k]=0,表征确定在第k轴方向不采用平面解码模式对该节点进行解码,即不允许。
若当前节点层的层级大于或者等于平面模式使能层级,则确定当前节点层的层级对应的平面模式使能标识为第一预设值,进而确定PlanarEligible[k]为1。
需要说明的是,编码时,平面模式使能标识可以是采用节点层的平面编码资格值直接赋值,也可以自行生成,本申请实施例不作限制,其中,PlanarEligible[k]可以基于节点层的平面编码资格值直接赋值planarEligibleKOctreeDepth或平面模式使能标识来确定,本申请实施例不作限制。其中,该平面编码资格值可以采用planarEligibleKOctreeDepth表示。节点层的平面编码资格值是在编码时确定的,将在后面实施例中进行说明。
需要说明的是,k可以采用0,1,2来代表不同的坐标分量x、y、z。
示例性的,可以通过PlanarEligible[k]=1来表示在第k轴方向采用平面解码模式对节点进行解码。示例性的,可以根据“平面解码模式已使能&占用树节点的第k轴已解码&该节点非叶子节点”确定PlanarEligible[k]的值,并根据PlanarEligible[k]的值,判断在第k轴方向是否采用平面解码模式对第j个节点进行解码。当PlanarEligible[k]=1时,则对该j个节点进入第k轴方向的平面解码模式进行解码。
可以理解的是,由于解码器可以直接从码流中解析平面模式使能层级,进而直接判断当前节点层是否进行平面解码模式的解码,因此,减少了解码自行进行当前节点层的是否进入平面解码模式的计算,减少了计算复杂度。
需要说明的是,本申请实施例提供的解码方法中,解码器还可以只通过解析平面模式使能层级来直接判断是否进行平面解码模式,如图5B所示,下面以解码的节点为当前节点层的当前节点为例进行说明。
S101、解析码流,获取点云的平面模式使能层级和点云的树结构;其中,树结构包括节点层,一个节点层包括至少一个节点;平面模式使能层级表征平面模式开始使能的最小深度层级。
S102、当解码当前节点层的当前节点时,若当前节点层的层级大于或者等于平面模式使能层级,则允许对当前节点层采用平面解码模式进行解码。
S103、采用平面解码模式对当前节点层中的当前节点进行解码。
在解码过程中,解码器是对每个节点层的每个节点依次进行解码的。解码器在解码当前节点层的当前节点时,判断当前节点层的层级与平面模式使能层级的大小,当前节点层的层级大于或者等于平面模式使能层级时,由于平面模式使能层级是开始进行平面解码模式的层级,那从平面模式使能层级指示的节点层的层级开始,后面的层级均可进入平面解码模式,因此,表征当前节点层可以采用平面解码模式进行解码,所以允许对当前节点采用平面解码模式进行解码。这样,解码器就可以采用平面解码模式对当前节点层中的当前节点进行解码了。
在本申请的一些实施例中,若当前节点层的层级大于或者等于平面模式使能层级,则允许对当前节点在第k轴方向上采用平面解码模式进行解码;其中,k表征坐标分量。解码器在第k轴方向上,采用平面解码模式对当前节点层中的当前节点进行解码。
在一些可选的实施例中,若当前节点层的层级大于或者等于平面模式使能层级,且当前节点满足以下至少一种条件,则确定在第k轴方向采用平面解码模式对该当前节点进行解码。其中,至少一种条件为:当前节点的平面解码模式已使能;当前节点占用树节点的第k轴已解码;当前节点为非叶子节点。
也就是说,解码器在允许对当前节点采用平面解码模式进行解码前,还需要确定当前节点满足当前节点的平面解码模式已使能、当前节点占用树节点的第k轴已解码、以及当前节点为树结构中的非叶子节点中的至少一种。
可以理解的是,由于解码器可以直接从码流中解析平面模式使能层级,进而直接判断当前节点层是否进行平面解码模式的解码,因此,减少了解码自行进行当前节点层的是否进入平面解码模式的计算,减少了计算复杂度。
在本申请的一些实施例中,本申请实施例提供的解码方法还可以包括:
S104、在解码当前节点层的当前节点时,若当前节点层的层级小于平面模式使能层级,则不允许对当前节点采用平面解码模式解码。
在本申请实施例中,若当前节点层的层级小于平面模式使能层级,则不允许对当前节点在第k轴方向上采用平面解码模式进行解码。
由于平面模式使能层级是开始进行平面解码模式的层级,那从平面模式使能层级指示的节点层的层级开始,后面的层级均可进入平面解码模式,因此,当前节点层的层级小于平面模式使能层级,即在平面模式使能层级对应的节点层级之前的节点层级,不允许对当前节点采用平面解码模式进行解码,因此,表征不允许对当前节点采用平面解码模式解码。
在本申请实施例中,若当前节点层的层级小于平面模式使能层级,则不允许对当前节点在第k轴方向上采用平面解码模式进行解码。
示例性的,若当前节点层的层级小于平面模式使能层级,则确定PlanarEligible[k]为0。
在本申请的一些实施例中,在解码当前节点时,在当前节点层的层级小于平面模式使能层级时,还可以采用S105-S108的方法确定是否允许对当前节点层采用平面解码模式解码。如下:
S105、确定点云中当前节点层之前的节点层中使用点位置直接解码模式的点数。
S106、确定当前节点层的上一层节点层对应的第一占据子节点个数,其中,第一占据子节点个数为上一层节点层中采用占用比特解码模式进行解码的节点的占据子节点的总个数。
S107、根据点云中的点的数量、使用点位置直接解码模式的点数、第一占据子节点个数,确定当前节点层的点云密度。
S108、根据当前节点层的点云密度,确定是否允许对当前节点层采用平面解码模式解码。
在本申请实施例中,解码器确定该当前节点层的点云密度,以及根据该当前节点层的点云密度,确定该当前节点层的平面解码模式资格值。示例性的,对于八叉树结构的第i=1,2,3…等节点层,可以根据节点层的点云密度,来确定该节点层的平面解码资格值(与编码时的平面编码资格值对应,即planarEligibleKOctreeDepth)。
在本申请的一些实施例中,作为确定当前节点层的点云密度的一种可能的实现方式,可以确定该点云中该当前节点层之前的节点层中使用点位置直接解码模式的点数(numPointsCodedByIdcm),以及确定该当前节点层的上一层节点层对应的当前占据子节点个数(numSubnodes),其中,当前占据子节点个数为该上一层节点层中采用占用比特解码模式进行解码的节点的占据子节点的总个数,然后,根据该点云中的点的数量(numPoints)、该使用点位置直接解码模式的点数、该当前占据子节点个数,确定当前节点层的点云密度(可采用realDensity表示)。
其中,该当前节点层之前的节点层可以包括该当前节点层之前的所有节点层。例如,当当前节点层 为第3层节点层时,该当前节点层之前的节点层包括第0层、第1层和第2层。而此时,该当前节点层的上一层节点层为第2层节点层。
示例性的,解码器根据该点云中的点的数量(numPoints)、该使用点位置直接解码模式的点数、该当前占据子节点个数,确定当前节点层的点云密度(可采用realDensity表示)如公式(2)所示:
realDensity=(numPoints-numPointsCodedByIdcm)/numSubnodes     (2)
需要说明的是,假设当前节点层为第i层,在确定第i层的realDensity时,该当前占据子节点个数为第(i-1)层节点层中采用占用比特解码模式进行解码的节点的占据子节点的总个数,例如可以为进入八叉树第(i-1)层时的numSubnodes。
在一些可选的实施例中,若对当前节点层中的节点采用点位置直接解码模式解码,则更新该使用点位置直接解码模式的点数的值。示例性的,这里的采用点位置直接解码模式的节点包括当前节点层中的进入平面解码模式进行了解码的节点,以及没有进入平面解码模式进行了解码的节点,本申请对此不作限定。
示例性的,该使用点位置直接解码模式的点数可以表示为numPointsCodedByIdcm。
需要说明的是,在对树结构中的当前层节点层中的节点进行解码之前,初始化使用点位置直接解码模式的点数。示例性的,可以初始化numPointsCodedByIdcm=0。
在一些可选的实施例中,若对当前节点层中的节点采用占用比特解码模式进行解码,则更新该当前节点层对应的第二占据子节点个数,其中,该第二占据子节点个数为当前节点层中采用占用比特解码模式进行解码的节点的占据子节点个数。示例性的,这里的采用占用比特解码模式的节点包括当前节点层中的进入平面解码模式进行了解码的节点,以及没有进入平面解码模式进行了解码的节点,本申请对此不作限定。
需要说明的是,该第二占据子节点个数为第i层节点层中采用占用比特解码模式进行解码的节点的占据子节点的总个数,例如可以为进入八叉树第i层时的numSubnodes。其中,该第二占据子节点个数可以用于确定第(i+1)层的realDensity。
在一些可选的实施例中,在对该第一节点层中的节点解码之前,初始化该第二占据子节点个数。示例性的,可以初始化第i层的numSubnodes=0。
在本申请实施例中,若点云密度小于预设阈值,则确定允许对当前节点采用平面解码模式解码;若点云密度大于或等于预测阈值,则确定不允许对当前节点采用平面解码模式解码。
在一些可选的实施例中,作为根据当前节点层的点云密度,确定当前节点层的平面解码模式资格值的一种可能的实现方式如公式(3)所示,若点云密度小于预设阈值,则确定平面解码模式资格值表示采用平面解码模式对当前节点进行解码,可以通过将planarEligibleKOctreeDepth值1,即planarEligibleKOctreeDepth=1,即可以采用平面解码模式对所述当前节点进行解码;若点云密度大于或等于预测阈值,则确定平面解码模式资格值表示不采用平面解码模式对当前节点进行解码,可以通过将planarEligibleKOctreeDepth值0,即planarEligibleKOctreeDepth=0,即不可以采用平面解码模式对所述当前节点进行解码。
在一些可选的实施例中,预设阈值大于或等于1。例如,设置该预设阈值为1.3。
其中,公式(3)如下:
Figure PCTCN2022075269-appb-000001
在本申请的一些实施例中,S103或S104之后,上述方法还包括:S109或者S1010。如下:
S109、对当前节点采用点位置直接解码模式解码。
S1011、对当前节点占用比特解码模式进行解码。
在本申请实施例中,解码器对当前节点采用点位置直接解码模式解码,或者,解码器对当前节点占用比特解码模式进行解码;接着,继续进行下一个节点的解码(即开始进行下一个节点的平面解码模式,然后进行点位置直接解码模式或占用比特解码模式解码),直至当前节点层解码完成时为止,继续进行下一个节点层的解码,直至所有节点层解码完成时为止。
在本申请的一些实施例中,解码器还可以先进行当前节点层的层级与平面模式使能层级进行比较,在大于或者等于平面模式使能层级时,再根据当前节点层的平面模式使能标识,确定当前节点层是否进行平面解码模式的解码。当前节点层的层级与平面模式使能层级的比较,结合当前节点层的平面模式使能标识共同判断当前节点层是否进行平面解码模式的解码的方式可任意组合,本申请实施例不作限制。
示例性的,解码过程如下:
1、解码获取当前点云片(slice)中的参数planar_mode_max_octree_depth_minus1(平面模式开始使能的最小八叉树深度层级。
2、进入八叉树第i层(i最小值为0)。
3、读取第j个节点(j最小值为0),当该节点满足平面解码模式已使能、占用树节点的第k轴(k取值0,1,2)已编码、该节点非叶子节点这3个条件时,如果i>或=planar_mode_max_octree_depth_minus1,则设PlanarEligible[k]=1(当前节点的第k轴方向的平面解码模式资格值);否则,PlanarEligible[k]=0。第k轴方向的平面解码模式资格值为1的进入平面解码模式。
4、第j个节点经过平面解码模式后,如果该节点满足点位置直接解码码模式,则直接解码该节点中点的位置信息;否则该节点采用占用比特解码模式,对该节点的8个子节点的占位信息进行二进制解码。
5、跳到步骤3读取下一个节点,当八叉树第i层的所有节点都已解码完成时,跳到步骤2进入八叉树的下一层,如果所有层的所有节点都已解码,则结束。
可以理解的是,解码器通过确定点云的树结构中的节点层与平面模式使能层级的层级大小,就可以判断节点层是否可以进行平面解码模式,省去了为树结构中的每一个节点确定平面解码模式资格值的过程,从而能够有助于降低解码的计算复杂度,同时提高解码增益。
参见图6,其示出了本申请实施例提供的一种编码方法的流程示意图,该方法应用于编码器(也可以称为点云编码器),作用在图3中的上下文建模的部分,该方法可以包括:
S201、获取点云的几何信息。
在本申请实施例中,编码器在编码时,通过对点云数据进行空间划分,可以得到多个条带,即slice。对每个slice中的点云均进行本申请实施例提供的编码方法。
在本申请实施例中,针对每个slice,解码器可以获取点云的树结构,例如八叉树结构的相关信息,进而获得点云的几何信息的树结构,例如八叉树结构。
在本申请实施例中,针对每个slice的点云的树结构可以包括至少两个节点层,每个节点层可以包括至少一个节点。
示例性的,可以对点云对应的体空间进行分割,得到该树结构,该体空间对应该树结构的根节点,对该体空间进行分割得到的子体对应该树结构中的节点。详细的,该树结构可以参见上文中图1和图2的描述,这里不再赘述。
示例性的,编码器100对点云的几何信息进行坐标转换、体素化和八叉树划分,获取该点云的几何信息的八叉树结构,该八叉树结构可以包括至少一个节点层,例如依次为第0层、第1层…第M层等,其中M为大于1的正整数。
需要说明的是,该八叉树结构可以对应基于八叉树的编码过程中的进行八叉树划分得到的树结构,也可以对应基于trisoup的编码过程中的进行八叉树划分得到的树结构,本申请对此不作限定。
S202、确定几何信息对应的当前节点层对应的平面编码模式资格值。
在本申请实施例中,编码器可以以节点层为单位,确定该节点层对应的平面编码模式资格值。
对当前节点层的节点进行编码过程的描述时,下面采用对当前节点进行编码的过程描述,即对象为当前节点,当前节点指当前节点层中正在编码的一个节点。
在本申请的一些实施例中,可以采用以下两种方式实现:
方式一:编码器确定当前节点层的点云密度;根据当前节点层的点云密度,确定当前节点层对应的平面编码模式资格值。
在本申请的一些实施例中,编码器确定点云中当前节点层之前的节点层中使用点位置直接编码模式的点数;编码器确定当前节点层的上一层节点层对应的第一占据子节点个数,其中,第一占据子节点个数为上一层节点层中采用占用比特编码模式进行编码的节点的占据子节点的总个数;编码器根据点云中的点的数量、使用点位置直接编码模式的点数、第一占据子节点个数,确定当前节点层的点云密度。
在本申请的一些实施例中,编码器根据点云中的点的数量、使用点位置直接编码模式的点数、第一占据子节点个数,确定当前节点层的点云密度的实现可以为:若点云密度小于预设阈值,编码器则确定当前节点层对应的平面编码模式资格值为第三预设值;若点云密度大于或等于预测阈值,编码器则确定当前节点层对应的平面编码模式资格值为第四预设值。
在本申请实施例中,预设阈值大于或等于1。第三预设值表征可进入平面编码模式,例如1。第四预设值表征不可进入平面编码模式,例如0。
需要说明的是,编码器采用方式一确定当前节点层对应的平面编码模式资格值的过程描述和原理与解码器中的S105-S108的描述和原理一致,此处不再赘述。
需要说明的是,当前节点层对应的平面编码模式资格值为第四预设值时,才采用方式一来确定当前节点层对应的平面编码模式资格值。
可以理解的是,编码器采用方式一的处理方式,通过确定点云的几何信息对应的树结构中的节点层对应的平面编码模式资格值,省去了为树结构中的每一个节点确定平面编码模式资格值的过程,从而能够有助于降低编码的计算复杂度,同时提高编码增益。
方式二:若树结构中的当前节点层对应的上一层节点层对应的平面编码模式资格值为第三预设值,编码器则确定当前节点层对应的平面编码模式资格值为第三预设值。
编码器在对每个slice中的非第一节点层进行编码的过程中,可以先确定下上一层节点层对应的的平面编码模式资格值是多少,若树结构中的当前节点层对应的上一层节点层对应的平面编码模式资格值为第三预设值,编码器则可以直接确定当前节点层对应的平面编码模式资格值为第三预设值,不用再进行当前节点层的点云密度的计算了。
也就是说,在编码器编码的过程中,若一旦计算得到的一层节点层对应的平面编码模式资格值为第三预设值,即开始进入平面编码模式,则就将后面将要进行编码的其他节点层均确定为可进入平面编码模式,即确定当前节点层对应的平面编码模式资格值为第三预设值。
可以理解的是,编码器采用方式二的处理方式,比方式一相比,还减少了编码器对每层节点层进行平面编码模式资格值确定的次数和计算,更加降低编码的计算复杂度。
S203、若当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对当前节点层中的节点进行编码,并生成当前节点层的层级对应的平面模式使能标识。
在本申请实施例中,编码器当前节点层对应的平面编码模式资格值为第三预设值时,就直接采用平面编码模式对当前节点层中的当前节点(即节点)进行编码。
在本申请的一些实施例中,若当前节点层对应的平面编码模式资格值为第三预设值,则并且当前节点满足以下至少一种条件,则确定在第k轴方向采用平面编码模式对当前节点进行编码;k为坐标分量;
其中,至少一种条件包括:
当前节点的平面编码模式已使能;
当前节点占用树节点的第k轴已编码;
当前节点为非叶子节点。
需要说明的是,编码器这里的确定在第k轴方向采用平面编码模式对当前节点进行编码的原理与解码器中的确定在第k轴方向采用平面解码模式对当前节点进行解码的原理一致,此处不再赘述。
在本申请的一些实施例中,若当前节点层对应的平面编码模式资格值为第四预设值,则确定不采用平面编码模式对当前节点层中的节点进行编码,并生成当前节点层的层级对应的平面模式使能标识为第二预设值。
需要说明的是,若当前节点层对应的平面编码模式资格值为第三预设值,则生成当前节点层的层级对应的平面模式使能标识为第一预设值。
示例性的的,第一预设值可以为1,第二预设值可以为0。本申请实施例不作限制。
可以理解的是,编码器在通过方式一确定每个节点层的平面编码模式资格值时,还可以基于平面编码模式资格值生成每个节点层的平面模式使能标识传到解码器,供解码器解码时使用。
在本申请的一些实施例中,若当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对当前节点层中的节点进行编码,并将当前节点层的层级作为平面模式使能层级写入码流,供解码器在解析到平面模式使能层级时,对当前节点层进行平面解码模式的解码。
需要说明的是,编码器可以在所有节点层编码完成时,将平面模式使能层级编码写入码流中。
在本申请的一些实施例中,若当前节点层对应的平面编码模式资格值为第三预设值,且当前节点层对应的上一层节点层对应的平面编码模式资格值为第四预设值,则将当前节点层的层级作为平面模式使能层级写入码流。
需要说明的是,编码器可以将平面编码模式资格值为第三预设值的节点层的层级都写入码流供解码器针对对应的每个对应节点层级进行解码时使用。也可以判断下在第一次开始进入平面编码模式时,记录表征平面模式开始使能的最小深度层级,将该平面模式开始使能的最小深度层级作为平面模式使能层级写入码流,本申请实施例不作限制。
可以理解的是,编码器在确定了该平面模式开始使能的最小深度层级时,可以只传输表征平面模式开始使能的最小深度层级作为平面模式使能层级,供解码器解码时使用,减少了传输量。
在本申请的一些实施例中,编码器生成当前节点层的层级对应的平面模式使能标识还可以包括若当前节点的层级作为平面模式使能层级,则生成当前节点层的层级对应的平面模式使能标识为第一预设值。否则,生成平面模式使能标识为第二预设值。
在本申请的一些实施例中,编码器在采用点云密度确定当前节点层对应的平面编码模式资格值时,若当前节点层对应的平面编码模式资格值为第三预设值,且上一层节点层对应的平面编码模式资格值为 第四预设值时,将上一层节点层的层级作为平面模式使能层级写入码流。解码器解码时的一种实现可以为,若当前节点层的层级大于平面模式使能层级,则允许对当前节点采用平面解码模式进行解码;否则,就不允许对当前节点采用平面解码模式进行解码。
在本申请的一些实施例中,编码器在S203之后,或者当前节点层对应的平面编码模式资格值为第四预设值时,还包括:S204。如下:
S204、对当前节点层的节点采用点位置直接编码模式编码或占用比特编码模式进行编码。
在本申请实施例中,编码器对当前节点层的节点采用点位置直接编码模式编码或者采用占用比特编码模式进行编码。接着,继续进行下一个节点的编码(平面编码模式、点位置直接编码模式编码或者占用比特编码模式进行编码),直至当前节点层编码完成时为止,进行下一个节点层的编码,直至所有节点层编码完成时为止。
在本申请的一些实施例中,当前节点层对应的平面编码模式资格值为第四预设值时,若对当前节点层中的当前节点采用点位置直接编码模式编码,编码器则更新使用点位置直接编码模式的点数的值。当前节点层对应的平面编码模式资格值为第四预设值时,若对当前节点层中的节点采用占用比特编码模式进行编码,则更新当前节点层对应的第二占据子节点个数,其中,第二占据子节点个数为当前节点层中采用占用比特编码模式进行编码的节点的占据子节点个数。
可以理解的是,编码器只在当前节点层对应的平面编码模式资格值为第四预设值时,才更新使用点位置直接编码模式的点数或第二占据子节点个数,用于进行下一层节点层的平面编码模式资格值的确定。但是在当前节点层对应的平面编码模式资格值为第三预设值时,可以不更新使用点位置直接编码模式的点数或第二占据子节点个数,而是将当前节点层对应的平面编码模式资格值确定为下一层节点层的平面编码模式资格值,即第三预设值。这样,减少了编码过程中的计算复杂度。
示例性的,本申请实施例提供了平面编码模式的判断方法,为八叉树框架下的某一层的所有节点设置一个统一的平面编码模式资格值。举例来说明平面模式使能层级的编码过程。编码过程如下:
1、获取当前点云片(slice)中的点数numPoints,赋值planarEligibleKOctreeDepth=0(八叉树某一层的平面编码模式资格值),赋值numPointsCodedByIdcm=0(使用点位置直接编码模式的点数)。
2、进入八叉树第i层(i最小值为0),赋值numSubnodes=0(第i层所有节点生成的占据子节点的个数)。
3、读取第j个节点(j最小值为0),当该第j个节点满足平面编码模式已使能、占用树节点的第k轴(k取值0,1,2)已编码、该节点非叶子节点这3个条件时,如果planarEligibleKOctreeDepth=1,则设PlanarEligible[k]=1(当前节点的第k轴方向的平面编码模式资格值);否则,PlanarEligible[k]=0。第k轴方向的平面编码模式资格值为1的进入平面编码模式。
4、第j个节点经过平面编码模式后,如果该第j个节点满足点位置直接编码模式,则直接编码该节点中点的位置信息,当planarEligibleKOctreeDepth等于0时,根据该节点中的点数累加更新numPointsCodedByIdcm的值;否则该节点采用占用比特编码模式,对该节点的8个子节点的占位信息进行编码,当planarEligibleKOctreeDepth等于0时,根据该节点中占据子节点的个数累加更新numSubnodes值。
5、跳到步骤3读取下一个节点,当八叉树第i层的所有节点都已编码完成时,如果planarEligibleKOctreeDepth已经等于1,则直接跳到步骤6;否则,根据公式(2)计算第i+1层的点云真实密度。如果点云真实密度小于1.3,则根据公式(3)确定第i+1层的平面编码模式的资格值都为1,否则都为0。
如果planarEligibleKOctreeDepth等于1,记录参数planar_mode_min_octree_depth_minus1(平面模式开始使能的最小八叉树深度层级)等于i+1(第i层的planarEligibleKOctreeDepth=0),编码后传入解码端。
6、跳到步骤2进入八叉树的下一层,如果所有层的所有节点都已编码,则结束。
可以理解的是,编码器通过确定点云的几何信息对应的树结构中的节点层对应的平面编码模式资格值,省去了为树结构中的每一个节点确定平面编码模式资格值的过程,且通过若一旦计算得到的一层节点层对应的平面编码模式资格值为第三预设值,即开始进入平面编码模式,则就将后面将要进行编码的其他节点层均确定为可进入平面编码模式,减少了编码器对每层节点层进行平面编码模式资格值确定的次数和计算,更加降低编码的计算复杂度。
下面结合附图详细描述本申请实施例提供的编解码方案。
图7示出了本申请实施例提供的一种编码方法的示意性流程图。编码方法可以应用于图3所示的编码器100中,例如可以将点云的几何信息和属性信息输入到编码器100中,实现对该点云的压缩编码。如图7所示,以编码器通过编码平面模式使能层级的过程为例来说明,包括S301至S321。
应理解,图7示出了编码方法的步骤或操作,但这些步骤或操作仅是示例,本申请实施例还可以执行其他操作或者图7中的各个操作的变形。此外,图7中的各个步骤可以按照与图7呈现的不同的顺序来执行,并且有可能并非要执行图7中的全部操作。
S301、获取点云中的点数。
在一些实施例中,可以在获取点云(一个slice)时,或者在对该点云进行压缩编码之前,获取该点云的点数,即该点云中包含的所有点的数量。示例性的,点云中的点数可以表示为numPoints。
本申请实施例中,可以获取点云的几何信息的树结构,例如八叉树结构。该树结构可以包括至少两个节点层,每个节点层可以包括至少一个节点。
示例性的,可以对点云对应的体空间进行分割,得到该树结构,该体空间对应该树结构的根节点,对该体空间进行分割得到的子体对应该树结构中的节点。该树结构可以参见上文中图1和图2的描述,这里不再赘述。
S302、i=0,planarEligibleKOctreeDepth=0,numPointsCodedByIdcm=0。
其中,i表示八叉树结构中当前编码节点层(当前节点层,也可以称为待编码节点层)的层数,planarEligibleKOctreeDepth表示八叉树结构中当前编码节点层的平面编码模式资格值,numPointsCodedByIdcm表示点云中采用点位置直接编码模式进行编码的点数。示例性的,编码系统,例如编码器100的存储装置(例如内存)中可以保存planarEligibleKOctreeDepth和numPointsCodedByIdcm的值,并根据对每一层的编码情况,更新并维护该planarEligibleKOctreeDepth和numPointsCodedByIdcm值。
也就是说,在i=0,即将要对八叉树结构的第i=0层进行编码之前,可以初始化planarEligibleKOctreeDepth=0,以及初始化numPointsCodedByIdcm为0。这里,初始化planarEligibleKOctreeDepth=0即表示对第i=0层节点层对应的平面编码模式资格值为0,即对第i=0层码节点层中的节点(例如所有节点)均不采用平面编码模式进行编码。
S303、进入八叉树第i层,0≤i≤M,i为整数。
在一些可选的实施例中,可以在S302执行完成之后执行S303,那么此时i=0,即进入八叉树第0层进行编码。
在一些可选的实施例中,可以在S321执行完成之后执行S303,那么此时0<i≤M,即在对每一节点层编码完成之后,进入该节点层的下一节点层进行编码。
S304、numSubnodes=0。
这里,numSubnodes表示第i层的节点(例如所有节点)生成的子节点的个数。需要说明的是,在进入八叉树第i层后,初始化numSubnodes=0。
S305、读取第j个节点,0≤j≤X,i为整数,X表示第i层中节点的数量,X为正整数。
S306、是否满足平面编码模式已使能&占用树节点的第k轴已编码&该节点非叶子节点&planarEligibleKOctreeDepth=1。
即判断第j个节点是否满足平面编码模式已使能、占用树节点的第k轴已编码,以及该节点非叶子节点,以及planarEligibleKOctreeDept是否为1这4个条件。
示例性的,在三维坐标系下,k=0、1或2。作为示例,k=0时,第k轴为x轴;k=1时,第k轴为y轴;k=2时,第k轴为z轴。
当确定第j个节点满足平面编码模式已使能、占用树节点的第k轴已编码,以及该节点非叶子节点等3个条件planarEligibleKOctreeDept=1时,下一步执行S307;当确定第j个节点不满足平面编码模式已使能、占用树节点的第k轴已编码,以及该节点非叶子节点等中的至少一个条件时,或者,planarEligibleKOctreeDept=0时,下一步执行S309。
需要说明的是,在S306中以判断第j个节点是否满足平面编码模式已使能、占用树节点的第k轴已编码,以及该节点非叶子节点这3个条件为例进行描述,但是本申请实施例并不限于此。例如,在另一些实施例中,还可以判断第j个节点是否满足这3个条件中的至少一个,或者其他条件,本申请对此不作限定。
S307、判断PlanarEligible[k]是否等于1。
在本申请实施例中,可以进一步判断planarEligibleKOctreeDepth是否为1。当planarEligibleKOctreeDepth=1时,则PlanarEligible[k]=1;当planarEligibleKOctreeDepth=0时,则PlanarEligible[k]=0。其中,PlanarEligible[k]表示当前节点(即该第j个节点)的第k轴方向的平面编码模式资格值。示例性的,节点的平面编码模式资格值可以用于表征该节点是否可以采用平面编码模式进行编码。例如,当平面编码模式资格值为1时,节点可以采用平面编码模式进行编码,当平面编码模式资格值为0时,节点不可以采用平面编码模式进行编码。
在一些可选的实施例中,可以通过读取编码系统,例如编码器100的内存,来获取当前planarEligibleKOctreeDepth的值,本申请对此不作限定。
在一些可选的实施例中,当对第i=0节点层进行编码时,由于初始化planarEligibleKOctreeDepth=0,因此可以确定PlanarEligible[k]=0。
当PlanarEligible[k]=1时,下一步执行S308;当PlanarEligible[k]=0时,下一步执行S309。
S308、进入第k轴方向的平面编码模式。
具体的,此时可以对该第j个节点,在该第k轴方向采用平面编码模式进行编码。
S309、是否满足点位置直接编码模式。
在一些可选的实施例中,在S308执行之后执行S309的情况下,该第j个节点是满足平面编码模式已使能&占用树节点的第k轴已编码&该节点非叶子节点这3个条件,并且该第i层节点层对应的planarEligibleKOctreeDepth=1,可以在对该第j个节点采用了平面编码模式进行编码之后,判断该第j个节点是否满足点位置直接编码模式。
在一些可选的实施例中,在S306或S307执行之后执行S309的情况下,第j个节点不满足平面编码模式已使能&占用树节点的第k轴已编码&该节点非叶子节点中的至少一个条件,或者该第i层节点层对应的planarEligibleKOctreeDepth=0时,可以在该第j个节点不经过平面编码模式编码的情况下,判断该第j个节点是否满足点位置直接编码模式。
当满足点位置直接编码模式时,下一步执行S310;当不满足点位置直接编码模式时,下一步执行S312。
S310、直接编码该节点中的点的位置信息。
示例性的,第j个节点中点数为n,n为正整数。
S311、planarEligibleKOctreeDepth=0时,numPointsCodedByIdcm+=n,即根据第j个节点中的点数n累加更新numPointsCodedByIdcm的值。
S312、编码该节点的8个子节点的占位信息。
示例性的,当第j个节点不采用点位置直接编码模式进行编码时,可以对该节点采用占用比特编码模式,即对该节点的8个子节点的占位信息进行编码。示例性的,该8个子节点中的占据子节点的个数为m,m≤8,且为正整数。这里,占据子节点即占位比特为非空(比如1)的子节点。
S313、planarEligibleKOctreeDepth=0时,numSubnodes+=m,即根据第j个节点的8个子节点中的占据子节点的个数m累加更新numSubnodes的值。
S314、当前i层所有节点是否已处理。
在当前i层还有节点没有处理的情况下,执行S315。在当前i层所有节点已处理的情况下,执行S316。
S315、j=j+1。
在步骤315之后,流程跳到S305,继续读取下一个节点,并对下一个节点执行S305至S313。
在一些实施例中,经过对S305至步S313的多次循环运行,可以实现对第i层的所有节点已处理。在此过程中,planarEligibleKOctreeDepth=0时,可以实现对第i层对应的numSubnodes的值的累加更新,planarEligibleKOctreeDepth=1时,判断所有层是否已处理完,执行S302。
S316、计算realDensity=(numPoints-numPointsCodedByIdcm)/numSubnodes。
其中,realDensity表示第i+1层的真实点云密度。在一些实施例中,真实点云密度也可以称为点云密度,不作限定。
S317、是否满足realDensity<1.3。
如果第i+1层的真实点云密度realDensity小于1.3,那么下一步执行S318。否则,如果第i+1层的真实点云密度realDensity小于1.3,那么下一步执行S318。
这里,1.3为预设阈值的一个示例。可选的,预设阈值可以大于或等于1。在一些实施例中,预设阈值可以小于某一值,例如可以小于2,或小于3,或者其他,不作限定。
需要说明的是,本申请实施例中可以通过改变该预设阈值的大小,例如,可以通过调小该预设阈值,使得平面编码模式的判断条件更加严格,或者可以通过调大该预设阈值,使得平面编码模式的判断条件更加宽松。
S318、planarEligibleKOctreeDepth=1,并生成planar_mode_min_octree_depth_minus1=i+1。
其中,planar_mode_min_octree_depth_minus1为平面模式使能层级。
也就是说,第i+1层的真实点云密度realDensity<1.3,可以设置第i+1层对应的平面编码模式资格值等于1(即planarEligibleKOctreeDepth=1),即第i+1层中的节点(例如每个节点)满足planarEligibleKOctreeDepth=1。
需要说明的是,第i+1层的真实点云密度realDensity<1.3,表示该第i+1层中平均每个节点的点数小于1.3。此时,在第i+1层中,有一些节点的点数小于1.3,例如为1,有一些节点的点数大于或等于1.3,例如为2,或者3。可以理解的是,当第i+1层的真实点云密度realDensity<1.3时,表示该第i+1层中的大多数节点中的点数是1。本领域技术人员可以知道的是,当节点中的点数为1时,该节点中的八个子节点有且只有1个子节点是被该点占据的,即满足该1个子节点处于三个坐标轴方向上的同一平面上,因此该节点能够采用平面编码模式进行编码。因此,该第i+1层中的节点有较高的概率可以采用平面编码模式进行编码,从而可以设置第i+1层planarEligibleKOctreeDepth=1。
S319、planarEligibleKOctreeDepth=0。
也就是说,第i+1层的真实点云密度realDensity≥1.3,可以设置第i+1层对应的平面编码模式资格值等于0(即planarEligibleKOctreeDepth=0),即第i+1层中的节点(例如每个节点)满足planarEligibleKOctreeDepth=0。
需要说明的是,第i+1层的真实点云密度realDensity≥1.3,表示该第i+1层中平均每个节点的点数大于或等于1.3。此时,在第i+1层中,大部分节点的点数是大于或等于1.3,例如为2,3,4…等,可能仅有少数节点的点数小于1.3,例如为1。可以理解的是,当第i+1层的真实点云密度realDensity≥1.3时,表示该第i+1层中的大多数节点中的点数是2,或者3,或者4。本领域技术人员可以知道的是,当节点中的点数为3个或以上时,该3个或以上的点所处的子节点很可能没有处于同一个平面上,因此该节点能够采用平面编码模式进行编码的概率较小。因此,该第i+1层中的每个节点有较小的概率可以采用平面编码模式进行编码,从而可以设置第i+1层planarEligibleKOctreeDepth=0。
本申请实施例通过根据八叉树中节点层的真实点云密度,来确定该节点层对应的平面编码模式资格值,能够有助于更准确的判断该节点层中所有节点对于平面编码模式是否合格,从而增加编码性能增益。
S320、所有层是否已处理。
在第i层处理完成后,如果还有层没有执行,执行S321。当所有层已经处理完成时,则编码planar_mode_min_octree_depth_minus1,写入码流传输到解码端(解码器),流程结束,即完成了对点云的编码。
S321、i=i+1。
在S321之后,流程跳到S303,继续进入八叉树的第i+1层,即对下一层节点执行S303至S319,即对下一层中的节点进行编码。
需要说明的是,当流程从S321跳到S303,继续对下一层节点进行编码时,下一层即为当前编码层,即第i层。此时,需要对当前的numSubnodes进行初始化,即初始化numSubnodes=0,即在当前第i层进行编码时,根据当前第i层的编码情况,确定当前第i层的节点生成的子节点的个数。也就是说,numSubnodes对应的是当前编码节点层中的节点生成的子节点的个数。
还需要说明的是,当流程从S321跳到S303时,numPointsCodedByIdcm的值保持不变。在继续执行S303至S319时,可以根据当前编码节点层的各节点的编码情况,对numPointsCodedByIdcm值进行更新。也就是说,numPointsCodedByIdcm对应整个点云中的满足点位置直接编码模式的点数。
还需要说明的是,当流程从S321跳到S303时,planarEligibleKOctreeDepth的值保持不变。在继续执行S303至S319时,可以根据该planarEligibleKOctreeDepth的值,确定对当前编码节点层的各节点的是否采用平面编码模式进行编码,以及根据对当前编码节点层所有节点已处理后对应的numPointsCodedByIdcm和numSubnodes,对planarEligibleKOctreeDepth值进行更新,即确定当前编码节点层的下一层对应的planarEligibleKOctreeDepth值。
在一些可选的实施例中,编码端(例如编码器)可以将点云的点数、八叉树结构的相关信息,例如层数、每层的节点信息等,与编码得到的二进制码率一起,发送到解码端(例如解码器)。示例性的,点云的点数、八叉树结构的相关信息可以包括在头文件中传输,本申请实施例对此不作限定。
因此,本申请实施例通过确定点云的几何信息的树结构中的节点层对应的平面编码模式资格值,并根据该节点层对应的平面编码模式资格值,确定是否采用平面编码模式对该节点层中的节点(例如当前节点)进行编码。本申请实施例通过确定点云的几何信息对应的树结构中的节点层对应的平面编码模式资格值,省去了为树结构中的每一个节点确定平面编码模式资格值的过程,从而能够有助于降低编解码的计算复杂度,同时提高编码增益。且编码器只在当前节点层对应的平面编码模式资格值为第四预设值(planarEligibleKOctreeDepth=0)时,才更新使用点位置直接编码模式的点数或第二占据子节点个数,用于进行下一层节点层的平面编码模式资格值的确定。但是在当前节点层对应的平面编码模式资格值为第三预设值时,可以不更新使用点位置直接编码模式的点数或第二占据子节点个数,而是将当前节点层对应的平面编码模式资格值确定为下一层节点层的平面编码模式资格值,即第三预设值。这样,减少了编码过程中的计算复杂度。
需要说明的是,基于本申请实施例提供解码方法和编码方法,在标准文本中的体现可以如下:
针对增加的参数planar_mode_min_octree_depth_minus1(平面模式使能层级),octree_depth指八叉树的层数,取值1到n,octree_depth_minus1指的是八叉树的层级(一个序号),取值0到n-1,所以planar_mode_min_octree_depth_minus1的意义为平面模式开始使能的最小八叉树深度层级。
在本申请实施例中,planar_mode_min_octree_depth_minus1参数放在Geometry data unit header syntax中,表示如下表1所示。
表1
geometry_data_unit_header(){ Descriptor
 
planar_mode_min_octree_depth_minus1 ue(v)
即,ue(v):unsigned integer 0-th order Exp-Golomb-coded syntax element with the left bit first。
在本申请实施例中,可以直接通过planar_mode_min_octree_depth_minus1来给PlanarEligible[k]赋值。
另外,点云中也标识了最大层级occtree_depth_minus1,所以在编码器编码时也可以用occtree_depth_minus1-i来标识使用平面模式的层数planar_mode_enabled_num_octree,在解码端再通过i>occtree_depth_minus1-planar_mode_enabled_num_octree来给PlanarEligible[k]赋值,本申请实施例不作限制。
在本申请实施例中,每层节点层的平面模式使能标识也可以用一个参数来表示写入码流,也可以是在一个slice编码完成时,将所有节点层的平面模式使能标识以数组形式编码为slice级的标识,是一个标识组的形式写入码流的。本申请实施例不作限制。
另外,平面模式使能标识在标准中的参数化表示,还可以与planar_mode_min_octree_depth_minus1联合进行表示,本申请实施例不作限制。
需要说明的是,每个节点层对应的平面模式使能标识通过赋值的不同来表示是可以进行平面模式编解码,还是不能进行平面模式编解码。
其中,平面模式使能标识可以是直接生成的,也可以是采用planarEligibleKOctreeDepth直接赋值得到,本申请实施例不作限制。
需要说明的是,上述参数用指数哥伦布编码进行压缩传输。
图8示出了本申请实施例提供的一种解码方法的示意性流程图。解码方法可以应用于图4所示的解码器200中,例如可以将点云的几何码流和属性码流输入到解码器200中,实现对该点云的解码。如图8所示,以解码器通过平面模式使能层级进行解码的过程为例来说明,400包括S401至S413。
应理解,图8示出了解码方法的步骤或操作,但这些步骤或操作仅是示例,本申请实施例还可以执行其他操作或者图8中的各个操作的变形。此外,图8中的各个步骤可以按照与图8呈现的不同的顺序来执行,并且有可能并非要执行图8中的全部操作。
S401、解码并获取planar_mode_min_octree_depth_minus1。
在本申请实施例中,解码器可以从码流中解析出一个slice中对应的平面模式使能层级,即planar_mode_min_octree_depth_minus1。
S402、进入八叉树第i层,0≤i≤M,i为整数。
在一些可选的实施例中,可以在S401执行完成之后执行S402,那么此时i=0,即进入八叉树第0层进行解码。
在一些可选的实施例中,可以在S414执行完成之后执行S403,那么此时0<i≤M,即在对每一节点层解码完成之后,进入该节点层的下一节点层进行解码。
S403、读取第j个节点,0≤j≤X,i为整数,X表示第i层中节点的数量,X为正整数。
S404、是否满足平面解码模式已使能&占用树节点的第k轴已解码&该节点非叶子节点&i>=planar_mode_min_octree_depth_minus1。
即判断第j个节点是否满足平面解码模式已使能、占用树节点的第k轴已解码,该节点非叶子节点以及i>planar_mode_min_octree_depth_minus1这4个条件。
当确定第j个节点满足平面解码模式已使能、占用树节点的第k轴已解码,该节点非叶子节点以及i>planar_mode_min_octree_depth_minus1等4个条件时,下一步执行S405;当确定第j个节点不满足平面解码模式已使能、占用树节点的第k轴已解码,以及该节点非叶子节点等中的至少一个条件时,或者不满足i>planar_mode_min_octree_depth_minus1时,下一步执行S407。
需要说明的是,在S406中以判断第j个节点是否满足平面解码模式已使能、占用树节点的第k轴 已解码,以及该节点非叶子节点这3个条件为例进行描述,但是本申请实施例并不限于此。例如,在另一些实施例中,还可以判断第j个节点是否满足这3个条件中的至少一个,或者其他条件,本申请对此不作限定。
S405、是否满足PlanarEligible[k]=1。
i>planar_mode_min_octree_depth_minus1时,则PlanarEligible[k]=1。
i>或=planar_mode_min_octree_depth_minus1时,则PlanarEligible[k]=0。其中,PlanarEligible[k]表示当前节点(即该第j个节点)的第k轴方向的平面解码模式资格值。示例性的,节点的平面解码模式资格值可以用于表征该节点是否可以采用平面解码模式进行解码。例如,当平面解码模式资格值为1时,节点可以采用平面解码模式进行解码,当平面解码模式资格值为0时,节点不可以采用平面解码模式进行解码。
当PlanarEligible[k]=1时,下一步执行S406;当PlanarEligible[k]=0时,下一步执行S407。
S406、进入第k轴方向的平面解码模式。
具体的,此时可以对该第j个节点,在该第k轴方向采用平面解码模式进行解码。
S407、是否满足点位置直接解码模式。
在一些可选的实施例中,在406执行之后执行S407的情况下,该第j个节点是满足平面解码模式已使能&占用树节点的第k轴已解码&该节点非叶子节点这3个条,并且该第i层节点层对应的i>planar_mode_min_octree_depth_minus1,可以在对该第j个节点采用了平面解码模式进行解码之后,判断该第j个节点是否满足点位置直接解码模式。
在一些可选的实施例中,在S404或S406执行之后执行S407的情况下,第j个节点不满足平面解码模式已使能&占用树节点的第k轴已解码&该节点非叶子节点中的至少一个条件,或者该第i层节点层对应的i不满足i>planar_mode_min_octree_depth_minus1时,可以在该第j个节点不经过平面解码模式解码的情况下,判断该第j个节点是否满足点位置直接解码模式。
当满足点位置直接解码模式时,下一步执行S408;当不满足点位置直接解码模式时,下一步执行S409。
S408、直接解码并还原该节点中的点的位置信息。
示例性的,第j个节点中点数为n,n为正整数。
S409、解码并还原该节点的8个子节点的占位信息。
示例性的,当第j个节点不采用点位置直接解码模式进行解码时,可以对该节点采用占用比特解码模式,即对该节点的8个子节点的占位信息进行解码。示例性的,该8个子节点中的占据子节点的个数为m,m≤8,且为正整数。这里,占据子节点即占位比特为非空(比如1)的子节点。
S410、当前i层所有节点是否已处理。
在当前i层还有节点没有处理的情况下,执行S411。在当前i层所有节点已处理的情况下,执行S412。
S411、j=j+1。
在S411之后,流程跳到S403,继续读取下一个节点,并对下一个节点执行S403至S410。
在一些实施例中,经过对S403至S410的多次循环运行,可以实现对第i层的所有节点已处理。
S412、所有层是否已处理。
在第i层处理完成后,如果还有层没有执行,执行S413。当所有层已经处理完成时,则流程结束,即完成了对点云的解码。
S413、i=i+1。
在S413之后,流程跳到S402,继续进入八叉树的第i+1层,即对下一层节点执行S402至S412,即对下一层中的节点进行解码。
需要说明的是,当流程从S413跳到S402,继续对下一层节点进行解码时,下一层即为当前解码层,即第i层。
可以理解的是,由于解码器可以直接从码流中解析平面模式使能层级,减少了解码自行进行当前节点层的是否进入平面解码模式的计算,减少了计算复杂度。
表2和表3示出了本申请实施例的编码方法相对于现有技术的效果的一个示例。其中,测试序列可以包括多个测试图像序列,例如Cat1-A average、Cat1-B average、Cat3-fused average、Cat3-frame average等。几何编码码率(BD-rate)有两种误差计算方式,得到的计算误差分别为D1和D2,其中D1表示原始点云中的点和重建点云的对应点之间的点对点的几何信息的误差,D2表示重建点云中的点和原始点云中对应点的平面之间的点到平面的几何信息的误差,该平面与该对应点的法线向量相关。
表2示出了本申请实施例提供的编码方法在几何信息有损压缩下的BD-Rate,BD-Rate表示在获得 相同编码质量的情况下,本申请实施例的编码方法相对现有技术的编码码率节省百分比,其中BD-Rate为负值表示节省的编码码率,正值表示增加的编码码率。由表2可知,大部分测试序列采用本申请实施例的编码方法能够节省编码码率。
表2
Figure PCTCN2022075269-appb-000002
表3示出了本申请实施例提供的编码方法在几何信息无损压缩下的Bpip Ratio,Bpip Ratio表示在点云质量无损失的情况下,本申请实施例的编码码率占现有技术的编码码率的百分比,其数值越低,表示本申请实施例的编码方法节省的码率越大。由表3可知,大部分测试序列采用本申请实施例的编码方法能够节省编码码率。
表3
Figure PCTCN2022075269-appb-000003
基于前述实施例相同的发明构思,参见图9,其示出了本申请实施例提供的一种解码器1的组成结构示意图。该解码器1可以包括:
第一确定部分10,被配置为确定点云的平面模式使能标识和点云的几何编码信息;
解码部分11,被配置为当解码当前节点层的节点的几何编码信息时,若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对所述当前节点层的节点进行解码。
在本申请的一些实施例中,所述解码器1还包括:解析部分12;
所述解析部分12,被配置为解析码流,获取点云的平面模式使能层级;所述平面模式使能层级表征平面模式开始使能的最小深度层级。
在本申请的一些实施例中,所述第一确定部分10,还被配置为若当前节点层的层级大于或者等于所述平面模式使能层级,则确定所述当前节点层的层级对应的平面模式使能标识为所述第一预设值。
在本申请的一些实施例中,所述解码器1还包括:解析部分12;
所述解析部分12,被配置为从码流中解析得到所述当前节点层的层级对应的平面模式使能标识。。
在本申请的一些实施例中,所述第一确定部分10,还被配置为当解码当前节点层的节点时,若所述当前节点层的层级小于平面模式使能层级,则确定点云的平面模式使能标识为第二预设值。
在本申请的一些实施例中,所述解码部分11,还被配置为对所述当前节点层的节点采用点位置直接解码模式或者占用比特解码模式进行解码。
在本申请的一些实施例中,所述第一确定部分10,还被配置为所述若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对所述当前节点层的节点进行解码之前,确定所述当前节点层的节点满足所述节点的平面解码模式已使能、所述节点占用树节点的第k轴已解码、以及所述节点为所述树结构中的非叶子节点中的至少一种。
在本申请的一些实施例中,所述解码部分11,还被配置为若当前节点层的层级对应的平面模式使能标识为所述第一预设值,则允许对节点在第k轴方向上采用平面解码模式进行解码;其中,k表征坐 标分量。
在本申请的一些实施例中,所述解码部分11,还被配置为若所述当前节点层的层级对应的平面模式使能标识为第二预设值,则不允许对节点在第k轴方向上采用平面解码模式进行解码。
在本申请的一些实施例中,采用节点的第k轴的平面解码模式资格值表示是否对所述节点在第k轴方向上采用平面解码模式进行解码。
可以理解的是,由于解码时可以获取平面模式使能标识,通过平面模式使能标识就可以确定出当前节点层是否采用平面解码模式进行解码,减少了解码器端的当前节点层的计算平面编码模式资格值的过程,降低了解码的计算复杂度,同时提高解码增益。
可以理解地,在本实施例中,“部分”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本实施例提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现前述实施例中所述的解码方法。
基于上述解码器的组成以及计算机存储介质,参见图10,其示出了本申请实施例提供的解码器的具体硬件结构,可以包括:第一通信接口801、第一存储器802和第一处理器803;各个组件通过第一总线系统804耦合在一起。可理解,第一总线系统804用于实现这些组件之间的连接通信。第一总线系统804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为第一总线系统804。其中,
第一通信接口801,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第一存储器802,用于存储能够在第一处理器803上运行的计算机程序;
第一处理器803,用于在运行所述计算机程序时,执行解码器的解码方法。
可以理解,本申请实施例中的第一存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请描述的系统和方法的第一存储器902旨在包括但不限于这些和任意其它适合类型的存储器。
而第一处理器803可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器803中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器903可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器802,第一处理器803读取第一存储器802中的信息,结合其硬件完成上述解码方法的步骤。
可以理解的是,本申请描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits, ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本申请所述功能的模块(例如过程、函数等)来实现本申请所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
基于前述实施例相同的发明构思,参见图11,其示出了本申请实施例提供的一种编码器2的组成结构示意图。该编码器2可以包括:
获取部分20,被配置为获取点云的几何信息;
第二确定部分21,被配置为确定几何信息对应的当前节点层对应的平面编码模式资格值;
编码部分22,被配置为若所述当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对所述当前节点层中的节点进行编码,并生成当前节点层的层级对应的平面模式使能标识。
在本申请的一些实施例中,所述第二确定部分21,还被配置为若所述当前节点层对应的上一层节点层对应的平面编码模式资格值为第三预设值,则确定所述当前节点层对应的平面编码模式资格值为所述第三预设值。
在本申请的一些实施例中,所述编码器2还包括:写入部分23;
所述写入部分23,还被配置为将所述当前节点层的层级对应的平面模式使能标识写入码流。
在本申请的一些实施例中,所述第二确定部分21,还被配置为所述确定几何信息对应的当前节点层对应的平面编码模式资格值之后,若所述当前节点层对应的平面编码模式资格值为第三预设值,且所述当前节点层对应的上一层节点层对应的平面编码模式资格值为第四预设值,则将所述当前节点层的层级作为平面模式使能层级;或者,
若所述当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对所述当前节点层中的节点进行编码,并将所述当前节点层的层级作为平面模式使能层级;
所述写入部分23,还被配置为将所述平面模式使能层级写入码流。
在本申请的一些实施例中,所述第二确定部分21,还被配置为若所述当前节点的层级作为平面模式使能层级,则生成当前节点层的层级对应的平面模式使能标识为第一预设值。
在本申请的一些实施例中,所述第二确定部分21,还被配置为所述当前节点层的上一层节点层对应的平面编码模式资格值为第四预设值时,确定所述当前节点层的点云密度;根据所述当前节点层的点云密度,确定所述当前节点层对应的平面编码模式资格值。
在本申请的一些实施例中,所述第二确定部分21,还被配置为确定所述点云中所述当前节点层之前的节点层中使用点位置直接编码模式的点数;确定所述当前节点层的上一层节点层对应的第一占据子节点个数,其中,第一占据子节点个数为所述上一层节点层中采用占用比特编码模式进行编码的节点的占据子节点的总个数;根据所述点云中的点的数量、所述使用点位置直接编码模式的点数、所述第一占据子节点个数,确定所述当前节点层的点云密度。
在本申请的一些实施例中,所述第二确定部分21,还被配置为若所述点云密度小于预设阈值,则确定所述当前节点层对应的平面编码模式资格值为所述第三预设值;若所述点云密度大于或等于所述预测阈值,则确定所述当前节点层对应的平面编码模式资格值为所述第四预设值。
在本申请的一些实施例中,所述预设阈值大于或等于1。
在本申请的一些实施例中,所述编码部分22,被配置为所述若所述当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对所述当前节点层中的节点进行编码之后,或者所述当前节点层对应的平面编码模式资格值为第四预设值时,对所述当前节点层的节点采用点位置直接编码模式或者占用比特编码模式编码。
在本申请的一些实施例中,所述第二确定部分21,还被配置为所述当前节点层对应的平面编码模式资格值为第四预设值时,若对所述当前节点层中的节点采用点位置直接编码模式编码,则更新所述使用点位置直接编码模式的点数的值。
在本申请的一些实施例中,所述第二确定部分21,还被配置为所述当前节点层对应的平面编码模式资格值为第四预设值时,若对所述当前节点层中的节点采用占用比特编码模式进行编码,则更新所述当前节点层对应的第二占据子节点个数,其中,所述第二占据子节点个数为所述当前节点层中采用占用比特编码模式进行编码的节点的占据子节点个数。
在本申请的一些实施例中,所述编码部分22,被配置为若所述当前节点层对应的平面编码模式资格值为第三预设值,则并且所述节点满足以下至少一种条件,则确定在第k轴方向采用平面编码模式对 所述节点进行编码;k为坐标分量;
其中,所述至少一种条件包括:
所述节点的平面编码模式已使能;
所述节点占用树节点的第k轴已编码;
所述节点为非叶子节点。
可以理解的是,编码器确定点云的几何信息对应的树结构中的节点层对应的平面编码模式资格值,省去了为树结构中的每一个节点确定平面编码模式资格值的过程,从而能够有助于降低编码的计算复杂度,同时提高编码增益。
基于上述编码器的组成以及计算机存储介质,参见图12,其示出了本申请实施例提供的编码器的具体硬件结构,可以包括:第二通信接口1001、第二存储器1002和第二处理器1003;各个组件通过第二总线系统1004耦合在一起。可理解,第二总线系统1004用于实现这些组件之间的连接通信。第二总线系统1004除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为第二总线系统1004。其中,
第二通信接口1001,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
第二存储器1002,用于存储能够在第二处理器1003上运行的计算机程序;
第二处理器1003,用于在运行所述计算机程序时,执行编码器所述的编码方法。
可以理解,第二存储器1002与第一存储器802的硬件功能类似,第二处理器1003与第一处理器803的硬件功能类似;这里不再详述。
需要说明的是,在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
工业实用性
本申请实施例中,该方法可以应用于解码器,通过确定点云的平面模式使能标识和点云的几何编码信息;当解码当前节点层的节点的几何编码信息时,若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对当前节点层的节点进行解码。这样,由于解码时可以获取平面模式使能标识,通过平面模式使能标识就可以确定出当前节点层是否采用平面解码模式进行解码,减少了解码器端的当前节点层的计算平面编码模式资格值的过程,降低了解码的计算复杂度,同时提高解码增益。
该方法还可以应用于编码器,通过获取点云的几何信息;确定当前节点层对应的平面编码模式资格值;若当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对当前节点层中的节点进行编码,并生成当前节点层的层级对应的平面模式使能标识。这样,编码器确定几何信息对应的点云的当前节点层对应的平面编码模式资格值,省去了为每一个节点确定平面编码模式资格值的过程,从而能够有助于降低编码的计算复杂度,同时提高编码增益。

Claims (28)

  1. 一种解码方法,应用于解码器,所述方法包括:
    确定点云的平面模式使能标识和点云的几何编码信息;
    当解码当前节点层的节点的几何编码信息时,若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对所述当前节点层的节点进行解码。
  2. 根据权利要求1所述的方法,其中,所述方法还包括:
    解析码流,获取点云的平面模式使能层级;所述平面模式使能层级表征平面模式开始使能的最小深度层级。
  3. 根据权利要求2所述的方法,其中,所述确定点云的平面模式使能标识,包括:
    若当前节点层的层级大于或者等于所述平面模式使能层级,则确定所述当前节点层的层级对应的平面模式使能标识为所述第一预设值。
  4. 根据权利要求1所述的方法,其中,所述确定点云的平面模式使能标识,包括:
    从码流中解析得到所述当前节点层的层级对应的平面模式使能标识。
  5. 根据权利要求2或3所述的方法,其中,所述方法还包括:
    当解码当前节点层的节点时,若所述当前节点层的层级小于平面模式使能层级,则确定点云的平面模式使能标识为第二预设值。
  6. 根据权利要求1至5任一项所述的方法,其中,所述方法还包括:
    对所述当前节点层的节点采用点位置直接解码模式或者占用比特解码模式进行解码。
  7. 根据权利要求1所述的方法,其中,所述若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对所述当前节点层的节点进行解码之前,所述方法还包括:
    确定所述当前节点层的节点满足所述节点的平面解码模式已使能、所述节点占用树节点的第k轴已解码、以及所述节点为所述树结构中的非叶子节点中的至少一种。
  8. 根据权利要求1至7任一项所述的方法,其中,所述若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对所述当前节点层的节点进行解码,包括:
    若当前节点层的层级对应的平面模式使能标识为所述第一预设值,则允许对节点在第k轴方向上采用平面解码模式进行解码;其中,k表征坐标分量。
  9. 根据权利要求1或5所述的方法,其中,所述方法还包括:
    若所述当前节点层的层级对应的平面模式使能标识为第二预设值,则不允许对节点在第k轴方向上采用平面解码模式进行解码。
  10. 根据权利要求8或9所述的方法,其中,
    采用节点的第k轴的平面解码模式资格值表示是否对所述节点在第k轴方向上采用平面解码模式进行解码。
  11. 一种编码方法,应用于编码器,所述方法包括:
    获取点云的几何信息;
    确定几何信息对应的当前节点层对应的平面编码模式资格值;
    若所述当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对所述当前节点层中的节点进行编码,并生成当前节点层的层级对应的平面模式使能标识。
  12. 根据权利要求11所述的方法,其中,所述确定几何信息对应的当前节点层对应的平面编码模式资格值,包括:
    若所述当前节点层对应的上一层节点层对应的平面编码模式资格值为第三预设值,则确定所述当前节点层对应的平面编码模式资格值为所述第三预设值。
  13. 根据权利要求11所述的方法,其中,所述方法还包括:
    将所述当前节点层的层级对应的平面模式使能标识写入码流。
  14. 根据权利要求11所述的方法,其中,所述确定几何信息对应的当前节点层对应的平面编码模式资格值之后,所述方法还包括:
    若所述当前节点层对应的平面编码模式资格值为第三预设值,且所述当前节点层对应的上一层节点层对应的平面编码模式资格值为第四预设值,则将所述当前节点层的层级作为平面模式使能层级写入码流;或者,
    若所述当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对所述当前节点层中的节点进行编码,并将所述当前节点层的层级作为平面模式使能层级写入码流。
  15. 根据权利要求14所述的方法,其中,所述生成当前节点层的层级对应的平面模式使能标识,包括:
    若所述当前节点的层级作为平面模式使能层级,则生成当前节点层的层级对应的平面模式使能标识为第一预设值。
  16. 根据权利要求11所述的方法,其中,所述确定几何信息对应的当前节点层对应的平面编码模式资格值,包括:
    所述当前节点层的上一层节点层对应的平面编码模式资格值为第四预设值时,确定所述当前节点层的点云密度;
    根据所述当前节点层的点云密度,确定所述当前节点层对应的平面编码模式资格值。
  17. 根据权利要求16所述的方法,其中,所述确定所述当前节点层的点云密度,包括:
    确定所述点云中所述当前节点层之前的节点层中使用点位置直接编码模式的点数;
    确定所述当前节点层的上一层节点层对应的第一占据子节点个数,其中,第一占据子节点个数为所述上一层节点层中采用占用比特编码模式进行编码的节点的占据子节点的总个数;
    根据所述点云中的点的数量、所述使用点位置直接编码模式的点数、所述第一占据子节点个数,确定所述当前节点层的点云密度。
  18. 根据权利要求16或17所述的方法,其中,所述根据所述当前节点层的点云密度,确定所述当前节点层对应的平面编码模式资格值,包括:
    若所述点云密度小于预设阈值,则确定所述当前节点层对应的平面编码模式资格值为所述第三预设值;
    若所述点云密度大于或等于所述预测阈值,则确定所述当前节点层对应的平面编码模式资格值为所述第四预设值。
  19. 根据权利要求18所述的方法,其中,
    所述预设阈值大于或等于1。
  20. 根据权利要求11或16所述的方法,其中,所述若所述当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对所述当前节点层中的节点进行编码之后,或者所述当前节点层对应的平面编码模式资格值为第四预设值时,所述方法还包括:
    对所述当前节点层的节点采用点位置直接编码模式或者占用比特编码模式编码。
  21. 根据权利要求20所述的方法,其中,所述方法还包括:
    所述当前节点层对应的平面编码模式资格值为第四预设值时,若对所述当前节点层中的节点采用点位置直接编码模式编码,则更新所述使用点位置直接编码模式的点数的值。
  22. 根据权利要求20所述的方法,其中,所述方法还包括:
    所述当前节点层对应的平面编码模式资格值为第四预设值时,若对所述当前节点层中的节点采用占用比特编码模式进行编码,则更新所述当前节点层对应的第二占据子节点个数,其中,所述第二占据子节点个数为所述当前节点层中采用占用比特编码模式进行编码的节点的占据子节点个数。
  23. 根据权利要求11至22任一项所述的方法,其中,所述若所述当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对所述当前节点层中的节点进行编码,包括:
    若所述当前节点层对应的平面编码模式资格值为第三预设值,并且所述节点满足以下至少一种条件,则确定在第k轴方向采用平面编码模式对所述节点进行编码;k为坐标分量;
    其中,所述至少一种条件包括:
    所述节点的平面编码模式已使能;
    所述节点占用树节点的第k轴已编码;
    所述节点为非叶子节点。
  24. 一种解码器,所述解码器包括:
    第一确定部分,被配置为确定点云的平面模式使能标识和点云的几何编码信息;
    解码部分,被配置为当解码当前节点层的节点的几何编码信息时,若当前节点层的层级对应的平面模式使能标识为第一预设值,则采用平面解码模式对所述当前节点层的节点进行解码。
  25. 一种编码器,所述编码器包括:
    获取部分,被配置为获取点云的几何信息;
    第二确定部分,被配置为确定几何信息对应的当前节点层对应的平面编码模式资格值;
    编码部分,被配置为若所述当前节点层对应的平面编码模式资格值为第三预设值,则确定采用平面编码模式对所述当前节点层中的节点进行编码,并生成当前节点层的层级对应的平面模式使能标识。
  26. 一种解码器,所述解码器包括第一存储器和第一处理器,其中,
    所述第一存储器,用于存储能够在所述第一处理器上运行的计算机程序;
    所述第一处理器,用于在运行所述计算机程序时,执行如权利要求1至10任一项所述的方法。
  27. 一种编码器,所述编码器包括第二存储器和第二处理器,其中,
    所述第二存储器,用于存储能够在所述第二处理器上运行的计算机程序;
    所述第二处理器,用于在运行所述计算机程序时,执行如权利要求11至23任一项所述的方法。
  28. 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被第一处理器执行时实现如权利要求1至10任一项所述的方法、或者被第二处理器执行时实现如权利要求11至23任一项所述的方法。
PCT/CN2022/075269 2022-01-30 2022-01-30 编码方法、解码方法、编码器、解码器及存储介质 WO2023142133A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/075269 WO2023142133A1 (zh) 2022-01-30 2022-01-30 编码方法、解码方法、编码器、解码器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/075269 WO2023142133A1 (zh) 2022-01-30 2022-01-30 编码方法、解码方法、编码器、解码器及存储介质

Publications (1)

Publication Number Publication Date
WO2023142133A1 true WO2023142133A1 (zh) 2023-08-03

Family

ID=87470282

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/075269 WO2023142133A1 (zh) 2022-01-30 2022-01-30 编码方法、解码方法、编码器、解码器及存储介质

Country Status (1)

Country Link
WO (1) WO2023142133A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200413080A1 (en) * 2019-06-28 2020-12-31 Blackberry Limited Planar mode in octree-based point cloud coding
US20210211734A1 (en) * 2020-01-08 2021-07-08 Qualcomm Incorporated High level syntax for geometry-based point cloud compression
WO2021140354A1 (en) * 2020-01-07 2021-07-15 Blackberry Limited Context determination for planar mode in octree-based point cloud coding
CN113615181A (zh) * 2019-06-26 2021-11-05 腾讯美国有限责任公司 用于点云编码的隐式四叉树或二叉树几何形状分割
US20210407143A1 (en) * 2020-06-22 2021-12-30 Qualcomm Incorporated Planar and azimuthal mode in geometric point cloud compression

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113615181A (zh) * 2019-06-26 2021-11-05 腾讯美国有限责任公司 用于点云编码的隐式四叉树或二叉树几何形状分割
US20200413080A1 (en) * 2019-06-28 2020-12-31 Blackberry Limited Planar mode in octree-based point cloud coding
WO2021140354A1 (en) * 2020-01-07 2021-07-15 Blackberry Limited Context determination for planar mode in octree-based point cloud coding
US20210211734A1 (en) * 2020-01-08 2021-07-08 Qualcomm Incorporated High level syntax for geometry-based point cloud compression
US20210407143A1 (en) * 2020-06-22 2021-12-30 Qualcomm Incorporated Planar and azimuthal mode in geometric point cloud compression

Similar Documents

Publication Publication Date Title
CN113615181B (zh) 用于点云编解码的方法、装置
US11570481B2 (en) Methods and devices using direct coding in point cloud compression
Schnabel et al. Octree-based Point-Cloud Compression.
WO2020123469A1 (en) Hierarchical tree attribute coding by median points in point cloud coding
US20220376702A1 (en) Methods and devices for tree switching in point cloud compression
US20230048381A1 (en) Context determination for planar mode in octree-based point cloud coding
EP4224843A1 (en) Point cloud encoding and decoding method, encoder, decoder and codec system
EP4133724A1 (en) Global scaling for point cloud data
WO2021207510A1 (en) Trisoup syntax signaling for geometry-based point cloud compression
WO2023142133A1 (zh) 编码方法、解码方法、编码器、解码器及存储介质
CN115086658B (zh) 点云数据的处理方法、装置、存储介质及编解码设备
WO2022141461A1 (zh) 点云编解码方法、编码器、解码器以及计算机存储介质
EP4107862A1 (en) Methods and devices for multi-point direct coding in point cloud compression
WO2023133710A1 (zh) 编码方法、解码方法、编码器、解码器和编解码系统
WO2024082153A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
RU2778864C1 (ru) Неявное геометрическое разделение на основе квадродерева или бинарного дерева для кодирования облака точек
WO2024007268A1 (zh) 点云编解码方法、编解码器及计算机存储介质
WO2023155045A1 (zh) 预测的方法和装置、编码器、解码器和编解码系统
WO2024012381A1 (en) Method, apparatus, and medium for point cloud coding
WO2024083194A1 (en) Method, apparatus, and medium for point cloud coding
WO2024026712A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2024074123A1 (en) Method, apparatus, and medium for point cloud coding
WO2022170521A1 (zh) 几何重构方法、解码器以及计算机存储介质
WO2023096978A1 (en) Geometry point cloud coding
CN116634179A (zh) 点云数据处理方法、装置、电子设备及存储介质

Legal Events

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

Ref document number: 22922957

Country of ref document: EP

Kind code of ref document: A1