WO2021109153A1 - 一种用于点云处理、解码的方法、设备及存储介质 - Google Patents

一种用于点云处理、解码的方法、设备及存储介质 Download PDF

Info

Publication number
WO2021109153A1
WO2021109153A1 PCT/CN2019/123821 CN2019123821W WO2021109153A1 WO 2021109153 A1 WO2021109153 A1 WO 2021109153A1 CN 2019123821 W CN2019123821 W CN 2019123821W WO 2021109153 A1 WO2021109153 A1 WO 2021109153A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
point cloud
layer
code stream
nth layer
Prior art date
Application number
PCT/CN2019/123821
Other languages
English (en)
French (fr)
Inventor
李璞
郑萧桢
Original Assignee
深圳市大疆创新科技有限公司
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 深圳市大疆创新科技有限公司 filed Critical 深圳市大疆创新科技有限公司
Priority to PCT/CN2019/123821 priority Critical patent/WO2021109153A1/zh
Priority to CN201980094938.5A priority patent/CN113632492B/zh
Priority to CN201980012174.0A priority patent/CN111699697B/zh
Priority to PCT/CN2019/126090 priority patent/WO2020248562A1/zh
Publication of WO2021109153A1 publication Critical patent/WO2021109153A1/zh
Priority to US17/644,178 priority patent/US20220108494A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic 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 present invention relates to the field of data coding and decoding, in particular to a method, equipment and storage medium for point cloud processing and decoding.
  • a point cloud cloud is a form of expression of a three-dimensional object or scene. It is composed of a set of discrete points that are randomly distributed in space and express the spatial structure and surface properties of the three-dimensional object or scene.
  • the data of a point cloud cloud can include description coordinate information The three-dimensional coordinates, and the attributes that further include the location coordinates. In order to accurately reflect the information in the space, the number of discrete points required is huge. In order to reduce the bandwidth occupied by point cloud storage and transmission, it is necessary to encode and compress the point cloud.
  • the embodiments of the present invention provide a method, device and storage medium for point cloud processing and decoding, which can reduce the complexity and time overhead of encoding or decoding, and improve the parallel processing of point cloud compression encoding or decoding. , Improve coding or decoding efficiency and performance.
  • an embodiment of the present invention provides a method for point cloud processing, where the point cloud is divided into positions by means of multi-tree division, and the method includes:
  • Encoding or decoding is performed on the Nth layer of the multi-branch tree in a breadth-first manner
  • the point cloud in the first node is encoded or decoded in a depth-first manner to obtain the first node
  • the code stream of a node the code stream of the first node includes an identifier and the index of the point cloud point in the first node at each level of the multi-tree, and the identifier is used to indicate the The child nodes of the first node switch from the breadth-first mode to the depth-first mode for encoding or decoding, where N is an integer greater than or equal to 1.
  • an embodiment of the present invention provides a method for point cloud decoding, where the point cloud is divided into positions by multi-tree division, and the method includes:
  • the code stream of the first node of the Nth layer is decoded in a depth-first manner, and the code stream of the first node includes the identifier and the code stream in the first node.
  • the index of the point cloud point at each level of the multi-tree, the identifier is used to instruct the child nodes of the first node to switch from the breadth-first mode to the depth-first mode for decoding, where N is greater than or An integer equal to 1.
  • an embodiment of the present invention provides a device for point cloud processing.
  • the device includes a memory and a processor,
  • the memory is used to store programs
  • the processor is used to call the program, and when the program is executed, it is used to perform the following operations:
  • the point cloud in the first node is encoded or decoded in a depth-first manner to obtain the first node
  • the code stream of a node the code stream of the first node includes an identifier and the index of the point cloud point in the first node at each level of the multi-tree, and the identifier is used to indicate the The child nodes of the first node switch from the breadth-first mode to the depth-first mode for encoding or decoding, where N is an integer greater than or equal to 1.
  • an embodiment of the present invention provides a device for point cloud decoding.
  • the device includes a memory and a processor,
  • the memory is used to store programs
  • the processor is used to call the program, and when the program is executed, it is used to perform the following operations:
  • the code stream of the first node of the Nth layer is decoded in a depth-first manner, and the code stream of the first node includes the identifier and the code stream in the first node.
  • the index of the point cloud point at each level of the multi-tree, the identifier is used to instruct the child nodes of the first node to switch from the breadth-first mode to the depth-first mode for decoding, where N is greater than or An integer equal to 1.
  • an embodiment of the present invention provides a computer-readable storage medium that stores a computer program that, when executed by a processor, implements the method described in the first aspect or the first The method described in the two aspects.
  • the position of the point cloud is divided by multi-tree division, and the Nth layer of the multi-tree is encoded or decoded in a breadth-first manner.
  • the point cloud in the first node is encoded or decoded in a depth-first manner to obtain the code stream of the first node.
  • the code stream of the first node contains the identifier and the first node.
  • the index of the point cloud point in a node at each level of the multi-tree is used to indicate that the child node of the first node switches from the breadth-first mode to the depth-first mode for encoding or decoding, where N Is an integer greater than or equal to 1.
  • FIG. 1 is a schematic diagram of an encoding process of an existing point cloud compression provided by an embodiment of the present invention
  • FIG. 2 is a schematic diagram of a decoding process of an existing point cloud compression provided by an embodiment of the present invention
  • FIG. 3 is a schematic diagram of a cubic octree partition provided by an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of layer-by-layer division of octree nodes according to an embodiment of the present invention.
  • FIG. 5 is a schematic flowchart of an existing attribute coding scheme provided by an embodiment of the present invention.
  • Fig. 6 is a schematic flowchart of another existing attribute coding scheme provided by an embodiment of the present invention.
  • Figure 7 is a schematic structural diagram of a hierarchical coding provided by an embodiment of the present invention.
  • FIG. 8 is a schematic flowchart of a binary encoding provided by an embodiment of the present invention.
  • FIG. 9 is a schematic flowchart of a binarization decoding provided by an embodiment of the present invention.
  • FIG. 10 is a schematic flowchart of a method for point cloud processing according to an embodiment of the present invention.
  • FIG. 11 is a schematic flowchart of a point cloud encoding provided by an embodiment of the present invention.
  • FIG. 12 is a schematic flowchart of another point cloud encoding provided by an embodiment of the present invention.
  • FIG. 13 is a schematic structural diagram of a point cloud processing device provided by an embodiment of the present invention.
  • Fig. 14 is a schematic structural diagram of a point cloud decoding device provided by an embodiment of the present invention.
  • the embodiment of the present invention proposes a method for point cloud processing to solve the problems of high complexity, high overhead, and low parallelism in the current point cloud coding process.
  • the following related introductions are made to the existing point cloud coding scheme.
  • a point cloud is a form of expression of a three-dimensional object or scene, and is composed of a set of discrete points that are randomly distributed in space and express the spatial structure and surface properties of the three-dimensional object or scene. In order to accurately reflect the information in the space, the number of discrete points required is huge. In order to reduce the bandwidth occupied by point cloud storage and transmission, the point cloud can be encoded and compressed.
  • the point cloud may be composed of discrete point clouds, and the data of each point cloud may include information describing the position coordinates of the point cloud, and may further include attribute information. Among them, the position coordinates of the point cloud may be three-dimensional position coordinates (x, y, z).
  • the attributes of the point cloud may include the reflectivity and/or color of the point cloud.
  • the number of point clouds included in the point cloud is usually relatively large.
  • the point cloud data needs to be encoded and compressed. The following describes how to encode and decode the point cloud with reference to FIGS. 1 to 2.
  • Figure 1 is a schematic diagram of an existing point cloud compression coding process provided by an embodiment of the present invention.
  • the coding method shown in Figure 1 inputs point cloud data 11 to determine the position of the input point cloud data. Coordinates are quantified 12, for example, the position coordinates of each point cloud can be quantified according to the difference between the maximum and minimum values of the position coordinates in the three axes, and the quantization accuracy determined according to the input parameters, and the input
  • the position coordinates of the point cloud are converted to integer coordinates greater than or equal to zero; the repeated coordinates 121 in the position coordinates are removed, and the processed position coordinates are position-encoded 13, such as using octree encoding, and then the attributes of the input point cloud data are performed Attribute conversion 14, attribute encoding 15 to attributes corresponding to the reordered position order after position encoding, and arithmetic encoding 16 on the encoded binary code stream, thereby obtaining code stream data 17 after encoding the point cloud data.
  • FIG. 2 is a schematic diagram of a decoding process of an existing point cloud compression provided by an embodiment of the present invention.
  • the decoding method shown in FIG. Perform arithmetic decoding 22, inverse quantize the arithmetic-decoded data 24 through octree coding 23 to obtain the position coordinates of the point cloud data, and obtain the attributes of the point cloud data by performing attribute decoding 25 on the arithmetic-decoded data. Finally, according to The attributes and position coordinates of the point cloud data obtain the decoded point cloud data 26.
  • point cloud data mentioned above may include attribute information, but it should be understood that, in the embodiment of the present invention, the point cloud data may not include attribute information, and only include position coordinate information.
  • the division of each level of the multi-tree can use the coordinates of the center point of the current node to divide the sub-nodes, and divide the current node into Multiple sub-nodes, then it can be judged whether there is a point cloud in each sub-node, and the sub-nodes with point cloud will be further divided until the sub-nodes are divided to a preset size, for example, it can be divided into sub-nodes with side length 1. Stop dividing at the time.
  • FIG. 3 is a schematic diagram of a cubic octree division provided by an embodiment of the present invention, that is, a division method of dividing a node into 8 sub-nodes.
  • FIG. 4 is a schematic diagram of the octree node division by layer according to an embodiment of the present invention.
  • the attributes are compressed and encoded according to the attributes corresponding to the order of the location coordinates after the octree encoding.
  • the attribute encoding can be hierarchical encoding or binary encoding. Value-based encoding method for encoding.
  • Figure 5 is a schematic flow chart of an existing attribute coding scheme provided by an embodiment of the present invention
  • Figure 6 is a schematic diagram of an existing attribute coding scheme provided by an embodiment of the present invention.
  • a schematic flow diagram of another existing attribute coding scheme ; wherein, the same marks in the marks in FIG. 5 and FIG. 6 as those in FIG. 1 and FIG. 2 will not be repeated here. For details, please refer to the description of FIG. 1 and FIG. 2.
  • the encoding operations for attributes can include 151, 152, and 153; in 151, based on the position coordinates encoded by the position coordinates, a level of detail (LOD) is generated; in 152, based on the level Coding scheme, perform predictive coding; in 153, the result of predictive coding is quantized.
  • LOD level of detail
  • the attribute decoding operations can include 251, 252, and 253; in 251, the decoded attribute code stream is inversely quantized; in 252, based on the decoded position coordinates of the position coordinates, a hierarchical decoding is generated Scheme; In 253, predictive decoding is performed based on the hierarchical coding scheme.
  • LOD layering in the actual encoding process, LOD layering can be performed according to the parameters of the LOD configuration, where the latter layer will contain the points of the previous layer.
  • Figure 7 is a schematic structural diagram of a hierarchical coding provided by an embodiment of the present invention.
  • the point clouds included are P0, P5, P4, P2; in LOD1 (layer 1 ), the point clouds included are P0, P5, P4, P2, P1, P6, P3; and the point clouds included in LOD2 (layer 2) are P0, P5, P4, P2, P1, P6, P3, P9, P8 ,P7.
  • the layering process first select the first point cloud in the point cloud data, place it on the first point of the LOD0 layer, and then start to traverse the point cloud in turn, calculating this point and the current point cloud The distance in the Cartesian coordinate system between all the points already contained in the layer. If the minimum distance is greater than the distance threshold (dist2) set in the current LOD layer, the point will be drawn to the current LOD layer. And in this process, the calculated distances will be sorted, and the smallest ones will be selected. This number is determined by the number Of Neighbors In Prediction.
  • the number of selected reference points may be less than the number N.
  • the nearest point previously selected can be used to assign the weights for prediction.
  • the weights can be calculated according to 1 reference point, 2 reference points and up to X reference points. Distribution plan. There are X types of weight distribution schemes, among which, when there is 1 reference point, the point with the smallest distance is used as the reference point, and its weight is 1; when there are 2 reference points, the 2 points with the smallest distance are selected as the reference point.
  • the weight will be assigned according to the distance between the two reference points and the point to be predicted.
  • the specific weight is inversely proportional to the distance. The longer the distance, the smaller the weight, and the weight is guaranteed to be 1; when there are X straight reference points, it is Select X reference points, and the weight distribution method is the same as before.
  • the number of reference points can be selected. It should be noted here that the number of adjacent reference points that can be selected for a prediction point is less than or equal to X. Specifically, when the maximum number of reference points is limited to 1, then the predicted value (weight multiplied by the attribute value of the corresponding position) and the actual attribute value are quantified and the sum of the residuals is the quantified value of the reference point. The maximum number of reference points is 1. Then, it will traverse the cost when the maximum number of reference points is limited to 2 until the cost when the maximum number of reference points is limited to X, and finally select a solution with the smallest cost and the maximum number of reference points. And further encode the quantized residual value under this scheme.
  • the header information about the attributes in the encoded bitstream can describe the relevant information about the hierarchical coding attributes, that is, the LOD, which specifically includes the selection of adjacent reference points (used to calculate residuals) when predicting at each layer.
  • the number of points number of points (numberOfNeighborsInPrediction), the number of LOD levels (levelOfDetailCount), the distance threshold (dist2) by which each layer of LOD is divided, the quantizationSteps of each layer of LOD (quantizationSteps), the number of LOD layers
  • the dead zone size (quantizationDeadZoneSizes) that is, the residual interval where the residual is quantized to 0), where the following three attributes can be set for each layer of the LOD, and the attributes of each layer can be written into the stream header information.
  • the encoding of the attributes may also adopt a binarization encoding manner, and the encoding manner of the binarization encoding may be a fixed-length encoding manner, a truncated Rice encoding manner, or a K-order exponential Golomb encoding manner.
  • the decoding mode of the binarization decoding may be a fixed-length decoding mode, a truncated Rice decoding mode or a K-order exponential Columbus decoding mode.
  • Fig. 8 is taken as an example to illustrate the fixed-length coding mode in the binarization coding mode.
  • Fig. 8 is a schematic flowchart of a binarization coding provided by an embodiment of the present invention, which includes 154, Binary encoding is performed by a fixed-length encoding method, and the symbols in FIG. 8 that are the same as those in FIG. 1 will not be repeated here.
  • FIG. 9 is a schematic flowchart of a binarization decoding provided by an embodiment of the present invention, where , Including 254, performs binarization decoding through fixed-length decoding.
  • Fig. 9 as those in Fig. 2 will not be repeated here.
  • Encoding using binary encoding can simplify the encoding method and reduce the time overhead of encoding and decoding, and there is no need to add more encoding information to the code stream, thereby increasing the compression rate.
  • the process of octree division coding for the position coordinates adopts the traversal of the octree based on the breadth-first order, and further iterates the octree sub-blocks with point cloud points.
  • the scheme of division This scheme has high complexity, and there is a waste of coded bits in the partition representation of some sub-blocks that only contain one leaf node. This affects to a certain extent the performance of the octree encoding on the performance index of compression rate.
  • the octree division process of the location coordinates is based on the breadth-first order to traverse the octree. This division process is carried out layer by layer. Only after one layer is divided can the next layer be divided. This This scheme brings great difficulties to the parallelization of point cloud compression.
  • the embodiment of the present invention proposes to adopt a breadth-first and depth-first hybrid octree point cloud encoding or decoding scheme when performing compression encoding or decoding on a point cloud.
  • a preset condition described in the embodiment
  • the encoding or decoding is switched from the breadth-first method to the depth-first method.
  • the method for point cloud processing proposed in the embodiments of the present invention can be applied to a point cloud processing device, the point cloud processing device can be a point cloud encoding device or a point cloud decoding device, and the point cloud encoding device can be set in a smart terminal (Such as mobile phones, tablet computers, etc.).
  • the method for point cloud decoding proposed in the embodiment of the present invention can be applied to a point cloud decoding device, and the point cloud decoding device can also be set on a smart terminal (such as a mobile phone, a tablet computer, etc.).
  • the embodiments of the present invention can also be applied to aircraft (such as unmanned aerial vehicles).
  • the embodiments of the present invention can also be applied to other movable platforms (such as unmanned ships, unmanned aerial vehicles, etc.). For automobiles, robots, etc., the embodiment of the present invention does not make specific limitations.
  • FIG. 10 is a schematic flowchart of a method for point cloud processing according to an embodiment of the present invention.
  • the method can be applied to a point cloud processing device, that is, a point cloud encoding device or a point cloud decoding device, where the explanation of the point cloud encoding device or the point cloud decoding device is as described above, and will not be repeated here.
  • the method of the embodiment of the present invention includes the following steps.
  • S1001 Encode or decode the Nth layer of the multitree in a breadth-first manner.
  • the point cloud processing device when it encodes or decodes the point cloud, it may use a multi-tree division method to perform position division on the point cloud; the point cloud processing device uses a multi-tree division method to divide the position of the point cloud.
  • the Nth layer of the multi-branch tree may be encoded or decoded in a breadth-first manner.
  • the point cloud may be obtained by light detection (for example, laser detection) of the object to be detected by the light detection device.
  • the light detection device can be, for example, a photoelectric radar, or a laser radar, a laser scanner and other equipment.
  • the encoding device in the embodiment of the present invention can be integrated into the optical detection device.
  • the lidar is a perceptual sensor that can obtain three-dimensional information of the scene.
  • the basic principle is to actively emit laser pulse signals to the detected object and obtain the reflected pulse signals.
  • the depth information of the distance detector of the detected object is calculated; Know the launch direction, obtain the angle information of the measured object relative to the lidar; combine the aforementioned depth information and angle information to obtain a large number of detection points (called point clouds).
  • the point cloud in the first node is encoded or decoded in a depth-first manner to obtain
  • the code stream of the first node includes an identifier and the index of the point cloud point in the first node at each level of the multi-tree, and the identifier is used to indicate
  • the child nodes of the first node switch from a breadth-first mode to a depth-first mode for encoding or decoding, where N is an integer greater than or equal to 1.
  • the encoding or decoding when encoding or decoding the position coordinates of the point cloud, the encoding or decoding may be performed in a multi-tree manner, and the multi-tree division may include any one or a combination of any two of the following: Three combinations: octree partition, quadtree partition, and binary tree partition.
  • multitree division may include at least one of the following: octree division, octree quadtree division, octree binary tree division, octree quadtree division, octree binary tree division, Quadtree partition, binary tree partition, quadtree octree partition, binary tree octree partition, quadtree binary tree octree partition, binary tree octree quadtree partition, binary tree, octree, quadtree, binary tree partition, Binary tree, octree, binary tree partition, quadtree, octree partition, quadtree, octree, quadtree, quadtree, octree, binary tree, quadtree, octree, quadtree, binary tree, quadtree, octree, quadtree, binary tree, quadtree, binary tree Octore partition, quadtree binary tree, octree quadtree partition, quadtree binary tree, octree binary tree partition,
  • the octree quadtree division refers to the use of octree division and quadtree division to encode or decode the position coordinates of the point cloud; in an example, the first node adopts an octree
  • the division method is a quadtree division method for one or more sub-nodes including point cloud points obtained by the octree division.
  • the octree-binary tree division refers to the use of octree division and binary tree division to encode or decode the position coordinates of the point cloud; in an example, the first node adopts the octree division method to One or more sub-nodes including point cloud points obtained by the octree division adopts a binary tree division method.
  • the octree quadtree binary tree division refers to the use of octree division, quadtree and binary tree division to encode or decode the position coordinates of the point cloud; in one example, the first node adopts Octree division method, one or more sub-nodes including point cloud points obtained from the octree division adopts quad-tree division method, and one or more sub-nodes including point cloud points obtained from quadtree division adopts binary tree division In another example, the first node adopts an octree division method, and one or more sub-nodes including point cloud points obtained by the octree division adopts a binary tree division method, and the binary tree division obtained includes points cloud points One or more child nodes adopt a quadtree division method. In other embodiments, other division methods are similar to the foregoing division methods, and will not be repeated here.
  • the Nth layer is obtained by using an octree division, and the identifier is an eight-bit 0; or, the Nth layer is obtained by using a quadtree division, and the identifier is Four-bit 0; or, the Nth layer is obtained by using binary tree division, and the identifier is two-bit 0.
  • 8bit 0 namely 00000000
  • the identifier for switching from the breadth-first mode to the depth-first mode if the current location is divided into octree division, then 8bit 0, namely 00000000, is used as the identifier for switching from the breadth-first mode to the depth-first mode; if the current division is four For the fork tree, the 4-bit 0 or 0000 is used as the identifier for switching from the breadth-first method to the depth-first method; if the current division is a binary tree, the 2-bit 0 or 00 is used as the switch from the breadth-first method to the depth Identifier of the preferred mode.
  • the index when the Nth layer is obtained by using an octree partition, the index may be 0 to 7, for the application of 3 bits, that is, 000 to 111, which means; when the Nth layer is obtained by using a quadtree When the tree is divided, the index can be 0 to 3, which is 2 bits for the application, that is, 00-11; when the Nth layer is obtained by the binary tree division, the index can be 0 to 1, and the index is 1 bit for the application. That is, 0 to 1 means.
  • the first node in the code stream of at least one layer below the Nth layer includes the index of the child node of the first node that contains point cloud points in the first layer, And a first indicator bit, where the first indicator bit is used to indicate whether the layer is the lowest layer under the first node.
  • the first indicator bit when the first indicator bit is 0, it is determined that the layer is the lowest layer under the first node; when the first indicator bit is 1, it is determined that the layer is not the The bottom layer under the first node.
  • the first indicator is located before the indexes of all child nodes containing point cloud points in the layer, or after the indexes of all child nodes containing point cloud points in the layer.
  • Fig. 11 is a schematic flow chart of a point cloud coding provided by an embodiment of the present invention. It is assumed that a node 1101 obtained by octree division includes point cloud points. Node 1101 performs octree division to obtain the third child node 1102 of the first level including point cloud points, and then performs octree division on the third child node 1102 of the first level to obtain the first child node 1103 of the second level Including point cloud points, and the second layer is the bottom layer.
  • the first indicator position is located after the indexes of all child nodes containing point cloud points in the layer, and the indexes of the nodes of each layer are 0 to 7 from left to right, then the first layer can be determined
  • the index of the third child node 1102 is 2 or 010
  • the index of the first child node 1103 of the second layer is 0 or 000. Therefore, when the node 1101 is octree partitioned and coded, the 8-bit 0 of the identifier can be coded first, that is, 00000000, which is used to indicate the switch from the breadth-first mode to the depth-first mode for coding, and then the node 1101 is coded.
  • the index 2 corresponding to the third child node 1102 of the first layer obtained by the octree division is encoded to obtain 010, and then the first indicator bit 1 is added to determine that the first layer is not the bottom layer under the node 1101 , And then encode the index 0 corresponding to the first child node 1103 of the second layer obtained by dividing the third child node 1102 of the first layer by the octree to obtain 000, and add the first indicator bit 0 to indicate the The second layer is the bottom layer under the node 1101. Therefore, the code stream obtained by performing octree division coding on the node 1101 in a depth-first manner is 000000001010000.
  • the first indicator bit is located before the indexes of all child nodes containing point cloud points in the layer, and the indexes of the nodes of each layer are 0 to 7 from left to right, then the first indicator can be determined
  • the index of the third child node 1102 of the layer is 2 or 010
  • the index of the first child node 1103 of the second layer is 0 or 000. Therefore, when the node 1101 is octree partitioned and coded, the node 1101 can be coded as 1, and then the code identifier is 8-bit 0, which is 00000000, which is used to indicate the switch from the breadth-first method to the depth-first method for encoding.
  • the code stream obtained by performing octree division coding on the node 1101 in a depth-first manner is 10000000010100000.
  • the code stream to be decoded when the code stream to be decoded is obtained, it can perform arithmetic decoding first, decode the code stream related to the position information, and decode the code stream of the position coordinates in sequence when the code stream is decoded.
  • it When it is breadth-first, it is decoded in the breadth-first order, and when the bitstream is depth-first, it is decoded in the depth-first order.
  • the octree decoding and inverse quantization the reconstructed position coordinates are obtained.
  • the decoding can be performed in the breadth-first order by default.
  • the decoding When the decoding reaches the identifier used to indicate the breadth-first switch to the depth-first (for example, decoding to 8-bit 0, 00000000) ), it is converted to depth first for decoding and reconstruction, and decoding is performed in this order to realize the octree decoding of the position coordinates.
  • the identifier used to indicate the breadth-first switch to the depth-first for example, decoding to 8-bit 0, 00000000
  • the decoding when decoding the code stream of at least one layer below the Nth layer with the first node, when the decoding reaches an identifier for indicating breadth-first switching to depth-first (for example, decoding to 8-bit 0 (ie 00000000), then decode the index of the child node of the first node in the layer below the Nth layer that contains the point cloud point, and then decode it to indicate whether the layer is the first node If the first indicator bit indicates that the layer is not the bottom layer under the first node, then continue to decode that the first node contains If the index of the child node of the point cloud point is decoded to the first indicator bit used to indicate that the layer is the lowest layer under the first node, it is determined that the decoding is completed.
  • an identifier for indicating breadth-first switching to depth-first for example, decoding to 8-bit 0 (ie 00000000)
  • the depth-first method is used to decode 010 to obtain the index 2 corresponding to the third child node 1102 of the first layer obtained by dividing the node 1101 octree, and then decode the first Indicating bit 1, and then decoding 000, get the index 0 corresponding to the first sub-node 1103 of the second layer obtained by dividing the 3rd child node 1102 of the first layer of the octree, and the node is determined when the first indicator bit is decoded to 0
  • the decoding of 1101 code stream is over.
  • the number or distribution of all point cloud points in the first node of the Nth layer satisfies a preset condition, including: the first node is a leaf of the bottom layer below the Nth layer
  • the number of nodes is less than or equal to 2; or, the number of all point cloud points of the first node is less than or equal to 2.
  • the first node includes a second indicator bit in the code stream of each layer below the Nth layer, and the second indicator bit is used to indicate that the layer contains dots.
  • the number of nodes in the cloud is adopted when the following conditions are met: the number of leaf nodes at the bottom of the first node below the Nth layer is less than or equal to 2; or, all points of the first node The number of cloud points is less than or equal to 2, and the number of layers obtained by the multi-tree division of the first node is greater than n, and n is greater than or equal to 2.
  • the second indicator bit is used to indicate that the number of nodes containing point cloud points of the first node in the layer is 1 or 2. In an example, when the second indicator bit is 0, it is used to indicate that the number of nodes containing point cloud points in the layer is 1; when the second indicator bit is 1, it is used to indicate the one The number of nodes containing point cloud points in the layer is 2.
  • the first node in the code stream of each layer below the Nth layer, further includes all nodes containing point cloud points in the layer after the second indicator bit index of.
  • the 8-bit 0 of the identifier can be encoded, that is, 00000000, which is used to indicate the switch from the breadth-first method to the depth-first method for encoding, and then add the first
  • the second indicator bit 0 is used to indicate that there is a bit cloud point in the first layer, and then the index 2 corresponding to the third child node 1102 of the first layer obtained by dividing the node 1101 octree is coded to obtain 010.
  • the index 0 corresponding to 1 child node 1103 is coded to get 000. Therefore, the code stream obtained by performing octree division coding on the node 1101 in a depth-first manner is 0000000000100000.
  • the identifier when decoding the code stream of each layer below the Nth layer with the first node, the identifier ( For example, when decoding to 8-bit 0 (ie 00000000), then decode the second indicator bit used to indicate the number of nodes containing point cloud points in the current layer, and then decode the index of the child nodes of the current layer containing point cloud points, and then Decode the second indicator bit used to indicate the number of nodes containing point cloud points in the next layer, and then decode the index of the child nodes containing point cloud points in the next layer, and loop through the first node below the Nth layer.
  • the second indicator bit of each layer and the index of the child node containing the point cloud point are decoded until the second indicator bit of each layer under the Nth layer of the first node and the child node containing the point cloud point are decoded.
  • the index decoding is completed.
  • the obtained code stream obtained by octree partitioning and encoding of node 1101 is 0000000000100000
  • the depth-first identifier is 8-bit 0, which is 00000000
  • the second indicator bit 0, which is used to indicate the number of nodes containing point cloud points in the first layer, that is the current layer is decoded in a depth-first manner, that is, the first layer is determined
  • decode 010 to get the index of the child node of the first layer that contains point cloud points is 2, that is, the child node of the first layer that contains point cloud points is the third child node of the first layer 1102
  • decode the second indicator bit which is used to indicate the number of nodes containing point cloud points in the second layer, that is, determine that the second layer has a child no
  • the code stream of the first node includes a third indicator bit, and the third indicator bit is used for Indicate the number of leaf nodes that the first node contains point cloud points below the Nth layer.
  • the third indicator bit is used to indicate that the number of leaf nodes of the first node containing point cloud points under the Nth layer is 1 or 2.
  • the third indicator bit is 0, which is used to indicate that the number of leaf nodes containing point cloud points of the first node under the Nth layer is 1; the third indicator bit is 1. It is used to indicate that the number of leaf nodes containing point cloud points of the first node under the Nth layer is 2.
  • the code stream of the first node further includes the indexes of all nodes containing point cloud points of the first node below the Nth layer.
  • the 8-bit 0 of the identifier can be coded, that is, 00000000, which is used to indicate the switch from the breadth-first mode to the depth-first mode for coding.
  • the 1101 performs octree partition coding to obtain the number of leaf nodes including point cloud points as 1, then the third indicator bit 0 can be added, and then the third child node of the first layer obtained by partitioning the node 1101 octree
  • the index 2 corresponding to 1102 is coded to obtain 010
  • the index 0 corresponding to the first subnode 1103 of the second layer obtained by dividing the third subnode 1102 of the first layer into the octree is coded to obtain 000. Therefore, the code stream obtained by performing octree partitioning and encoding on the node 1101 in a depth-first manner is 000000000010000.
  • the identifier For the decoding side, in one embodiment, when decoding the code stream of each layer below the Nth layer with the first node, the identifier ( For example, when decoding to 8-bit 0 (ie 00000000), then decoding is used to indicate the number of leaf nodes that the first node contains point cloud points under the Nth layer, and then decoding the index of the child nodes of the current layer containing point cloud points , And then decode the index of the child node containing the point cloud point in the layer below the current layer, until the index of the child node containing the point cloud point in each layer below the Nth layer of the first node is decoded.
  • the identifier For example, when decoding to 8-bit 0 (ie 00000000), then decoding is used to indicate the number of leaf nodes that the first node contains point cloud points under the Nth layer, and then decoding the index of the child nodes of the current layer containing point cloud points , And then decode the index of the child node containing the
  • the obtained code stream obtained by octree partitioning and encoding of node 1101 is 000000000010000
  • the code stream of node 1101 is decoded in octree, when decoding is used to indicate breadth priority, switch to
  • the depth-first identifier is 8-bit 0, which is 00000000
  • the third indicator bit 0, which is used to indicate the number of leaf nodes containing point cloud points in the second layer of node 1101 is decoded in a depth-first manner, that is, it is determined that node 1101 is in
  • the number of leaf nodes in the second layer containing point cloud points is 1, and then decode 010 to get the index of the child nodes of the first layer containing point cloud points is 2, that is, the child nodes of the first layer containing point cloud points are the first layer
  • the third child node 1102 then decodes 000 to obtain that the index of the leaf node of the second layer containing point cloud points is 0, that is, the leaf node of the second layer
  • the number or distribution of all point cloud points in the first node of the Nth layer satisfies a preset condition, including: the first node is at least M consecutive layers below the Nth layer
  • the distribution of specific nodes is the same, the specific node is a node containing point cloud points, and the M is a preset positive integer.
  • the distribution of specific nodes in at least M consecutive layers of the first node below the Nth layer is the same means that the first node is at least in consecutive M layers below the Nth layer
  • Each layer includes the same index of the child nodes of point cloud points.
  • M is 2
  • the child nodes of each layer including point cloud points are distributed in the third layer of each layer.
  • the code stream of the first node includes the number of layers with the same distribution of the specific node under the Nth layer of the first node, and the index of the specific node.
  • the number of layers with the same distribution of the specific nodes is obtained by encoding using a fixed-length encoding method or a variable-length encoding method.
  • FIG. 12 is a schematic flow chart of another point cloud encoding provided by an embodiment of the present invention.
  • the node 1201 at the 0th layer obtained by octree division includes point cloud points
  • the node 1201 is octeted.
  • the tree division obtains that the third child node 1202 of the first layer includes point cloud points and the eighth child node 1203 includes point cloud points, and then the third child node 1102 of the first layer is divided into octrees to obtain the second layer
  • the third child node 1204 includes point cloud points and the eighth child node 1205 includes point cloud points.
  • the eighth child node 1203 of the first layer is divided into an octree to obtain the third child node 1206 and the third child node 1206 of the second layer.
  • the third and eighth child nodes include point cloud points, and the third child node of the first layer includes point cloud points in the third child node and the eighth child node of the second layer, as well as the point cloud points of the first layer
  • the eighth child node includes point cloud points in the third child node and the eighth child node of the second layer.
  • the index 2 corresponding to the third child node 1202 of the first layer obtained by the octree division of the node 1201 is encoded to obtain 010, and then The index 7 corresponding to the eighth child node 1203 of the first layer is coded to obtain 111, and then the third child node 1202 of the first layer is divided into the third child node 1204 of the second layer obtained by octree division.
  • the corresponding index 2 is encoded to obtain 010, and the index 7 corresponding to the eighth child node 1205 of the second layer obtained by dividing the third child node 1202 of the first layer into the octree is coded to obtain 111, and then the The index 2 corresponding to the third child node 1206 of the second layer obtained by dividing the eighth child node 1203 of the first layer by the octree is coded to obtain 010, and the eighth child node 1203 of the first layer is divided into the octree
  • the obtained index 7 corresponding to the eighth child node 1207 of the second layer is encoded to obtain 111. Therefore, the code stream obtained by performing octree division and encoding on the node 1101 in a depth-first manner is 00000000 001010111010111010111.
  • the identifier when decoding the code stream of each layer below the Nth layer with the first node, the identifier ( For example, when decoding to 8-bit 0 (ie 00000000), then decode the number of layers with the same distribution of the specific node of the first node under the Nth layer, and then perform the decoding for each node under the Nth layer. The index of the specific node of the layer is decoded.
  • the obtained code stream obtained by octree partitioning and encoding of node 1201 is 00000000 001010111010111010111
  • octree decoding when octree decoding is performed on the code stream of node 1201, when the code stream of node 1201 is decoded, it is used to indicate breadth-first switching
  • the 8-bit depth-first identifier is 0, which is 00000000
  • the depth-first method is used to decode 001
  • the code stream of the first node further includes the number of point cloud points contained in the leaf node after the index of each leaf node.
  • a 0 when encoding the number of point cloud points contained in a leaf node, when the current leaf node contains a point cloud point, a 0 can be directly encoded to indicate; when the current leaf node contains more than For a point cloud point, assuming that the current leaf node contains n point cloud points, a 1 will be coded first, and then the value (n-1) will be coded.
  • the code stream of node 1101 obtained after node 1101 octree division is 0000000001010000
  • node 1101 is obtained after octree division
  • the first child node 1103 (ie leaf node) of the second layer is obtained If the number of point cloud points included in the node 1101 is 1, then in the code stream of the node 1101, after the index of the leaf node 1103, the number 1 of the point cloud points contained in the leaf node 1103 can be coded to obtain 0, thereby obtaining
  • the code stream of node 1101 is 00000000010100000.
  • each child node of the first node in the multi-tree division can be avoided. Perform encoding or decoding, thereby reducing the complexity of encoding or decoding and the time overhead, improving the parallel processing of point cloud compression encoding or decoding, and improving the encoding or decoding efficiency and performance.
  • multiple encoding methods are included when encoding the index of each child node of the first node that includes point cloud points.
  • each child node is a sub-block of the cube obtained by dividing. Assuming that the side length of the current child node is 2 n , then only the low n bits of the corresponding position coordinates of the current point cloud point need to be coded.
  • n bits corresponding to the three directions of x, y, and z can be consecutively coded, that is, n bit x, n bit y, n bit z, and the order of sequence may not be limited; in another implementation In this way, you can code x, y, z from the high bit, that is, code the nth bit from the low bit of x first, then code the nth bit from the low bit of y, and then code the nth bit from the low bit of z.
  • sequence of x, y, z is not limited, and the sequence of each bit is not limited.
  • the encoding and decoding it only needs to be consistent with the encoding and decoding until the encoding reaches the lowest bit; in another embodiment, it can be from the lowest Start coding x, y, z, that is, code the 0th bit from the low bit of x first, then code the 0th bit from the low bit of y, and then code the 0th bit from the low bit of z, where x,
  • the sequence of y, z, is not limited, and the sequence of each bit is not limited, as long as the codec is consistent; in another embodiment, it is not necessary to fix which bit to start coding, and finally only need to code Just add the bits corresponding to the three directions of x, y, and z.
  • the embodiment of the present invention does not specifically limit the coding mode for coding the index of each sub-node.
  • the bit stream of the point cloud is also provided with an identification bit in the header information, which is used to indicate whether to enable the switch to the depth-first mode for position encoding or decoding.
  • the header information can be geometric header information or sequence header information.
  • the decoding end parses the identification bit from the code stream of the point cloud, it determines whether to enable switching to the depth-first mode for position decoding according to the identification bit.
  • the flag indicates that it is enabled to switch to depth-first mode for position decoding
  • the identifier is parsed from the code stream of the first node, it can be determined to switch to the depth-first mode to perform position decoding on the code stream of the first node. decoding.
  • the point cloud processing device can encode or decode the Nth layer of the multitree in a breadth-first manner.
  • the point cloud in the first node is encoded or decoded in a depth-first manner to obtain the code stream of the first node.
  • the code stream of the first node contains the identifier and the point cloud point in the first node.
  • the index of the node of each layer in the fork tree, the identifier is used to indicate that the child node of the first node switches from the breadth-first mode to the depth-first mode for encoding or decoding, where N is an integer greater than or equal to 1.
  • FIG. 13 is a schematic structural diagram of a point cloud processing device according to an embodiment of the present invention.
  • the point cloud processing device includes: a memory 1301, a processor 1302, and a data interface 1303.
  • the memory 1301 may include a volatile memory (volatile memory); the memory 1301 may also include a non-volatile memory (non-volatile memory); the memory 1301 may also include a combination of the foregoing types of memories.
  • the processor 1302 may be a central processing unit (CPU).
  • the processor 1302 may further include a hardware point cloud processing device.
  • the foregoing hardware point cloud processing device may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. Specifically, for example, it may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), or any combination thereof.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • FPGA field-programmable gate array
  • the memory 1301 is used to store a program, and when the program is executed, the processor 1302 can call the program stored in the memory 1301 to perform the following steps:
  • the point cloud in the first node is encoded or decoded in a depth-first manner to obtain the first node
  • the code stream of a node the code stream of the first node includes an identifier and the index of the point cloud point in the first node at each level of the multi-tree, and the identifier is used to indicate the The child nodes of the first node switch from the breadth-first mode to the depth-first mode for encoding or decoding, where N is an integer greater than or equal to 1.
  • the first node in the code stream of at least one layer below the Nth layer includes the index of the child node of the first node that contains the point cloud point in the first layer, and the first node An indicator bit, where the first indicator bit is used to indicate whether the layer is the lowest layer under the first node.
  • the first indicator bit is located before the indexes of all the child nodes containing the point cloud point in the layer, or is located after the indexes of all the child nodes containing the point cloud point in the layer.
  • the first node includes a second indicator bit in the code stream of each layer below the Nth layer, and the second indicator bit is used to indicate that the layer contains point cloud points. The number of nodes.
  • the second indicator bit is used to indicate that the number of nodes containing point cloud points of the first node in the first layer is 1 or 2.
  • the first node in the code stream of each layer below the Nth layer, after the second indicator bit, further includes the indexes of all nodes containing point cloud points in the layer.
  • the code stream of the first node includes a third indicator bit, and the third indicator bit is used to indicate the number of leaf nodes that the first node contains point cloud points under the Nth layer .
  • the third indicator bit is used to indicate that the number of leaf nodes containing point cloud points of the first node under the Nth layer is 1 or 2.
  • the code stream of the first node further includes indexes of all nodes containing point cloud points of the first node under the Nth layer.
  • the number or distribution of all point cloud points in the first node of the Nth layer satisfies a preset condition, including:
  • the number of the lowest leaf nodes of the first node below the Nth layer is less than or equal to 2; or,
  • the number of all point cloud points of the first node is less than or equal to two.
  • the number or distribution of all point cloud points in the first node of the Nth layer satisfies a preset condition, including:
  • the distribution of specific nodes in at least M consecutive layers of the first node below the Nth layer is the same, the specific node is a node containing point cloud points, and the M is a preset positive integer.
  • the code stream of the first node includes the number of layers with the same distribution of the specific node under the Nth layer of the first node, and the index of the specific node.
  • code stream of the first node further includes the number of point cloud points contained in the leaf node after the index of each leaf node.
  • the number of layers with the same distribution of the specific nodes is obtained by encoding using a fixed-length encoding method or a variable-length encoding method.
  • polytree division includes any one or a combination of any two or a combination of three of the following:
  • the Nth layer is obtained by using an octree division, and the identifier is an eight-bit 0; or,
  • the Nth layer is obtained by using a quadtree division, and the identifier is a four-bit 0; or,
  • the Nth layer is obtained by using a binary tree division, and the identifier is a two-bit 0.
  • the code stream of the point cloud includes an identification bit, which is used to indicate whether to enable switching to depth-first encoding.
  • the point cloud processing device divides the position of the point cloud by multi-tree division, and uses the breadth-first method to encode or decode the Nth layer of the multi-tree.
  • the point cloud in the first node is encoded or decoded in a depth-first manner to obtain the code stream of the first node, and the code stream of the first node Contains an identifier and the index of the node at each level in the multi-tree of the point cloud point in the first node.
  • the identifier is used to indicate that the child nodes of the first node switch from the breadth-first mode to the depth-first mode for encoding or Decoding, where N is an integer greater than or equal to 1.
  • FIG. 14 is a schematic structural diagram of a point cloud decoding device according to an embodiment of the present invention.
  • the point cloud decoding device includes: a memory 1401, a processor 1402, and a data interface 1403.
  • the memory 1401 may include a volatile memory (volatile memory); the memory 1401 may also include a non-volatile memory (non-volatile memory); the memory 1401 may also include a combination of the foregoing types of memories.
  • the processor 1402 may be a central processing unit (CPU).
  • the processor 1402 may further include a hardware point cloud decoding device.
  • the aforementioned hardware point cloud decoding device may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. Specifically, for example, it may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), or any combination thereof.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • FPGA field-programmable gate array
  • the memory 1401 is used to store a program, and when the program is executed, the processor 1402 can call the program stored in the memory 1401 to perform the following steps:
  • the code stream of the first node of the Nth layer is decoded in a depth-first manner, and the code stream of the first node includes the identifier and the code stream in the first node.
  • the index of the point cloud point at each level of the multi-tree, the identifier is used to instruct the child nodes of the first node to switch from the breadth-first mode to the depth-first mode for decoding, where N is greater than or An integer equal to 1.
  • the first node in the code stream of at least one layer below the Nth layer includes the index of the child node of the first node that contains the point cloud point in the first layer, and the first node An indicator bit, where the first indicator bit is used to indicate whether the layer is the lowest layer under the first node.
  • the first indicator bit is located before the indexes of all the child nodes containing the point cloud point in the layer, or is located after the indexes of all the child nodes containing the point cloud point in the layer.
  • the first node includes a second indicator bit in the code stream of each layer below the Nth layer, and the second indicator bit is used to indicate that the layer contains point cloud points. The number of nodes.
  • the second indicator bit is used to indicate that the number of nodes containing point cloud points of the first node in the first layer is 1 or 2.
  • the first node in the code stream of each layer below the Nth layer, after the second indicator bit, further includes the indexes of all nodes containing point cloud points in the layer.
  • the code stream of the first node includes a third indicator bit, and the third indicator bit is used to indicate the number of leaf nodes that the first node contains point cloud points under the Nth layer .
  • the third indicator bit is used to indicate that the number of leaf nodes containing point cloud points of the first node under the Nth layer is 1 or 2.
  • the code stream of the first node further includes indexes of all nodes containing point cloud points of the first node under the Nth layer.
  • the number or distribution of all point cloud points in the first node of the Nth layer satisfies a preset condition, including:
  • the number of the lowest leaf nodes of the first node below the Nth layer is less than or equal to 2; or,
  • the number of all point cloud points of the first node is less than or equal to two.
  • the number or distribution of all point cloud points in the first node of the Nth layer satisfies a preset condition, including:
  • the distribution of specific nodes in at least M consecutive layers of the first node below the Nth layer is the same, the specific node is a node containing point cloud points, and the M is a preset positive integer.
  • the code stream of the first node includes the number of layers with the same distribution of the specific node under the Nth layer of the first node, and the index of the specific node.
  • code stream of the first node further includes the number of point cloud points contained in the leaf node after the index of each leaf node.
  • the number of layers with the same distribution of the specific nodes is obtained by encoding using a fixed-length encoding method or a variable-length encoding method.
  • polytree division includes any one or a combination of any two or a combination of three of the following:
  • the Nth layer is obtained by using an octree division, and the identifier is an eight-bit 0; or,
  • the Nth layer is obtained by using a quadtree division, and the identifier is a four-bit 0; or,
  • the Nth layer is obtained by using a binary tree division, and the identifier is a two-bit 0.
  • the code stream of the point cloud includes an identification bit, which is used to indicate whether to enable switching to depth-first encoding.
  • the point cloud decoding device can divide the position of the point cloud by multi-tree division, and decode the Nth layer of the multi-tree in a breadth-first manner.
  • the identifier uses The code stream of the first node of the Nth layer is decoded in a depth-first manner to obtain the code stream of the first node.
  • the code stream of the first node contains the identifier and the point cloud point in the first node.
  • the index of the node of each layer in the tree, the identifier is used to indicate that the child node of the first node switches from the breadth-first mode to the depth-first mode for decoding, where N is an integer greater than or equal to 1.
  • a computer-readable storage medium stores a computer program.
  • the computer program is executed by a processor, the computer program described in the embodiment of the present invention in FIG. 10 is implemented.
  • the point cloud processing device in the embodiment corresponding to the present invention described in FIG. 13 or the point cloud decoding device in the corresponding embodiment of the present invention described in FIG. 14 can also be implemented, which will not be repeated here.
  • the computer-readable storage medium may be an internal storage unit of the device described in any of the foregoing embodiments, such as a hard disk or memory of the device.
  • the computer-readable storage medium may also be an external storage device of the device, such as a plug-in hard disk equipped on the device, a Smart Media Card (SMC), or a Secure Digital (SD) card. , Flash Card, etc.
  • the computer-readable storage medium may also include both an internal storage unit of the device and an external storage device.
  • the computer-readable storage medium is used to store the computer program and other programs and data required by the device.
  • the computer-readable storage medium can also be used to temporarily store data that has been output or will be output.
  • the program can be stored in a computer readable storage medium. During execution, it may include the procedures of the above-mentioned method embodiments.
  • the storage medium may be a magnetic disk, an optical disc, a read-only memory (Read-Only Memory, ROM), or a random access memory (Random Access Memory, RAM), etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明实施例提供了一种用于点云处理、解码的方法、设备及存储介质,其中,该方法包括:对多叉树的第N层采用广度优先的方式进行编码或者解码;当第N层的第一节点中的全部点云点的数量或者分布满足预设条件时,采用深度优先的方式对第一节点中的点云进行编码或者解码,得到第一节点的码流,第一节点的码流中包含标识符和第一节点中的点云点在多叉树中各层的节点的索引,标识符用于指示第一节点的子节点从广度优先的方式切换至深度优先的方式进行编码或者解码,其中,N为大于或等于1的整数。通过这种实施方式,降低了编码或者解码的复杂度以及在时间上的开销,提高了对点云压缩编码或者解码的并行化处理,提高了编码或者解码效率和性能。

Description

一种用于点云处理、解码的方法、设备及存储介质 技术领域
本发明涉及数据编解码领域,尤其涉及一种用于点云处理、解码的方法、设备及存储介质。
背景技术
点云云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景的空间结构和表面属性的离散点所构成,一个点云云的数据可以包括描述坐标信息的三维坐标,以及进一步包括该位置坐标的属性。为了准确反映空间中的信息,所需离散点的数目是巨大的。为了减少点云云存储和传输时所占用的带宽,需要对点云云进行编码压缩处理。
目前,在对点云云进行编码压缩处理时常采用广度优先的逐层多叉树划分编码,然而采用这种方式进行点云编码存在较高复杂度、并行度较低,因此,如何提高对维数据点云的编码或解码性能是一项亟待解决的问题。
发明内容
本发明实施例提供了一种用于点云处理、解码的方法、设备及存储介质,可以降低编码或者解码的复杂度以及在时间上的开销,提高对点云压缩编码或者解码的并行化处理,提高编码或者解码效率和性能。
第一方面,本发明实施例提供了一种用于点云处理的方法,所述点云采用多叉树划分的方式进行位置划分,所述方法包括:
对所述多叉树的第N层采用广度优先的方式进行编码或者解码;
当所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件时,采用深度优先的方式对所述第一节点中的点云进行编码或者解码,得到所述第一节点的码流,所述第一节点的码流中包含标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行编码或者解码,其中,N为大于或等于1的整数。
第二方面,本发明实施例提供了一种用于点云解码的方法,所述点云采用 多叉树划分的方式进行位置划分,所述方法包括:
对所述多叉树的第N层采用广度优先的方式进行解码;
当解析到标识符时,采用深度优先的方式对所述第N层的第一节点的码流进行解码,所述第一节点的码流中包含所述标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行解码,其中,N为大于或等于1的整数。
第三方面,本发明实施例提供了一种用于点云处理的设备,所述设备包括:存储器和处理器,
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
对多叉树的第N层采用广度优先的方式进行编码或者解码;
当所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件时,采用深度优先的方式对所述第一节点中的点云进行编码或者解码,得到所述第一节点的码流,所述第一节点的码流中包含标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行编码或者解码,其中,N为大于或等于1的整数。
第四方面,本发明实施例提供了一种用于点云解码的设备,所述设备包括:存储器和处理器,
所述存储器,用于存储程序;
所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
对多叉树的第N层采用广度优先的方式进行解码;
当解析到标识符时,采用深度优先的方式对所述第N层的第一节点的码流进行解码,所述第一节点的码流中包含所述标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行解码,其中,N为大于或等于1的整数。
第五方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面所述的方法或上述第二方面所述的方法。
本发明实施例,通过多叉树划分的方式对点云进行位置划分,并对多叉树的第N层采用广度优先的方式进行编码或者解码,当第N层的第一节点中的全部点云点的数量或者分布满足预设条件时,采用深度优先的方式对第一节点中的点云进行编码或者解码,得到第一节点的码流,第一节点的码流中包含标识符和第一节点中的点云点在多叉树中各层的节点的索引,该标识符用于指示第一节点的子节点从广度优先的方式切换至深度优先的方式进行编码或者解码,其中,N为大于或等于1的整数。通过这种实施方式,可以避免对多叉树划分中第一节点的每个子节点进行编码或者解码,降低了编码或者解码的复杂度以及在时间上的开销,提高了对点云压缩编码或者解码的并行化处理,提高了编码或者解码效率和性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种现有点云压缩的编码流程示意图;
图2是本发明实施例提供的一种现有点云压缩的解码流程示意图;
图3是本发明实施例提供的一种立方体八叉树划分的示意图;
图4是本发明实施例提供的一种八叉树节点逐层划分的示意图;
图5是本发明实施例提供的一种现有属性编码方案的流程示意图;
图6是本发明实施例提供的另一种现有属性编码方案的流程示意图;
图7是本发明实施例提供的一种层次编码的结构示意图;
图8是本发明实施例提供的一种二值化编码的流程示意图;
图9是本发明实施例提供的一种二值化解码的流程示意图;
图10是本发明实施例提供的一种用于点云处理的方法的流程示意图;
图11是本发明实施例提供的一种点云编码的流程示意图;
图12是本发明实施例提供的另一种点云编码的流程示意图;
图13是本发明实施例提供的一种点云处理设备的结构示意图;
图14是本发明实施例提供的一种点云解码设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本发明实施例针对目前在点云编码过程中复杂度高、开销大、并行度较低的问题,提出了一种用于点云处理的方法。在介绍本发明之前,首先对现有点云编码方案进行如下相关介绍。
在一个实施例中,点云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成。为了准确反映空间中的信息,所需离散点的数目是巨大的。为了减少点云存储和传输时所占用的带宽,可以对点云进行编码压缩处理。点云可以由离散的点云构成,每个点云的数据可以包括描述该点云的位置坐标的信息,以及进一步可以包括属性的信息。其中,点云的位置坐标可以为三维位置坐标(x,y,z)。点云的属性可以包括点云的反射率和/或颜色等。
为了准确反映空间的信息,点云包括的点云的数量通常是较大的。为了减少点云数据存储和传输时所占用的带宽,需要对点云数据进行编码压缩处理。以下将结合图1至图2描述如何对点云进行编码和解码处理。
如图1所示,图1是本发明实施例提供的一种现有点云压缩的编码流程示意图,如图1所示的编码方法,通过输入点云数据11,对输入的点云数据的位置坐标进行量化12,例如,可以根据位置坐标在三个轴的最大值、最小值之间的差值,以及根据输入参数确定的量化精度,对每个点云的位置坐标进行量化,将输入的点云的位置坐标转换为大于等于零的整数坐标;去除位置坐标中的重复坐标121,对处理后的位置坐标进行位置编码13,例如使用八叉树编 码,然后对输入的点云数据的属性进行属性转换14,并对位置编码后重排序的位置顺序对应的属性进行属性编码15,以及对编码后的二进制码流进行算术编码16,从而得到对点云数据编码后的码流数据17。在某些实施例中,所述码流数据可以输出到存储器中进行存储,或者,可以传送到解码端。
以及,如图2所示,图2是本发明实施例提供的一种现有点云压缩的解码流程示意图,如图2所示的解码方法,通过获取待解码的码流数据21,并对其进行算术解码22,通过八叉树编码23对算术解码后的数据进行逆量化24,得到点云数据的位置坐标,通过对算术解码后的数据进行属性解码25得到点云数据的属性,最后根据点云数据的属性和位置坐标得到解码的点云数据26。
应理解,以上提到了点云数据可以包括属性的信息,但应理解,本发明实施例中,点云数据也可以不包括属性的信息,仅包括位置坐标的信息。
在一个实施例中,对于编码端而言,在进行多叉树划分时,每层多叉树的划分可以利用当前节点的中心点的坐标进行子节点的划分,通过中心点将当前节点划分为多个子节点,然后可以判断每个子节点内是否存在点云,对存在点云的子节点会再进一步进行划分,直至子节点划分至预设大小,例如,可以划分到边长为1的子节点时停止划分。
例如,以八叉树划分为例,每层八叉树的划分均利用当前块的中心点的坐标进行子块划分,通过中心点将当前块划分为八个小的子块。对一个编码块进行一次八叉树划分的示意图如图3所示,图3是本发明实施例提供的一种立方体八叉树划分的示意图,即是一个节点划分为8个子节点的划分方式。得到子块划分后,会判断每个子块内是否存在点云,对存在点云的子块会再进一步进行划分,直至子块划分至最小时,即子块边长为1时停止划分,具体八叉树递归划分的示意图如图4所示,图4是本发明实施例提供的一种八叉树节点逐层划分的示意图。
在一个实施例中,在对位置坐标进行了八叉树编码后,接着会按照八叉树编码后位置坐标的顺序所对应的属性进行属性的压缩编码,对属性编码可以采用层次编码方式或二值化编码方式进行编码。
以图5和图6为例,对属性编码的层次编码方式进行说明,其中,图5是本发明实施例提供的一种现有属性编码方案的流程示意图,图6是本发明实施例提供的另一种现有属性编码方案的流程示意图;其中,图5和图6的标记 中与图1和图2的相同的标记在此不再赘述,具体可以参考针对图1和图2的描述。
如图5所示,对属性的编码操作可以包括151、152和153;在151中,基于位置坐标编码后的位置坐标,生成层次编码方案(level of detail,LOD);在152中,基于层次编码方案,进行预测编码;在153中,对预测编码的结果进行量化。
如图6所示,对属性的解码操作可以包括251、252和253;在251中,对解码得到的属性码流进行逆量化;在252中,基于位置坐标解码后的位置坐标,生成层次解码方案;在253中,基于层次编码方案,进行预测解码。
在一个实施例中,在实际编码过程中,可以根据LOD配置的参数来进行LOD分层,其中,后面的层会包含有前面层的点。例如,如图7所示,图7是本发明实施例提供的一种层次编码的结构示意图,在LOD0(层0),包含的点云为P0,P5,P4,P2;在LOD1(层1),包含的点云为P0,P5,P4,P2,P1,P6,P3;以及在LOD2(层2)包含的点云为P0,P5,P4,P2,P1,P6,P3,P9,P8,P7。
在一个实施例中,在分层的过程中,先选择点云数据中的第一个点云,将其放在LOD0层的第一个点,接着开始依次遍历点云,计算这个点和当前层里面已经含有的所有点之间的笛卡尔坐标系下的距离,如果最小的距离是大于当前LOD层的设置的距离阈值(dist2)时,这个点就会被划入到当前LOD层。并且在这个过程中,会将计算得到的距离排序,选择出最小的若干个,这个数目是由预测时相邻点的数量(number Of Neighbors In Prediction)确定。其中,一个点云被划入一个LOD层后,后续可以不需要再接着判断其是否还属于下一个LOD层,因为下一层是包含上一层的所以其一定属于下一个LOD层;以及在LOD0层的前面几个点,由于在LOD内的点数比较少所以选择出的参考点数目有可能小于该数量N。
在一个实施例中,在划分结束LOD层之后,可以利用前面选择的最临近的点来分配预测时的权重。具体的,对每个点云,在前面已经得到了按照距离排序的最邻近的X个点之后,接下来可以按照1个参考点,2个参考点一直到X个参考点来分别求出权重分配方案。权重分配方案共有X种,其中,1个参考点时就是距离最小的1个点作为参考点,这时它的权重即为1;2个参考点时就是选择距离最小的2个点作为参考点,这时会根据这两个参考点和待预测 点之间的距离来分配权重,具体权重为距离反比,距离越远权重越小,并保证权重和为1;直X个参考点时,就是选择X个参考点,权重分配方法与前面相同。
在一个实施例中,在分配完权重后,可以选择参考点数,在这里需要注意的是,对一个预测点可以选择的临近参考点的数目是小于等于X。具体会遍历限定参考点最大为1个时,这时预测值(权重乘以对应位置的属性值)与实际属性值的残差经过量化后的值得和,这个和即为参考点数目最大为1时的代价,接着会遍历限定参考点数目最大为2个时的代价,直至限定参考点数目最大为X时的代价,最终选择一个代价最小的最大参考点数的方案。并进一步编码这个方案下量化后的残差值。
在一个实施例中,在编码后的码流中关于属性的头信息可以描述关于分层编码属性即LOD的相关信息,具体包括在每个层进行预测时,选择临近参考点(用于计算残差的位置坐标)的点数(numberOfNeighborsInPrediction),LOD的层数(levelOfDetailCount),划分LOD每一层所依据的距离阈值(dist2),LOD每一层量化的步长(quantizationSteps),LOD每一层的死区大小(quantizationDeadZoneSizes)(也即将残差量化为0的残差区间),其中,后面三个属性可以分别对LOD每层均设定,每层的属性均可以写入码流头信息中。
在一个实施例中,对属性的编码还可以采用二值化编码的方式,所述二值化编码的编码方式可以为定长编码方式、截断莱斯编码方式或K阶指数哥伦布编码方式。相应地,二值化解码的解码方式可以为定长解码方式、截断莱斯解码方式或K阶指数哥伦布解码方式。
在一个示例中,以图8为例对二值化编码的方式中的定长编码方式进行说明,图8是本发明实施例提供的一种二值化编码的流程示意图,其中,包括154,通过定长编码方式进行二值化编码,图8的标记中与图1的相同的标记在此不再赘述。
对应地,在另一个示例中,以图9为例对二值化解码的方式中的定长解码方式进行说明,图9是本发明实施例提供的一种二值化解码的流程示意图,其中,包括254,通过定长解码方式进行二值化解码,图9的标记中与图2的相同的标记在此不再赘述。采用二值化编码的方式进行编码可以简化编码方法并 降低编解码的时间开销,以及无需在码流中加入较多的编码信息,从而可以提高压缩率。
现有的点云编码方案中对于位置坐标进行八叉树划分编码的过程采用了基于广度优先的顺序进行八叉树的遍历,对存在点云点的八叉树子块再进一步迭代八叉树划分的方案。这种方案,存在较高复杂度,并且在一些只含一个叶子节点的子块的划分表示上存在编码比特的浪费。这样在一定程度上影响了八叉树编码在压缩率这项性能指标上的表现。另外,对位置坐标的八叉树划分过程是基于广度优先的顺序进行八叉树的遍历,这种划分过程是逐层进行,只有当一层划分结束后才可以进行下面一层的划分,这种方案对点云压缩的并行化带来了较大的困难。
本发明实施例针对上述问题提出在对点云进行压缩编码或解码时,在位置坐标编码或解码过程中,采用广度优先、深度优先混合的八叉树点云编码或解码方案。在编码或解码至某个节点中的全部点云点的数量或者分布满足预设条件时(实施例会介绍),会从广度优先的方式切换至深度优先的方式进行编码或解码。通过这种实施方式可以减少编码过程中的开销,降低复杂度,提高点云编码的并行度。
本发明实施例提出的用于点云处理的方法可以应用于点云处理设备,所述点云处理设备可以为点云编码设备或点云解码设备,所述点云编码设备可以设置在智能终端(如手机、平板电脑等)上。本发明实施例提出的用于点云解码的方法可以应用于点云解码设备,所述点云解码设备也可以设置在智能终端(如手机、平板电脑等)上。在某些实施例中,本发明实施例还可应用于飞行器(如无人机)上,在其他实施例中,本发明实施例还可以应用于其他可移动平台(如无人船、无人汽车、机器人等)上,本发明实施例不做具体限定。
下面结合附图对本发明实施例提供的用于点云处理、解码的方法进行示意性说明。
具体请参见图10,图10是本发明实施例提供的一种用于点云处理的方法的流程示意图。所述方法可以应用于点云处理设备,即点云编码设备或点云解码设备,其中,所述点云编码设备或点云解码设备的解释如前所述,此处不再赘述。具体地,本发明实施例的所述方法包括如下步骤。
S1001:对多叉树的第N层采用广度优先的方式进行编码或者解码。
本发明实施例中,点云处理设备在对点云进行编码或者解码时,可以采用多叉树划分的方式对点云进行位置划分;所述点云处理设备在采用多叉树划分的方式对点云进行位置划分时,可以对所述多叉树的第N层采用广度优先的方式进行编码或者解码。
在一些实施例中,点云可以是光探测装置对待探测物体进行光探测(例如激光探测)所得到。该光探测装置诸如可以为光电雷达、或激光雷达、激光扫描仪等设备。本发明实施例中的编码设备可以集成于光探测装置中。
需要说明的是,所述激光雷达是一种感知传感器,可以获得场景的三维信息。其基本原理为主动对被探测对象发射激光脉冲信号,并获得其反射回来的脉冲信号,根据发射信号和接收信号之间的时间差计算被测对象的距离探测器的深度信息;基于激光雷达的已知发射方向,获得被测对象相对激光雷达的角度信息;结合前述深度信息和角度信息得到海量的探测点(称为点云)。
S1002:当所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件时,采用深度优先的方式对所述第一节点中的点云进行编码或者解码,得到所述第一节点的码流,所述第一节点的码流中包含标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行编码或者解码,其中,N为大于或等于1的整数。
在一个实施例中,在对点云的位置坐标进行编码或者解码时,可以采用多叉树的方式进行编码或者解码,所述多叉树划分可以包括以下任意一种或任意两种的结合或三种的结合:八叉树划分、四叉树划分、二叉树划分。例如,多叉树划分可以包括以下任意至少一种:八叉树划分、八叉树四叉树划分、八叉树二叉树划分、八叉树四叉树划分、八叉树四叉树二叉树划分、四叉树划分、二叉树划分、四叉树八叉树划分、二叉树八叉树划分、四叉树二叉树八叉树划分、二叉树八叉树四叉树划分、二叉树八叉树四叉树二叉树划分、二叉树八叉树二叉树划分、四叉树八叉树划分、四叉树八叉树四叉划分、四叉树八叉树二叉树划分、四叉树八叉树四叉树二叉树划分、四叉树二叉树八叉树划分、四叉树二叉树八叉树四叉树划分、四叉树二叉树八叉树二叉树划分、四叉树二叉树八叉树四叉树二叉树划分。
在一个实施例中,所述八叉树四叉树划分是指采用八叉树划分和四叉树划分对点云的位置坐标进行编码或者解码;在一个示例中,第一节点采用八叉树划分方式,对八叉树划分得到的包括点云点的一个或多个子节点采用四叉树划分方式。在一个实施例中,所述八叉树二叉树划分是指采用八叉树划分和二叉树划分对点云的位置坐标进行编码或者解码;在一个示例中,第一节点采用八叉树划分方式,对八叉树划分得到的包括点云点的一个或多个子节点采用二叉树划分方式。在一个实施例中,所述八叉树四叉树二叉树划分是指采用八叉树划分、四叉树和二叉树划分对点云的位置坐标进行编码或者解码;在一个示例中,第一节点采用八叉树划分方式,对八叉树划分得到的包括点云点的一个或多个子节点采用四叉树划分方式,对四叉树划分得到的包括点云点的一个或多个子节点采用二叉树划分方式;在另一个示例中,第一节点采用八叉树划分方式,对八叉树划分得到的包括点云点的一个或多个子节点采用二叉树划分方式,对二叉树划分得到的包括点云点的一个或多个子节点采用四叉树划分方式。在其他实施例中,其他划分方式与上述划分方式相似,此处不再一一赘述。
在一个实施例中,所述第N层是采用八叉树划分得到的,所述标识符为八比特0;或者,所述第N层是采用四叉树划分得到的,所述标识符为四比特0;或者,所述第N层是采用二叉树划分得到的,所述标识符为二比特0。
在一个示例中,在切换时,如果当前的位置划分为八叉树划分,则采用8bit的0即00000000来作为从广度优先的方式切换至深度优先的方式的标识符;如果当前的划分为四叉树,则采用4bit的0即0000来作为从广度优先的方式切换至深度优先的方式的标识符;如果当前的划分为二叉树,采用2bit的0即00来作为从广度优先的方式切换至深度优先的方式的标识符。
在一些实施例中,当所述第N层是采用八叉树划分得到时,所述索引可以为0至7,对应用3比特即000~111表示;当所述第N层是采用四叉树划分得到时,所述索引可以为0至3,对应用2比特即00~11表示;当所述第N层是采用二叉树划分得到时,所述索引可以为0至1,对应用1比特即0~1表示。
在一个实施例中,所述第一节点在所述第N层之下的至少一层的码流中,包括所述第一节点在所述一层中含有点云点的子节点的索引,以及第一指示位,所述第一指示位用于指示所述一层是否为所述第一节点下的最底层。在一个示例中,所述第一指示位为0时,确定所述一层为所述第一节点下的最底层; 所述第一指示位为1时,确定所述一层不为所述第一节点下的最底层。
在一个实施例中,所述第一指示位位于所述一层中所有含有点云点的子节点的索引之前,或者位于所述一层中所有含有点云点的子节点的索引之后。
以八叉树划分为例,如图11所示,图11是本发明实施例提供的一种点云编码的流程示意图,假设八叉树划分得到的一个节点1101包括点云点,对所述节点1101进行八叉树划分得到第一层的第3个子节点1102包括点云点,再对所述第一层的第3个子节点1102进行八叉树划分得到第二层的第1个子节点1103包括点云点,且所述第二层为底层。
例如,假设所述第一指示位位于所述一层中所有含有点云点的子节点的索引之后,每一层的节点的索引从左到右依次为0至7,则可以确定第一层的第3个子节点1102的索引为2即010,所述第二层的第1个子节点1103的索引为0即000。因此,在对节点1101进行八叉树划分编码时,可以首先编码标识符8比特的0,即00000000,用于表示从广度优先的方式切换至深度优先的方式进行编码,接着对所述节点1101八叉树划分得到的第一层的第3个子节点1102对应的索引2进行编码得到010,然后添加第一指示位1,用于确定所述第一层不为所述节点1101下的最底层,再对所述第一层的第3个子节点1102八叉树划分得到的第二层的第1个子节点1103对应的索引0进行编码得到000,添加第一指示位0,用于指示所述第二层为所述节点1101下的最底层。因此,采用深度优先的方式对所述节点1101进行八叉树划分编码后得到的码流为0000000001010000。
又例如,假设所述第一指示位位于所述一层中所有含有点云点的子节点的索引之前,每一层的节点的索引从左到右依次为0至7,则可以确定第一层的第3个子节点1102的索引为2即010,所述第二层的第1个子节点1103的索引为0即000。因此,在对节点1101进行八叉树划分编码时,可以对节点1101编码为1,然后编码标识符8比特的0,即00000000,用于表示从广度优先的方式切换至深度优先的方式进行编码,然后添加第一指示位1,用于确定所述第一层不为所述节点1101下的最底层,然后对所述节点1101八叉树划分得到的第一层的第3个子节点1102对应的索引2进行编码得到010,再添加第一指示位0,用于指示所述第二层为所述节点1101下的最底层,最后对所述第一层的第3个子节点1102八叉树划分得到的第二层的第1个子节点1103对应 的索引0进行编码得到000。因此,采用深度优先的方式对所述节点1101进行八叉树划分编码后得到的码流为10000000010100000。
对于解码端而言,当获取到待解码的码流时,可以先进行算术解码,解码位置信息相关码流,在进行八叉树解码时,依次对位置坐标的码流进行解码,当码流为广度优先时即按照广度优先顺序进行解码,当码流为深度优先时即按照深度优先的顺序进行解码。通过八叉树解码,逆量化,得到重建的位置坐标。在对位置坐标的码流进行多叉树解码时,可以默认以广度优先的顺序进行解码,当解码到用于指示广度优先切换到深度优先的标识符(例如,解码到8比特的0即00000000)时,转换为深度优先进行解码重建,按照这样的顺序进行解码,即可实现对位置坐标的八叉树解码。
在一个实施例中,在对第一节点在所述第N层之下的至少一层的码流进行解码时,当解码到用于指示广度优先切换到深度优先的标识符(例如,解码到8比特的0即00000000)时,接着解码第一节点在第N层之下的一层中含有点云点的子节点的索引,然后解码用于指示所述一层是否为所述第一节点下的最底层的第一指示位,如果第一指示位指示所述一层不为所述第一节点下的最底层,则继续解码第一节点在所述一层之下的一层中含有点云点的子节点的索引,如果解码到用于指示所述一层为所述第一节点下的最底层的第一指示位,则确定解码完成。
结合图11进行举例说明,假设获取到的节点1101八叉树划分编码得到的码流为10000000001010000,则在对节点1101的码流进行八叉树解码时,当解码到用于指示广度优先切换到深度优先的标识符8比特的0即00000000时,采用深度优先的方式接着解码010,得到对节点1101八叉树划分得到的第一层的第3个子节点1102对应的索引2,然后解码第一指示位1,接着解码000,得到第一层的第3个子节点1102八叉树划分得到的第二层的第1个子节点1103对应的索引0,当解码到第一指示位为0时确定节点1101的码流解码结束。
在一个实施例中,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:所述第一节点在所述第N层之下的最底层的叶子节点的数量小于或等于2;或者,所述第一节点的全部点云点的数量小于或等于2。
在一个实施例中,所述第一节点在所述第N层之下的每一层的码流中,包括第二指示位,所述第二指示位用于指示所述一层中含有点云点的节点的数量。可选的,该实施例是在满足以下条件的情况下采用的:第一节点在所述第N层之下的最底层的叶子节点的数量小于或等于2;或者,第一节点的全部点云点的数量小于或等于2,且第一节点多叉树划分得到的层数大于n,n大于或等于2。在一个实施例中,所述第二指示位用于指示所述第一节点在所述一层中含有点云点的节点的数量为1或2。在一个示例中,所述第二指示位为0时,用于指示所述一层中含有点云点的节点的数量为1;所述第二指示位为1时,用于指示所述一层中含有点云点的节点的数量为2。
在一个实施例中,所述第一节点在所述第N层之下的每一层的码流中,在所述第二指示位之后还包括所述一层中所有含有点云点的节点的索引。
以图11为例,在对节点1101进行八叉树划分编码时,可以编码标识符8比特的0,即00000000,用于表示从广度优先的方式切换至深度优先的方式进行编码,然后添加第二指示位0,用于指示第一层有1个节点有点云点,然后再对所述节点1101八叉树划分得到的第一层的第3个子节点1102对应的索引2进行编码得到010,然后再添加第二指示位0,用于指示所述第二层有1个节点有点云点,接着再对所述第一层的第3个子节点1102八叉树划分得到的第二层的第1个子节点1103对应的索引0进行编码得到000。因此,采用深度优先的方式对所述节点1101进行八叉树划分编码后得到的码流为0000000000100000。
对于解码端而言,在一个实施例中,在对第一节点在第N层之下的每一层的码流进行解码时,当解码到用于指示广度优先切换到深度优先的标识符(例如,解码到8比特的0即00000000)时,接着解码用于指示当前层中含有点云点的节点的数量的第二指示位,接着解码当前层含有点云点的子节点的索引,然后解码用于指示下一层中含有点云点的节点的数量的第二指示位,接着解码下一层含有点云点的子节点的索引,如此循环对第一节点在第N层之下的每一层的第二指示位和含有点云点的子节点的索引进行解码,直至对第一节点在第N层之下的每一层的第二指示位和含有点云点的子节点的索引解码完成为止。
结合图11进行举例说明,假设获取到的节点1101八叉树划分编码得到的 码流为0000000000100000,则在对节点1101的码流进行八叉树解码时,当解码到用于指示广度优先切换到深度优先的标识符8比特的0即00000000时,采用深度优先的方式接着解码用于指示第一层即当前层中含有点云点的节点的数量的第二指示位0,即确定第一层有一个包含点云点的子节点,接着解码010得到第一层包含点云点的子节点的索引为2,即第一层包含点云点的子节点为第一层的第3个子节点1102,然后解码用于指示第二层中含有点云点的节点的数量的第二指示位0,即确定第二层有一个包含点云点的子节点,接着解码000得到第二层包含点云点的子节点的索引为0,即第二层包含点云点的子节点为第二层的第1个子节点1103。
在一个实施例中,当所述第一节点在所述第N层之下的最底层的叶子节点的数量小于或等于2;或者,所述第一节点的全部点云点的数量小于或等于2,且所述第一节点多叉树划分得到的层数大于n,n大于或等于2时,所述第一节点的码流中,包括第三指示位,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量。在一个实施例中,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量为1或2。在一个实施例中,所述第三指示位为0,用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量为1;所述第三指示位为1,用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量为2。
在一个实施例中,所述第一节点的码流中还包括所述第一节点在所述第N层之下所有含有点云点的节点的索引。
以图11为例,在对节点1101进行八叉树划分编码时,可以编码标识符8比特的0,即00000000,用于表示从广度优先的方式切换至深度优先的方式进行编码,如果对节点1101进行八叉树划分编码得到包括点云点的叶子节点的数量为1,则可以添加第三指示位0,然后再对所述节点1101八叉树划分得到的第一层的第3个子节点1102对应的索引2进行编码得到010,接着再对所述第一层的第3个子节点1102八叉树划分得到的第二层的第1个子节点1103对应的索引0进行编码得到000。因此,采用深度优先的方式对所述节点1101进行八叉树划分编码后得到的码流为000000000010000。
对于解码端而言,在一个实施例中,在对第一节点在第N层之下的每一层的码流进行解码时,当解码到用于指示广度优先切换到深度优先的标识符 (例如,解码到8比特的0即00000000)时,接着解码用于指示第一节点在第N层之下含有点云点的叶子节点的数量,接着解码当前层含有点云点的子节点的索引,然后解码在当前层之下的一层含有点云点的子节点的索引,直至对第一节点在第N层之下的每一层含有点云点的子节点的索引解码完成为止。
结合图11进行举例说明,假设获取到的节点1101八叉树划分编码得到的码流为000000000010000,则在对节点1101的码流进行八叉树解码时,当解码到用于指示广度优先切换到深度优先的标识符8比特的0即00000000时,采用深度优先的方式接着解码用于指示节点1101在第二层含有点云点的叶子节点的数量的第三指示位0,即确定节点1101在第二层含有点云点的叶子节点的数量为1,接着解码010得到第一层包含点云点的子节点的索引为2,即第一层包含点云点的子节点为第一层的第3个子节点1102,然后解码000得到第二层包含点云点的叶子节点的索引为0,即第二层包含点云点的叶子节点为第二层的第1个子节点1103。
在一个实施例中,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:所述第一节点在所述第N层之下中至少连续M层中特定节点的分布相同,所述特定节点为包含点云点的节点,所述M为预设的正整数。
在一个实施例中,所述第一节点在所述第N层之下中至少连续M层中特定节点的分布相同是指,所述第一节点在第N层之下中至少连续M层中每层包括点云点的子节点的索引相同。在一个示例中,假设M为2,如果所述第一节点在第N层之下中连续2层中每一层包括点云点的子节点均分布在连续2层的每一层的第3个子节点和第8个子节点中,则可以确定第一节点在第N层之下中连续2层中包括点云点的子节点的分布相同。
在一个实施例中,所述第一节点的码流中,包括所述第一节点在所述第N层之下所述特定节点的分布相同的层数,以及所述特定节点的索引。
在一个实施例中,所述特定节点的分布相同的层数是采用定长编码方式或者变长编码方式进行编码得到的。
以图12为例,图12是本发明实施例提供的另一种点云编码的流程示意图,假设八叉树划分得到第0层的节点1201包括点云点,对所述节点1201进行八叉树划分得到第1层的第3个子节点1202包括点云点以及第8个子节点1203 包括点云点,再对所述第1层的第3个子节点1102进行八叉树划分得到第2层的第3个子节点1204包括点云点以及第8个子节点1205包括点云点,接着对所述第1层的第8个子节点1203进行八叉树划分得到第2层的第3个子节点1206以及第8个子节点1207,且所述第二层为底层。
例如,假设每一层的节点的索引从左到右依次为0至7,由于节点1201在第1层和第2层中连续2层的点云点分布相同,即节点1201在第1层的第3个子节点和第8个子节点中包括点云点,以及第1层的第3个子节点在第2层的第3个子节点和第8个子节点中包括点云点,以及和第1层的第8个子节点在第2层的第3个子节点和第8个子节点中包括点云点。因此,在对节点1201进行八叉树划分编码时,可以首先编码标识符8比特的0,即00000000,用于表示从广度优先的方式切换至深度优先的方式进行编码,然后对具有相同点云分布的层数的3比特索引即000-111进行编码,此处对具有相同点云分布的层数的3比特索进行编码即为对索引2-1=1进行编码得到001。在编码了相同点云分布的层数的索引后,如果到达了叶子节点,则停止编码,如果还没有到达叶子节点,则继续进行八叉树划分。此处在编码了层数索引001之后还没有到达叶子节点,则接着再对所述节点1201八叉树划分得到的第1层的第3个子节点1202对应的索引2进行编码得到010,接着再对所述第1层的第8个子节点1203对应的索引7进行编码得到111,接着再对所述第1层的第3个子节点1202八叉树划分得到的第2层的第3个子节点1204对应的索引2进行编码得到010,以及对所述第1层的第3个子节点1202八叉树划分得到的第2层的第8个子节点1205对应的索引7进行编码得到111,再对所述第1层的第8个子节点1203八叉树划分得到的第2层的第3个子节点1206对应的索引2进行编码得到010,以及对所述第1层的第8个子节点1203八叉树划分得到的第2层的第8个子节点1207对应的索引7进行编码得到111。因此,采用深度优先的方式对所述节点1101进行八叉树划分编码后得到的码流为00000000 001010111010111010111。
对于解码端而言,在一个实施例中,在对第一节点在第N层之下的每一层的码流进行解码时,当解码到用于指示广度优先切换到深度优先的标识符(例如,解码到8比特的0即00000000)时,接着解码第一节点在所述第N层之下特定节点的分布相同的层数,然后对第一节点在所述第N层之下每一 层的特定节点的索引进行解码。
结合图12进行举例说明,假设获取到的节点1201八叉树划分编码得到的码流为00000000 001010111010111010111,则在对节点1201的码流进行八叉树解码时,当解码到用于指示广度优先切换到深度优先的标识符8比特的0即00000000时,采用深度优先的方式接着解码001,得到节点1201在第0层之下具有相同点云分布的层数的索引为1+1=2层即第1层和第2层;接着解码010和111得到节点1201在第1层包含点云点的子节点的索引为2和7,即确定第1层包括点云点的子节点为子节点1202和子节点1203;接着再解码010和111得到子节点1202在第2层包含点云点的子节点的索引为2和7,即确定子节点1202在第2层包括点云点的子节点为子节点1204和子节点1205;然后再解码010和111得到子节点1203在第2层包含点云点的子节点的索引为2和7,即确定子节点1203在第2层包括点云点的子节点为子节点1206和子节点1207。
在一个实施例中,所述第一节点的码流中,在每一个叶子节点的索引之后,还包括所述叶子节点中所包含的点云点的数量。
在一个实施例中,在对叶子节点中所包含的点云点的数量进行编码时,当当前叶子节点内含有一个点云点,则可以直接编码一个0进行表示;当当前叶子节点内含有不止一个点云点时,假设当前叶子节点内含有n个点云点,此时会先编码一个1,接着编码数值(n-1)。
结合上述图11的例子进行说明,节点1101八叉树划分后得到的节点1101的码流为0000000001010000,如果节点1101八叉树划分后得到的第二层的第1个子节点1103(即叶子节点)中包括的点云点的数量为1,则可以在节点1101的码流中,在叶子节点1103的索引之后,对叶子节点1103中所包含的点云点的数量1进行编码得到0,从而得到节点1101的码流为00000000010100000。
可见,通过深度优先的方式对第一节点在第N层以下的每一层中包括点云点的子节点的索引进行编码或解码,可以避免对多叉树划分中第一节点的每个子节点进行编码或解码,从而降低编码或解码的复杂度以及在时间上的开销,提高了对点云压缩编码或解码的并行化处理,提高了编码或解码效率和性能。
在一个实施例中,在对第一节点的各个包括点云点的子节点的索引进行编 码时包括多种编码方式。
在一种实施方式中,可以根据对第一节点进行八叉树划分得到的当前子节点的边长确定,其中,各个子节点是划分得到的立方体的子块。假设当前子节点边长为2 n,则此时只需要编码当前点云点对应位置坐标的低n bit即可。
在一个实施例中,在对位置坐标的低n bit进行编码时也存在多种编码方式。其中,在一种实施方式中,可以分别连续编码x,y,z三个方向对应的n bit,即n bit x,n bit y,n bit z,先后顺序可不做限定;在另一种实施方式中,可以从高位开始编码x,y,z,即先编码x的从低位开始的第n bit,再编码y的从低位开始的第n bit,再编码z的从低位开始的第n bit,其中x,y,z的先后顺序不做限定,每bit的先后顺序也不做限定,只需要编解码一致即可,直至编码到最低比特位;在另一种实施方式中,可以从最低比特位开始编码x,y,z,即先编码x的从低位开始的第0 bit,再编码y的从低位开始的第0 bit,再编码z的从低位开始的第0 bit,其中x,y,z,的先后顺序不做限定,每bit的先后顺序也不做限定,只需要编解码一致即可;在另一种实施方式中,可以不固定从哪一位开始编码,最终只要编码了x,y,z三个方向对应的bit即可。本发明实施例对各个子节点的索引进行编码的编码方式不做具体限定。
在一个示例中,点云的码流中在头信息内还设置有标识位,用于指示是否使能切换到深度优先的方式进行位置编码或解码。该头信息可以是几何头信息或者序列头信息。解码端在从点云的码流中解析出该标识位时,根据该标识位确定是否使能切换到深度优先的方式进行位置解码。当该标识位指示使能切换到深度优先的方式进行位置解码时,当从第一节点的码流中解析出标识符时,即可确定切换到深度优先的方式对第一节点的码流进行解码。
本发明实施例中,点云处理设备可以对多叉树的第N层采用广度优先的方式进行编码或者解码,当第N层的第一节点中的全部点云点的数量或者分布满足预设条件时,采用深度优先的方式对第一节点中的点云进行编码或者解码,得到第一节点的码流,第一节点的码流中包含标识符和第一节点中的点云点在多叉树中各层的节点的索引,该标识符用于指示第一节点的子节点从广度优先的方式切换至深度优先的方式进行编码或者解码,其中,N为大于或等于1的整数。通过这种实施方式,可以避免对多叉树划分中第一节点的每个子节点进行编码或者解码,降低了编码或者解码的复杂度以及在时间上的开销,提 高了对点云压缩编码或者解码的并行化处理,提高了编码或者解码效率和性能。
请参见图13,图13是本发明实施例提供的一种点云处理设备的结构示意图,具体的,所述点云处理设备包括:存储器1301、处理器1302以及数据接口1303。
所述存储器1301可以包括易失性存储器(volatile memory);存储器1301也可以包括非易失性存储器(non-volatile memory);存储器1301还可以包括上述种类的存储器的组合。所述处理器1302可以是中央处理器(central processing unit,CPU)。所述处理器1302还可以进一步包括硬件点云处理设备。上述硬件点云处理设备可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。具体例如可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA)或其任意组合。
进一步地,所述存储器1301用于存储程序,当程序被执行时所述处理器1302可以调用存储器1301中存储的程序,用于执行如下步骤:
对多叉树的第N层采用广度优先的方式进行编码或者解码;
当所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件时,采用深度优先的方式对所述第一节点中的点云进行编码或者解码,得到所述第一节点的码流,所述第一节点的码流中包含标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行编码或者解码,其中,N为大于或等于1的整数。
进一步地,所述第一节点在所述第N层之下的至少一层的码流中,包括所述第一节点在所述一层中含有点云点的子节点的索引,以及第一指示位,所述第一指示位用于指示所述一层是否为所述第一节点下的最底层。
进一步地,所述第一指示位位于所述一层中所有含有点云点的子节点的索引之前,或者位于所述一层中所有含有点云点的子节点的索引之后。
进一步地,所述第一节点在所述第N层之下的每一层的码流中,包括第 二指示位,所述第二指示位用于指示所述一层中含有点云点的节点的数量。
进一步地,所述第二指示位用于指示所述第一节点在所述一层中含有点云点的节点的数量为1或2。
进一步地,所述第一节点在所述第N层之下的每一层的码流中,在所述第二指示位之后还包括所述一层中所有含有点云点的节点的索引。
进一步地,所述第一节点的码流中,包括第三指示位,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量。
进一步地,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量为1或2。
进一步地,所述第一节点的码流中还包括所述第一节点在所述第N层之下所有含有点云点的节点的索引。
进一步地,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
所述第一节点在所述第N层之下的最底层的叶子节点的数量小于或等于2;或者,
所述第一节点的全部点云点的数量小于或等于2。
进一步地,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
所述第一节点在所述第N层之下中至少连续M层中特定节点的分布相同,所述特定节点为包含点云点的节点,所述M为预设的正整数。
进一步地,所述第一节点的码流中,包括所述第一节点在所述第N层之下所述特定节点的分布相同的层数,以及所述特定节点的索引。
进一步地,所述第一节点的码流中,在每一个叶子节点的索引之后,还包括所述叶子节点中所包含的点云点的数量。
进一步地,所述特定节点的分布相同的层数是采用定长编码方式或者变长编码方式进行编码得到的。
进一步地,所述多叉树划分包括以下任意一种或任意两种的结合或三种的结合:
八叉树划分、四叉树划分、二叉树划分。
进一步地,所述第N层是采用八叉树划分得到的,所述标识符为八比特0; 或者,
所述第N层是采用四叉树划分得到的,所述标识符为四比特0;或者,
所述第N层是采用二叉树划分得到的,所述标识符为二比特0。
进一步地,所述点云的码流中包含有标识位,用于指示是否使能切换到深度优先的方式进行编码。
本发明实施例中,点云处理设备通过多叉树划分的方式对点云进行位置划分,并对多叉树的第N层采用广度优先的方式进行编码或者解码,当第N层的第一节点中的全部点云点的数量或者分布满足预设条件时,采用深度优先的方式对第一节点中的点云进行编码或者解码,得到第一节点的码流,第一节点的码流中包含标识符和第一节点中的点云点在多叉树中各层的节点的索引,该标识符用于指示第一节点的子节点从广度优先的方式切换至深度优先的方式进行编码或者解码,其中,N为大于或等于1的整数。通过这种实施方式,可以避免对多叉树划分中第一节点的每个子节点进行编码或者解码,降低了编码或者解码的复杂度以及在时间上的开销,提高了对点云压缩编码或者解码的并行化处理,提高了编码或者解码效率和性能。
请参见图14,图14是本发明实施例提供的一种点云解码设备的结构示意图,具体的,所述点云解码设备包括:存储器1401、处理器1402以及数据接口1403。
所述存储器1401可以包括易失性存储器(volatile memory);存储器1401也可以包括非易失性存储器(non-volatile memory);存储器1401还可以包括上述种类的存储器的组合。所述处理器1402可以是中央处理器(central processing unit,CPU)。所述处理器1402还可以进一步包括硬件点云解码设备。上述硬件点云解码设备可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。具体例如可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA)或其任意组合。
进一步地,所述存储器1401用于存储程序,当程序被执行时所述处理器1402可以调用存储器1401中存储的程序,用于执行如下步骤:
对多叉树的第N层采用广度优先的方式进行解码;
当解析到标识符时,采用深度优先的方式对所述第N层的第一节点的码流进行解码,所述第一节点的码流中包含所述标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行解码,其中,N为大于或等于1的整数。
进一步地,所述第一节点在所述第N层之下的至少一层的码流中,包括所述第一节点在所述一层中含有点云点的子节点的索引,以及第一指示位,所述第一指示位用于指示所述一层是否为所述第一节点下的最底层。
进一步地,所述第一指示位位于所述一层中所有含有点云点的子节点的索引之前,或者位于所述一层中所有含有点云点的子节点的索引之后。
进一步地,所述第一节点在所述第N层之下的每一层的码流中,包括第二指示位,所述第二指示位用于指示所述一层中含有点云点的节点的数量。
进一步地,所述第二指示位用于指示所述第一节点在所述一层中含有点云点的节点的数量为1或2。
进一步地,所述第一节点在所述第N层之下的每一层的码流中,在所述第二指示位之后还包括所述一层中所有含有点云点的节点的索引。
进一步地,所述第一节点的码流中,包括第三指示位,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量。
进一步地,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量为1或2。
进一步地,所述第一节点的码流中还包括所述第一节点在所述第N层之下所有含有点云点的节点的索引。
进一步地,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
所述第一节点在所述第N层之下的最底层的叶子节点的数量小于或等于2;或者,
所述第一节点的全部点云点的数量小于或等于2。
进一步地,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
所述第一节点在所述第N层之下中至少连续M层中特定节点的分布相同,所述特定节点为包含点云点的节点,所述M为预设的正整数。
进一步地,所述第一节点的码流中,包括所述第一节点在所述第N层之下所述特定节点的分布相同的层数,以及所述特定节点的索引。
进一步地,所述第一节点的码流中,在每一个叶子节点的索引之后,还包括所述叶子节点中所包含的点云点的数量。
进一步地,所述特定节点的分布相同的层数是采用定长编码方式或者变长编码方式进行编码得到的。
进一步地,所述多叉树划分包括以下任意一种或任意两种的结合或三种的结合:
八叉树划分、四叉树划分、二叉树划分。
进一步地,所述第N层是采用八叉树划分得到的,所述标识符为八比特0;或者,
所述第N层是采用四叉树划分得到的,所述标识符为四比特0;或者,
所述第N层是采用二叉树划分得到的,所述标识符为二比特0。
进一步地,所述点云的码流中包含有标识位,用于指示是否使能切换到深度优先的方式进行编码。
本发明实施例中,点云解码设备可以通过多叉树划分的方式对点云进行位置划分,并对多叉树的第N层采用广度优先的方式进行解码,当解析到标识符时,采用深度优先的方式对所述第N层的第一节点的码流进行解码,得到第一节点的码流,第一节点的码流中包含标识符和第一节点中的点云点在多叉树中各层的节点的索引,该标识符用于指示第一节点的子节点从广度优先的方式切换至深度优先的方式进行解码,其中,N为大于或等于1的整数。通过这种实施方式,可以降低解码的复杂度以及在时间上的开销,提高了对点云解码的并行化处理,提高了解码效率和性能。
在本发明的实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例图10中描述的用于点云处理的方法方式,也可实现图13所述本发明所对应实施例的点云处理设备,或图14所述本发明所对应实施例的点云解码设备,在此不再赘述。
所述计算机可读存储介质可以是前述任一项实施例所述的设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (69)

  1. 一种用于点云处理的方法,其特征在于,所述点云采用多叉树划分的方式进行位置划分,所述方法包括:
    对所述多叉树的第N层采用广度优先的方式进行编码或者解码;
    当所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件时,采用深度优先的方式对所述第一节点中的点云进行编码或者解码,得到所述第一节点的码流,所述第一节点的码流中包含标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行编码或者解码,其中,N为大于或等于1的整数。
  2. 根据权利要求1所述的方法,其特征在于,所述第一节点在所述第N层之下的至少一层的码流中,包括所述第一节点在所述一层中含有点云点的子节点的索引,以及第一指示位,所述第一指示位用于指示所述一层是否为所述第一节点下的最底层。
  3. 根据权利要求2所述的方法,其特征在于,所述第一指示位位于所述一层中所有含有点云点的子节点的索引之前,或者位于所述一层中所有含有点云点的子节点的索引之后。
  4. 根据权利要求1所述的方法,其特征在于,所述第一节点在所述第N层之下的每一层的码流中,包括第二指示位,所述第二指示位用于指示所述一层中含有点云点的节点的数量。
  5. 根据权利要求4所述的方法,其特征在于,所述第二指示位用于指示所述第一节点在所述一层中含有点云点的节点的数量为1或2。
  6. 根据权利要求5所述的方法,其特征在于,所述第一节点在所述第N层之下的每一层的码流中,在所述第二指示位之后还包括所述一层中所有含有 点云点的节点的索引。
  7. 根据权利要求1所述的方法,其特征在于,所述第一节点的码流中,包括第三指示位,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量。
  8. 根据权利要求7所述的方法,其特征在于,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量为1或2。
  9. 根据权利要求7所述的方法,其特征在于,所述第一节点的码流中还包括所述第一节点在所述第N层之下所有含有点云点的节点的索引。
  10. 根据权利要求1至9任一项所述的方法,其特征在于,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
    所述第一节点在所述第N层之下的最底层的叶子节点的数量小于或等于2;或者,
    所述第一节点的全部点云点的数量小于或等于2。
  11. 根据权利要求1所述的方法,其特征在于,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
    所述第一节点在所述第N层之下中至少连续M层中特定节点的分布相同,所述特定节点为包含点云点的节点,所述M为预设的正整数。
  12. 根据权利要求11所述的方法,其特征在于,所述第一节点的码流中,包括所述第一节点在所述第N层之下所述特定节点的分布相同的层数,以及所述特定节点的索引。
  13. 根据权利要求1至12任一项所述的方法,其特征在于,所述第一节点的码流中,在每一个叶子节点的索引之后,还包括所述叶子节点中所包含的点云点的数量。
  14. 根据权利要求12所述的方法,其特征在于,所述特定节点的分布相同的层数是采用定长编码方式或者变长编码方式进行编码得到的。
  15. 根据权利要求1所述的方法,其特征在于,所述多叉树划分包括以下任意一种或任意两种的结合或三种的结合:
    八叉树划分、四叉树划分、二叉树划分。
  16. 根据权利要求15所述的方法,其特征在于,
    所述第N层是采用八叉树划分得到的,所述标识符为八比特0;或者,
    所述第N层是采用四叉树划分得到的,所述标识符为四比特0;或者,
    所述第N层是采用二叉树划分得到的,所述标识符为二比特0。
  17. 根据权利要求1所述的方法,其特征在于,所述点云的码流中包含有标识位,用于指示是否使能切换到深度优先的方式进行编码。
  18. 一种用于点云解码的方法,其特征在于,所述点云采用多叉树划分的方式进行位置划分,所述方法包括:
    对所述多叉树的第N层采用广度优先的方式进行解码;
    当解析到标识符时,采用深度优先的方式对所述第N层的第一节点的码流进行解码,所述第一节点的码流中包含所述标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行解码,其中,N为大于或等于1的整数。
  19. 根据权利要求18所述的方法,其特征在于,所述第一节点在所述第N层之下的至少一层的码流中,包括所述第一节点在所述一层中含有点云点的子节点的索引,以及第一指示位,所述第一指示位用于指示所述一层是否为所述第一节点下的最底层。
  20. 根据权利要求19所述的方法,其特征在于,所述第一指示位位于所述一层中所有含有点云点的子节点的索引之前,或者位于所述一层中所有含有点云点的子节点的索引之后。
  21. 根据权利要求18所述的方法,其特征在于,所述第一节点在所述第N层之下的每一层的码流中,包括第二指示位,所述第二指示位用于指示所述一层中含有点云点的节点的数量。
  22. 根据权利要求21所述的方法,其特征在于,所述第二指示位用于指示所述第一节点在所述一层中含有点云点的节点的数量为1或2。
  23. 根据权利要求22所述的方法,其特征在于,所述第一节点在所述第N层之下的每一层的码流中,在所述第二指示位之后还包括所述一层中所有含有点云点的节点的索引。
  24. 根据权利要求18所述的方法,其特征在于,所述第一节点的码流中,包括第三指示位,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量。
  25. 根据权利要求24所述的方法,其特征在于,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量为1或2。
  26. 根据权利要求24所述的方法,其特征在于,所述第一节点的码流中还包括所述第一节点在所述第N层之下所有含有点云点的节点的索引。
  27. 根据权利要求18至26任一项所述的方法,其特征在于,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
    所述第一节点在所述第N层之下的最底层的叶子节点的数量小于或等于2;或者,
    所述第一节点的全部点云点的数量小于或等于2。
  28. 根据权利要求18所述的方法,其特征在于,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
    所述第一节点在所述第N层之下中至少连续M层中特定节点的分布相同,所述特定节点为包含点云点的节点,所述M为预设的正整数。
  29. 根据权利要求28所述的方法,其特征在于,所述第一节点的码流中,包括所述第一节点在所述第N层之下所述特定节点的分布相同的层数,以及所述特定节点的索引。
  30. 根据权利要求18至29任一项所述的方法,其特征在于,所述第一节点的码流中,在每一个叶子节点的索引之后,还包括所述叶子节点中所包含的点云点的数量。
  31. 根据权利要求29所述的方法,其特征在于,所述特定节点的分布相同的层数是采用定长编码方式或者变长编码方式进行编码得到的。
  32. 根据权利要求18所述的方法,其特征在于,
    所述多叉树划分包括以下任意一种或任意两种的结合或三种的结合:
    八叉树划分、四叉树划分、二叉树划分。
  33. 根据权利要求32所述的方法,其特征在于,
    所述第N层是采用八叉树划分得到的,所述标识符为八比特0;或者,
    所述第N层是采用四叉树划分得到的,所述标识符为四比特0;或者,
    所述第N层是采用二叉树划分得到的,所述标识符为二比特0。
  34. 根据权利要求18所述的方法,其特征在于,所述点云的码流中包含有标识位,用于指示是否使能切换到深度优先的方式进行解码。
  35. 一种点云处理设备,其特征在于,所述设备包括:存储器和处理器,
    所述存储器,用于存储程序;
    所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
    对多叉树的第N层采用广度优先的方式进行编码或者解码;
    当所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件时,采用深度优先的方式对所述第一节点中的点云进行编码或者解码,得到所述第一节点的码流,所述第一节点的码流中包含标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行编码或者解码,其中,N为大于或等于1的整数。
  36. 根据权利要求35所述的设备,其特征在于,所述第一节点在所述第N层之下的至少一层的码流中,包括所述第一节点在所述一层中含有点云点的子节点的索引,以及第一指示位,所述第一指示位用于指示所述一层是否为所述第一节点下的最底层。
  37. 根据权利要求36所述的设备,其特征在于,所述第一指示位位于所述一层中所有含有点云点的子节点的索引之前,或者位于所述一层中所有含有点云点的子节点的索引之后。
  38. 根据权利要求35所述的设备,其特征在于,所述第一节点在所述第N层之下的每一层的码流中,包括第二指示位,所述第二指示位用于指示所述一层中含有点云点的节点的数量。
  39. 根据权利要求38所述的设备,其特征在于,所述第二指示位用于指示所述第一节点在所述一层中含有点云点的节点的数量为1或2。
  40. 根据权利要求39所述的设备,其特征在于,所述第一节点在所述第N层之下的每一层的码流中,在所述第二指示位之后还包括所述一层中所有含有点云点的节点的索引。
  41. 根据权利要求35所述的设备,其特征在于,所述第一节点的码流中,包括第三指示位,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量。
  42. 根据权利要求41所述的设备,其特征在于,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量为1或2。
  43. 根据权利要求41所述的设备,其特征在于,所述第一节点的码流中还包括所述第一节点在所述第N层之下所有含有点云点的节点的索引。
  44. 根据权利要求35至43任一项所述的设备,其特征在于,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
    所述第一节点在所述第N层之下的最底层的叶子节点的数量小于或等于2;或者,
    所述第一节点的全部点云点的数量小于或等于2。
  45. 根据权利要求35所述的设备,其特征在于,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
    所述第一节点在所述第N层之下中至少连续M层中特定节点的分布相同,所述特定节点为包含点云点的节点,所述M为预设的正整数。
  46. 根据权利要求45所述的设备,其特征在于,所述第一节点的码流中,包括所述第一节点在所述第N层之下所述特定节点的分布相同的层数,以及所述特定节点的索引。
  47. 根据权利要求35至46任一项所述的设备,其特征在于,所述第一节点的码流中,在每一个叶子节点的索引之后,还包括所述叶子节点中所包含的点云点的数量。
  48. 根据权利要求46所述的设备,其特征在于,所述特定节点的分布相同的层数是采用定长编码方式或者变长编码方式进行编码得到的。
  49. 根据权利要求35所述的设备,其特征在于,
    所述多叉树划分包括以下任意一种或任意两种的结合或三种的结合:
    八叉树划分、四叉树划分、二叉树划分。
  50. 根据权利要求49所述的设备,其特征在于,
    所述第N层是采用八叉树划分得到的,所述标识符为八比特0;或者,
    所述第N层是采用四叉树划分得到的,所述标识符为四比特0;或者,
    所述第N层是采用二叉树划分得到的,所述标识符为二比特0。
  51. 根据权利要求35所述的设备,其特征在于,所述点云的码流中包含有标识位,用于指示是否使能切换到深度优先的方式进行编码。
  52. 一种点云解码设备,其特征在于,所述设备包括:存储器和处理器,
    所述存储器,用于存储程序;
    所述处理器,用于调用所述程序,当所述程序被执行时,用于执行以下操作:
    对多叉树的第N层采用广度优先的方式进行解码;
    当解析到标识符时,采用深度优先的方式对所述第N层的第一节点的码流进行解码,所述第一节点的码流中包含所述标识符和所述第一节点中的点云点在多叉树中各层的节点的索引,所述标识符用于指示所述第一节点的子节点从广度优先的方式切换至深度优先的方式进行解码,其中,N为大于或等于1的整数。
  53. 根据权利要求52所述的设备,其特征在于,所述第一节点在所述第N层之下的至少一层的码流中,包括所述第一节点在所述一层中含有点云点的子节点的索引,以及第一指示位,所述第一指示位用于指示所述一层是否为所述第一节点下的最底层。
  54. 根据权利要求53所述的设备,其特征在于,所述第一指示位位于所述一层中所有含有点云点的子节点的索引之前,或者位于所述一层中所有含有点云点的子节点的索引之后。
  55. 根据权利要求52所述的设备,其特征在于,所述第一节点在所述第N层之下的每一层的码流中,包括第二指示位,所述第二指示位用于指示所述一层中含有点云点的节点的数量。
  56. 根据权利要求55所述的设备,其特征在于,所述第二指示位用于指示所述第一节点在所述一层中含有点云点的节点的数量为1或2。
  57. 根据权利要求56所述的设备,其特征在于,所述第一节点在所述第N层之下的每一层的码流中,在所述第二指示位之后还包括所述一层中所有含有点云点的节点的索引。
  58. 根据权利要求52所述的设备,其特征在于,所述第一节点的码流中,包括第三指示位,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量。
  59. 根据权利要求58所述的设备,其特征在于,所述第三指示位用于指示所述第一节点在所述第N层之下含有点云点的叶子节点的数量为1或2。
  60. 根据权利要求58所述的设备,其特征在于,所述第一节点的码流中还包括所述第一节点在所述第N层之下所有含有点云点的节点的索引。
  61. 根据权利要求52至60任一项所述的设备,其特征在于,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
    所述第一节点在所述第N层之下的最底层的叶子节点的数量小于或等于2;或者,
    所述第一节点的全部点云点的数量小于或等于2。
  62. 根据权利要求52所述的设备,其特征在于,所述第N层的第一节点中的全部点云点的数量或者分布满足预设条件,包括:
    所述第一节点在所述第N层之下中至少连续M层中特定节点的分布相同,所述特定节点为包含点云点的节点,所述M为预设的正整数。
  63. 根据权利要求52所述的设备,其特征在于,所述第一节点的码流中,包括所述第一节点在所述第N层之下所述特定节点的分布相同的层数,以及所述特定节点的索引。
  64. 根据权利要求52至63任一项所述的设备,其特征在于,所述第一节点的码流中,在每一个叶子节点的索引之后,还包括所述叶子节点中所包含的点云点的数量。
  65. 根据权利要求63所述的设备,其特征在于,所述特定节点的分布相同的层数是采用定长编码方式或者变长编码方式进行编码得到的。
  66. 根据权利要求52所述的设备,其特征在于,所述多叉树划分包括以下任意一种或任意两种的结合或三种的结合:
    八叉树划分、四叉树划分、二叉树划分。
  67. 根据权利要求66所述的设备,其特征在于,
    所述第N层是采用八叉树划分得到的,所述标识符为八比特0;或者,
    所述第N层是采用四叉树划分得到的,所述标识符为四比特0;或者,
    所述第N层是采用二叉树划分得到的,所述标识符为二比特0。
  68. 根据权利要求52所述的设备,其特征在于,所述点云的码流中包含有标识位,用于指示是否使能切换到深度优先的方式进行解码。
  69. 一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至34任一项所述方法。
