WO2022155929A1 - 点云几何解码方法、装置、计算机可读存储介质 - Google Patents

点云几何解码方法、装置、计算机可读存储介质 Download PDF

Info

Publication number
WO2022155929A1
WO2022155929A1 PCT/CN2021/073422 CN2021073422W WO2022155929A1 WO 2022155929 A1 WO2022155929 A1 WO 2022155929A1 CN 2021073422 W CN2021073422 W CN 2021073422W WO 2022155929 A1 WO2022155929 A1 WO 2022155929A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
point cloud
identifier
specific mode
code stream
Prior art date
Application number
PCT/CN2021/073422
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 CN202180081867.2A priority Critical patent/CN116569555A/zh
Priority to PCT/CN2021/073422 priority patent/WO2022155929A1/zh
Publication of WO2022155929A1 publication Critical patent/WO2022155929A1/zh

Links

Images

Classifications

    • 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 application relates to the technical field of point cloud data processing, and in particular, to a point cloud geometry decoding method, device, and computer-readable storage medium, and a point cloud geometry encoding method, device, and computer-readable storage medium.
  • a point cloud is a representation of a three-dimensional object or scene, which is composed of a set of discrete points that are randomly distributed in space and express the spatial structure and surface properties of a three-dimensional object or scene. To accurately reflect information in space, the number of discrete points required is enormous. In order to reduce the bandwidth occupied by point cloud data storage and transmission, the point cloud data needs to be encoded and compressed.
  • Embodiments of the present application provide a point cloud geometry decoding method, device, and computer-readable storage medium, and a point cloud geometry encoding method, device, and computer-readable storage medium.
  • One of the purposes is to improve the performance of point cloud geometry encoding and decoding. compression effect.
  • a first aspect of the embodiments of the present application provides a point cloud geometry decoding method, including:
  • the first node satisfies the specific condition, it is determined whether to switch to a specific mode to decode the code stream.
  • a second aspect of the embodiments of the present application provides a point cloud geometry decoding method, including:
  • the code stream corresponding to the first node includes the target identifier and occupation information of the first node
  • the code stream corresponding to the second node includes the second node. occupancy information without including the target identifier of the second node;
  • the occupancy information of the second node is decoded using a non-specific mode.
  • a third aspect of the embodiments of the present application provides a point cloud geometry encoding method, including:
  • the encoded data in the point cloud geometric data before encoding the first node determine whether the first node satisfies a specific condition
  • the first node satisfies the specific condition, it is determined whether to switch to a specific mode to encode the occupancy information of the first node.
  • a fourth aspect of an embodiment of the present application provides a point cloud geometry decoding device, comprising: a processor and a memory storing a computer program, where the processor implements the following steps when executing the computer program:
  • the first node satisfies the specific condition, it is determined whether to switch to a specific mode to decode the code stream.
  • a fifth aspect of an embodiment of the present application provides a point cloud geometry decoding device, including: a processor and a memory storing a computer program, where the processor implements the following steps when executing the computer program:
  • the code stream corresponding to the first node includes the target identifier and occupation information of the first node
  • the code stream corresponding to the second node includes the second node. occupancy information without including the target identifier of the second node;
  • the occupancy information of the second node is decoded using a non-specific mode.
  • a sixth aspect of an embodiment of the present application provides a point cloud geometry encoding device, comprising: a processor and a memory storing a computer program, where the processor implements the following steps when executing the computer program:
  • the encoded data in the point cloud geometric data before encoding the first node determine whether the first node satisfies a specific condition
  • the first node satisfies the specific condition, it is determined whether to switch to a specific mode to encode the occupancy information of the first node.
  • a seventh aspect of the embodiments of the present application provides a computer-readable storage medium, where the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, implements the point cloud geometry decoding method provided in the first aspect above .
  • An eighth aspect of the embodiments of the present application provides a computer-readable storage medium, where the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, implements the point cloud geometry decoding method provided in the second aspect above .
  • a ninth aspect of the embodiments of the present application provides a computer-readable storage medium, where the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, implements the point cloud geometry encoding method provided in the third aspect above .
  • the method for encoding and decoding point cloud geometry does not use 1 bit to encode the corresponding target identifier for each first node to be divided, but only for those nodes that meet specific conditions and that need to be switched to a specific mode
  • the first node with the possibility of processing encodes its corresponding target identifier, so the bit consumption caused by encoding the target identifier can be greatly reduced.
  • Figure 1 is a schematic diagram of the division of an octree.
  • FIG. 2 is a schematic diagram of the division of a quadtree.
  • Figure 3 is a schematic diagram of the division of a binary tree.
  • Figure 4 is a schematic diagram of a point cloud bounding box with unequal length, width and height.
  • FIG. 5 is a schematic diagram of a first point cloud division provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of a second point cloud division provided by an embodiment of the present application.
  • FIG. 7 is a schematic diagram of a third point cloud division provided by an embodiment of the present application.
  • FIG. 8 is a first flowchart of a point cloud geometry decoding method provided by an embodiment of the present application.
  • FIG. 9 is a second flowchart of the point cloud geometry decoding method provided by the embodiment of the present application.
  • FIG. 10 is a flowchart of a point cloud geometry encoding method provided by an embodiment of the present application.
  • FIG. 11 is a schematic structural diagram of a point cloud geometry decoding apparatus provided by an embodiment of the present application.
  • FIG. 12 is a schematic structural diagram of a point cloud geometry encoding device provided by an embodiment of the present application.
  • a point cloud is a representation of a three-dimensional object or scene, which is composed of a set of discrete points that are randomly distributed in space and express the spatial structure and surface properties of a three-dimensional object or scene. To accurately reflect information in space, the number of discrete points required is enormous. In order to reduce the bandwidth occupied by point cloud data storage and transmission, the point cloud data needs to be encoded and compressed.
  • the geometric data and attribute data of the point cloud are usually encoded and compressed separately.
  • it can be implemented by performing tree division on the point cloud.
  • the point cloud is divided into a tree. Specifically, the entire point cloud can be wrapped by a bounding box, and the bounding box can be recursively divided.
  • the so-called recursive division means that after each division of a node, the sub-nodes containing point cloud points among the sub-nodes obtained by division can be divided again.
  • a node may correspond to a space block of a cube or a cuboid.
  • the above-mentioned bounding box may also correspond to a node, which may be called a root node.
  • the division of nodes is to divide the space block. After division, multiple sub-nodes can be obtained, and each sub-node corresponds to a small space block.
  • the final divided child nodes can correspond to the space block of the smallest unit (minimum side length), the space block of the smallest unit
  • the corresponding nodes may be referred to as leaf nodes. Since the leaf node contains only one point cloud point, the geometric coordinates of the point cloud point contained in the leaf node can be determined according to the geometric coordinates of the leaf node (for example, the coordinates of the geometric center).
  • a node When a node is divided into multiple sub-nodes, there can be a variety of division methods, such as octree, quadtree, binary tree, etc.
  • octree division method a node can be divided into 8 sub-nodes; using the quad-tree division method, a node can be divided into 4 sub-nodes; using the binary tree division method, a node can be divided into for 2 child nodes.
  • FIG. 2 and FIG. 3 wherein FIG. 1 is a schematic diagram of the division of an octree, FIG. 2 is a schematic diagram of the division of a quad-tree, and FIG. 3 is a schematic diagram of the division of a binary tree.
  • an octree can be used for all nodes, and the bounding box can be divided into leaf nodes.
  • the size of , N represents the maximum number of division layers.
  • the corresponding division method of the node can be determined according to the side length of the node in the three directions of XYZ.
  • the division method corresponding to the node may be any one of octree, quadtree, and binary tree.
  • the encoding end only needs to write the information used to instruct the decoding end to divide the point cloud into the code.
  • the decoding end decodes this information from the code stream, and can correctly divide the bounding box of the point cloud according to this information, so that after dividing the leaf nodes, the geometric coordinates of each point cloud point can be reconstructed, greatly Reduces the number of bits to transmit the bitstream.
  • the geometric information of the bounding box and the occupancy information of the corresponding child nodes for each division may be included.
  • the geometric information of the bounding box can be used for the decoding end to initialize the bounding box corresponding to the point cloud, such as the size of the bounding box, the geometric coordinates of the center point or other vertices, or the maximum geometric coordinates and the minimum geometric coordinates of the point cloud point. Coordinates, etc., as long as the bounding box can be uniquely determined.
  • the occupancy information of the child node can indicate whether the child node contains a point cloud point.
  • the encoding end can also initialize the bounding box corresponding to the point cloud, and can recursively divide the bounding box, dividing one node at a time.
  • the occupancy information of each sub-node can be determined according to the real geometric coordinates of the point cloud point. For example, 1 can be used to indicate that the sub-node is occupied (that is, it contains a point cloud point), and 0 can be used to indicate that the sub-node is not occupied. (i.e. does not contain point cloud points).
  • the encoding end can write the occupancy information of each child node obtained by this division into the code stream, so that the decoding end can decode the occupancy information from the code stream, and can determine which child nodes are based on the occupancy information. It is necessary to divide, so as to correctly divide the bounding box into leaf nodes, and reconstruct the correct geometric coordinates of the point cloud points.
  • the white blocks in Figure 5 represent nodes that do not contain point cloud points
  • the black blocks represent nodes that contain point cloud points.
  • the A node may be the root node, that is, the bounding box itself.
  • the nodes are divided by an octree, and the A node may be divided into 8 child nodes.
  • node B is the only child node that contains point cloud points, so node B can be divided to obtain 8 child nodes corresponding to node B.
  • C-node and D-node are both sub-nodes containing point cloud points, so both C-node and D-node need to be divided...
  • the encoder can write the occupancy information of each sub-node corresponding to this division into the code stream.
  • the occupancy information is written into the code stream, for example, the occupancy information may be 00100000, where 1 corresponds to the occupancy information of Node B.
  • the occupancy information of the 8 child nodes corresponding to the B node can be written into the code stream, for example, 00100001 can be written into the code stream, the first 1 of which corresponds to the occupancy information of the C node, The second 1 corresponds to the occupancy information of the D node.
  • the division of nodes may be performed layer by layer, that is, after the division of all nodes containing point cloud points in the current layer is completed, the nodes of the next layer are divided.
  • the layer where the A node is located can be the first layer
  • the layer where the B node is located can be the second layer.
  • the next divided node is not C The child node of the node, but the D node in the third layer.
  • the nodes C and D are divided, that is, after the nodes to be divided in the third layer are divided, the nodes E, F, G, and H of the next layer (the fourth layer) are divided in turn.
  • the first node can be used to refer to any node to be divided that contains a point cloud point, then the processing of the first node described above is the processing method of the node when the encoding end and the decoding end adopt a non-specific mode, in other words,
  • the encoding end uses a non-specific mode to process the first node
  • the encoding end divides the first node only once, and after dividing the first node into multiple sub-nodes, it divides the occupancy information of each sub-node corresponding to the first node. It is encoded into the code stream, and then processed by other nodes in the same layer as the first node.
  • the decoding end uses the non-specific mode to process the first node, the occupancy information of multiple sub-nodes corresponding to the first node can be decoded from the code stream.
  • processing a node in a non-specific mode may result in a bit of wasted bits.
  • the point cloud point at this position can be one, or multiple, or multiple. It means that the multiple point cloud points are duplicate points, that is, the geometric coordinates of the multiple point cloud points are the same.
  • the encoding end will divide the F node after dividing the node.
  • the occupancy information 00100000 of the 8 child nodes corresponding to the F node can be written in the code stream, and the next divided node is the other nodes on the fourth layer (ie, the G node in Figure 5) with the F node. After the nodes of the fourth layer are divided, the nodes of the fifth layer are divided... In this way, after the I node is divided, the encoder writes the occupancy information of the 8 child nodes corresponding to the I node in the code stream. 00000010, after dividing the J node, the encoding end writes the occupancy information 00000100 of the 8 child nodes corresponding to the J node in the code stream.
  • the non-specific mode is used to process the F node.
  • the encoding end may switch to a specific mode to encode the first node.
  • the specific mode can be an isolated point mode or a direct mode. If it is determined that the first node contains only one point cloud point, the first node can be switched to the isolated point mode to encode the first node. If it is determined that the first node contains multiple point clouds point, but the multiple point cloud points are duplicate points, you can switch to the direct mode to encode the first node.
  • the decoding end determines that the first node only has a point cloud at one position, it can also switch to a specific mode to decode the first node.
  • the first node contains only one point cloud point, you can switch to the isolated point mode to decode the first node; if it is determined that the first node contains multiple point cloud points but the multiple point cloud points are duplicate points, you can Switch to direct mode to decode the first node.
  • the encoding side when encoding the first node, it is necessary to encode the position of the point cloud point contained in the first node.
  • This part of the encoding of the point cloud point position uses Outlier mode can be the same processing as direct mode, since only one point cloud point position needs to be encoded for both repeating points and outliers.
  • the first node contains multiple duplicate points with the same position, that is, when the encoding end uses the direct mode to encode the first node, in addition to encoding the positions of the point cloud points contained in the first node, it is also necessary to encode the first node.
  • the number of point cloud points contained in a node is encoded.
  • the processing performed in the isolated point mode and the direct mode may be the same.
  • decoding the first node in the direct mode in addition to decoding the position of the point cloud point, it is also necessary to decode the number of point cloud points included in the first node.
  • the encoding end may directly divide the first node into leaf nodes through multiple divisions according to the real geometric coordinates of the point cloud points contained in the first node, and for the multiple divisions For each division, an index value can be used to indicate the child node where the point cloud point is located among the multiple child nodes obtained by the division, so that multiple divisions correspond to multiple index values, and the encoding end can encode the multiple index values. to the code stream.
  • the plurality of index values may also be referred to as an index value set.
  • the decoding end when the decoding end switches to a specific mode (isolated point mode or direct mode) to decode the point cloud point position contained in the first node, it can decode the index value set from the code stream, and can decode the index value set according to the index value.
  • the multiple index values in the value set divide the first node multiple times. After the first node is divided into leaf nodes, the leaf node where the point cloud point is located among the plurality of leaf nodes obtained by the last division can be determined according to the index value corresponding to the last division, so that the leaf node where the point cloud point is located can be determined according to the last division. Determine the geometric coordinates of this point cloud point.
  • the encoding end can directly divide the F node into the size of the leaf node through three divisions, and can use three index values. Indicates the child node where the point cloud point is located in the child nodes obtained by each division. For example, for the first division, that is, the division of the F node, a 3-bit index value of 010 can be used to indicate that the child node where the point cloud point is located is the third For the second division, that is, the division of the I node, a 3-bit index value of 110 can be used to indicate that the child node where the point cloud point is located is the seventh child node (ie, the J node).
  • the three-time division that is, the division of K nodes, can use a 3-bit index value 101 to indicate that the child node where the point cloud point is located is the sixth child node (ie, the K node).
  • the encoder can encode the three index values 010, 110, and 101 into the code stream.
  • the decoding end determines to use a specific mode (isolated point mode or direct mode) to decode the F node
  • the three index values can be decoded from the code stream, and the F node can be decoded according to the three index values. Divide and determine the leaf node where the point cloud point in the F node is located.
  • the mapping relationship between the index value and the child node is only used as an example.
  • the embodiment of the present application does not limit the mapping relationship between the index value and the child node. It is only necessary to unify the encoding end and the decoding end.
  • the index value 111 corresponds to the eighth child node, but in another example, the index value 111 may correspond to the first child node.
  • nodes adopt the octree division method
  • different division methods may be adopted for the division of different nodes
  • some nodes can be divided by octree
  • some nodes can be divided by quadtree
  • some nodes can be divided by binary tree.
  • the division method adopted by the node the number of bits of the index value corresponding to this division can be determined. For example, if an octree is used to divide a node into 8 sub-nodes, a 3-bit index value can be used to indicate the sub-node where the point cloud point is located among the 8 sub-nodes.
  • a quad-tree is used to divide the node into 4 sub-nodes. Then a 2-bit index value can be used to indicate the child node where the point cloud point is located among the 4 child nodes. If a binary tree is used to divide the node into 2 child nodes, a 1-bit index value can be used to indicate the point cloud point in the 2 child nodes. child node.
  • the encoding end When the encoding end switches to a specific mode (isolated point mode or direct mode) to encode the point cloud point position contained in the first node, in one embodiment, the encoding end can directly encode the point cloud contained in the first node.
  • the uncoded bits of the Morton code corresponding to the geometric coordinates of the point When encoding the uncoded bits, in one implementation manner, the uncoded bits of the Morton code corresponding to the point cloud points in each coordinate axis direction may be coded according to a specified order, for example, all the uncoded bits of the Morton code may be coded according to the XYZ order.
  • the uncoded bits are encoded, that is, the uncoded bits of the Morton code corresponding to the X-axis direction are firstly encoded, then the uncoded bits of the Morton code corresponding to the Y-axis direction are encoded, and finally the uncoded bits of the Morton code corresponding to the Z-axis direction are encoded.
  • the uncoded bits may also be encoded in other orders, such as XZY order, YXZ order, and so on.
  • the decoding end when the decoding end switches to a specific mode (isolated point mode or direct mode) to decode the position of the point cloud point contained in the first node, it can decode the position of the point cloud point contained in the first node from the code stream.
  • the undecoded bits of the Morton code corresponding to the geometric coordinates.
  • the decoding end since the encoding end encodes the uncoded bits corresponding to the point cloud points in each coordinate axis direction according to the specified order, the decoding end can also decode the point cloud points from the code stream according to the specified order. The corresponding undecoded bits in each coordinate axis direction.
  • the F node can reach the leaf node after three octree divisions, or the maximum number of division layers of the F node is 4, so the size of the F node can be expressed as (2 3 ,2 3 ,2 3 ), the number of uncoded bits of the Morton code corresponding to the point cloud points contained in the F node in the three directions of X, Y, and Z are all 3, so the total number of bits to be encoded is 9 bits.
  • the non-specific mode needs to encode 24 bits, which greatly reduces the cost of bits.
  • the order of dividing nodes in the specific mode and the non-specific mode is different, or in other words, the encoding and decoding orders of the nodes in the specific mode and the non-specific mode are different.
  • the next divided node is the G node of the same layer, that is, after the F node is encoded, the next The G node of the encoded node.
  • the next division is the child node of the F node - the I node, and the next division is the child node of the I node - the J node, that is, in the After encoding the F node, the next encoding is the I node, and the next encoding is the J node.
  • the encoding end uses the direct mode to encode the first node, in addition to encoding the position of the point cloud points in the first node, it also needs to encode the number of point cloud points contained in the first node. Because the number of point cloud points contained in the first node is not necessarily 1.
  • the decoding end uses the direct mode to decode the first node, in addition to decoding the position of the point cloud point in the first node, it also needs to decode the number of point cloud points contained in the first node.
  • the encoding end encodes the number of point cloud points included in the first node
  • the encoding end can directly encode the number of point cloud points contained in the first node into the code stream, and correspondingly, the decoding end can also directly decode the point cloud points contained in the first node from the code stream. quantity.
  • the encoding end may first encode a quantity identifier, which is used to indicate whether the number of point cloud points contained in the first node is 1. Specifically, if the number of point cloud points contained in the first node is 1, the number identifier can be set as the first identifier, and the number identifier can be encoded into the code stream.
  • the first identifier can be, for example, 1 (of course, It can also be agreed with the decoder to be 0).
  • the number identifier can be set as the second identifier, for example, the second identifier can be 0, the quantity identifier is encoded into the code stream, and the first node contains The number of point cloud points is also encoded into the codestream.
  • the decoding end can decode the quantity identifier corresponding to the first node from the code stream. If the quantity identifier is the first identifier, it can be determined that the number of point cloud points contained in the first node is 1. If the quantity identifier is the second identifier, the number of point cloud points included in the first node also needs to be decoded from the code stream.
  • the encoding end can use a context model or an equal probability model for the encoding of the quantity identifier.
  • the same context model may also be used for multiple bits, for example, some bits use the first context model, and another part of the bits use the second context model, and an equal probability model may also be used.
  • the decoding method of the quantity identification and the encoding method of the encoding end to the quantity identification can be unified, and the decoding method of the point cloud point quantity and the encoding method of the encoding end to the point cloud point quantity can be unified.
  • the encoding end can determine whether the first node should be switched to a specific mode for encoding. , for example, if it is determined that the first node contains only one point cloud point according to the real geometric coordinates of the point cloud point, it can be determined to switch to the isolated point mode to encode the first node, or if the real geometry of the point cloud point is used It is determined that the geometric coordinates of all the point cloud points contained in the first node are the same, and it can be determined to switch to the direct mode to encode them.
  • the decoding end cannot know the real geometric coordinates of the point cloud points, so the decoding end needs an instruction from the encoding end to determine whether to use a specific mode to decode the first node.
  • the encoding end may encode a corresponding target identifier for each first node to be divided, and the target identifier may indicate whether the first node is to be switched to a specific mode for processing.
  • the decoding end can decode the target identifier corresponding to each first node from the code stream, and can determine whether to switch the first node to a specific mode for decoding according to the target identifier.
  • each first node needs to use 1 bit to transmit its corresponding target identifier, which consumes a large number of bits, and the compression effect is not ideal. Therefore, the embodiments of the present application provide a point cloud geometry encoding and decoding method, which can further save bits.
  • the encoder can first determine whether the first node has the possibility to switch to a specific mode for encoding according to specific conditions, and if the The first node does not have the possibility to switch to a specific mode for encoding, so the target identifier corresponding to the first node may not be encoded. If the first node has the possibility, the target identifier corresponding to the first node is encoded. .
  • the decoding end can also determine whether the first node has the possibility to switch to a specific mode for decoding according to the specific condition, if the node does not have the possibility to switch to a specific mode. If the possibility of decoding is not required, the target identifier corresponding to the first node does not need to be decoded from the code stream. If the first node has the possibility, the target identifier corresponding to the first node can be decoded from the code stream.
  • the point cloud geometry encoding and decoding method provided in the embodiment of the present application does not use 1 bit to encode the corresponding target identifier for each first node to be divided, but only for those that meet certain conditions and have to be switched to
  • the first node with the possibility of processing in a specific mode encodes its corresponding target identifier, so the bit consumption caused by encoding the target identifier can be greatly reduced.
  • FIG. 8 is a first flowchart of a point cloud geometry decoding method provided by an embodiment of the present application, and the method includes:
  • the first node that satisfies a specific condition determines whether to switch to a specific mode for decoding, and the first node that does not meet the specific condition directly excludes the possibility of using a specific mode for decoding. , so that the first nodes that do not meet the specific conditions do not need to decode their corresponding target identifiers, thereby reducing the amount of data to be transmitted between the encoding end and the decoding end.
  • a specific mode it may be an isolated point mode or a direct mode, and this part of the content has been described in detail above, and will not be repeated here.
  • the specific condition may be used to determine whether the first node has the possibility to switch to the specific mode for decoding, or in other words, the specific condition may be used to determine whether the first node has the possibility to apply the specific mode. If the first node satisfies the specific condition, it can further determine whether to switch to the specific mode to decode the first node.
  • the first node is decoded in a non-specific mode, that is, the occupancy information of multiple child nodes corresponding to the first node can be decoded from the code stream.
  • the specific condition may include at least one of the following: the first condition is that the general switch identifier of the specific mode corresponds to an on state; the second condition is that, compared to not switching to the specific mode, switching to the specific mode encodes the code used for switching to the specific mode. Fewer bits; the third condition is that the first node has the possibility of having a point cloud at only one location.
  • the master switch identifier of the specific mode can be obtained from the header information of the point cloud geometric data.
  • the ON state corresponding to the master switch identifier may be that the master switch identifier is 1, the ON state indicates that switching to a specific mode is allowed to process the node, the OFF state corresponding to the master switch identifier may be that the master switch identifier is 0, and the OFF state indicates no It is allowed to switch to a specific mode to process the node, and can only use a non-specific mode for codec.
  • the header information of the point cloud geometric data may only include the main switch identification corresponding to the isolated point mode, or only the main switch identification corresponding to the direct mode, or the main switch identification corresponding to the isolated point mode and the direct mode. .
  • the master switch identifiers corresponding to the two modes may be mutually exclusive, that is, the master switch identifier of the isolated point mode is correspondingly enabled In the state, the main switch identification of the direct mode can only correspond to the off state, and when the main switch identification of the direct mode corresponds to the open state, the main switch identification of the isolated point mode can only correspond to the closed state.
  • the first node contains only one point cloud point, but the first node can be divided into the size of leaf nodes after a binary tree division, then the node is encoded in a non-specific mode, and only 2 bits are required. It can be used as the occupancy information of the 2 sub-nodes corresponding to the node.
  • using a specific mode to encode the node requires a 1-bit target identifier and a 1-bit index value, which does not save bits compared to directly using the non-specific mode. Switch to a specific mode to process the first node.
  • the second condition may specifically be the sum of the undecoded bits of the Morton code corresponding to the point cloud points included in the first node in the directions of the coordinate axes, greater than or equal to the number of bits of the first node. Two times the number of side lengths that do not reach the minimum side length among the side lengths in the coordinate axis direction.
  • the sum of the number of undecoded bits may be obtained by dividing the side lengths in each direction of the first node that does not reach the minimum side length by dividing by the minimum side length and taking log2, and adding the side lengths that do not reach the minimum side length.
  • the number can be 1, 2 or 3, that is, the number of side lengths of the three side lengths of the first node in the XYZ three directions that do not reach the minimum side length.
  • the node targeted by the specific mode is a node containing only one point cloud point (isolated point mode), or a node containing multiple point cloud points but the multiple point cloud points are duplicate points (direct mode) ), so if the first node does not have the possibility of a point cloud point at only one position, it can be determined that the first node does not use a specific mode for encoding and decoding.
  • the third condition may be that when the parent node of the first node satisfies a specific condition but the parent node is not selected to use a specific mode, the first node is not the only child node corresponding to the parent node that contains point cloud points child node of .
  • the specific mode is isolated point mode and the parent node is not selected to use isolated point mode, it means that the number of point cloud points contained in the parent node is greater than 1, if the first node is the only child node of the point cloud point among the child nodes of the parent node , then the first node must contain multiple point cloud points, so the isolated point mode is not applicable.
  • the specific mode is direct mode and the parent node is not selected to use direct mode, it means that the geometric coordinates of the point cloud points contained in the parent node are not the same, if the first node is the only child node of the point cloud point among the child nodes of the parent node , then the first node must contain multiple point cloud points with different geometric coordinates, so the direct mode is not applicable.
  • the specific condition may further include a fourth condition, and the fourth condition may be that the layer switch identifier of the target layer corresponds to an on state.
  • the layer where the first node is located may be referred to as the target layer, and the layer switch identifier may indicate whether to allow the nodes in the target layer to be processed using a specific mode.
  • the layer switch identifier can be encoded into the code stream by the encoder before dividing the nodes in the layer, so that the decoder can decode the layer switch identifier corresponding to the layer from the code stream before dividing the nodes in the layer.
  • the layer switch identifier can have two states: on and off. For example, when the layer switch identifier is 1, it can correspond to the on state, and when the layer switch identifier is 0, it can correspond to the off state.
  • the encoding end may determine a corresponding layer switch identifier for each layer, and the target layer may be any layer in the tree structure obtained by dividing the point cloud.
  • the layer switch identifier corresponding to the target layer in an implementation manner, it may be determined according to the number of layers where the target layer is located. For example, a threshold for the number of layers can be preset. If the number of layers where the target layer is located is greater than or equal to the threshold for the number of layers, the layer switch flag of the target layer can be set to the ON state, for example, the layer switch flag can be set to 1.
  • the layer switch flag of the target layer may be set to an off state, for example, the layer switch flag may be set to 0. Since the space corresponding to the nodes is relatively large when the number of division layers is low, the probability of these nodes applying a specific mode for processing (only a point cloud point in one position) is very low, so the specific mode can be turned off for this layer to make the layer All nodes in will not encode the corresponding target identities, thus saving bits.
  • the layer switch identifier corresponding to the target layer may be determined according to the number of nodes that contain only one point cloud point among the multiple nodes of the target layer. For example, the encoder can traverse each node in the current layer before dividing the nodes in each layer, and count the number of nodes that only contain one point cloud point. If the number of nodes is greater than or equal to a preset number threshold, it can The layer switch flag of the current layer is set to the on state 1, otherwise the layer switch flag of the current layer can be set to the off state 0.
  • the layer switch identifier corresponding to the target layer may be determined according to the proportion of nodes that contain only one point cloud point among the multiple nodes of the target layer. For example, the encoder can traverse each node in the current layer before dividing the nodes in each layer, count the number of nodes that only contain one point cloud point, and calculate the proportion of these nodes in all nodes in the layer. If the ratio is greater than or equal to the preset ratio threshold, the layer switch flag of the current layer may be set to an on state of 1; otherwise, the layer switch flag of the current layer may be set to an off state of 0.
  • the fourth condition may not be set, and the encoding end and the decoding end may directly agree that the first M layers are not allowed to enable the specific mode, and the latter M layers are allowed to enable the specific mode.
  • the encoding end can write the layer threshold M into the header information of the code stream, and the decoding end can directly use a non-specific mode for the nodes in the first M layers according to the layer threshold M decoded from the code stream.
  • the M layer starts to judge whether the node satisfies a specific condition and whether to switch to a specific mode for processing. In this way, the bits consumed by the layer switch identification can be omitted.
  • the method for encoding and decoding point cloud geometry does not use 1 bit to encode the corresponding target identifier for each first node to be divided, but only for those nodes that meet specific conditions and that need to be switched to a specific mode
  • the first node with the possibility of processing encodes its corresponding target identifier, so the bit consumption caused by encoding the target identifier can be greatly reduced.
  • FIG. 9 is a second flowchart of a point cloud geometry decoding method provided by an embodiment of the present application, and the method may include:
  • the code stream corresponding to the point cloud geometric data may include the code stream corresponding to each node, wherein the code stream corresponding to the first node may include the target identification and occupancy information of the first node, and the code stream corresponding to the second node may include the second node.
  • the occupancy information of the node that is, the code stream corresponding to the second node does not include the target identifier of the second node.
  • S904 Decode the target identifier of the first node from the code stream corresponding to the first node, and determine whether to switch to a specific mode to decode the occupancy information of the first node according to the target identifier.
  • the first node is a node that satisfies specific conditions and may be applicable to a specific mode. Therefore, the encoding end encodes the corresponding target identifier for the first node, which is used to indicate whether the decoding end is for the first node. A node switches to a specific mode for decoding.
  • the decoding end can also judge that the first node satisfies a specific condition and may apply a specific mode, so it can decode the target identification corresponding to the first node from the code stream, and determine whether to determine whether the first node corresponds to the first node according to the indication of the target identification. A node switches to a specific mode for decoding.
  • the second node is a node that does not meet specific conditions and cannot be applied to a specific mode. Therefore, the encoding end does not encode the corresponding target identifier for the second node, but directly adopts a non-specific mode to divide the second node into multiple child nodes. Then, the occupancy information corresponding to the multiple sub-nodes is encoded into the code stream. Correspondingly, the decoding end can also determine that the second node does not meet the specific conditions and cannot apply the specific mode. Therefore, the decoding end can directly use the non-specific mode to decode the occupancy of multiple sub-nodes corresponding to the second node from the code stream. information.
  • the specific mode includes an outlier mode.
  • the specific mode includes a direct mode.
  • the method further includes:
  • the index value set corresponding to the child node where the point cloud point included in the first node is decoded from the occupancy information of the first node.
  • the index value set includes multiple index values corresponding to multiple divisions of dividing the first node into leaf nodes, and the index values corresponding to one division are used to indicate the sub-nodes obtained by this division.
  • the method further includes:
  • the geometric coordinates of the point cloud point are determined according to the leaf node where the point cloud point is located.
  • the method further includes:
  • the undecoded bits of the Morton code corresponding to the point cloud points included in the first node are decoded from the occupancy information of the first node.
  • the undecoded bits of the Morton code corresponding to the point cloud points in each coordinate axis direction are obtained by decoding according to a specified order.
  • the specific mode is a direct mode
  • the code stream corresponding to the first node further includes information on the number of point cloud points included in the first node
  • the method further includes:
  • the number of point cloud points contained in the first node is decoded from the quantity information.
  • the decoding of the number of point cloud points included in the first node from the quantity information includes:
  • the number of point cloud points contained in the first node is determined according to the number identifier.
  • the determining the number of point cloud points included in the first node according to the quantity identifier includes:
  • the quantity identifier is the first identifier, it is determined that the number of point cloud points contained in the first node is 1.
  • the determining the number of point cloud points included in the first node according to the quantity identifier includes:
  • the quantity identifier is the second identifier
  • the quantity of point cloud points included in the first node is decoded from the quantity information.
  • the method further includes:
  • the occupancy information of each child node corresponding to the first node is decoded from the occupancy information of the first node.
  • the method before decoding the target identifier of the first node from the code stream, the method further includes:
  • the first node satisfies a certain condition according to the decoded data prior to decoding the first node.
  • the method before using a non-specific mode to decode the occupancy information of the second node, the method further includes:
  • the specific condition is used to determine whether the current node has the possibility of applying the specific mode, and the current node includes the first node or the second node.
  • the specific conditions include at least one of the following:
  • the first condition includes the corresponding ON state of the master switch identifier of the specific mode
  • a second condition includes switching to the specific mode using fewer bits for encoding than not switching to the specific mode
  • the third condition includes the possibility that the current node has a point cloud at only one location.
  • the master switch identifier is recorded in header information of the point cloud geometric data.
  • the header information includes the main switch identifier corresponding to the isolated point mode and/or the direct mode.
  • the second condition includes the sum of the number of undecoded bits corresponding to the Morton code corresponding to the point cloud point contained in the current node in each coordinate axis direction, greater than or equal to the number of undecoded bits in each coordinate axis direction of the current node. Twice the number of side lengths that do not reach the minimum side length.
  • the third condition includes that when the parent node of the current node satisfies the specific condition and the parent node is not selected to use the specific mode, the current node is not a child node corresponding to the parent node.
  • the current node is any node in the target layer
  • the specific condition further includes a fourth condition
  • the fourth condition includes an on state corresponding to a layer switch identifier corresponding to the target layer
  • the layer switch The flag is used to indicate whether the code stream corresponding to the node in the target layer is allowed to be decoded using the specific mode.
  • the layer switch identifier is obtained by decoding from the code stream corresponding to the point cloud geometric data before dividing the nodes in the target layer.
  • the non-specific mode is used to decode the occupancy information of the second node, including
  • the occupancy information of each child node corresponding to the second node is decoded from the occupancy information of the second node.
  • the method before determining whether the first node satisfies the specific condition, the method further includes:
  • the layer number of the target layer where the first node is located is greater than or equal to the layer number threshold.
  • the layer threshold is recorded in header information of the point cloud geometric data.
  • the method for encoding and decoding point cloud geometry does not use 1 bit to encode the corresponding target identifier for each first node to be divided, but only for those nodes that meet specific conditions and that need to be switched to a specific mode
  • the first node with the possibility of processing encodes its corresponding target identifier, so the bit consumption caused by encoding the target identifier can be greatly reduced.
  • FIG. 10 is a flowchart of a method for encoding a point cloud geometry provided by an embodiment of the present application. The method includes:
  • the specific mode includes an outlier mode.
  • determining whether to switch to the isolated point mode to encode the occupancy information of the first node includes:
  • the first node contains only one point cloud point, it is determined to switch to the isolated point mode to encode the occupancy information.
  • determining whether to switch to the isolated point mode to encode the occupancy information of the first node includes:
  • the occupancy information is encoded in a non-specific mode.
  • the encoding end can determine whether the first node contains only one point cloud point or multiple point cloud points according to the real geometric coordinates of the point cloud points.
  • the specific mode includes a direct mode.
  • determining whether to switch to the direct mode to encode the occupancy information of the first node includes:
  • determining whether to switch to the direct mode to encode the occupancy information of the first node includes:
  • the occupancy information is encoded in a non-specific mode.
  • the encoding end may determine whether the geometric coordinates of the point cloud points contained in the first node are the same according to the real geometric coordinates of the point cloud points.
  • the encoder can compare the unencoded bits of the Morton code between the point cloud points included in the first node, and if the unencoded bits between the point cloud points are the same, it can determine the Point cloud points are duplicate points that are all in one position, and can be switched to direct mode to encode them. If the uncoded bits between the point cloud points are different, it is determined that the point cloud points contained in the first node are not duplicates. point and encode it in a non-specific mode.
  • the method before switching to the specific mode to encode the occupancy information, the method further includes:
  • a target identifier corresponding to the first node indicating that it is to be switched to the special mode is encoded into a code stream.
  • the method before using a non-specific mode to encode the occupancy information, the method further includes:
  • a target identifier corresponding to the first node indicating not to switch to the special mode is encoded into a code stream.
  • the switching to a specific mode to encode the occupancy information includes:
  • the first node is divided into leaf nodes, and the index value corresponding to each division is encoded into the code stream, wherein the index value corresponding to one division is used to indicate the location of the point cloud point in the child node obtained by this division. child node of .
  • the switching to a specific mode to encode the occupancy information includes:
  • the uncoded bits of the Morton code corresponding to the point cloud points included in the first node are encoded into the code stream.
  • the uncoded bits of the Morton code corresponding to the point cloud points in each coordinate axis direction are coded into the code stream according to a specified order.
  • the specific mode is a direct mode
  • the method further includes:
  • the encoding of the number of point cloud points contained in the first node into the code stream includes:
  • the number of point cloud points contained in the first node is 1, encode the number identifier corresponding to the first node to the code stream, and the number identifier is the first identifier.
  • the encoding of the number of point cloud points contained in the first node into the code stream includes:
  • the number of point cloud points contained in the first node is greater than 1, encode the corresponding number identifier of the first node into the code stream, and the number identifier is the second identifier, and assign the point cloud contained in the first node to the code stream.
  • the number of points is encoded into the codestream.
  • encoding the occupancy information in a non-specific mode includes:
  • the occupancy information of each child node corresponding to the first node is encoded into the code stream.
  • the specific condition is used to determine whether the first node has the possibility of applying the specific mode.
  • the specific conditions include at least one of the following:
  • the first condition includes the corresponding ON state of the master switch identifier of the specific mode
  • a second condition includes switching to the specific mode using fewer bits for encoding than not switching to the specific mode
  • the third condition includes the possibility that the first node has a point cloud at only one location.
  • the master switch identifier is recorded in header information of the point cloud geometric data.
  • the header information includes the main switch identifier corresponding to the isolated point mode and/or the direct mode.
  • the second condition includes the sum of the number of uncoded bits corresponding to the Morton code corresponding to the point cloud point included in the first node in each coordinate axis direction, greater than, and each coordinate of the first node. Twice the number of side lengths that do not reach the minimum side length among the side lengths in the axial direction.
  • the third condition includes that when the parent node of the first node satisfies the specific condition and the parent node is not selected to use the specific mode, the first node does not correspond to the parent node.
  • the first node is any node in the target layer
  • the specific condition further includes a fourth condition
  • the fourth condition includes an on state corresponding to a layer switch identifier corresponding to the target layer
  • the layer The switch flag is used to indicate whether to allow the use of the specific mode to encode the occupancy information of the nodes in the target layer.
  • the layer switch identifier is encoded into the code stream before the nodes in the target layer are divided.
  • the state corresponding to the layer switch identifier is determined according to the number of layers where the target layer is located.
  • the state corresponding to the layer switch identifier is determined according to the number of nodes including only one point cloud point among the multiple nodes of the target layer.
  • the state corresponding to the layer switch identifier is determined according to the proportion of nodes that only include one point cloud point among the multiple nodes of the target layer.
  • the method further includes:
  • the occupancy information of each child node corresponding to the first node is encoded into the code stream.
  • the method before determining whether the first node satisfies the specific condition, the method further includes:
  • the layer number of the target layer where the first node is located is greater than or equal to the layer number threshold.
  • the layer threshold is recorded in header information of the point cloud geometric data.
  • the method for encoding and decoding point cloud geometry does not use 1 bit to encode the corresponding target identifier for each first node to be divided, but only for those nodes that meet specific conditions and that need to be switched to a specific mode
  • the first node with the possibility of processing encodes its corresponding target identifier, so the bit consumption caused by encoding the target identifier can be greatly reduced.
  • FIG. 11 is a schematic structural diagram of a point cloud geometry decoding apparatus provided by an embodiment of the present application.
  • the apparatus may include a processor 1101 and a memory 1102 storing a computer program.
  • the processor may implement the following steps when executing the computer program:
  • the first node satisfies the specific condition, it is determined whether to switch to a specific mode to decode the code stream.
  • the specific mode includes an outlier mode.
  • the specific mode includes a direct mode.
  • the processor when determining whether to switch to a specific mode to decode the code stream, is configured to:
  • Whether to switch to a specific mode to decode the code stream is determined according to the target identifier.
  • the processor is also used for:
  • a set of index values corresponding to the child node where the point cloud point included in the first node is located is decoded from the code stream.
  • the index value set includes multiple index values corresponding to multiple divisions of dividing the first node into leaf nodes, and the index values corresponding to one division are used to indicate the sub-nodes obtained by this division.
  • the processor is also used for:
  • the geometric coordinates of the point cloud point are determined according to the leaf node where the point cloud point is located.
  • the processor is also used for:
  • the undecoded bits of the Morton code corresponding to the point cloud points included in the first node are decoded from the code stream.
  • the undecoded bits of the Morton code corresponding to the point cloud points in each coordinate axis direction are obtained by decoding according to a specified order.
  • the specific mode is a direct mode
  • the processor is further configured to:
  • the number of point cloud points included in the first node is decoded from the code stream.
  • the processor decodes the number of point cloud points included in the first node from the code stream, it is used for:
  • the number of point cloud points contained in the first node is determined according to the number identifier.
  • the processor when determining the number of point cloud points included in the first node according to the quantity identifier, is configured to:
  • the quantity identifier is the first identifier, it is determined that the number of point cloud points contained in the first node is 1.
  • the processor when determining the number of point cloud points included in the first node according to the quantity identifier, is configured to:
  • the quantity identifier is the second identifier
  • the number of point cloud points included in the first node is decoded from the code stream.
  • the processor is also used for:
  • the occupancy information of each child node corresponding to the first node is decoded from the code stream.
  • the specific condition is used to determine whether the first node has the possibility of applying the specific mode.
  • the specific conditions include at least one of the following:
  • the first condition includes the corresponding ON state of the master switch identifier of the specific mode
  • a second condition includes switching to the specific mode using fewer bits for encoding than not switching to the specific mode
  • the third condition includes the possibility that the first node has a point cloud at only one location.
  • the master switch identifier is recorded in header information of the point cloud geometric data.
  • the header information includes the main switch identifier corresponding to the isolated point mode and/or the direct mode.
  • the second condition includes the sum of the number of undecoded bits corresponding to the Morton code corresponding to the point cloud point included in the first node in each coordinate axis direction, greater than or equal to each coordinate of the first node. Twice the number of side lengths that do not reach the minimum side length among the side lengths in the axial direction.
  • the third condition includes that when the parent node of the first node satisfies the specific condition and the parent node is not selected to use the specific mode, the first node does not correspond to the parent node.
  • the first node is any node in the target layer
  • the specific condition further includes a fourth condition
  • the fourth condition includes a layer switch identifier corresponding to an on state of the target layer, and the layer switch The flag is used to indicate whether the code stream corresponding to the node in the target layer is allowed to be decoded using the specific mode.
  • the layer switch identifier is obtained by decoding from the code stream corresponding to the point cloud geometric data before dividing the nodes in the target layer.
  • the processor is also used for:
  • the first node does not meet the specific condition, do not switch to the specific mode, and decode the occupancy information of each child node corresponding to the first node from the code stream.
  • the processor is also used for:
  • the layer number of the target layer where the first node is located is greater than or equal to a layer number threshold.
  • the layer threshold is recorded in header information of the point cloud geometric data.
  • the device for encoding and decoding point cloud geometry does not use 1 bit to encode the corresponding target identifier for each first node to be divided, but only encodes the corresponding target identifier for each first node that meets certain conditions and needs to be switched to a certain mode.
  • the first node with the possibility of processing encodes its corresponding target identifier, so the bit consumption caused by encoding the target identifier can be greatly reduced.
  • the processor may implement the following steps when executing the computer program:
  • the code stream corresponding to the first node includes the target identifier and occupation information of the first node
  • the code stream corresponding to the second node includes the second node. occupancy information without including the target identifier of the second node;
  • the occupancy information of the second node is decoded using a non-specific mode.
  • the specific mode includes an outlier mode.
  • the specific mode includes a direct mode.
  • the processor is also used for:
  • a set of index values corresponding to the child node where the point cloud point included in the first node is located is decoded from the occupancy information of the first node.
  • the index value set includes multiple index values corresponding to multiple divisions of dividing the first node into leaf nodes, and the index values corresponding to one division are used to indicate the sub-nodes obtained by this division.
  • the processor is also used for:
  • the geometric coordinates of the point cloud point are determined according to the leaf node where the point cloud point is located.
  • the processor is also used for:
  • the undecoded bits of the Morton code corresponding to the point cloud points included in the first node are decoded from the occupancy information of the first node.
  • the undecoded bits of the Morton code corresponding to the point cloud points in each coordinate axis direction are obtained by decoding according to a specified order.
  • the specific mode is a direct mode
  • the code stream corresponding to the first node further includes information on the number of point cloud points included in the first node
  • the processor is further configured to:
  • the number of point cloud points contained in the first node is decoded from the quantity information.
  • the processor decodes the quantity of point cloud points included in the first node from the quantity information, it is used for:
  • the number of point cloud points contained in the first node is determined according to the number identifier.
  • the processor determines the number of point cloud points included in the first node according to the quantity identifier, it is used for:
  • the quantity identifier is the first identifier, it is determined that the number of point cloud points contained in the first node is 1.
  • the processor determines the number of point cloud points included in the first node according to the quantity identifier, it is used for:
  • the quantity identifier is the second identifier
  • the quantity of point cloud points included in the first node is decoded from the quantity information.
  • the processor is also used for:
  • the occupancy information of each child node corresponding to the first node is decoded from the occupancy information of the first node.
  • the processor is also used for:
  • the first node Before decoding the target identifier of the first node from the code stream, it is determined that the first node satisfies a specific condition according to the decoded data before decoding the first node.
  • the processor is also used for:
  • the second node Before decoding the occupancy information of the second node in the non-specific mode, it is determined that the second node does not meet a specific condition according to the decoded data before decoding the second node.
  • the specific condition is used to determine whether the current node has the possibility of applying the specific mode, and the current node includes the first node or the second node.
  • the specific conditions include at least one of the following:
  • the first condition includes the corresponding ON state of the master switch identifier of the specific mode
  • a second condition includes switching to the specific mode using fewer bits for encoding than not switching to the specific mode
  • the third condition includes the possibility that the current node has a point cloud at only one location.
  • the master switch identifier is recorded in header information of the point cloud geometric data.
  • the header information includes the main switch identifier corresponding to the isolated point mode and/or the direct mode.
  • the second condition includes the sum of the number of undecoded bits corresponding to the Morton code corresponding to the point cloud point contained in the current node in each coordinate axis direction, greater than or equal to the number of undecoded bits in each coordinate axis direction of the current node. Twice the number of side lengths that do not reach the minimum side length.
  • the third condition includes that when the parent node of the current node satisfies the specific condition and the parent node is not selected to use the specific mode, the current node is not a child node corresponding to the parent node.
  • the current node is any node in the target layer
  • the specific condition further includes a fourth condition
  • the fourth condition includes an on state corresponding to a layer switch identifier corresponding to the target layer
  • the layer switch The flag is used to indicate whether the code stream corresponding to the node in the target layer is allowed to be decoded using the specific mode.
  • the layer switch identifier is obtained by decoding from the code stream corresponding to the point cloud geometric data before dividing the nodes in the target layer.
  • the processor uses a non-specific mode to decode the occupancy information of the second node, it is used to:
  • the occupancy information of each child node corresponding to the second node is decoded from the occupancy information of the second node.
  • the processor is also used for:
  • the layer number of the target layer where the first node is located is greater than or equal to a layer number threshold.
  • the layer threshold is recorded in header information of the point cloud geometric data.
  • the device for encoding and decoding point cloud geometry does not use 1 bit to encode the corresponding target identifier for each first node to be divided, but only encodes the corresponding target identifier for each first node that meets certain conditions and needs to be switched to a certain mode.
  • the first node with the possibility of processing encodes its corresponding target identifier, so the bit consumption caused by encoding the target identifier can be greatly reduced.
  • FIG. 12 is a schematic structural diagram of a point cloud geometry encoding apparatus provided by an embodiment of the present application.
  • the apparatus may include: a processor 1201 and a memory 1202 storing a computer program, the processor may implement the following steps when executing the computer program:
  • the encoded data in the point cloud geometric data before encoding the first node determine whether the first node satisfies a specific condition
  • the first node satisfies the specific condition, it is determined whether to switch to a specific mode to encode the occupancy information of the first node.
  • the specific mode includes an outlier mode.
  • determining whether to switch to the isolated point mode to encode the occupancy information of the first node includes:
  • the first node contains only one point cloud point, it is determined to switch to the isolated point mode to encode the occupancy information.
  • determining whether to switch to the isolated point mode to encode the occupancy information of the first node includes:
  • the occupancy information is encoded in a non-specific mode.
  • the specific mode includes a direct mode.
  • the processor when determining whether to switch to the direct mode to encode the occupancy information of the first node, is configured to:
  • the processor when determining whether to switch to the direct mode to encode the occupancy information of the first node, is configured to:
  • the occupancy information is encoded in a non-specific mode.
  • the processor is also used for:
  • the processor is also used for:
  • a target identifier corresponding to the first node indicating not to switch to the special mode is encoded into a code stream.
  • the processor when switching to a specific mode to encode the occupancy information, is configured to:
  • the first node is divided into leaf nodes, and the index value corresponding to each division is encoded into the code stream, wherein the index value corresponding to one division is used to indicate the location of the point cloud point in the child node obtained by this division. child node of .
  • the processor when switching to a specific mode to encode the occupancy information, is configured to:
  • the uncoded bits of the Morton code corresponding to the point cloud points included in the first node are encoded into the code stream.
  • the uncoded bits of the Morton code corresponding to the point cloud points in each coordinate axis direction are coded into the code stream according to a specified order.
  • the specific mode is a direct mode
  • the processor is further configured to:
  • the number of point cloud points contained in the first node is 1, encode the number identifier corresponding to the first node to the code stream, and the number identifier is the first identifier.
  • the number of point cloud points contained in the first node is greater than 1, encode the number corresponding to the first node into the code stream, and the number is marked as the second identifier, and use the point cloud contained in the first node. The number of points is encoded into the codestream.
  • the processor when encoding the occupancy information in a non-specific mode, is configured to:
  • the occupancy information of each child node corresponding to the first node is encoded into the code stream.
  • the specific condition is used to determine whether the first node has the possibility of applying the specific mode.
  • the specific conditions include at least one of the following:
  • the first condition includes the corresponding ON state of the master switch identifier of the specific mode
  • a second condition includes switching to the specific mode using fewer bits for encoding than not switching to the specific mode
  • the third condition includes the possibility that the first node has a point cloud at only one location.
  • the master switch identifier is recorded in header information of the point cloud geometric data.
  • the header information includes the main switch identifier corresponding to the isolated point mode and/or the direct mode.
  • the second condition includes the sum of the number of uncoded bits corresponding to the Morton code corresponding to the point cloud point included in the first node in each coordinate axis direction, greater than, and each coordinate of the first node. Twice the number of side lengths that do not reach the minimum side length among the side lengths in the axial direction.
  • the third condition includes that when the parent node of the first node satisfies the specific condition and the parent node is not selected to use the specific mode, the first node does not correspond to the parent node.
  • the first node is any node in the target layer
  • the specific condition further includes a fourth condition
  • the fourth condition includes an on state corresponding to a layer switch identifier corresponding to the target layer
  • the layer The switch flag is used to indicate whether to allow the use of the specific mode to encode the occupancy information of the nodes in the target layer.
  • the layer switch identifier is encoded into the code stream before the nodes in the target layer are divided.
  • the state corresponding to the layer switch identifier is determined according to the number of layers where the target layer is located.
  • the state corresponding to the layer switch identifier is determined according to the number of nodes including only one point cloud point among the multiple nodes of the target layer.
  • the state corresponding to the layer switch identifier is determined according to the proportion of nodes that only include one point cloud point among the multiple nodes of the target layer.
  • the processor is also used for:
  • the occupancy information of each child node corresponding to the first node is encoded into the code stream.
  • the processor is also used for:
  • the layer number of the target layer where the first node is located is greater than or equal to a layer number threshold.
  • the layer threshold is recorded in header information of the point cloud geometric data.
  • the device for encoding and decoding point cloud geometry does not use 1 bit to encode the corresponding target identifier for each first node to be divided, but only encodes the corresponding target identifier for each first node that meets certain conditions and needs to be switched to a certain mode.
  • the first node with the possibility of processing encodes its corresponding target identifier, so the bit consumption caused by encoding the target identifier can be greatly reduced.
  • Embodiments of the present application further provide a computer-readable storage medium, where the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, implements the point cloud geometry decoding method provided by the embodiments of the present application.
  • Embodiments of the present application further provide a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and when the computer program is executed by a processor, the point cloud geometry encoding method provided by the embodiments of the present application is implemented.
  • Embodiments of the present application may take the form of a computer program product implemented on one or more storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having program code embodied therein.
  • Computer-usable storage media includes permanent and non-permanent, removable and non-removable media, and storage of information can be accomplished by any method or technology.
  • Information may be computer readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), Flash Memory or other memory technology, Compact Disc Read Only Memory (CD-ROM), Digital Versatile Disc (DVD) or other optical storage, Magnetic tape cartridges, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission medium that can be used to store information that can be accessed by a computing device.
  • PRAM phase-change memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • RAM random access memory
  • ROM read only memory
  • EEPROM Electrically Erasable Programmable Read Only Memory
  • Flash Memory or other memory technology
  • CD-ROM Compact Disc Read Only Memory
  • CD-ROM Compact Disc Read Only Memory
  • DVD Digital Versatile Disc
  • Magnetic tape cartridges magnetic tape magnetic disk storage or other magnetic storage devices or any other non-

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请实施例公开了一种点云几何解码方法,包括:获取点云几何数据中第一节点对应的码流;根据在解码所述第一节点前的已解码数据确定所述第一节点是否满足特定条件;若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述码流进行解码。本申请实施例公开的点云几何编解码方法,可以只对有可能适用特定模式的节点编码对应的目标标识,从而减少了编码目标标识所使用的比特数,提高了点云几何编解码的压缩效果。

Description

点云几何解码方法、装置、计算机可读存储介质 技术领域
本申请涉及点云数据处理技术领域,尤其涉及一种点云几何解码方法、装置及计算机可读存储介质,以及一种点云几何编码方法、装置及计算机可读存储介质。
背景技术
点云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成。为了准确反映空间中的信息,所需离散点的数量是巨大的。为了减少点云数据存储和传输时所占用的带宽,需要对点云数据进行编码压缩处理。
发明内容
本申请实施例提供了一种点云几何解码方法、装置及计算机可读存储介质,以及一种点云几何编码方法、装置及计算机可读存储介质,目的之一是提高点云几何编解码的压缩效果。
本申请实施例第一方面提供一种点云几何解码方法,包括:
获取点云几何数据中第一节点对应的码流;
根据在解码所述第一节点前的已解码数据确定所述第一节点是否满足特定条件;
若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述码流进行解码。
本申请实施例第二方面提供一种点云几何解码方法,包括:
获取点云几何数据对应的码流,所述码流中第一节点对应的码流包括所述第一节点的目标标识和占用信息,所述第二节点对应的码流包括所述第二节点的占用信息而不包括所述第二节点的目标标识;
从所述码流中解码出所述第一节点的目标标识,根据所述目标标识确定是否切换至特定模式对所述第一节点的占用信息进行解码;
采用非特定模式对所述第二节点的占用信息进行解码。
本申请实施例第三方面提供一种点云几何编码方法,包括:
获取点云几何数据;
根据所述点云几何数据中在编码第一节点前的已编码数据,确定所述第一节点是否满足特定条件;
若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述第一节点的占用信息进行编码。
本申请实施例第四方面提供一种点云几何解码装置,包括:处理器和存储有计算机程序的存储器,所述处理器在执行所述计算机程序时实现以下步骤:
获取点云几何数据中第一节点对应的码流;
根据在解码所述第一节点前的已解码数据确定所述第一节点是否满足特定条件;
若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述码流进行解码。
本申请实施例第五方面提供一种点云几何解码装置,包括:处理器和存储有计算机程序的存储器,所述处理器在执行所述计算机程序时实现以下步骤:
获取点云几何数据对应的码流,所述码流中第一节点对应的码流包括所述第一节点的目标标识和占用信息,所述第二节点对应的码流包括所述第二节点的占用信息而不包括所述第二节点的目标标识;
从所述码流中解码出所述第一节点的目标标识,根据所述目标标识确定是否切换至特定模式对所述第一节点的占用信息进行解码;
采用非特定模式对所述第二节点的占用信息进行解码。
本申请实施例第六方面提供一种点云几何编码装置,包括:处理器和存储有计算机程序的存储器,所述处理器在执行所述计算机程序时实现以下步骤:
获取点云几何数据;
根据所述点云几何数据中在编码第一节点前的已编码数据,确定所述第一节点是否满足特定条件;
若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述第一节点的占用信息进行编码。
本申请实施例第七方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面提供的点云几何解码方法。
本申请实施例第八方面提供一种计算机可读存储介质,所述计算机可读存储介质 存储有计算机程序,所述计算机程序被处理器执行时实现如上述第二方面提供的点云几何解码方法。
本申请实施例第九方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第三方面提供的点云几何编码方法。
本申请实施例提供的点云几何编解码方法,并没有对每一个待划分的第一节点都使用1比特编码其对应的目标标识,而是只对满足特定条件的、具有要切换至特定模式进行处理的可能性的第一节点编码其对应的目标标识,因此可以大大降低编码目标标识所带来的比特消耗。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是八叉树的划分示意图。
图2是四叉树的划分示意图。
图3是二叉树的划分示意图。
图4是长宽高不相等的点云包围盒的示意图。
图5是本申请实施例提供的第一点云划分示意图。
图6是本申请实施例提供的第二点云划分示意图。
图7是本申请实施例提供的第三点云划分示意图。
图8是本申请实施例提供的点云几何解码方法的第一流程图。
图9是本申请实施例提供的点云几何解码方法的第二流程图。
图10是本申请实施例提供的点云几何编码方法的流程图。
图11是本申请实施例提供的点云几何解码装置的结构示意图。
图12是本申请实施例提供的点云几何编码装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
点云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成。为了准确反映空间中的信息,所需离散点的数量是巨大的。为了减少点云数据存储和传输时所占用的带宽,需要对点云数据进行编码压缩处理。
在点云编码压缩过程中,点云的几何数据和属性数据通常是分开进行编码压缩的。其中,对点云几何数据进行编码压缩时,在一种实施方式中,可以通过对点云进行树状划分实现。
对点云进行树状划分,具体的,可以将整个点云通过一个包围盒进行包裹,并可以对包围盒进行递归的划分。所谓递归的划分,即可以在每一次对节点进行划分后,对划分得到的多个子节点中包含点云点的子节点再进行划分。这里,一个节点可以对应一个立方体或长方体的空间块,如上述的包围盒也可以对应一个节点,该节点可以称为根节点。对节点进行划分即是对空间块进行划分,划分后可以得到多个子节点,每一个子节点对应一个小空间块。通过不断的对包含有点云点的节点进行划分(不包含点云点的节点不进行划分),最终划分得到的子节点可以对应最小单位(最小边长)的空间块,该最小单位的空间块对应的节点可以称为叶节点。由于叶节点中只包含一个点云点,因此可以根据该叶节点的几何坐标(比如可以是几何中心的坐标)确定该叶节点所包含的点云点的几何坐标。
在将一个节点划分为多个子节点时,可以有多种划分方式,比如有八叉树、四叉树、二叉树等。采用八叉树的划分方式,则一个节点可以被划分为8个子节点,采用四叉树的划分方式,则一个节点可以被划分为4个子节点,采用二叉树的划分方式,则一个节点可以被划分为2个子节点。可以参考图1、图2和图3,其中图1是八叉树的划分示意图,图2是四叉树的划分示意图,图3是二叉树的划分示意图。
若点云的包围盒是尺寸为(2 N-1,2 N-1,2 N-1)的立方体,则可以对所有节点采用八叉树的划分方式,包围盒最终可以被划分为叶节点的尺寸,N表示最大划分层数。但若点云的包围盒是长宽高不相等的长方体,如图4所示,则对不同的节点,可以根据该 节点在XYZ三个方向上的边长确定该节点对应的划分方式,此时,该节点对应的划分方式可能为八叉树、四叉树、二叉树中的任一种。
通过对点云进行树状划分,编码端与解码端之间不需要传输数据量巨大的点云点几何坐标,编码端只需将用于指示解码端如何对点云进行划分的信息写入码流,解码端从码流中解码出这些信息,并可以根据这些信息对点云的包围盒进行正确的划分,从而在划分到叶节点后,便可重建出各个点云点的几何坐标,大大减少了要传输码流的比特数。
对于编码端要传输给解码端的信息,可以包括包围盒的几何信息以及每次划分对应的子节点的占用信息。这里,包围盒的几何信息可以用于解码端初始化点云对应的包围盒,比如可以是包围盒的尺寸、中心点或其他顶点的几何坐标,或者可以是点云点的最大几何坐标和最小几何坐标等,只要能够唯一确定所述包围盒即可。
子节点的占用信息可以表示该子节点中是否包含有点云点,具体的,编码端也可以初始化点云对应的包围盒,并可以对所述包围盒进行递归的划分,每次将一个节点划分为多个子节点后,可以根据点云点的真实几何坐标确定各个子节点的占用信息,比如可以用1表示该子节点被占用(即包含有点云点),用0表示该子节点未被占用(即不包含有点云点)。在每一次划分后,编码端可以将该次划分所得的各个子节点的占用信息写入码流,从而解码端可以从码流中解码出这些占用信息,并可以根据这些占用信息确定哪些子节点要进行划分,从而正确的将包围盒划分到叶节点,重建出正确的点云点的几何坐标。
可以参考图5,图5中的白色块表示不包含点云点的节点,黑色块表示包含有点云点的节点。例如,A节点可以是根节点,即包围盒本身,这里对节点均采用八叉树的划分方式,则可以将A节点划分为8个子节点。在A节点对应的8个子节点中,B节点是唯一包含有点云点的子节点,因此可以对B节点进行划分,得到B节点对应的8个子节点。在B节点对应的8个子节点中,C节点和D节点都是包含有点云点的子节点,因此对C节点和D节点都需要进行划分……
如前所述,在每一次划分后,编码端可以将该次划分对应的各子节点的占用信息写入码流,比如在对A节点进行划分后,可以将A节点对应的8个子节点的占用信息写入码流,该占用信息例如可以是00100000,其中的1对应B节点的占用信息。同理,在对B节点进行划分后,可以将B节点对应的8个子节点的占用信息写入码流,例如可以将00100001写入码流,其中的第一个1对应C节点的占用信息,第二个1对应D节点的占用信息。
在一种实施方式中,对节点的划分可以是逐层进行的,即在完成当前层中所有包含点云点的节点的划分后,再开始对下一层的节点进行划分。如图5所示,A节点所在的层可以是第一层,B节点所在的层可以是第二层……那么,在将C节点划分为多个子节点后,下一个划分的节点并不是C节点的子节点,而是同在第三层的D节点。在C节点和D节点都划分完毕后,即第三层要划分的节点都划分完毕后,再针对下一层(第四层)的E节点、F节点、G节点、H节点依次进行划分。
可以用第一节点来指代任一包含有点云点的待划分的节点,则前文所描述的对第一节点的处理是编码端和解码端采用非特定模式时对节点的处理方式,换言之,编码端采用非特定模式对第一节点进行处理时,编码端对第一节点仅进行一次划分,在将第一节点划分为多个子节点后,便将第一节点对应的各个子节点的占用信息编码到码流,随后对与第一节点同层的其它节点进行处理。相应的,解码端采用非特定模式对第一节点进行处理时,可以从码流中解码出第一节点对应的多个子节点的占用信息。
在一些情况中,采用非特定模式对节点进行处理可能会造成一定的比特浪费。可以参考图6,F节点中只在一个位置上有点云点,即只在一个特定的几何坐标上有点云点,该位置上的点云点可以是一个,也可以是多个,是多个的时候意味着该多个点云点是重复点,即该多个点云点的几何坐标相同,此时,若采用非特定模式对F节点进行处理,则编码端在对F节点进行划分后,可以在码流中写入F节点对应的8个子节点的占用信息00100000,而下一个划分的节点是与F节点同在第四层的其他节点(即图5中的G节点)。在第四层的节点划分完毕后,才开始对第五层的节点进行划分……如此,在对I节点进行划分后,编码端在码流中写入I节点对应的8个子节点的占用信息00000010,在对J节点进行划分后,编码端在码流中写入J节点对应的8个子节点的占用信息00000100。
可见,采用非特定模式对F节点进行处理,编码端为了给解码端指示出F节点包含的点云点的位置,一共使用了8+8+8=24个比特,而对于只在一个位置上有点云点的F节点而言,通过一些方式是可以减少用于指示F节点包含的点云点的位置所使用的比特数的。
在一种实施方式中,若确定第一节点只在一个位置上有点云点,编码端可以切换至特定模式对第一节点进行编码。其中,特定模式可以是孤立点模式或者是直接模式,若确定第一节点只包含一个点云点,则可以切换至孤立点模式对第一节点进行编码,若确定第一节点包含多个点云点但该多个点云点为重复点,则可以切换至直接模式对第一节点进行编码。相应的,解码端在确定第一节点只在一个位置上有点云点时,也 可以切换至特定模式对第一节点进行解码。若确定第一节点只包含一个点云点,则可以切换至孤立点模式对第一节点进行解码,若确定第一节点包含多个点云点但该多个点云点为重复点,则可以切换至直接模式对第一节点进行解码。
对于编码端,无论是采用孤立点模式还是直接模式,在对第一节点进行编码时,都需要对第一节点包含的点云点的位置进行编码,这部分对点云点位置的编码,采用孤立点模式与采用直接模式进行的处理可以是相同的,因为无论是重复点和还是孤立点都只需要编码一个点云点位置。而若第一节点包含多个位置相同的重复点,即编码端采用直接模式对第一节点进行编码时,除了需要进行对第一节点包含的点云点的位置进行编码外,还需要对第一节点包含的点云点数量进行编码。
相应的,对于解码端,在对第一节点包含的点云点的位置进行解码时,采用孤立点模式与采用直接模式所进行的处理可以是相同的。而在采用直接模式对第一节点进行解码时,除了要对所述点云点位置进行解码外,还需要对第一节点包含的点云点数量进行解码。
编码端在切换至特定模式(孤立点模式或直接模式)对第一节点包含的点云点位置进行编码时,可以有多种实施方式。在一种实施方式中,编码端可以根据该第一节点所包含的点云点的真实几何坐标,直接将该第一节点通过多次划分划分至叶节点,而对于所述多次划分中的每一次划分,可以通过一个索引值来指示出该次划分所得的多个子节点中点云点所在的子节点,从而多次划分对应有多个索引值,编码端可以将该多个索引值编码到码流。这里,所述多个索引值也可以称为索引值集合。
相应的,解码端在切换至特定模式(孤立点模式或直接模式)对第一节点包含的点云点位置进行解码时,可以从码流中解码出所述索引值集合,并可以根据该索引值集合中的多个索引值对第一节点进行多次划分。在将第一节点划分至叶节点后,可以根据最后一次划分对应的索引值确定最后一次划分所得的多个叶节点中点云点所在的叶节点,从而可以根据该点云点所在的叶节点确定该点云点的几何坐标。
可以参考图7,在确定对F节点采用特定模式(孤立点模式或直接模式)进行编码后,编码端可以直接通过三次划分将F节点划分到叶节点的尺寸,并可以通过三个索引值来指示每一次划分所得的子节点中点云点所在的子节点,比如对于第一次划分,即对F节点的划分,可以用3比特的索引值010表示点云点所在的子节点是第3个子节点(即I节点),对于第二次划分,即对I节点的划分,可以用3比特的索引值110表示点云点所在的子节点是第7个子节点(即J节点),对于第三次划分,即对K节点的划分,可以用3比特的索引值101表示点云点所在的子节点是第6个子节点(即K 节点)。编码端可以将该三个索引值010、110、101编码到码流中。相应的,解码端在确定对F节点采用特定模式(孤立点模式或直接模式)进行解码时,可以从码流中解码得到该三个索引值,并可以根据该三个索引值对F节点进行划分以及确定F节点中的点云点所在的叶节点。
可见,切换至特定模式(孤立点模式或直接模式)对F节点包含的点云点的位置进行编码,只需要使用3*3=9比特,相比采用非特定模式需要使用24比特而言,大大降低了所使用的比特数。
可以理解的是,在图7所示的例子中,索引值与子节点的映射关系仅作为一种示例,在具体实施时,本申请实施例对索引值与子节点的映射关系不做限制,只需编码端与解码端统一即可。比如在图7所示的例子中,索引值111对应的是第8个子节点,但在另一个例子中,索引值111可以对应的是第1个子节点。
需要说明的是,虽然在图7所示的例子中所有节点均采用了八叉树的划分方式,但这仅是一个示例,在其他的例子中,对不同节点的划分可以采用不同的划分方式,比如有的节点可以采用八叉树划分,有的节点可以采用四叉树划分,有的节点可以采用二叉树划分。而根据节点所采用的划分方式,可以确定该次划分所对应的索引值的比特数。比如,若采用八叉树将节点划分为8个子节点,则可以用3比特的索引值来指示8个子节点中点云点所在的子节点,若采用四叉树将节点划分为4个子节点,则可以用2比特的索引值来指示4个子节点中点云点所在的子节点,若采用二叉树将节点划分为2个子节点,则可以用1比特的索引值来指示2个子节点中点云点所在的子节点。
编码端在切换至特定模式(孤立点模式或直接模式)对第一节点包含的点云点位置进行编码时,在一种实施方式中,编码端可以直接编码该第一节点所包含的点云点的几何坐标对应的莫顿码的未编码比特。在编码所述未编码比特时,在一种实施方式中,可以按照指定顺序对所述点云点在各坐标轴方向对应的莫顿码的未编码比特进行编码,比如可以按照XYZ顺序对所述未编码比特进行编码,即先编码X轴方向对应的莫顿码的未编码比特,再编码Y轴方向对应的莫顿码的未编码比特,最后编码Z轴方向对应的莫顿码的未编码比特,当然,也可以采用其他顺序编码所述未编码比特,例如XZY顺序、YXZ顺序等等。
相应的,解码端在切换至特定模式(孤立点模式或直接模式)对第一节点包含的点云点位置进行解码时,可以从码流中解码出所述第一节点包含的点云点的几何坐标对应的莫顿码的未解码比特。并且,由于编码端是根据指定顺序对所述点云点在各坐 标轴方向对应的未编码比特进行编码的,因此解码端也可以按照所述指定顺序从码流中解码出所述点云点在各坐标轴方向对应的未解码比特。
如图7所示的例子中,F节点经过3次八叉树划分可以到达叶节点,或者说,F节点的最大划分层数是4,因此F节点的尺寸可以表示为(2 3,2 3,2 3),F节点中包含的点云点在X、Y、Z三个方向对应的莫顿码的未编码比特数都是3,因此一共要编码的比特数是9比特,相比采用非特定模式需要编码24比特而言,大大降低了比特的花费。
由前文的说明可知,特定模式与非特定模式对节点的划分顺序是不同的,或者说,特定模式与非特定模式对节点的编码和解码顺序不同。在图7所示的例子中,若采用非特定模式时,在将F节点划分为8个子节点后,下一个划分的节点是同层的G节点,即在对F节点进行编码后,下一个编码的节点的G节点。而采用特定模式时,在将F节点划分为8个子节点后,下一个划分的是F节点的子节点——I节点,再下一个划分的是I节点的子节点——J节点,即在对F节点进行编码后,下一个编码的是I节点,再下一个编码的J节点。
可以理解的,若第一节点在某一坐标轴方向上的边长已经到达最小边长,即在该坐标轴方向已经无法继续划分,则相当于第一节点所包含的点云点在该坐标轴方向上的坐标已经确定,该坐标轴方向对应的莫顿码已经全部完成编解码,因此无需对该坐标轴方向对应的莫顿码进行处理。
在前文已有提及,若编码端采用直接模式对第一节点进行编码,除了需要进行编码第一节点中点云点的位置外,还需要对第一节点包含的点云点数量进行编码,因为第一节点包含的点云点数量不一定是1。同样的,解码端采用直接模式对第一节点进行解码时,除了需要进行解码第一节点中点云点的位置外,还需要对第一节点包含的点云点数量进行解码。
编码端在对第一节点包含的点云点数量进行编码时,可以有多种实施方式。在一种实施方式中,编码端可以直接将第一节点包含的点云点的数量编码到码流,则相应的,解码端也可以直接从码流中解码出第一节点包含的点云点的数量。
在一种实施方式中,编码端可以先编码一个数量标识,用于指示第一节点包含的点云点的数量是否为1。具体的,若第一节点包含的点云点的数量是1,则可以将该数量标识置为第一标识,并将该数量标识编码到码流,这里,第一标识比如可以是1(当然也可以与解码端约定为0)。若第一节点包含的点云点的数量不为1,则可以将该数量标识置为第二标识,第二标识比如可以是0,将该数量标识编码到码流,并将第一节点包含的点云点的数量也编码到码流。相应的,解码端可以从码流中解码出第一节 点对应的所述数量标识,若所述数量标识是第一标识,则可以确定第一节点包含的点云点的数量是1,若所述数量标识是第二标识,则还需要从码流中解码出第一节点所包含的点云点的数量。
编码端对所述数量标识的编码可以使用上下文模型,也可以使用等概率模型,对第一节点包含的点云点数量的编码也可以有多种实施方式,可以每一比特采用独立的上下文模型,也可以多个比特采用相同的上下文模型,比如一部分比特采用第一上下文模型,另一部分比特采用第二上下文模型,还可以采用等概率模型。而对于解码端,其对数量标识的解码方式与编码端对数量标识的编码方式统一即可,其对点云点数量的解码方式与编码端对点云点数量的编码方式统一即可。
由前文说明的内容可知,对每一个待划分的第一节点,由于编码端已知各个点云点的真实几何坐标,因此编码端都可以确定对该第一节点是否要切换至特定模式进行编码,比如,若根据点云点的真实几何坐标确定第一节点仅包含一个点云点,则可以确定要切换至孤立点模式对第一节点进行编码,又或者,若根据点云点的真实几何坐标确定第一节点包含的所有点云点的几何坐标相同,则可以确定要切换至直接模式对其进行编码。但解码端无法获知点云点的真实几何坐标,因此解码端需要编码端的指示来确定是否对第一节点采用特定模式进行解码。基于此,在一种实施方式中,编码端可以对每一个待划分的第一节点都编码对应的目标标识,该目标标识可以指示出对第一节点是否要切换至特定模式进行处理。相应的,解码端可以从码流中解码每一个第一节点对应的目标标识,并可以根据该目标标识确定对第一节点是否切换至特定模式进行解码。
上述实施方式中,每一个第一节点都需要使用1比特来传输其对应的目标标识,耗费了大量的比特数,压缩效果不够理想。因此,本申请实施例提供了一种点云几何编解码方法,可以进一步节省比特。
本申请实施例提供的点云几何编解码方案,对每一个待划分的第一节点,编码端可以先根据特定条件确定该第一节点是否具有要切换至特定模式进行编码的可能性,若该第一节点不具有要切换至特定模式进行编码的可能性,则可以不编码该第一节点对应的目标标识,若该第一节点具有所述可能性,才编码该第一节点对应的目标标识。相应的,对每一个待划分的第一节点,解码端也可以根据所述特定条件确定该第一节点是否具有要切换至特定模式进行解码的可能性,若该节点不具有要切换至特定模式进行解码的可能性,则无需从码流中解码该第一节点对应的目标标识,若该第一节点具有所述可能性,则可以从码流中解码该第一节点对应的目标标识。
可见,本申请实施例提供的点云几何编解码方法,并没有对每一个待划分的第一节点都使用1比特编码其对应的目标标识,而是只对满足特定条件的、具有要切换至特定模式进行处理的可能性的第一节点编码其对应的目标标识,因此可以大大降低编码目标标识所带来的比特消耗。
可以参考图8,图8是本申请实施例提供的点云几何解码方法的第一流程图,该方法包括:
S802、获取点云几何数据中第一节点对应的码流。
S804、根据在解码所述第一节点前的已解码数据确定所述第一节点是否满足特定条件。
S806、若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述码流进行解码。
本申请实施例提供的点云几何解码方法,对满足特定条件的第一节点才确定是否切换至特定模式进行解码,不满足特定条件的第一节点直接排除对其采用特定模式进行解码的可能性,从而对这些不满足特定条件的第一节点无需解码其对应的目标标识,减少了编码端与解码端之间要传输的数据量。
对于特定模式,其可以是孤立点模式,也可以是直接模式,该部分内容在前文已有详细说明,在此不再赘述。
所述特定条件可以用于确定第一节点是否具有要切换至特定模式进行解码的可能性,或者说,所述特定条件可以用于确定第一节点是否具有适用特定模式的可能性。若第一节点满足所述特定条件,可以进一步确定是否要切换至特定模式对第一节点进行解码,若第一节点不满足所述特定条件,则不具有要切换至特定模式的可能,可以直接采用非特定模式对第一节点进行解码,即可以从码流中解码出第一节点对应的多个子节点的占用信息。
所述特定条件可以包括以下至少一项:第一条件是所述特定模式的总开关标识对应开启状态;第二条件是相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;第三条件是所述第一节点具有仅在一个位置上有点云点的可能性。
对于第一条件,特定模式的总开关标识可以从点云几何数据的头信息中获取。在一个例子中,总开关标识对应开启状态可以是总开关标识是1,开启状态表示允许切换至特定模式对节点进行处理,总开关标识对应关闭状态可以是总开关标识是0,关闭状态表示不允许切换至特定模式对节点进行处理,仅能采用非特定模式进行编解码。点云几何数据的头信息中可以只包括孤立点模式对应的总开关标识,也可以只包括直 接模式对应的总开关标识,也可以包括孤立点模式与直接模式两种模式各自对应的总开关标识。在一种实施方式中,若头信息中包括孤立点模式与直接模式各自对应的总开关标识,则两种模式对应的总开关标识可以是互斥的,即孤立点模式的总开关标识对应开启状态时,直接模式的总开关标识只能对应关闭状态,直接模式的总开关标识对应开启状态时,孤立点模式的总开关标识只能对应关闭状态。
对于第二条件,由于在一些情况中,相比直接采用非特定模式,切换至特定模式进行编码未必能节省比特。可以举个例子,比如第一节点仅包含一个点云点,但该第一节点经过一次二叉树划分即可划分为叶节点的尺寸,则采用非特定模式对该节点进行编码,只需要使用2比特作为该节点对应的2个子节点的占用信息即可,而采用特定模式对该节点进行编码,需要1比特的目标标识以及1比特的索引值,并不比直接采用非特定模式节省比特,因此可以不切换至特定模式对该第一节点进行处理。
在一种实施方式中,第二条件具体可以是第一节点包含的点云点对应的莫顿码在各坐标轴方向对应的未解码比特位数之和、大于、所述第一节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。其中,所述未解码比特位数之和可以是第一节点未到达最小边长的各方向边长在除以最小边长并取log2之后相加得到,所述未到达最小边长的边长数量可以是1或2或3,即第一节点在XYZ三方向的三条边长中未到达最小边长的边长数量。
对于第三条件,由于特定模式所针对的节点是仅包含一个点云点的节点(孤立点模式),或者是包括多个点云点但该多个点云点是重复点的节点(直接模式),因此若第一节点中不具有仅在一个位置上有点云点的可能性,则可以确定该第一节点不适用特定模式进行编解码。
在一种实施方式中,第三条件可以是当第一节点的父节点满足特定条件但父节点未选中使用特定模式时,所述第一节点不是父节点对应的子节点中唯一包含有点云点的子节点。若特定模式是孤立点模式,父节点未选中使用孤立点模式,则意味着父节点中包含的点云点数量大于1,若第一节点是父节点的子节点中唯一有点云点的子节点,则该第一节点必然包含多个点云点,从而不适用孤立点模式。若特定模式是直接模式,父节点未选中使用直接模式,则意味着父节点中包含的点云点的几何坐标不相同,若第一节点是父节点的子节点中唯一有点云点的子节点,则该第一节点必然包含多个几何坐标不同的点云点,从而不适用直接模式。
通过上述特定条件,虽然可以筛选掉一部分不可能适用特定模式的节点,但满足所述特定条件的节点也有很多,并且这些节点中,确定要切换至特定模式进行处理的 却不多。换言之,即这些满足特定条件的节点都编码了对应的目标标识,但其中只有少数节点的目标标识是1(对应要切换至特定模式),多数节点的目标标识是0(对应不切换至特定模式),因此这些为0的目标标识实际也造成了比特浪费。
考虑到上述问题,在一种实施方式中,特定条件还可以包括第四条件,所述第四条件可以是目标层的层开关标识对应开启状态。这里,可以将第一节点所在的层称为目标层,层开关标识可以指示是否允许使用特定模式对目标层中的节点进行处理。层开关标识可以是编码端在对该层中节点进行划分之前编码到码流中的,从而解码端在对该层中节点进行划分之前可以从码流中解码得到该层对应的层开关标识。层开关标识可以有开启和关闭两种状态,比如层开关标识是1时可以对应开启状态,层开关标识是0时可以对应关闭状态。
在一种实施方式中,编码端可以为每一层都确定对应的层开关标识,所述目标层可以是点云划分所得的树结构中的任一层。在确定目标层对应的层开关标识时,在一种实施方式中,可以根据目标层所在的层数确定。比如可以预先设定有层数阈值,若目标层所在的层数大于等于所述层数阈值,可以将目标层的层开关标识置为开启状态,比如可以将层开关标识置1,若目标层所在的层数小于所述层数阈值,可以将目标层的层开关标识置为关闭状态,比如可以将层开关标识置0。由于在划分层数较低时,节点对应的空间较大,这些节点适用特定模式进行处理(仅在一个位置上有点云点)的概率很低,因此可以对该层关闭特定模式,使该层中的所有节点都不会编码对应的目标标识,从而节省比特。
在一种实施方式中,目标层对应的层开关标识可以根据目标层的多个节点中仅包含一个点云点的节点数量确定。比如,编码端可以在对每层中的节点进行划分前,遍历当前层内的各个节点,统计其中仅包含一个点云点的节点数量,若该节点数量大于等于预设的数量阈值,则可以将当前层的层开关标识置为开启状态1,否则可以将当前层的层开关标识置为关闭状态0。
在一种实施方式中,目标层对应的层开关标识可以根据目标层的多个节点中仅包含一个点云点的节点的占比确定。比如,编码端可以在对每层中的节点进行划分前,遍历当前层内的各个节点,统计其中仅包含一个点云点的节点数量,并计算这些节点在该层所有节点中的占比,若该占比大于等于预设的占比阈值,则可以将当前层的层开关标识置为开启状态1,否则可以将当前层的层开关标识置为关闭状态0。
在一种实施方式中,也可以不设置所述第四条件,编码端和解码端可以直接约定前M层不允许开启特定模式,后M层允许开启特定模式。具体的,编码端可以将该 层数阈值M写入码流的头信息中,解码端根据从码流中解码出的层数阈值M,可以在前M层的节点均直接采用非特定模式对节点进行处理,后M层才开始对节点进行是否满足特定条件、是否要切换至特定模式进行处理的判断,如此,可以省去层开关标识所耗费的比特。
本申请实施例提供的点云几何编解码方法,并没有对每一个待划分的第一节点都使用1比特编码其对应的目标标识,而是只对满足特定条件的、具有要切换至特定模式进行处理的可能性的第一节点编码其对应的目标标识,因此可以大大降低编码目标标识所带来的比特消耗。
下面可以参考图9,图9是本申请实施例提供的点云几何解码方法的第二流程图,该方法可以包括:
S902、获取点云几何数据对应的码流。
点云几何数据对应的码流中可以包括各个节点对应的码流,其中,第一节点对应的码流可以包括第一节点的目标标识和占用信息,第二节点对应的码流可以包括第二节点的占用信息,即第二节点对应的码流中不包括第二节点的目标标识。
S904、从第一节点对应的码流中解码出所述第一节点的目标标识,根据所述目标标识确定是否切换至特定模式对所述第一节点的占用信息进行解码。
S906、采用非特定模式对所述第二节点的占用信息进行解码。
结合前文的说明,可以理解的,第一节点是满足特定条件的、有可能适用特定模式的节点,因此编码端对第一节点编码了其对应的目标标识,用于指示解码端是否对该第一节点切换至特定模式进行解码。相应的,解码端也可以判断出第一节点满足特定条件、有可能适用特定模式,因此其可以从码流中解码出该第一节点对应的目标标识,根据目标标识的指示确定是否对该第一节点切换至特定模式进行解码。
而第二节点是不满足特定条件的、不可能适用特定模式的节点,因此编码端没有对第二节点编码对应的目标标识,而是直接采用非特定模式,将第二节点划分为多个子节点后,将该多个子节点对应的占用信息编码到码流。相应的,解码端也可以判断出第二节点不满足特定条件的、不可能适用特定模式,因此解码端可以直接采用非特定模式,从码流中解码出第二节点对应的多个子节点的占用信息。
可选的,所述特定模式包括孤立点模式。
可选的,所述特定模式包括直接模式。
可选的,所述方法还包括:
若所述目标标识对应切换至所述特定模式,从所述第一节点的占用信息中解码出 所述第一节点包含的点云点所在子节点对应的索引值集合。
可选的,所述索引值集合包括将所述第一节点划分至叶节点的多次划分对应的多个索引值,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
可选的,所述方法还包括:
根据所述多个索引值对所述第一节点进行划分,并确定所述点云点所在的叶节点;
根据所述点云点所在的叶节点确定所述点云点的几何坐标。
可选的,所述方法还包括:
若所述目标标识对应切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点包含的点云点对应的莫顿码的未解码比特。
可选的,所述点云点在各坐标轴方向对应的莫顿码的未解码比特是根据指定顺序解码得到的。
可选的,所述特定模式为直接模式,所述第一节点对应的码流还包括所述第一节点包含的点云点的数量信息,所述方法还包括:
从所述数量信息中解码出所述第一节点包含的点云点的数量。
可选的,所述从所述数量信息中解码出所述第一节点包含的点云点的数量,包括:
从所述数量信息中解码出所述第一节点对应的数量标识;
根据所述数量标识确定所述第一节点包含的点云点的数量。
可选的,所述根据所述数量标识确定所述第一节点包含的点云点的数量,包括:
若所述数量标识是第一标识,确定所述第一节点包含的点云点的数量是1。
可选的,所述根据所述数量标识确定所述第一节点包含的点云点的数量,包括:
若所述数量标识是第二标识,从所述数量信息中解码出所述第一节点包含的点云点的数量。
可选的,所述方法还包括:
若所述目标标识对应不切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点对应的各个子节点的占用信息。
可选的,在从所述码流中解码出所述第一节点的目标标识之前,所述方法还包括:
根据在解码所述第一节点前的已解码数据确定所述第一节点满足特定条件。
可选的,在采用非特定模式对所述第二节点的占用信息进行解码之前,所述方法还包括:
根据在解码所述第二节点前的已解码数据确定所述第二节点不满足特定条件。
可选的,所述特定条件用于确定当前节点是否具有适用所述特定模式的可能性,所述当前节点包括所述第一节点或所述第二节点。
可选的,所述特定条件包括以下至少一项:
第一条件包括所述特定模式的总开关标识对应开启状态;
第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
第三条件包括所述当前节点具有仅在一个位置上有点云点的可能性。
可选的,所述总开关标识记录在所述点云几何数据的头信息中。
可选的,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
可选的,所述第二条件包括所述当前节点包含的点云点对应的莫顿码在各坐标轴方向对应的未解码比特位数之和、大于、所述当前节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
可选的,所述第三条件包括当所述当前节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述当前节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
可选的,所述当前节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层对应的层开关标识对应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点对应的码流进行解码。
可选的,所述层开关标识是在对所述目标层中节点进行划分之前从所述点云几何数据对应的码流中解码得到的。
可选的,所述采用非特定模式对所述第二节点的占用信息进行解码,包括
从所述第二节点的占用信息中解码出所述第二节点对应的各个子节点的占用信息。
可选的,在确定所述第一节点是否满足所述特定条件之前,所述方法还包括:
确定所述第一节点所在的目标层的层数大于或等于层数阈值。
可选的,所述层数阈值记录在所述点云几何数据的头信息中。
以上所提供的点云几何解码方法的各种实施方式,其具体实现可以参考前文中的相应说明,在此不再赘述。
本申请实施例提供的点云几何编解码方法,并没有对每一个待划分的第一节点都使用1比特编码其对应的目标标识,而是只对满足特定条件的、具有要切换至特定模式进行处理的可能性的第一节点编码其对应的目标标识,因此可以大大降低编码目标 标识所带来的比特消耗。
下面可以参考图10,图10是本申请实施例提供的点云几何编码方法的流程图,该方法包括:
S1002、获取点云几何数据。
S1004、根据所述点云几何数据中在编码第一节点前的已编码数据,确定所述第一节点是否满足特定条件。
S1006、若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述第一节点的占用信息进行编码。
可选的,所述特定模式包括孤立点模式。
可选的,确定是否切换至所述孤立点模式对所述第一节点的占用信息进行编码,包括:
若所述第一节点仅包含一个点云点,确定切换至所述孤立点模式对所述占用信息进行编码。
可选的,确定是否切换至所述孤立点模式对所述第一节点的占用信息进行编码,包括:
若所述第一节点包含两个以上点云点,采用非特定模式对所述占用信息进行编码。
这里,编码端可以根据点云点的真实几何坐标,确定第一节点仅包含一个点云点还是包含多个点云点。
可选的,所述特定模式包括直接模式。
可选的,确定是否切换至所述直接模式对所述第一节点的占用信息进行编码,包括:
若所述第一节点包含的点云点的几何坐标相同,确定切换至所述直接模式对所述占用信息进行编码。
可选的,确定是否切换至所述直接模式对所述第一节点的占用信息进行编码,包括:
若所述第一节点包含的点云点的几何坐标不同,采用非特定模式对所述占用信息进行编码。
这里,编码端可以根据点云点的真实几何坐标,确定第一节点包含的点云点的几何坐标是否相同。具体的,编码端可以通过比较第一节点包含的点云点之间的莫顿码的未编码比特,若点云点之间的所述未编码比特相同,则可以确定第一节点所包含的点云点是都在一个位置上的重复点,可以切换至直接模式对其进行编码,若点云点之 间的所述未编码比特不同,则确定第一节点所包含的点云点不是重复点,采用非特定模式对其进行编码即可。
可选的,在切换至所述特定模式对所述占用信息进行编码之前,所述方法还包括:
将用于指示要切换至所述特殊模式的所述第一节点对应的目标标识编码到码流。
可选的,在采用非特定模式对所述占用信息进行编码之前,所述方法还包括:
将用于指示不切换至所述特殊模式的所述第一节点对应的目标标识编码到码流。
可选的,所述切换至特定模式对所述占用信息进行编码,包括:
将所述第一节点划分至叶节点,并将每一次划分对应的索引值编码到码流,其中,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
可选的,所述切换至特定模式对所述占用信息进行编码,包括:
将所述第一节点包含的点云点对应的莫顿码的未编码比特编码到码流。
可选的,所述点云点在各坐标轴方向对应的莫顿码的未编码比特是根据指定顺序编码到码流的。
可选的,所述特定模式为直接模式,所述方法还包括:
将第一节点包含的点云点的数量编码到码流。
可选的,所述将第一节点包含的点云点的数量编码到码流,包括:
若所述第一节点包含的点云点的数量是1,编码所述第一节点对应的数量标识到码流,所述数量标识为第一标识。
可选的,所述将第一节点包含的点云点的数量编码到码流,包括:
若所述第一节点包含的点云点的数量大于1,编码所述第一节点对应的数量标识到码流,所述数量标识为第二标识,并将所述第一节点包含的点云点的数量编码到码流。
可选的,所述采用非特定模式对所述占用信息进行编码,包括:
将所述第一节点对应的各个子节点的占用信息编码到码流。
可选的,所述特定条件用于确定所述第一节点是否具有适用所述特定模式的可能性。
可选的,所述特定条件包括以下至少一项:
第一条件包括所述特定模式的总开关标识对应开启状态;
第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
第三条件包括所述第一节点具有仅在一个位置上有点云点的可能性。
可选的,所述总开关标识记录在所述点云几何数据的头信息中。
可选的,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
可选的,所述第二条件包括所述第一节点包含的点云点对应的莫顿码在各坐标轴方向对应的未编码比特位数之和、大于、所述第一节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
可选的,所述第三条件包括当所述第一节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述第一节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
可选的,所述第一节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层对应的层开关标识对应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点的占用信息进行编码。
可选的,所述层开关标识是在对所述目标层中节点进行划分之前编码到码流的。
可选的,所述层开关标识对应的状态是根据所述目标层所在的层数确定的。
可选的,所述层开关标识对应的状态是根据所述目标层的多个节点中仅包含一个点云点的节点数量确定的。
可选的,所述层开关标识对应的状态是根据所述目标层的多个节点中仅包含一个点云点的节点的占比确定的。
可选的,所述方法还包括:
若第一节点不满足所述特定条件,将所述第一节点对应的各个子节点的占用信息编码到码流。
可选的,在确定所述第一节点是否满足所述特定条件之前,所述方法还包括:
确定所述第一节点所在的目标层的层数大于或等于层数阈值。
可选的,所述层数阈值记录在所述点云几何数据的头信息中。
以上所提供的点云几何解码方法的各种实施方式,其具体实现可以参考前文中的相应说明,在此不再赘述。
本申请实施例提供的点云几何编解码方法,并没有对每一个待划分的第一节点都使用1比特编码其对应的目标标识,而是只对满足特定条件的、具有要切换至特定模式进行处理的可能性的第一节点编码其对应的目标标识,因此可以大大降低编码目标标识所带来的比特消耗。
下面可以参考图11,图11是本申请实施例提供的点云几何解码装置的结构示意 图。该装置可以包括:处理器1101和存储有计算机程序的存储器1102。
在一种实施方式中,所述处理器在执行所述计算机程序时可以实现以下步骤:
获取点云几何数据中第一节点对应的码流;
根据在解码所述第一节点前的已解码数据确定所述第一节点是否满足特定条件;
若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述码流进行解码。
可选的,所述特定模式包括孤立点模式。
可选的,所述特定模式包括直接模式。
可选的,所述处理器在确定是否切换至特定模式对所述码流进行解码时用于:
从所述码流中解码出所述第一节点对应的目标标识;
根据所述目标标识确定是否切换至特定模式对所述码流进行解码。
可选的,所述处理器还用于:
若所述目标标识对应切换至所述特定模式,从所述码流中解码出所述第一节点包含的点云点所在子节点对应的索引值集合。
可选的,所述索引值集合包括将所述第一节点划分至叶节点的多次划分对应的多个索引值,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
可选的,所述处理器还用于:
根据所述多个索引值对所述第一节点进行划分,并确定所述点云点所在的叶节点;
根据所述点云点所在的叶节点确定所述点云点的几何坐标。
可选的,所述处理器还用于:
若所述目标标识对应切换至所述特定模式,从所述码流中解码出所述第一节点包含的点云点对应的莫顿码的未解码比特。
可选的,所述点云点在各坐标轴方向对应的莫顿码的未解码比特是根据指定顺序解码得到的。
可选的,所述特定模式为直接模式,所述处理器还用于:
从所述码流中解码出所述第一节点包含的点云点的数量。
可选的,所述处理器从所述码流中解码出所述第一节点包含的点云点的数量时用于:
从所述码流中解码出所述第一节点对应的数量标识;
根据所述数量标识确定所述第一节点包含的点云点的数量。
可选的,所述处理器在根据所述数量标识确定所述第一节点包含的点云点的数量时用于:
若所述数量标识是第一标识,确定所述第一节点包含的点云点的数量是1。
可选的,所述处理器在根据所述数量标识确定所述第一节点包含的点云点的数量时用于:
若所述数量标识是第二标识,从所述码流中解码出所述第一节点包含的点云点的数量。
可选的,所述处理器还用于:
若所述目标标识对应不切换至所述特定模式,从所述码流中解码出所述第一节点对应的各个子节点的占用信息。
可选的,所述特定条件用于确定所述第一节点是否具有适用所述特定模式的可能性。
可选的,所述特定条件包括以下至少一项:
第一条件包括所述特定模式的总开关标识对应开启状态;
第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
第三条件包括所述第一节点具有仅在一个位置上有点云点的可能性。
可选的,所述总开关标识记录在所述点云几何数据的头信息中。
可选的,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
可选的,所述第二条件包括所述第一节点包含的点云点对应的莫顿码在各坐标轴方向对应的未解码比特位数之和、大于、所述第一节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
可选的,所述第三条件包括当所述第一节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述第一节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
可选的,所述第一节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层的层开关标识对应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点对应的码流进行解码。
可选的,所述层开关标识是在对所述目标层中节点进行划分之前从所述点云几何数据对应的码流中解码得到的。
可选的,所述处理器还用于:
若所述第一节点不满足所述特定条件,不切换至所述特定模式,从所述码流中解码出所述第一节点对应的各个子节点的占用信息。
可选的,所述处理器还用于:
在确定所述第一节点是否满足所述特定条件之前,确定所述第一节点所在的目标层的层数大于或等于层数阈值。
可选的,所述层数阈值记录在所述点云几何数据的头信息中。
以上所提供的点云几何解码装置的各种实施方式,其具体实现可以参考前文中的相应说明,在此不再赘述。
本申请实施例提供的点云几何编解码装置,并没有对每一个待划分的第一节点都使用1比特编码其对应的目标标识,而是只对满足特定条件的、具有要切换至特定模式进行处理的可能性的第一节点编码其对应的目标标识,因此可以大大降低编码目标标识所带来的比特消耗。
在一种实施方式中,所述处理器在执行所述计算机程序时可以实现以下步骤:
获取点云几何数据对应的码流,所述码流中第一节点对应的码流包括所述第一节点的目标标识和占用信息,所述第二节点对应的码流包括所述第二节点的占用信息而不包括所述第二节点的目标标识;
从所述码流中解码出所述第一节点的目标标识,根据所述目标标识确定是否切换至特定模式对所述第一节点的占用信息进行解码;
采用非特定模式对所述第二节点的占用信息进行解码。
可选的,所述特定模式包括孤立点模式。
可选的,所述特定模式包括直接模式。
可选的,所述处理器还用于:
若所述目标标识对应切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点包含的点云点所在子节点对应的索引值集合。
可选的,所述索引值集合包括将所述第一节点划分至叶节点的多次划分对应的多个索引值,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
可选的,所述处理器还用于:
根据所述多个索引值对所述第一节点进行划分,并确定所述点云点所在的叶节点;
根据所述点云点所在的叶节点确定所述点云点的几何坐标。
可选的,所述处理器还用于:
若所述目标标识对应切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点包含的点云点对应的莫顿码的未解码比特。
可选的,所述点云点在各坐标轴方向对应的莫顿码的未解码比特是根据指定顺序解码得到的。
可选的,所述特定模式为直接模式,所述第一节点对应的码流还包括所述第一节点包含的点云点的数量信息,所述处理器还用于:
从所述数量信息中解码出所述第一节点包含的点云点的数量。
可选的,所述处理器从所述数量信息中解码出所述第一节点包含的点云点的数量时用于:
从所述数量信息中解码出所述第一节点对应的数量标识;
根据所述数量标识确定所述第一节点包含的点云点的数量。
可选的,所述处理器根据所述数量标识确定所述第一节点包含的点云点的数量时用于:
若所述数量标识是第一标识,确定所述第一节点包含的点云点的数量是1。
可选的,所述处理器根据所述数量标识确定所述第一节点包含的点云点的数量时用于:
若所述数量标识是第二标识,从所述数量信息中解码出所述第一节点包含的点云点的数量。
可选的,所述处理器还用于:
若所述目标标识对应不切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点对应的各个子节点的占用信息。
可选的,所述处理器还用于:
在从所述码流中解码出所述第一节点的目标标识之前,根据在解码所述第一节点前的已解码数据确定所述第一节点满足特定条件。
可选的,所述处理器还用于:
在采用非特定模式对所述第二节点的占用信息进行解码之前,根据在解码所述第二节点前的已解码数据确定所述第二节点不满足特定条件。
可选的,所述特定条件用于确定当前节点是否具有适用所述特定模式的可能性,所述当前节点包括所述第一节点或所述第二节点。
可选的,所述特定条件包括以下至少一项:
第一条件包括所述特定模式的总开关标识对应开启状态;
第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
第三条件包括所述当前节点具有仅在一个位置上有点云点的可能性。
可选的,所述总开关标识记录在所述点云几何数据的头信息中。
可选的,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
可选的,所述第二条件包括所述当前节点包含的点云点对应的莫顿码在各坐标轴方向对应的未解码比特位数之和、大于、所述当前节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
可选的,所述第三条件包括当所述当前节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述当前节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
可选的,所述当前节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层对应的层开关标识对应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点对应的码流进行解码。
可选的,所述层开关标识是在对所述目标层中节点进行划分之前从所述点云几何数据对应的码流中解码得到的。
可选的,所述处理器在采用非特定模式对所述第二节点的占用信息进行解码时用于
从所述第二节点的占用信息中解码出所述第二节点对应的各个子节点的占用信息。
可选的,所述处理器还用于:
在确定所述第一节点是否满足所述特定条件之前,确定所述第一节点所在的目标层的层数大于或等于层数阈值。
可选的,所述层数阈值记录在所述点云几何数据的头信息中。
以上所提供的点云几何解码装置的各种实施方式,其具体实现可以参考前文中的相应说明,在此不再赘述。
本申请实施例提供的点云几何编解码装置,并没有对每一个待划分的第一节点都使用1比特编码其对应的目标标识,而是只对满足特定条件的、具有要切换至特定模式进行处理的可能性的第一节点编码其对应的目标标识,因此可以大大降低编码目标标识所带来的比特消耗。
下面可以参考图12,图12是本申请实施例提供的点云几何编码装置的结构示意图。该装置可以包括:处理器1201和存储有计算机程序的存储器1202,所述处理器在执行所述计算机程序时可以实现以下步骤:
获取点云几何数据;
根据所述点云几何数据中在编码第一节点前的已编码数据,确定所述第一节点是否满足特定条件;
若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述第一节点的占用信息进行编码。
可选的,所述特定模式包括孤立点模式。
可选的,确定是否切换至所述孤立点模式对所述第一节点的占用信息进行编码,包括:
若所述第一节点仅包含一个点云点,确定切换至所述孤立点模式对所述占用信息进行编码。
可选的,确定是否切换至所述孤立点模式对所述第一节点的占用信息进行编码,包括:
若所述第一节点包含两个以上点云点,采用非特定模式对所述占用信息进行编码。
可选的,所述特定模式包括直接模式。
可选的,所述处理器在确定是否切换至所述直接模式对所述第一节点的占用信息进行编码时用于:
若所述第一节点包含的点云点的几何坐标相同,确定切换至所述直接模式对所述占用信息进行编码。
可选的,所述处理器在确定是否切换至所述直接模式对所述第一节点的占用信息进行编码时用于:
若所述第一节点包含的点云点的几何坐标不同,采用非特定模式对所述占用信息进行编码。
可选的,所述处理器还用于:
在切换至所述特定模式对所述占用信息进行编码之前,将用于指示要切换至所述特殊模式的所述第一节点对应的目标标识编码到码流。
可选的,所述处理器还用于:
在采用非特定模式对所述占用信息进行编码之前,将用于指示不切换至所述特殊模式的所述第一节点对应的目标标识编码到码流。
可选的,所述处理器在切换至特定模式对所述占用信息进行编码时用于:
将所述第一节点划分至叶节点,并将每一次划分对应的索引值编码到码流,其中,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
可选的,所述处理器在切换至特定模式对所述占用信息进行编码时用于:
将所述第一节点包含的点云点对应的莫顿码的未编码比特编码到码流。
可选的,所述点云点在各坐标轴方向对应的莫顿码的未编码比特是根据指定顺序编码到码流的。
可选的,所述特定模式为直接模式,所述处理器还用于:
将第一节点包含的点云点的数量编码到码流。
可选的,所述处理器在将第一节点包含的点云点的数量编码到码流时用于:
若所述第一节点包含的点云点的数量是1,编码所述第一节点对应的数量标识到码流,所述数量标识为第一标识。
可选的,所述处理器在将第一节点包含的点云点的数量编码到码流时用于:
若所述第一节点包含的点云点的数量大于1,编码所述第一节点对应的数量标识到码流,所述数量标识为第二标识,并将所述第一节点包含的点云点的数量编码到码流。
可选的,所述处理器在采用非特定模式对所述占用信息进行编码时用于:
将所述第一节点对应的各个子节点的占用信息编码到码流。
可选的,所述特定条件用于确定所述第一节点是否具有适用所述特定模式的可能性。
可选的,所述特定条件包括以下至少一项:
第一条件包括所述特定模式的总开关标识对应开启状态;
第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
第三条件包括所述第一节点具有仅在一个位置上有点云点的可能性。
可选的,所述总开关标识记录在所述点云几何数据的头信息中。
可选的,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
可选的,所述第二条件包括所述第一节点包含的点云点对应的莫顿码在各坐标轴方向对应的未编码比特位数之和、大于、所述第一节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
可选的,所述第三条件包括当所述第一节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述第一节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
可选的,所述第一节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层对应的层开关标识对应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点的占用信息进行编码。
可选的,所述层开关标识是在对所述目标层中节点进行划分之前编码到码流的。
可选的,所述层开关标识对应的状态是根据所述目标层所在的层数确定的。
可选的,所述层开关标识对应的状态是根据所述目标层的多个节点中仅包含一个点云点的节点数量确定的。
可选的,所述层开关标识对应的状态是根据所述目标层的多个节点中仅包含一个点云点的节点的占比确定的。
可选的,所述处理器还用于:
若第一节点不满足所述特定条件,将所述第一节点对应的各个子节点的占用信息编码到码流。
可选的,所述处理器还用于:
在确定所述第一节点是否满足所述特定条件之前,确定所述第一节点所在的目标层的层数大于或等于层数阈值。
可选的,所述层数阈值记录在所述点云几何数据的头信息中。
以上所提供的点云几何编码装置的各种实施方式,其具体实现可以参考前文中的相应说明,在此不再赘述。
本申请实施例提供的点云几何编解码装置,并没有对每一个待划分的第一节点都使用1比特编码其对应的目标标识,而是只对满足特定条件的、具有要切换至特定模式进行处理的可能性的第一节点编码其对应的目标标识,因此可以大大降低编码目标标识所带来的比特消耗。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的点云几何解码方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例提供的点云几何编码方法。
以上针对每个保护主题均提供了多种实施方式,在不存在冲突或矛盾的基础上,本领域技术人员可以根据实际情况自由对各种实施方式进行组合,由此构成各种不同的技术方案。而本申请文件限于篇幅,未能对所有组合而得的技术方案展开说明,但可以理解的是,这些未能展开的技术方案也属于本申请实施例公开的范围。
本申请实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明实施例所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (165)

  1. 一种点云几何解码方法,其特征在于,包括:
    获取点云几何数据中第一节点对应的码流;
    根据在解码所述第一节点前的已解码数据确定所述第一节点是否满足特定条件;
    若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述码流进行解码。
  2. 根据权利要求1所述的方法,其特征在于,所述特定模式包括孤立点模式。
  3. 根据权利要求1所述的方法,其特征在于,所述特定模式包括直接模式。
  4. 根据权利要求2或3所述的方法,其特征在于,所述确定是否切换至特定模式对所述码流进行解码,包括:
    从所述码流中解码出所述第一节点对应的目标标识;
    根据所述目标标识确定是否切换至特定模式对所述码流进行解码。
  5. 根据权利要求4所述的方法,其特征在于,所述方法还包括:
    若所述目标标识对应切换至所述特定模式,从所述码流中解码出所述第一节点包含的点云点所在子节点对应的索引值集合。
  6. 根据权利要求5所述的方法,其特征在于,所述索引值集合包括将所述第一节点划分至叶节点的多次划分对应的多个索引值,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
  7. 根据权利要求6所述的方法,其特征在于,所述方法还包括:
    根据所述多个索引值对所述第一节点进行划分,并确定所述点云点所在的叶节点;
    根据所述点云点所在的叶节点确定所述点云点的几何坐标。
  8. 根据权利要求4所述的方法,其特征在于,所述方法还包括:
    若所述目标标识对应切换至所述特定模式,从所述码流中解码出所述第一节点包含的点云点对应的莫顿码的未解码比特。
  9. 根据权利要求8所述的方法,其特征在于,所述点云点在各坐标轴方向对应的莫顿码的未解码比特是根据指定顺序解码得到的。
  10. 根据权利要求5或8所述的方法,其特征在于,所述特定模式为直接模式,所述方法还包括:
    从所述码流中解码出所述第一节点包含的点云点的数量。
  11. 根据权利要求10所述的方法,其特征在于,所述从所述码流中解码出所述第一节点包含的点云点的数量,包括:
    从所述码流中解码出所述第一节点对应的数量标识;
    根据所述数量标识确定所述第一节点包含的点云点的数量。
  12. 根据权利要求11所述的方法,其特征在于,所述根据所述数量标识确定所述第一节点包含的点云点的数量,包括:
    若所述数量标识是第一标识,确定所述第一节点包含的点云点的数量是1。
  13. 根据权利要求11所述的方法,其特征在于,所述根据所述数量标识确定所述第一节点包含的点云点的数量,包括:
    若所述数量标识是第二标识,从所述码流中解码出所述第一节点包含的点云点的数量。
  14. 根据权利要求4所述的方法,其特征在于,所述方法还包括:
    若所述目标标识对应不切换至所述特定模式,从所述码流中解码出所述第一节点对应的各个子节点的占用信息。
  15. 根据权利要求2或3所述的方法,其特征在于,所述特定条件用于确定所述第一节点是否具有适用所述特定模式的可能性。
  16. 根据权利要求15所述的方法,其特征在于,所述特定条件包括以下至少一项:
    第一条件包括所述特定模式的总开关标识对应开启状态;
    第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
    第三条件包括所述第一节点具有仅在一个位置上有点云点的可能性。
  17. 根据权利要求16所述的方法,其特征在于,所述总开关标识记录在所述点云几何数据的头信息中。
  18. 根据权利要求17所述的方法,其特征在于,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
  19. 根据权利要求16所述的方法,其特征在于,所述第二条件包括所述第一节点包含的点云点对应的莫顿码在各坐标轴方向对应的未解码比特位数之和、大于、所述第一节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
  20. 根据权利要求16所述的方法,其特征在于,所述第三条件包括当所述第一节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述第一节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
  21. 根据权利要求16所述的方法,其特征在于,所述第一节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层的层开关标识对 应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点对应的码流进行解码。
  22. 根据权利要求21所述的方法,其特征在于,所述层开关标识是在对所述目标层中节点进行划分之前从所述点云几何数据对应的码流中解码得到的。
  23. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    若所述第一节点不满足所述特定条件,不切换至所述特定模式,从所述码流中解码出所述第一节点对应的各个子节点的占用信息。
  24. 根据权利要求1所述的方法,其特征在于,在确定所述第一节点是否满足所述特定条件之前,所述方法还包括:
    确定所述第一节点所在的目标层的层数大于或等于层数阈值。
  25. 根据权利要求24所述的方法,其特征在于,所述层数阈值记录在所述点云几何数据的头信息中。
  26. 一种点云几何解码方法,其特征在于,包括:
    获取点云几何数据对应的码流,所述码流中第一节点对应的码流包括所述第一节点的目标标识和占用信息,所述第二节点对应的码流包括所述第二节点的占用信息而不包括所述第二节点的目标标识;
    从所述码流中解码出所述第一节点的目标标识,根据所述目标标识确定是否切换至特定模式对所述第一节点的占用信息进行解码;
    采用非特定模式对所述第二节点的占用信息进行解码。
  27. 根据权利要求26所述的方法,其特征在于,所述特定模式包括孤立点模式。
  28. 根据权利要求26所述的方法,其特征在于,所述特定模式包括直接模式。
  29. 根据权利要求27或28所述的方法,其特征在于,所述方法还包括:
    若所述目标标识对应切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点包含的点云点所在子节点对应的索引值集合。
  30. 根据权利要求29所述的方法,其特征在于,所述索引值集合包括将所述第一节点划分至叶节点的多次划分对应的多个索引值,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
  31. 根据权利要求30所述的方法,其特征在于,所述方法还包括:
    根据所述多个索引值对所述第一节点进行划分,并确定所述点云点所在的叶节点;
    根据所述点云点所在的叶节点确定所述点云点的几何坐标。
  32. 根据权利要求27或28所述的方法,其特征在于,所述方法还包括:
    若所述目标标识对应切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点包含的点云点对应的莫顿码的未解码比特。
  33. 根据权利要求32所述的方法,其特征在于,所述点云点在各坐标轴方向对应的莫顿码的未解码比特是根据指定顺序解码得到的。
  34. 根据权利要求29或32所述的方法,其特征在于,所述特定模式为直接模式,所述第一节点对应的码流还包括所述第一节点包含的点云点的数量信息,所述方法还包括:
    从所述数量信息中解码出所述第一节点包含的点云点的数量。
  35. 根据权利要求34所述的方法,其特征在于,所述从所述数量信息中解码出所述第一节点包含的点云点的数量,包括:
    从所述数量信息中解码出所述第一节点对应的数量标识;
    根据所述数量标识确定所述第一节点包含的点云点的数量。
  36. 根据权利要求35所述的方法,其特征在于,所述根据所述数量标识确定所述第一节点包含的点云点的数量,包括:
    若所述数量标识是第一标识,确定所述第一节点包含的点云点的数量是1。
  37. 根据权利要求35所述的方法,其特征在于,所述根据所述数量标识确定所述第一节点包含的点云点的数量,包括:
    若所述数量标识是第二标识,从所述数量信息中解码出所述第一节点包含的点云点的数量。
  38. 根据权利要求27或28所述的方法,其特征在于,所述方法还包括:
    若所述目标标识对应不切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点对应的各个子节点的占用信息。
  39. 根据权利要求27或28所述的方法,其特征在于,在从所述码流中解码出所述第一节点的目标标识之前,所述方法还包括:
    根据在解码所述第一节点前的已解码数据确定所述第一节点满足特定条件。
  40. 根据权利要求27或28所述的方法,其特征在于,在采用非特定模式对所述第二节点的占用信息进行解码之前,所述方法还包括:
    根据在解码所述第二节点前的已解码数据确定所述第二节点不满足特定条件。
  41. 根据权利要求39或40所述的方法,其特征在于,所述特定条件用于确定当前节点是否具有适用所述特定模式的可能性,所述当前节点包括所述第一节点或所述 第二节点。
  42. 根据权利要求41所述的方法,其特征在于,所述特定条件包括以下至少一项:
    第一条件包括所述特定模式的总开关标识对应开启状态;
    第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
    第三条件包括所述当前节点具有仅在一个位置上有点云点的可能性。
  43. 根据权利要求42所述的方法,其特征在于,所述总开关标识记录在所述点云几何数据的头信息中。
  44. 根据权利要求43所述的方法,其特征在于,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
  45. 根据权利要求42所述的方法,其特征在于,所述第二条件包括所述当前节点包含的点云点对应的莫顿码在各坐标轴方向对应的未解码比特位数之和、大于、所述当前节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
  46. 根据权利要求42所述的方法,其特征在于,所述第三条件包括当所述当前节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述当前节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
  47. 根据权利要求42所述的方法,其特征在于,所述当前节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层的层开关标识对应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点对应的码流进行解码。
  48. 根据权利要求47所述的方法,其特征在于,所述层开关标识是在对所述目标层中节点进行划分之前从所述点云几何数据对应的码流中解码得到的。
  49. 根据权利要求26所述的方法,其特征在于,所述采用非特定模式对所述第二节点的占用信息进行解码,包括
    从所述第二节点的占用信息中解码出所述第二节点对应的各个子节点的占用信息。
  50. 根据权利要求26所述的方法,其特征在于,在确定所述第一节点是否满足所述特定条件之前,所述方法还包括:
    确定所述第一节点所在的目标层的层数大于或等于层数阈值。
  51. 根据权利要求50所述的方法,其特征在于,所述层数阈值记录在所述点云几何数据的头信息中。
  52. 一种点云几何编码方法,其特征在于,包括:
    获取点云几何数据;
    根据所述点云几何数据中在编码第一节点前的已编码数据,确定所述第一节点是否满足特定条件;
    若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述第一节点的占用信息进行编码。
  53. 根据权利要求52所述的方法,其特征在于,所述特定模式包括孤立点模式。
  54. 根据权利要求53所述的方法,其特征在于,确定是否切换至所述孤立点模式对所述第一节点的占用信息进行编码,包括:
    若所述第一节点仅包含一个点云点,确定切换至所述孤立点模式对所述占用信息进行编码。
  55. 根据权利要求53所述的方法,其特征在于,确定是否切换至所述孤立点模式对所述第一节点的占用信息进行编码,包括:
    若所述第一节点包含两个以上点云点,采用非特定模式对所述占用信息进行编码。
  56. 根据权利要求52所述的方法,其特征在于,所述特定模式包括直接模式。
  57. 根据权利要求56所述的方法,其特征在于,确定是否切换至所述直接模式对所述第一节点的占用信息进行编码,包括:
    若所述第一节点包含的点云点的几何坐标相同,确定切换至所述直接模式对所述占用信息进行编码。
  58. 根据权利要求56所述的方法,其特征在于,确定是否切换至所述直接模式对所述第一节点的占用信息进行编码,包括:
    若所述第一节点包含的点云点的几何坐标不同,采用非特定模式对所述占用信息进行编码。
  59. 根据权利要求54或57所述的方法,其特征在于,在切换至所述特定模式对所述占用信息进行编码之前,所述方法还包括:
    将用于指示要切换至所述特殊模式的所述第一节点对应的目标标识编码到码流。
  60. 根据权利要求55或58所述的方法,其特征在于,在采用非特定模式对所述占用信息进行编码之前,所述方法还包括:
    将用于指示不切换至所述特殊模式的所述第一节点对应的目标标识编码到码流。
  61. 根据权利要求54或57所述的方法,其特征在于,所述切换至特定模式对所述占用信息进行编码,包括:
    将所述第一节点划分至叶节点,并将每一次划分对应的索引值编码到码流,其中,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
  62. 根据权利要求54或57所述的方法,其特征在于,所述切换至特定模式对所述占用信息进行编码,包括:
    将所述第一节点包含的点云点对应的莫顿码的未编码比特编码到码流。
  63. 根据权利要求62所述的方法,其特征在于,所述点云点在各坐标轴方向对应的莫顿码的未编码比特是根据指定顺序编码到码流的。
  64. 根据权利要求54或57所述的方法,其特征在于,所述特定模式为直接模式,所述方法还包括:
    将第一节点包含的点云点的数量编码到码流。
  65. 根据权利要求64所述的方法,其特征在于,所述将第一节点包含的点云点的数量编码到码流,包括:
    若所述第一节点包含的点云点的数量是1,编码所述第一节点对应的数量标识到码流,所述数量标识为第一标识。
  66. 根据权利要求64所述的方法,其特征在于,所述将第一节点包含的点云点的数量编码到码流,包括:
    若所述第一节点包含的点云点的数量大于1,编码所述第一节点对应的数量标识到码流,所述数量标识为第二标识,并将所述第一节点包含的点云点的数量编码到码流。
  67. 根据权利要求55或58所述的方法,其特征在于,所述采用非特定模式对所述占用信息进行编码,包括:
    将所述第一节点对应的各个子节点的占用信息编码到码流。
  68. 根据权利要求53或56所述的方法,其特征在于,所述特定条件用于确定所述第一节点是否具有适用所述特定模式的可能性。
  69. 根据权利要求68所述的方法,其特征在于,所述特定条件包括以下至少一项:
    第一条件包括所述特定模式的总开关标识对应开启状态;
    第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
    第三条件包括所述第一节点具有仅在一个位置上有点云点的可能性。
  70. 根据权利要求69所述的方法,其特征在于,所述总开关标识记录在所述点云几何数据的头信息中。
  71. 根据权利要求70所述的方法,其特征在于,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
  72. 根据权利要求69所述的方法,其特征在于,所述第二条件包括所述第一节点包含的点云点对应的莫顿码在各坐标轴方向对应的未编码比特位数之和、大于、所述第一节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
  73. 根据权利要求69所述的方法,其特征在于,所述第三条件包括当所述第一节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述第一节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
  74. 根据权利要求69所述的方法,其特征在于,所述第一节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层的层开关标识对应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点的占用信息进行编码。
  75. 根据权利要求74所述的方法,其特征在于,所述层开关标识是在对所述目标层中节点进行划分之前编码到码流的。
  76. 根据权利要求74所述的方法,其特征在于,所述层开关标识对应的状态是根据所述目标层所在的层数确定的。
  77. 根据权利要求74所述的方法,其特征在于,所述层开关标识对应的状态是根据所述目标层的多个节点中仅包含一个点云点的节点数量确定的。
  78. 根据权利要求74所述的方法,其特征在于,所述层开关标识对应的状态是根据所述目标层的多个节点中仅包含一个点云点的节点的占比确定的。
  79. 根据权利要求52所述的方法,其特征在于,所述方法还包括:
    若第一节点不满足所述特定条件,将所述第一节点对应的各个子节点的占用信息编码到码流。
  80. 根据权利要求52所述的方法,其特征在于,在确定所述第一节点是否满足所述特定条件之前,所述方法还包括:
    确定所述第一节点所在的目标层的层数大于或等于层数阈值。
  81. 根据权利要求80所述的方法,其特征在于,所述层数阈值记录在所述点云几何数据的头信息中。
  82. 一种点云几何解码装置,其特征在于,包括:处理器和存储有计算机程序的存储器,所述处理器在执行所述计算机程序时实现以下步骤:
    获取点云几何数据中第一节点对应的码流;
    根据在解码所述第一节点前的已解码数据确定所述第一节点是否满足特定条件;
    若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述码流进行解码。
  83. 根据权利要求82所述的装置,其特征在于,所述特定模式包括孤立点模式。
  84. 根据权利要求82所述的装置,其特征在于,所述特定模式包括直接模式。
  85. 根据权利要求83或84所述的装置,其特征在于,所述处理器在确定是否切换至特定模式对所述码流进行解码时用于:
    从所述码流中解码出所述第一节点对应的目标标识;
    根据所述目标标识确定是否切换至特定模式对所述码流进行解码。
  86. 根据权利要求85所述的装置,其特征在于,所述处理器还用于:
    若所述目标标识对应切换至所述特定模式,从所述码流中解码出所述第一节点包含的点云点所在子节点对应的索引值集合。
  87. 根据权利要求86所述的装置,其特征在于,所述索引值集合包括将所述第一节点划分至叶节点的多次划分对应的多个索引值,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
  88. 根据权利要求87所述的装置,其特征在于,所述处理器还用于:
    根据所述多个索引值对所述第一节点进行划分,并确定所述点云点所在的叶节点;
    根据所述点云点所在的叶节点确定所述点云点的几何坐标。
  89. 根据权利要求85所述的装置,其特征在于,所述处理器还用于:
    若所述目标标识对应切换至所述特定模式,从所述码流中解码出所述第一节点包含的点云点对应的莫顿码的未解码比特。
  90. 根据权利要求89所述的装置,其特征在于,所述点云点在各坐标轴方向对应的莫顿码的未解码比特是根据指定顺序解码得到的。
  91. 根据权利要求86或89所述的装置,其特征在于,所述特定模式为直接模式,所述处理器还用于:
    从所述码流中解码出所述第一节点包含的点云点的数量。
  92. 根据权利要求91所述的装置,其特征在于,所述处理器从所述码流中解码出所述第一节点包含的点云点的数量时用于:
    从所述码流中解码出所述第一节点对应的数量标识;
    根据所述数量标识确定所述第一节点包含的点云点的数量。
  93. 根据权利要求92所述的装置,其特征在于,所述处理器在根据所述数量标识确定所述第一节点包含的点云点的数量时用于:
    若所述数量标识是第一标识,确定所述第一节点包含的点云点的数量是1。
  94. 根据权利要求92所述的装置,其特征在于,所述处理器在根据所述数量标识确定所述第一节点包含的点云点的数量时用于:
    若所述数量标识是第二标识,从所述码流中解码出所述第一节点包含的点云点的数量。
  95. 根据权利要求85所述的装置,其特征在于,所述处理器还用于:
    若所述目标标识对应不切换至所述特定模式,从所述码流中解码出所述第一节点对应的各个子节点的占用信息。
  96. 根据权利要求83或84所述的装置,其特征在于,所述特定条件用于确定所述第一节点是否具有适用所述特定模式的可能性。
  97. 根据权利要求96所述的装置,其特征在于,所述特定条件包括以下至少一项:
    第一条件包括所述特定模式的总开关标识对应开启状态;
    第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
    第三条件包括所述第一节点具有仅在一个位置上有点云点的可能性。
  98. 根据权利要求97所述的装置,其特征在于,所述总开关标识记录在所述点云几何数据的头信息中。
  99. 根据权利要求98所述的装置,其特征在于,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
  100. 根据权利要求97所述的装置,其特征在于,所述第二条件包括所述第一节点包含的点云点对应的莫顿码在各坐标轴方向对应的未解码比特位数之和、大于、所述第一节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
  101. 根据权利要求97所述的装置,其特征在于,所述第三条件包括当所述第一节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述第一节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
  102. 根据权利要求97所述的装置,其特征在于,所述第一节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层的层开关标识对应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点对应的码流进行解码。
  103. 根据权利要求102所述的装置,其特征在于,所述层开关标识是在对所述目标层中节点进行划分之前从所述点云几何数据对应的码流中解码得到的。
  104. 根据权利要求82所述的装置,其特征在于,所述处理器还用于:
    若所述第一节点不满足所述特定条件,不切换至所述特定模式,从所述码流中解码出所述第一节点对应的各个子节点的占用信息。
  105. 根据权利要求82所述的装置,其特征在于,所述处理器还用于:
    在确定所述第一节点是否满足所述特定条件之前,确定所述第一节点所在的目标层的层数大于或等于层数阈值。
  106. 根据权利要求105所述的装置,其特征在于,所述层数阈值记录在所述点云几何数据的头信息中。
  107. 一种点云几何解码装置,其特征在于,包括:处理器和存储有计算机程序的存储器,所述处理器在执行所述计算机程序时实现以下步骤:
    获取点云几何数据对应的码流,所述码流中第一节点对应的码流包括所述第一节点的目标标识和占用信息,所述第二节点对应的码流包括所述第二节点的占用信息而不包括所述第二节点的目标标识;
    从所述码流中解码出所述第一节点的目标标识,根据所述目标标识确定是否切换至特定模式对所述第一节点的占用信息进行解码;
    采用非特定模式对所述第二节点的占用信息进行解码。
  108. 根据权利要求107所述的装置,其特征在于,所述特定模式包括孤立点模式。
  109. 根据权利要求107所述的装置,其特征在于,所述特定模式包括直接模式。
  110. 根据权利要求108或109所述的装置,其特征在于,所述处理器还用于:
    若所述目标标识对应切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点包含的点云点所在子节点对应的索引值集合。
  111. 根据权利要求110所述的装置,其特征在于,所述索引值集合包括将所述第一节点划分至叶节点的多次划分对应的多个索引值,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
  112. 根据权利要求111所述的装置,其特征在于,所述处理器还用于:
    根据所述多个索引值对所述第一节点进行划分,并确定所述点云点所在的叶节点;
    根据所述点云点所在的叶节点确定所述点云点的几何坐标。
  113. 根据权利要求108或109所述的装置,其特征在于,所述处理器还用于:
    若所述目标标识对应切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点包含的点云点对应的莫顿码的未解码比特。
  114. 根据权利要求113所述的装置,其特征在于,所述点云点在各坐标轴方向对应的莫顿码的未解码比特是根据指定顺序解码得到的。
  115. 根据权利要求110或113所述的装置,其特征在于,所述特定模式为直接模式,所述第一节点对应的码流还包括所述第一节点包含的点云点的数量信息,所述处理器还用于:
    从所述数量信息中解码出所述第一节点包含的点云点的数量。
  116. 根据权利要求115所述的装置,其特征在于,所述处理器从所述数量信息中解码出所述第一节点包含的点云点的数量时用于:
    从所述数量信息中解码出所述第一节点对应的数量标识;
    根据所述数量标识确定所述第一节点包含的点云点的数量。
  117. 根据权利要求116所述的装置,其特征在于,所述处理器根据所述数量标识确定所述第一节点包含的点云点的数量时用于:
    若所述数量标识是第一标识,确定所述第一节点包含的点云点的数量是1。
  118. 根据权利要求116所述的装置,其特征在于,所述处理器根据所述数量标识确定所述第一节点包含的点云点的数量时用于:
    若所述数量标识是第二标识,从所述数量信息中解码出所述第一节点包含的点云点的数量。
  119. 根据权利要求108或109所述的装置,其特征在于,所述处理器还用于:
    若所述目标标识对应不切换至所述特定模式,从所述第一节点的占用信息中解码出所述第一节点对应的各个子节点的占用信息。
  120. 根据权利要求108或109所述的装置,其特征在于,所述处理器还用于:
    在从所述码流中解码出所述第一节点的目标标识之前,根据在解码所述第一节点前的已解码数据确定所述第一节点满足特定条件。
  121. 根据权利要求108或109所述的装置,其特征在于,所述处理器还用于:
    在采用非特定模式对所述第二节点的占用信息进行解码之前,根据在解码所述第二节点前的已解码数据确定所述第二节点不满足特定条件。
  122. 根据权利要求120或121所述的装置,其特征在于,所述特定条件用于确定当前节点是否具有适用所述特定模式的可能性,所述当前节点包括所述第一节点或所 述第二节点。
  123. 根据权利要求122所述的装置,其特征在于,所述特定条件包括以下至少一项:
    第一条件包括所述特定模式的总开关标识对应开启状态;
    第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
    第三条件包括所述当前节点具有仅在一个位置上有点云点的可能性。
  124. 根据权利要求123所述的装置,其特征在于,所述总开关标识记录在所述点云几何数据的头信息中。
  125. 根据权利要求124所述的装置,其特征在于,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
  126. 根据权利要求123所述的装置,其特征在于,所述第二条件包括所述当前节点包含的点云点对应的莫顿码在各坐标轴方向对应的未解码比特位数之和、大于、所述当前节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
  127. 根据权利要求123所述的装置,其特征在于,所述第三条件包括当所述当前节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述当前节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
  128. 根据权利要求123所述的装置,其特征在于,所述当前节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层的层开关标识对应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点对应的码流进行解码。
  129. 根据权利要求128所述的装置,其特征在于,所述层开关标识是在对所述目标层中节点进行划分之前从所述点云几何数据对应的码流中解码得到的。
  130. 根据权利要求107所述的装置,其特征在于,所述处理器在采用非特定模式对所述第二节点的占用信息进行解码时用于
    从所述第二节点的占用信息中解码出所述第二节点对应的各个子节点的占用信息。
  131. 根据权利要求107所述的装置,其特征在于,所述处理器还用于:
    在确定所述第一节点是否满足所述特定条件之前,确定所述第一节点所在的目标层的层数大于或等于层数阈值。
  132. 根据权利要求131所述的装置,其特征在于,所述层数阈值记录在所述点云几何数据的头信息中。
  133. 一种点云几何编码装置,其特征在于,包括:处理器和存储有计算机程序的存储器,所述处理器在执行所述计算机程序时实现以下步骤:
    获取点云几何数据;
    根据所述点云几何数据中在编码第一节点前的已编码数据,确定所述第一节点是否满足特定条件;
    若所述第一节点满足所述特定条件,确定是否切换至特定模式对所述第一节点的占用信息进行编码。
  134. 根据权利要求133所述的装置,其特征在于,所述特定模式包括孤立点模式。
  135. 根据权利要求134所述的装置,其特征在于,确定是否切换至所述孤立点模式对所述第一节点的占用信息进行编码,包括:
    若所述第一节点仅包含一个点云点,确定切换至所述孤立点模式对所述占用信息进行编码。
  136. 根据权利要求134所述的装置,其特征在于,确定是否切换至所述孤立点模式对所述第一节点的占用信息进行编码,包括:
    若所述第一节点包含两个以上点云点,采用非特定模式对所述占用信息进行编码。
  137. 根据权利要求133所述的装置,其特征在于,所述特定模式包括直接模式。
  138. 根据权利要求137所述的装置,其特征在于,所述处理器在确定是否切换至所述直接模式对所述第一节点的占用信息进行编码时用于:
    若所述第一节点包含的点云点的几何坐标相同,确定切换至所述直接模式对所述占用信息进行编码。
  139. 根据权利要求137所述的装置,其特征在于,所述处理器在确定是否切换至所述直接模式对所述第一节点的占用信息进行编码时用于:
    若所述第一节点包含的点云点的几何坐标不同,采用非特定模式对所述占用信息进行编码。
  140. 根据权利要求135或138所述的装置,其特征在于,所述处理器还用于:
    在切换至所述特定模式对所述占用信息进行编码之前,将用于指示要切换至所述特殊模式的所述第一节点对应的目标标识编码到码流。
  141. 根据权利要求136或139所述的装置,其特征在于,所述处理器还用于:
    在采用非特定模式对所述占用信息进行编码之前,将用于指示不切换至所述特殊模式的所述第一节点对应的目标标识编码到码流。
  142. 根据权利要求135或138所述的装置,其特征在于,所述处理器在切换至特定模式对所述占用信息进行编码时用于:
    将所述第一节点划分至叶节点,并将每一次划分对应的索引值编码到码流,其中,一次划分对应的索引值用于指示该次划分所得的子节点中所述点云点所在的子节点。
  143. 根据权利要求135或138所述的装置,其特征在于,所述处理器在切换至特定模式对所述占用信息进行编码时用于:
    将所述第一节点包含的点云点对应的莫顿码的未编码比特编码到码流。
  144. 根据权利要求143所述的装置,其特征在于,所述点云点在各坐标轴方向对应的莫顿码的未编码比特是根据指定顺序编码到码流的。
  145. 根据权利要求135或138所述的装置,其特征在于,所述特定模式为直接模式,所述处理器还用于:
    将第一节点包含的点云点的数量编码到码流。
  146. 根据权利要求145所述的装置,其特征在于,所述处理器在将第一节点包含的点云点的数量编码到码流时用于:
    若所述第一节点包含的点云点的数量是1,编码所述第一节点对应的数量标识到码流,所述数量标识为第一标识。
  147. 根据权利要求145所述的装置,其特征在于,所述处理器在将第一节点包含的点云点的数量编码到码流时用于:
    若所述第一节点包含的点云点的数量大于1,编码所述第一节点对应的数量标识到码流,所述数量标识为第二标识,并将所述第一节点包含的点云点的数量编码到码流。
  148. 根据权利要求136或139所述的装置,其特征在于,所述处理器在采用非特定模式对所述占用信息进行编码时用于:
    将所述第一节点对应的各个子节点的占用信息编码到码流。
  149. 根据权利要求134或137所述的装置,其特征在于,所述特定条件用于确定所述第一节点是否具有适用所述特定模式的可能性。
  150. 根据权利要求149所述的装置,其特征在于,所述特定条件包括以下至少一项:
    第一条件包括所述特定模式的总开关标识对应开启状态;
    第二条件包括相比不切换至所述特定模式,切换至所述特定模式编码所用的比特数更少;
    第三条件包括所述第一节点具有仅在一个位置上有点云点的可能性。
  151. 根据权利要求150所述的装置,其特征在于,所述总开关标识记录在所述点云几何数据的头信息中。
  152. 根据权利要求151所述的装置,其特征在于,所述头信息中包括所述孤立点模式和/或所述直接模式对应的所述总开关标识。
  153. 根据权利要求150所述的装置,其特征在于,所述第二条件包括所述第一节点包含的点云点对应的莫顿码在各坐标轴方向对应的未编码比特位数之和、大于、所述第一节点的各坐标轴方向的边长中未到达最小边长的边长数量的二倍。
  154. 根据权利要求150所述的装置,其特征在于,所述第三条件包括当所述第一节点的父节点满足所述特定条件且所述父节点未选中使用所述特定模式时,所述第一节点不是所述父节点对应的子节点中唯一包含有点云点的子节点。
  155. 根据权利要求150所述的装置,其特征在于,所述第一节点是目标层中的任一节点,所述特定条件还包括第四条件,所述第四条件包括所述目标层的层开关标识对应开启状态,所述层开关标识用于指示是否允许使用所述特定模式对所述目标层中节点的占用信息进行编码。
  156. 根据权利要求155所述的装置,其特征在于,所述层开关标识是在对所述目标层中节点进行划分之前编码到码流的。
  157. 根据权利要求155所述的装置,其特征在于,所述层开关标识对应的状态是根据所述目标层所在的层数确定的。
  158. 根据权利要求155所述的装置,其特征在于,所述层开关标识对应的状态是根据所述目标层的多个节点中仅包含一个点云点的节点数量确定的。
  159. 根据权利要求155所述的装置,其特征在于,所述层开关标识对应的状态是根据所述目标层的多个节点中仅包含一个点云点的节点的占比确定的。
  160. 根据权利要求133所述的装置,其特征在于,所述处理器还用于:
    若第一节点不满足所述特定条件,将所述第一节点对应的各个子节点的占用信息编码到码流。
  161. 根据权利要求133所述的装置,其特征在于,所述处理器还用于:
    在确定所述第一节点是否满足所述特定条件之前,确定所述第一节点所在的目标层的层数大于或等于层数阈值。
  162. 根据权利要求161所述的装置,其特征在于,所述层数阈值记录在所述点云几何数据的头信息中。
  163. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-25所述的点云几何解码方法。
  164. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求26-51所述的点云几何解码方法。
  165. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求52-81所述的点云几何编码方法。