PCT/CN2019/123821 2019-06-14 2019-12-06 一种用于点云处理、解码的方法、设备及存储介质 WO2021109153A1 (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/CN2019/123821 WO2021109153A1 (zh) 2019-12-06 2019-12-06 一种用于点云处理、解码的方法、设备及存储介质
CN201980094938.5A CN113632492B (zh) 2019-12-06 2019-12-06 一种用于点云处理、解码的方法、设备及存储介质
CN201980012174.0A CN111699697B (zh) 2019-06-14 2019-12-17 一种用于点云处理、解码的方法、设备及存储介质
PCT/CN2019/126090 WO2020248562A1 (zh) 2019-06-14 2019-12-17 一种用于点云处理、解码的方法、设备及存储介质
US17/644,178 US20220108494A1 (en) 2019-06-14 2021-12-14 Method, device, and storage medium for point cloud processing and decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/123821 WO2021109153A1 (zh) 2019-12-06 2019-12-06 一种用于点云处理、解码的方法、设备及存储介质

Publications (1)

Publication Number Publication Date
WO2021109153A1 true WO2021109153A1 (zh) 2021-06-10

Family

ID=76220872

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/123821 WO2021109153A1 (zh) 2019-06-14 2019-12-06 一种用于点云处理、解码的方法、设备及存储介质

Country Status (2)

Country Link
CN (1) CN113632492B (zh)
WO (1) WO2021109153A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11417030B2 (en) * 2020-02-10 2022-08-16 Tencent America LLC Context modeling of occupancy coding for point cloud coding
US20220343555A1 (en) * 2020-02-10 2022-10-27 Tencent America LLC Context modeling of occupancy coding for point cloud coding

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024074123A1 (en) * 2022-10-04 2024-04-11 Douyin Vision Co., Ltd. Method, apparatus, and medium for point cloud coding
WO2024082135A1 (zh) * 2022-10-18 2024-04-25 Oppo广东移动通信有限公司 编解码方法、编解码器、码流以及计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893697A (zh) * 2016-04-22 2016-08-24 北京交通大学 基于贝叶斯网络推理的系统可靠性评估方法
US20180268570A1 (en) * 2017-03-16 2018-09-20 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
CN108833927A (zh) * 2018-05-03 2018-11-16 北京大学深圳研究生院 一种基于删除量化矩阵中0元素的点云属性压缩方法
WO2019078292A1 (ja) * 2017-10-19 2019-04-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN111247802A (zh) * 2019-01-10 2020-06-05 深圳市大疆创新科技有限公司 用于三维数据点集处理的方法和设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106846425B (zh) * 2017-01-11 2020-05-19 东南大学 一种基于八叉树的散乱点云压缩方法
US11113845B2 (en) * 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
CN111699697B (zh) * 2019-06-14 2023-07-11 深圳市大疆创新科技有限公司 一种用于点云处理、解码的方法、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893697A (zh) * 2016-04-22 2016-08-24 北京交通大学 基于贝叶斯网络推理的系统可靠性评估方法
US20180268570A1 (en) * 2017-03-16 2018-09-20 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
WO2019078292A1 (ja) * 2017-10-19 2019-04-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN108833927A (zh) * 2018-05-03 2018-11-16 北京大学深圳研究生院 一种基于删除量化矩阵中0元素的点云属性压缩方法
CN111247802A (zh) * 2019-01-10 2020-06-05 深圳市大疆创新科技有限公司 用于三维数据点集处理的方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MARATEA ANTONIO; MARCELLINO LIVIA; DURACCIO VINCENZO: "A GPU-Parallel Algorithm for Fast Hybrid BFS-DFS Graph Traversal", 2017 13TH INTERNATIONAL CONFERENCE ON SIGNAL-IMAGE TECHNOLOGY & INTERNET-BASED SYSTEMS (SITIS), IEEE, 4 December 2017 (2017-12-04), pages 450 - 457, XP033345988, DOI: 10.1109/SITIS.2017.80 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11417030B2 (en) * 2020-02-10 2022-08-16 Tencent America LLC Context modeling of occupancy coding for point cloud coding
US20220343555A1 (en) * 2020-02-10 2022-10-27 Tencent America LLC Context modeling of occupancy coding for point cloud coding
US11710260B2 (en) 2020-02-10 2023-07-25 Tencent America LLC Context modeling of occupancy coding for point cloud coding

Also Published As

Publication number Publication date
CN113632492A (zh) 2021-11-09
CN113632492B (zh) 2024-07-12

Similar Documents

Publication Publication Date Title
CN111699697B (zh) 一种用于点云处理、解码的方法、设备及存储介质
WO2021109153A1 (zh) 一种用于点云处理、解码的方法、设备及存储介质
US20230126256A1 (en) Methods and devices using direct coding in point cloud compression
CN112470469B (zh) 一种用于点云编码、解码的方法和设备
EP3991437B1 (en) Context determination for planar mode in octree-based point cloud coding
US10992947B2 (en) Planar mode in octree-based point cloud coding
WO2021000334A1 (zh) 一种数据编码、数据解码方法、设备及存储介质
US20230048381A1 (en) Context determination for planar mode in octree-based point cloud coding
US20220376702A1 (en) Methods and devices for tree switching in point cloud compression
CN115379190B (zh) 一种点云处理方法、装置及计算机设备、存储介质
CN112384950A (zh) 点云的编解码方法及装置
CN115379191B (zh) 一种点云解码方法、点云编码方法及相关设备
CN111699690A (zh) 点云的处理方法和装置
WO2021196038A1 (zh) 点云的编解码方法和装置
CN115131449A (zh) 点云处理方法、装置及计算机设备、存储介质
WO2020248562A1 (zh) 一种用于点云处理、解码的方法、设备及存储介质
CN115917604A (zh) 点云解码装置、点云解码方法及程序
CN112740707A (zh) 点云的编解码方法和装置
CN114402621A (zh) 变换方法、逆变换方法、编码器、解码器及存储介质
CN115396668A (zh) 点云数据的解码方法、编码方法、装置、存储介质及设备
CN116634179A (zh) 点云数据处理方法、装置、电子设备及存储介质
CN116320352A (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: 19954887

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19954887

Country of ref document: EP

Kind code of ref document: A1