PCT/CN2021/073422 2021-01-22 2021-01-22 点云几何解码方法、装置、计算机可读存储介质 WO2022155929A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180081867.2A CN116569555A (zh) 2021-01-22 2021-01-22 点云几何解码方法、装置、计算机可读存储介质
PCT/CN2021/073422 WO2022155929A1 (zh) 2021-01-22 2021-01-22 点云几何解码方法、装置、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/073422 WO2022155929A1 (zh) 2021-01-22 2021-01-22 点云几何解码方法、装置、计算机可读存储介质

Publications (1)

Publication Number Publication Date
WO2022155929A1 true WO2022155929A1 (zh) 2022-07-28

Family

ID=82548415

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/073422 WO2022155929A1 (zh) 2021-01-22 2021-01-22 点云几何解码方法、装置、计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN116569555A (zh)
WO (1) WO2022155929A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110662087A (zh) * 2018-06-30 2020-01-07 华为技术有限公司 点云编解码方法和编解码器
US20200021847A1 (en) * 2018-07-12 2020-01-16 Apple Inc. Bit stream structure for compressed point cloud data
CN110971906A (zh) * 2018-09-29 2020-04-07 上海交通大学 层级化的点云码流封装方法和系统
CN111563861A (zh) * 2020-07-14 2020-08-21 武汉数字化设计与制造创新中心有限公司 一种基于三维测量点云数据的工件余量快速求取方法
CN111615791A (zh) * 2018-01-18 2020-09-01 黑莓有限公司 在点云压缩中使用直接译码的方法和设备
CN111699697A (zh) * 2019-06-14 2020-09-22 深圳市大疆创新科技有限公司 一种用于点云处理、解码的方法、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111615791A (zh) * 2018-01-18 2020-09-01 黑莓有限公司 在点云压缩中使用直接译码的方法和设备
CN110662087A (zh) * 2018-06-30 2020-01-07 华为技术有限公司 点云编解码方法和编解码器
US20200021847A1 (en) * 2018-07-12 2020-01-16 Apple Inc. Bit stream structure for compressed point cloud data
CN110971906A (zh) * 2018-09-29 2020-04-07 上海交通大学 层级化的点云码流封装方法和系统
CN111699697A (zh) * 2019-06-14 2020-09-22 深圳市大疆创新科技有限公司 一种用于点云处理、解码的方法、设备及存储介质
CN111563861A (zh) * 2020-07-14 2020-08-21 武汉数字化设计与制造创新中心有限公司 一种基于三维测量点云数据的工件余量快速求取方法

Also Published As

Publication number Publication date
CN116569555A (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
US11570481B2 (en) Methods and devices using direct coding in point cloud compression
JP7449965B2 (ja) オクツリーベースの点群コーディングにおける平面モードのためのコンテキスト決定
WO2020248187A1 (zh) 一种点云编码方法、点云解码方法及相关设备
US20200413080A1 (en) Planar mode in octree-based point cloud coding
JP5068849B2 (ja) レイトレーシング方法、システム、およびプログラム
WO2021196029A1 (zh) 一种用于点云编码、解码的方法和设备
JP4808771B2 (ja) 3次元メッシュ情報の符号化及び復号化装置ならびにその方法
CN106202213B (zh) 一种fpga二进制文件压缩、解压方法及压缩、解压装置
WO2021109153A1 (zh) 一种用于点云处理、解码的方法、设备及存储介质
WO2021196038A1 (zh) 点云的编解码方法和装置
WO2022155929A1 (zh) 点云几何解码方法、装置、计算机可读存储介质
KR102592986B1 (ko) 포인트 클라우드 코딩을 위한 점유 코딩의 콘텍스트 모델링
WO2022073156A1 (en) Method of encoding and decoding, encoder, decoder and software
WO2021046817A1 (zh) 点云数据的编解码方法、系统和存储介质
WO2022120542A1 (zh) 点云编码和解码方法、装置及计算机可读存储介质
JP2015506009A (ja) 反復構造発見ベースの3dモデル圧縮のビットストリームを生成する方法及び装置
WO2021256486A1 (ja) 点群復号装置、点群復号方法及びプログラム
US20220005229A1 (en) Point cloud attribute encoding method and device, and point cloud attribute decoding method and devcie
CN114667728B (zh) 点云编解码方法、装置及系统
EP4273807A1 (en) Point cloud encoding and decoding method, encoder, decoder and computer storage medium
WO2021108970A1 (zh) 点云处理方法、编码器、解码器及存储介质
WO2020248562A1 (zh) 一种用于点云处理、解码的方法、设备及存储介质
JP2023525207A (ja) イントラ予測方法、装置、エンコーダ、デコーダ、及び記憶媒体
TW202408236A (zh) 點雲編解碼方法、編解碼器及電腦儲存媒介
WO2023142133A1 (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: 21920327

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202180081867.2

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21920327

Country of ref document: EP

Kind code of ref document: A1