WO2024120431A1 - 点云编码方法、点云解码方法及相关设备 - Google Patents

点云编码方法、点云解码方法及相关设备 Download PDF

Info

Publication number
WO2024120431A1
WO2024120431A1 PCT/CN2023/136729 CN2023136729W WO2024120431A1 WO 2024120431 A1 WO2024120431 A1 WO 2024120431A1 CN 2023136729 W CN2023136729 W CN 2023136729W WO 2024120431 A1 WO2024120431 A1 WO 2024120431A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
neighbor
target
sub
encoded
Prior art date
Application number
PCT/CN2023/136729
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 维沃移动通信有限公司
Publication of WO2024120431A1 publication Critical patent/WO2024120431A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present application belongs to the field of computer technology, and specifically relates to a point cloud encoding method, a point cloud decoding method and related equipment.
  • Point cloud is a representation of a three-dimensional object or scene. It is composed of a set of discrete points that are irregularly distributed in space and express the spatial structure and surface properties of the three-dimensional object or scene. In order to accurately reflect the information in the space, the number of discrete points required is quite large. In order to reduce the bandwidth occupied by point cloud data storage and transmission, the point cloud data needs to be encoded and compressed. Point cloud data usually consists of geometric information describing the location, such as three-dimensional coordinates (x, y, z) and attribute information of the location, such as color (R, G, B) or reflectivity. In the process of point cloud coding and compression, the encoding of geometric information and attribute information is performed separately.
  • the context involved in coding the sub-node to be coded includes the sub-layer neighbor prediction of the current point and the neighbor prediction of the current point layer. There is a lot of context information involved and the coding efficiency is low.
  • the embodiments of the present application provide a point cloud encoding method, a point cloud decoding method and related equipment, which can solve the problem of low encoding efficiency.
  • a point cloud encoding method comprising:
  • the first neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be encoded meets a preset condition;
  • the first neighbor information is determined based on node information of a plurality of target neighbor sub-nodes among the neighbor sub-nodes of the to-be-encoded sub-node except the target associated sub-node.
  • a point cloud decoding method comprising:
  • the second neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be decoded meets a preset condition;
  • the second neighbor information is determined based on node information of a plurality of target neighbor subnodes among the neighbor subnodes of the to-be-decoded subnode except the target associated subnode.
  • a point cloud encoding device comprising:
  • the acquisition module is used to construct the geometric information of the point cloud in a tree shape and obtain the child nodes to be encoded;
  • a determination module used to determine the first neighbor information corresponding to the sub-node to be encoded
  • An encoding module configured to encode the sub-node to be encoded based on the first neighbor information to obtain an encoding result of the sub-node to be encoded
  • the first neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be encoded meets a preset condition;
  • the first neighbor information is determined based on node information of a plurality of target neighbor sub-nodes among the neighbor sub-nodes of the to-be-encoded sub-node except the target associated sub-node.
  • a point cloud decoding device comprising:
  • a determination module used to determine the second neighbor information corresponding to the subnode to be decoded
  • a decoding module configured to decode the sub-node to be decoded based on the second neighbor information to obtain a decoding result of the sub-node to be decoded
  • the second neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be decoded meets a preset condition;
  • the second neighbor information is determined based on node information of a plurality of target neighbor subnodes among the neighbor subnodes of the to-be-decoded subnode except the target associated subnode.
  • a communication device which terminal includes a processor, a memory, and a program or instruction stored in the memory and executable on the processor, wherein the program or instruction, when executed by the processor, implements the steps of the method described in the first aspect; or, the program or instruction, when executed by the processor, implements the steps of the method described in the second aspect.
  • a communication device including a processor and a communication interface, wherein the processor is configured to:
  • the first neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be encoded meets a preset condition;
  • the first neighbor information is determined based on node information of a plurality of target neighbor sub-nodes among the neighbor sub-nodes of the to-be-encoded sub-node except the target associated sub-node.
  • a communication device including a processor and a communication interface, wherein the processor is configured to:
  • the second neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be decoded meets a preset condition;
  • the second neighbor information is determined based on node information of a plurality of target neighbor subnodes among the neighbor subnodes of the to-be-decoded subnode except the target associated subnode.
  • a readable storage medium on which a program or instruction is stored, and when the program or instruction is executed by a processor, the steps of the method described in the first aspect are implemented, or when the program or instruction is executed by a processor, the steps of the method described in the second aspect are implemented.
  • a chip comprising a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run a program or instructions to implement the steps of the method described in the first aspect, or to implement the steps of the method described in the second aspect.
  • a computer program/program product is provided, wherein the computer program/program product is stored in a non-volatile storage medium, and the program/program product is executed by at least one processor to implement the steps of the method described in the first aspect, or to implement the steps of the method described in the second aspect.
  • a tree is constructed for the geometric information of the point cloud to obtain a subnode to be encoded; the first neighbor information corresponding to the subnode to be encoded is determined; the subnode to be encoded is encoded based on the first neighbor information to obtain the encoding result of the subnode to be encoded; wherein, in the case where it is determined that there is a target-associated subnode corresponding to the subnode to be encoded, the first neighbor information is determined based on the node information of the target-associated subnode, and the target-associated subnode is a neighbor subnode whose degree of association with the subnode to be encoded meets a preset condition; in the case where it is determined that there is no target-associated subnode, the first neighbor information is determined based on the node information of multiple target neighbor subnodes other than the target-associated subnode in the neighbor subnodes of the subnode to be encoded.
  • different neighbor node information can be selected as context to encode the subnode to be encoded based on the node density, which can reduce the amount of context information, thereby improving the encoding efficiency.
  • FIG1 is a schematic diagram of a point cloud AVS encoder framework
  • FIG2 is a schematic diagram of a point cloud AVS decoder framework
  • FIG3 is a schematic diagram of reference nodes selected by each sub-node
  • FIG4 is a schematic diagram of four groups of reference neighbor nodes of a current node
  • FIG5 is a schematic diagram showing that a sub-block corresponds to 6 adjacent parent blocks
  • FIG6 is a schematic diagram of 18 neighboring blocks and their Morton sequence numbers used by a current block to be encoded
  • FIG. 7 is a schematic diagram of a flow chart of a point cloud encoding method provided in an embodiment of the present application.
  • FIG8 is a second flow chart of a point cloud encoding method provided in an embodiment of the present application.
  • FIG9 is a schematic diagram of a reference node selected by each sub-node provided in an embodiment of the present application.
  • FIG10 is a schematic diagram of neighbors at the same position of a sub-node layer provided in an embodiment of the present application.
  • FIG11 is a schematic diagram of a flow chart of a point cloud decoding method provided in an embodiment of the present application.
  • FIG12 is a schematic diagram of a coding test result provided in an embodiment of the present application.
  • FIG13 is a second flow chart of a point cloud decoding method provided in an embodiment of the present application.
  • FIG14 is a schematic diagram of the structure of a point cloud encoding device provided in an embodiment of the present application.
  • FIG15 is a schematic diagram of the structure of a point cloud decoding device provided in an embodiment of the present application.
  • FIG16 is a structural diagram of a communication device provided in an embodiment of the present application.
  • FIG. 17 is a structural diagram of a terminal provided in an embodiment of the present application.
  • first, second, etc. in the specification and claims of the present application are used to distinguish similar objects, and are not used to describe a specific order or sequence. It should be understood that the terms used in this way are interchangeable under appropriate circumstances, so that the embodiments of the present application can be implemented in an order other than those illustrated or described here, and the objects distinguished by “first” and “second” are generally of the same type, and the number of objects is not limited.
  • the first object can be one or more.
  • “and/or” in the specification and claims represents at least one of the connected objects, and the character “/" generally represents that the objects associated with each other are in an "or” relationship.
  • the encoding and decoding end corresponding to the encoding and decoding method in the embodiment of the present application can be a terminal, which can also be called a terminal device or a user terminal (User Equipment, UE).
  • the terminal can be a mobile phone, a tablet computer (Tablet Personal Computer), a laptop computer (Laptop Computer) or a notebook computer, a personal digital assistant (Personal Digital Assistant, PDA), a palm computer, a netbook, an ultra-mobile personal computer (Ultra-mobile personal computer, Terminal side devices include computer, UMPC, mobile Internet device (MID), augmented reality (AR)/virtual reality (VR) equipment, robot, wearable device (Wearable Device) or vehicle-mounted equipment (VUE), pedestrian terminal (Pedestrian User Equipment, PUE) and other terminal side devices, wearable devices include: smart watches, bracelets, headphones, glasses, etc. It should be noted that the specific type of the terminal is not limited in the embodiments of the present application.
  • the geometric information of the point cloud and the attribute information corresponding to each point are encoded separately.
  • the geometric information is transformed so that all the point clouds are contained in a bounding box.
  • quantization is performed. This step of quantization mainly plays a role in scaling. Due to the quantization rounding, the geometric information of some points is the same. Whether to remove duplicate points is determined according to the parameters.
  • the process of quantization and removal of duplicate points belongs to the preprocessing process.
  • the bounding box is divided (octree/quadtree/binary tree) in the order of breadth-first traversal, and the placeholder code of each node is encoded.
  • the bounding box is divided into sub-cubes in turn, and the non-empty (containing points in the point cloud) sub-cubes are divided until the leaf node obtained by the division is a 1x1x1 unit cube. Then the division is stopped. Secondly, the number of points contained in the leaf node is encoded, and finally the encoding of the geometric octree is completed to generate a binary code stream.
  • the decoder obtains the placeholder code of each node by continuously parsing in the order of breadth-first traversal, and continuously divides the nodes in turn until a 1x1x1 unit cube is obtained. The number of points contained in each leaf node is parsed, and finally the geometric reconstructed point cloud information is restored.
  • attribute encoding is mainly performed on color and reflectance information. First, determine whether to perform color space conversion. If color space conversion is performed, the color information is converted from RGB color space to YUV color space. Then, in the case of lossy geometric encoding, it is necessary to perform attribute interpolation on the reconstructed point cloud, that is, recoloring, and calculate new attribute values for each point in the reconstructed point cloud so that the attribute error between the reconstructed point cloud and the original point cloud is minimized. In the attribute information encoding, it is divided into two branches: attribute prediction and attribute transformation.
  • the attribute prediction process is as follows: first, the point cloud is reordered, and then differential prediction is performed. There are two reordering methods: Morton reordering and Hilbert reordering. Hilbert code is used to reorder point clouds in the current AVS coding framework. Then, the attribute prediction of the sorted point cloud is performed using a differential method. If the geometric information of the current point to be encoded is the same as that of the previous encoded point, that is, it is a duplicate point, then the reconstructed attribute value of the duplicate point is used as the attribute prediction value of the current point to be encoded.
  • the first m points in the Hilbert order of the current point to be encoded are selected as neighbor candidate points, and then the Manhattan distance of their geometric information with the current point to be encoded is calculated respectively, and the n points closest to them are determined as neighbors of the current point to be encoded.
  • the reciprocal of the distance is used as the weight, and the weighted average of the attributes of all neighbors is calculated as the attribute prediction value of the current point to be encoded.
  • the prediction residual is calculated through the attribute prediction value and the attribute value of the current point to be encoded, and finally the prediction residual is quantized and entropy encoded to generate a binary code stream.
  • the attribute transformation process is as follows: first, the point cloud attributes are subjected to wavelet transform, and the transform coefficients are quantized; secondly, inverse quantization and inverse wavelet transform are used to obtain The attribute reconstruction value is obtained by calculating the difference between the original attribute and the attribute reconstruction value, and then the attribute residual is obtained and quantized; finally, the quantized transform coefficient and the attribute residual are entropy encoded to generate a binary code stream.
  • Figures 1 and 2 show the framework diagram of the AVS codec. This technology involves the geometric entropy coding part.
  • the context involved in this entropy coding technology includes the sub-layer neighbor prediction of the current point and the neighbor prediction of the current point layer.
  • the neighbor information that can be obtained when encoding the child node of the current point includes the neighbor child nodes in the three directions of left, front and bottom.
  • the context model of the child node layer is designed as follows: for the child node layer to be encoded, find the occupancy of the three coplanar, three colinear, and one co-point nodes in the left, front and bottom direction of the same layer as the child node to be encoded, and the node in the negative direction of the dimension with the shortest node side length, which is two node side lengths away from the current child node to be encoded.
  • the reference node selected by each child node is shown in Figure 3.
  • the dotted box node is the current node
  • the gray node is the current child node to be encoded
  • the solid box node is the reference node selected by each child node.
  • the occupancy of the 3 coplanar nodes, 3 colinear nodes, and the node at the negative direction of the dimension with the shortest node side length and two node side lengths away from the current sub-node to be encoded is considered in detail.
  • There are 2 possibilities for the common neighbor: occupied or unoccupied. A separate context is assigned to the case where the common neighbor node is occupied. If the common neighbor is also unoccupied, the occupancy of the neighbors at the current node layer to be described next is considered. That is, the neighbors at the sub-node layer to be encoded correspond to a total of 127 + 2-1 128 contexts.
  • the occupancy of the four groups of neighbors in the current node layer is considered as shown in Figure 4.
  • the node in the dotted frame is the current node, and the solid frame is the neighbor node.
  • the distance has 3 values.
  • the first layer is the occupancy of the encoded adjacent blocks of the parent node of the current sub-block to be encoded (i.e., ctxIdxParent), and the second layer is the occupancy of the adjacent encoded blocks at the same depth as the current sub-block to be encoded (i.e., ctxIdxChild).
  • the ctxIdxChild of the second layer is as shown in formula (2): Indicates the occupancy of the three coded sub-blocks whose distance from the current sub-block is 1 2 .
  • idx LUT[ctxIdxParent][ctxIdxChild] (1)
  • each sub-graph shows the relative position relationship of the 6 adjacent parent blocks found by the i-th sub-block, including 3 coplanar parent blocks (P i,0 ,P i,1 ,P i,2 ) and 3 colinear parent blocks (P i,3 ,P i,4 ,P i,5 ).
  • the position relationship between each sub-block and the adjacent parent block is obtained by the method of Table 1.
  • Table 2 correspond to the Morton sequence in Figure 6.
  • This method takes into account the different sub-block positions and the geometric center rotation symmetry. As can be seen from Figure 6, with the current block as the center, this method has a larger receptive field and can use up to 18 adjacent parent blocks that have been encoded around it.
  • the method used in formula (3) is the combination of the occupancy of the 3 coplanar parent blocks and the sum of the number of occupancy of the 3 colinear parent blocks.
  • Table 2 Relationship between child block i and its adjacent parent block j.
  • the numbers in the table correspond to the Morton order numbers in Figure 6.
  • FIG. 7 is a flow chart of a grid coding method provided in an embodiment of the present application, which can be applied to a coding end device.
  • the point cloud coding method includes the following steps:
  • Step 101 construct a tree structure for the geometric information of the point cloud to obtain the child nodes to be encoded.
  • the tree construction may be a binary tree construction, a quadtree construction or an octree construction.
  • the geometric information of the point cloud can be transformed into coordinates so that all the point clouds are contained in a bounding box. Then quantization is performed. Quantization mainly plays a role in scaling. Due to the rounding of quantization, the geometric information of some points is the same. Whether to remove duplicate points is determined based on parameters. The process of quantization and removal of duplicate points belongs to the preprocessing process. After preprocessing, the bounding box can be divided (octree/quadtree/binary tree) in the order of breadth-first traversal to obtain the child nodes to be encoded.
  • the bounding box is divided into sub-cubes in sequence, and the non-empty (containing points in the point cloud) sub-cubes are continued to be divided until the leaf node obtained by the division is a 1x1x1 unit cube and the division is stopped.
  • Step 102 Determine the first neighbor information corresponding to the subnode to be encoded.
  • the first neighbor information can be determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node whose degree of association with the sub-node to be encoded meets a preset condition; or, the first neighbor information can be determined based on the node information of multiple target neighbor sub-nodes among the neighbor sub-nodes of the sub-node to be encoded except the target associated sub-node.
  • Step 103 Encode the sub-node to be encoded based on the first neighbor information to obtain an encoding result of the sub-node to be encoded;
  • the first neighbor information is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighbor sub-node whose degree of association with the sub-node to be encoded meets a preset condition;
  • the first neighbor information is determined based on node information of a plurality of target neighbor sub-nodes among the neighbor sub-nodes of the to-be-encoded sub-node except the target associated sub-node.
  • the encoding of the sub-node to be encoded based on the first neighbor information may be to use the first neighbor information as the context of the sub-node to be encoded to encode the sub-node to be encoded.
  • the first neighbor information may be used as the context of the sub-node to be encoded to encode the sub-node to be encoded using a context-based adaptive binary arithmetic coding (CABAC) coding algorithm.
  • CABAC context-based adaptive binary arithmetic coding
  • the node information may include information for indicating whether the node is occupied. For example, if the node is occupied, the node information may be 1; if the node is not occupied, the node information may be 0.
  • the target associated sub-node may be a strongly associated neighboring sub-node of the to-be-encoded sub-node.
  • the target-associated sub-node may be a coplanar sub-node corresponding to the to-be-encoded sub-node; or the target-associated sub-node may include a coplanar sub-node and a co-edge sub-node corresponding to the to-be-encoded sub-node; or The associated sub-nodes may include coplanar sub-nodes, co-edge sub-nodes and co-point sub-nodes corresponding to the sub-node to be encoded, etc., which are not limited in this embodiment. Depending on the preset conditions, the degree of association between the target associated sub-node and the sub-node to be encoded is different.
  • the target neighbor child nodes may include the co-edge child nodes corresponding to the child node to be encoded, the co-point child nodes corresponding to the child node to be encoded, the child nodes at the negative direction of the dimension where the shortest node side length of the child node to be encoded is located, the child nodes selected from the coplanar parent nodes corresponding to the parent node of the child node to be encoded, and the child nodes selected from the colinear parent nodes corresponding to the parent node of the child node to be encoded, and so on.
  • the target neighbor sub-nodes may include the co-point sub-nodes corresponding to the sub-node to be encoded, the sub-nodes at the negative direction of the dimension where the shortest node side length of the sub-node to be encoded is located, the sub-nodes selected from the coplanar parent nodes corresponding to the parent node of the sub-node to be encoded, and the sub-nodes selected from the co-linear parent nodes corresponding to the parent node of the sub-node to be encoded, and so on.
  • the target neighbor sub-nodes may include the sub-nodes at the two node side lengths in the negative direction of the dimension where the shortest node side length of the sub-node to be encoded is located, the sub-nodes selected from the coplanar parent nodes corresponding to the parent node of the sub-node to be encoded, and the sub-nodes selected from the co-linear parent nodes corresponding to the parent node of the sub-node to be encoded, and so on.
  • the existence of a target-associated subnode corresponding to the subnode to be encoded may mean that the target-associated subnode is occupied; the non-existence of the target-associated subnode may mean that the target-associated subnode is not occupied. For example, if the node information of the target-associated subnode is 1, the target-associated subnode exists; if the node information of the target-associated subnode is 0, the target-associated subnode does not exist.
  • the number of target-associated subnodes may be multiple, and the existence of a target-associated subnode corresponding to the subnode to be encoded may mean that at least one target-associated subnode is occupied; the non-existence of the target-associated subnode may mean that all target-associated subnodes are not occupied.
  • the target associated child node is a coplanar child node corresponding to the child node to be encoded.
  • the first neighbor information can be determined based on the node information of the coplanar child node corresponding to the child node to be encoded. Further, the first neighbor information can be determined based on the node information of the coplanar child node corresponding to the child node to be encoded and the coplanar parent node corresponding to the child node to be encoded.
  • the first neighbor information may include the node information of the coplanar child node corresponding to the child node to be encoded and the node information of the coplanar parent node corresponding to the child node to be encoded.
  • the coplanar subnodes corresponding to the subnode to be encoded may be coplanar subnodes that can be obtained by the subnode to be encoded in the tree-shaped breadth-first traversal division mode.
  • the coplanar subnodes corresponding to the subnode to be encoded may be coplanar neighbor subnodes in the left, front, and bottom directions that can be obtained by the subnode to be encoded in the octree breadth-first traversal division mode.
  • the number of points is three.
  • the co-edge sub-nodes corresponding to the sub-node to be encoded may be co-edge sub-nodes that can be obtained by the sub-node to be encoded under the tree-shaped breadth-first traversal division method.
  • the co-edge sub-nodes corresponding to the sub-node to be encoded may be co-edge sub-nodes in the left, front, and bottom directions that can be obtained by the sub-node to be encoded under the octree breadth-first traversal division method.
  • the number of co-edge sub-nodes that can be obtained by the sub-node to be encoded under the octree breadth-first traversal division method is three.
  • the common sub-nodes corresponding to the sub-nodes to be encoded may be the common sub-nodes that can be obtained by the sub-nodes to be encoded under the tree-shaped breadth-first traversal division method.
  • the common sub-nodes corresponding to the sub-nodes to be encoded may be the common sub-nodes in the left front and lower direction that can be obtained by the sub-nodes to be encoded under the octree breadth-first traversal division method.
  • the number of common sub-nodes that can be obtained by the sub-nodes to be encoded under the octree breadth-first traversal division method is one.
  • the sub-node to be encoded is in a relatively dense node position; if there is no target associated sub-node corresponding to the sub-node to be encoded, it can be considered that the sub-node to be encoded is in a relatively sparse node position. Therefore, different neighbor node information can be selected as context to encode the sub-node to be encoded according to the density of nodes.
  • a tree is constructed for the geometric information of the point cloud to obtain a subnode to be encoded; the first neighbor information corresponding to the subnode to be encoded is determined; the subnode to be encoded is encoded based on the first neighbor information to obtain the encoding result of the subnode to be encoded; wherein, in the case where it is determined that there is a target-associated subnode corresponding to the subnode to be encoded, the first neighbor information is determined based on the node information of the target-associated subnode, and the target-associated subnode is a neighbor subnode whose degree of association with the subnode to be encoded meets a preset condition; in the case where it is determined that there is no target-associated subnode, the first neighbor information is determined based on the node information of multiple target neighbor subnodes in the neighbor subnodes of the subnode to be encoded except the target-associated subnode.
  • different neighbor node information can be selected as context to encode the subnode to be encoded based on the node density, which can reduce the amount of context information, thereby improving the encoding efficiency.
  • the determining the first neighbor information corresponding to the to-be-encoded subnode includes:
  • the first neighbor information corresponding to the to-be-encoded subnode is determined based on the state value of the target neighbor state.
  • the occupancy status of multiple target neighbor subnodes may be whether multiple target neighbor subnodes are occupied.
  • the target neighbor state may be one of multiple neighbor states. For example, if the number of target neighbor subnodes is 10, and each target neighbor subnode is represented by a binary number, the total number of neighbor states M is: 2 10. For example, If all 10 target neighbor subnodes are occupied, the neighbor status is all 1; if all 10 target neighbor subnodes are not occupied, the neighbor status is all 0.
  • the state value of the target neighbor state can be the number of encoding results of multiple encoded sub-nodes whose encoding results are preset values.
  • the preset value can be 1.
  • the encoding results of the encoded sub-nodes may include 0, or 1.
  • the state value of the target neighbor state can be the number of encoding results of multiple encoded sub-nodes that are most recent in time whose encoding results are 1.
  • the state value of the target neighbor state can be the number of encoding results of the encoding results of the preset number of encoded sub-nodes that are most recent in time whose encoding results are 1.
  • the preset number can be 8, or 9, 10, and so on, which is not limited in this embodiment.
  • the state value of the target neighbor state can be the number of encoding results of the encoding results of the 8 encoded sub-nodes that are most recent in time whose encoding results are 1.
  • the consideration of the first neighbor information is based on the encoded neighbor information in the child node layer.
  • the target neighbor state can be one of multiple neighbor states. As shown in Figure 8, the neighbor state M can be determined by the neighbor node information 1, and the neighbor node information 1 is determined by the state M1 and the state M2:
  • sj represents the placeholder code of the neighbor of the subnode with index j.
  • the value range of M1 is 0 to 32.
  • sx , sy , and sz represent the placeholder codes of the neighbor subnodes located in the x-axis, y-axis, and z-axis directions of the current node among the above three subnode neighbors respectively; sxy and sxz are the placeholder codes of the neighbor subnodes selected by the two colinear neighbors of the current node.
  • the value range of M is 0 to 1024, that is, the value range of neighbor node information 1 is 0 to 1024, and there are 1024 neighbor states in total.
  • the target neighbor state corresponding to the subnode to be encoded is determined based on the node information of the multiple target neighbor subnodes, and the target neighbor state is used to characterize the occupancy of the multiple target neighbor subnodes; the state value of the target neighbor state is determined based on the encoding result of the encoded subnode, and the neighbor state corresponding to the encoded subnode is the target neighbor state; the first neighbor information corresponding to the subnode to be encoded is determined based on the state value of the target neighbor state.
  • the first neighbor information corresponding to the subnode to be encoded can be determined by the encoding result of the encoded subnode under the same neighbor state, and the first neighbor information is used as the context to encode the subnode to be encoded, which can reduce the amount of context information and thus improve the encoding efficiency.
  • the target neighbor state is one of a plurality of neighbor states, each of the neighbor states corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores encoding results of a plurality of the encoded sub-nodes, and the state value of the target neighbor state is determined based on the encoding result in the sliding window corresponding to the target neighbor state;
  • the method further comprises:
  • the sliding window corresponding to the target neighbor state is updated based on the encoding result of the to-be-encoded sub-node.
  • the sliding window corresponding to the target neighbor state may store the encoding results of multiple encoded sub-nodes that are most recent in time.
  • the sliding window may store the encoding results of a preset number of encoded sub-nodes that are most recent in time.
  • the sliding window corresponding to the target neighbor state can be updated, the encoding result of the sub-node to be encoded is stored in the sliding window corresponding to the target neighbor state, and the encoding result of an encoded sub-node in the sliding window whose encoding time is farthest from the current time is removed from the sliding window.
  • the sliding window corresponding to each neighbor state stores the values of the K most recently encoded symbols in each neighbor state, that is, each neighbor state M has a first-in-first-out sliding window B(M) of length Kbit, and the value of its k-th bit is bk (M), K, k are positive integers. If the value range of k is 1 to K, the k-th bit information represents the value of the most recently encoded K-k+1 symbol in this state at the encoding end, and the k-th bit information represents the value of the most recently decoded K-k+1 symbol in this state at the decoding end.
  • state M can be converted to state N, realizing the state conversion based on the sliding window.
  • the number of bits with a value of 1 in the sliding window is taken as the output state N:
  • the value range of state N is 0 to K. For example, if the value of K is 8, then N has 9 state values in total.
  • the sliding window corresponding to the target neighbor state stores the encoding results of multiple encoded sub-nodes
  • the state value of the target neighbor state is determined based on the encoding result in the sliding window corresponding to the target neighbor state
  • the sliding window corresponding to the target neighbor state is updated based on the encoding result of the sub-node to be encoded.
  • the state value of the target neighbor state can be updated by updating the sliding window corresponding to the target neighbor state.
  • the first neighbor corresponding to the to-be-encoded subnode is determined based on the state value of the target neighbor state.
  • Information including:
  • the target neighbor state is not a preset neighbor state, determining first neighbor information corresponding to the to-be-encoded subnode based on a state value of the target neighbor state;
  • the method further comprises:
  • first neighbor information corresponding to the child node to be encoded is determined based on a coplanar parent node corresponding to the child node to be encoded.
  • the preset neighbor state may be a neighbor state in which the occupancy status of multiple target neighbor sub-nodes represents a neighbor state in which none of the multiple target neighbor sub-nodes are occupied.
  • the preset neighbor state may be a neighbor state in which the neighbor state M takes a value of 0.
  • the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state, and it can be that when the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded includes the state value of the target neighbor state. Further, when the target neighbor state is not a preset neighbor state, the first neighbor information corresponding to the child node to be encoded can be determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be encoded.
  • the first neighbor information corresponding to the child node to be encoded is determined based on the coplanar parent node corresponding to the child node to be encoded, and it can be that when the target neighbor state is the preset neighbor state, the first neighbor information corresponding to the child node to be encoded includes the node information of the coplanar parent node corresponding to the child node to be encoded.
  • the number of coplanar parent nodes is 3, the number of contexts of the node information of the coplanar parent nodes as contexts is 8, and each child node of the coplanar parent node is assigned a context.
  • the first neighbor information corresponding to the child node to be encoded is determined based on the state value of the target neighbor state; when the target neighbor state is the preset neighbor state, the first neighbor information corresponding to the child node to be encoded is determined based on the coplanar parent node corresponding to the child node to be encoded.
  • the coplanar parent node corresponding to the child node to be encoded can be considered to determine the first neighbor information, and different neighbor node information can be further selected as context to encode the child node to be encoded considering the node density, thereby improving the encoding efficiency.
  • determining the first neighbor information corresponding to the to-be-encoded child node based on the state value of the target neighbor state includes:
  • first neighbor information corresponding to the child node to be encoded is determined based on a state value of the target neighbor state and a coplanar parent node corresponding to the child node to be encoded.
  • the first neighbor information corresponding to the to-be-encoded child node may include the state value of the target neighbor state and the node information of the coplanar parent node corresponding to the to-be-encoded child node.
  • state N has 9 state values
  • the number of contexts of the state value as context is 9
  • the number of coplanar parent nodes is 3
  • the number of contexts of the coplanar parent node as context is 8.
  • the first neighbor information corresponding to the subnode to be encoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the subnode to be encoded.
  • the first neighbor information corresponding to the subnode to be encoded can be determined jointly by the encoding result of the encoded subnode under the same neighbor state and the coplanar parent node corresponding to the subnode to be encoded, and the neighbor information with strong correlation can be used as context for encoding, which can improve the encoding efficiency.
  • the target neighbor sub-node includes at least one of the following:
  • the first neighbor sub-node includes at least one of the following:
  • the second neighbor sub-node includes at least one of the following:
  • the position of the selected child node in its parent node is the same as the position of the to-be-encoded child node in its parent node.
  • the child node selected from the coplanar parent node corresponding to the parent node of the child node to be encoded can satisfy that the position of the selected child node in the coplanar parent node is the same as the position of the child node to be encoded in the parent node of the child node to be encoded. For example, if the index value of the child node to be encoded in the parent node of the child node to be encoded is i, then the index value of the selected child node in its parent node is also i.
  • the child node selected in the collinear parent node corresponding to the parent node of the child node to be encoded can satisfy that the position of the selected child node in the collinear parent node is the same as the position of the child node to be encoded in the parent node of the child node to be encoded. For example, if the index value of the child node to be encoded in the parent node of the child node to be encoded is i, then the index value of the selected child node in its parent node is also i.
  • the first neighbor information is determined based on the node information of the target neighbor subnode, and the neighbor information with strong correlation can be used as context for encoding, which can improve the encoding efficiency.
  • the process of determining the first neighbor information corresponding to the sub-node to be encoded is as follows:
  • the sub-node layer with three coplanar sub-nodes forming 7 contexts (excluding the case of no occupancy), among which, the sub-node
  • the three coplanar sub-nodes of the layer are three sub-layer neighbor nodes coplanar with the current sub-node to be encoded;
  • the parent node layer and child node layer context information are combined and multiplied, for a total of 56 contexts.
  • the parent node layer considers the three parent nodes that are coplanar with the current child node, with a total of 8 contexts in permutations and combinations;
  • the parent node layer and child node layer context information are combined and multiplied, for a total of 72 contexts.
  • the context includes the context related to the neighbor node information 1 and the context related to other neighbor node information.
  • the other neighbor node information is the neighbor node information outside the neighbor node involved in the neighbor node information 1.
  • the input is changed from a symbol to be encoded to a bit stream to be decoded, and the corresponding encoding operation is replaced by a decoding operation.
  • the point cloud coding method of this embodiment is used for coding.
  • the code rate can be reduced, the coding efficiency can be improved, and the complexity of hardware implementation can be reduced.
  • the vertical column where AVSC4_ai and AVSC1_ai are located is the point cloud sequence name.
  • bridge_1mm, double_T_section_1mm and intersection1_1mm are all point cloud sequence names.
  • the AVSC4_ai and AVSC1_ai parameters represent the point cloud coding test conditions. There are 4 test conditions.
  • AVSC1 indicates that the geometric position is limitedly lossy and the attribute is lossy
  • AVSC2 indicates that the geometric position is lossless and the attribute is lossy
  • AVSC3 indicates that the geometric position is lossless and the attribute is limitedly lossy
  • AVSC4 indicates that the geometric position is lossless and the attribute is lossless.
  • geom_remove_dup_flag 1, that is, duplicate points are removed; the setting of geom_quant_step is determined by the quantization step size of the code rate point, and the quantization step size of the code rate point is determined by the geometric bit width of the point cloud.
  • color_transform_flag 0, that is, no RGB to YUV conversion is performed; the setting of attribute quantization parameters can be set according to the decreasing quantization damage.
  • the Geometry parameter represents the bitstream of the geometric coding part in the point cloud.
  • the Geometry parameter is 99.5%, which means that under the test condition of AVSC4, the geometric bitstream generated by encoding the point cloud using this embodiment is 99.5% of the existing solution.
  • the D1 and D1-H parameters represent two different point cloud quality distortion evaluation parameters. If the D1 and D1-H parameters are negative values, it means that under the test condition of AVSC1, the point cloud is encoded using this embodiment, and the overall quality of the point cloud generated is higher than that of the existing solution. Compared with the existing solution, this embodiment can reduce the bit rate, improve the encoding efficiency, and reduce the complexity of hardware implementation.
  • AVS has the following two entropy coding technologies at the same time.
  • the first one is that the context involved in the entropy coding technology includes the sub-layer neighbor prediction of the current point and the neighbor prediction of the current point layer; the second one is that the entropy coding technology method uses a double-layer context reference relationship configuration.
  • AVS has two entropy coding technologies at the same time, and the hardware implementation cost is relatively high.
  • the problems of the two entropy coding schemes are: the first one does not take into account the occupancy of the neighbors who are in direct contact with the parent node layer and the current child node; the second one is that the child node layer only considers the situation of coplanar child nodes, and does not consider the use of co-linear and co-point child nodes.
  • This embodiment proposes an entropy coding and decoding method based on a sliding window. It uses more relevant neighbor information, selects different neighbor node information based on the node density as context, and adopts a state transition technology based on a sliding window. Compared with the related art, this embodiment can reduce the bit rate, improve the coding efficiency, and reduce the complexity of hardware implementation.
  • FIG. 13 is a flow chart of a point cloud decoding method provided in an embodiment of the present application, which can be applied to a decoding end device. As shown in FIG. 13 , the point cloud decoding method includes the following steps:
  • Step 201 Determine the second neighbor information corresponding to the child node to be decoded
  • Step 202 Decode the sub-node to be decoded based on the second neighbor information to obtain a decoding result of the sub-node to be decoded;
  • the second neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be decoded meets a preset condition;
  • the second neighbor information is determined based on node information of a plurality of target neighbor subnodes among the neighbor subnodes of the to-be-decoded subnode except the target associated subnode.
  • the determining the second neighbor information corresponding to the subnode to be decoded includes:
  • the second neighbor information corresponding to the to-be-decoded child node is determined based on the state value of the target neighbor state.
  • the target neighbor state is one of a plurality of neighbor states, each of the neighbor states corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores decoding results of a plurality of the decoded child nodes, and the state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state;
  • the method further comprises:
  • the sliding window corresponding to the target neighbor state is updated based on the decoding result of the to-be-decoded child node.
  • the determining the second neighbor information corresponding to the to-be-decoded child node based on the state value of the target neighbor state includes:
  • the target neighbor state is not a preset neighbor state, determining second neighbor information corresponding to the to-be-decoded child node based on a state value of the target neighbor state;
  • the method further comprises:
  • second neighbor information corresponding to the child node to be decoded is determined based on a coplanar parent node corresponding to the child node to be decoded.
  • determining the second neighbor information corresponding to the to-be-decoded child node based on the state value of the target neighbor state includes:
  • second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.
  • the target neighbor sub-node includes at least one of the following:
  • the first neighbor sub-node includes at least one of the following:
  • the second neighbor sub-node includes at least one of the following:
  • the position of the selected child node in its parent node is the same as the position of the to-be-decoded child node in its parent node.
  • the point cloud coding method provided in the embodiment of the present application can be executed by a point cloud coding device, or a control module in the point cloud coding device for executing the point cloud coding method.
  • the point cloud coding device provided in the embodiment of the present application is described by taking the point cloud coding method executed by the point cloud coding device as an example.
  • FIG. 14 is a structural diagram of a point cloud encoding device provided in an embodiment of the present application.
  • the point cloud encoding device 300 includes:
  • the acquisition module 301 is used to construct a tree structure for the geometric information of the point cloud and obtain the child nodes to be encoded;
  • a determination module 302 is used to determine first neighbor information corresponding to the subnode to be encoded
  • the encoding module 303 is used to encode the sub-node to be encoded based on the first neighbor information to obtain an encoding result of the sub-node to be encoded; or
  • the first neighbor is determined based on the node information of the target associated sub-node, and the target associated sub-node is a neighboring sub-node whose degree of association with the sub-node to be encoded meets a preset condition;
  • the first neighbor information is determined based on node information of a plurality of target neighbor sub-nodes among the neighbor sub-nodes of the to-be-encoded sub-node except the target associated sub-node.
  • the determination module comprises:
  • a first determining unit configured to determine a target neighbor state corresponding to the to-be-encoded sub-node based on the node information of the multiple target neighbor sub-nodes, wherein the target neighbor state is used to characterize the occupancy of the multiple target neighbor sub-nodes;
  • a second determining unit configured to determine a state value of the target neighbor state based on an encoding result of the encoded subnode, the neighbor state corresponding to the encoded subnode being the target neighbor state;
  • the third determining unit is used to determine the first neighbor information corresponding to the to-be-encoded subnode based on the state value of the target neighbor state.
  • the target neighbor state is one of a plurality of neighbor states, each of the neighbor states corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores encoding results of a plurality of the encoded sub-nodes, and the state value of the target neighbor state is determined based on the encoding result in the sliding window corresponding to the target neighbor state;
  • the device also includes:
  • An updating module is used to update the sliding window corresponding to the target neighbor state based on the encoding result of the sub-node to be encoded.
  • the third determining unit is specifically configured to:
  • the target neighbor state is not a preset neighbor state, determining first neighbor information corresponding to the to-be-encoded subnode based on a state value of the target neighbor state;
  • the determination module also includes:
  • a fourth determining unit is configured to determine, when the target neighbor state is the preset neighbor state, first neighbor information corresponding to the child node to be encoded based on a coplanar parent node corresponding to the child node to be encoded.
  • the second determining unit is specifically configured to:
  • first neighbor information corresponding to the child node to be encoded is determined based on a state value of the target neighbor state and a coplanar parent node corresponding to the child node to be encoded.
  • the target neighbor sub-node includes at least one of the following:
  • the first neighbor sub-node includes at least one of the following:
  • the second neighbor sub-node includes at least one of the following:
  • the position of the selected child node in its parent node is the same as the position of the to-be-encoded child node in its parent node.
  • the point cloud encoding device 300 in the embodiment of the present application can improve the encoding efficiency.
  • the point cloud encoding device in the embodiment of the present application can be a device, a device or electronic device with an operating system, or a component, integrated circuit, or chip in a terminal.
  • the device or electronic device can be a mobile terminal or a non-mobile terminal.
  • the mobile terminal can include but is not limited to the types of terminals listed above, and the non-mobile terminal can be a server, a network attached storage (Network Attached Storage, NAS), a personal computer (personal computer, PC), a television (television, TV), a teller machine or a self-service machine, etc., which is not specifically limited in the embodiment of the present application.
  • the point cloud encoding device provided in the embodiment of the present application can implement each process implemented by the method embodiment of Figure 7 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • the point cloud decoding method provided in the embodiment of the present application can be executed by a point cloud decoding device, or a control module in the point cloud decoding device for executing the point cloud decoding method.
  • the point cloud decoding device provided in the embodiment of the present application is described by taking the point cloud decoding method executed by the point cloud decoding device as an example.
  • FIG. 15 is a structural diagram of a point cloud decoding device provided in an embodiment of the present application.
  • the point cloud decoding device 400 includes:
  • a determination module 401 is used to determine the second neighbor information corresponding to the subnode to be decoded
  • a decoding module 402 configured to decode the to-be-decoded subnode based on the second neighbor information to obtain a decoding result of the to-be-decoded subnode;
  • the second neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be decoded meets a preset condition;
  • the second neighbor information is determined based on node information of a plurality of target neighbor subnodes among the neighbor subnodes of the to-be-decoded subnode except the target associated subnode.
  • the determination module comprises:
  • a first determining unit configured to determine a target neighbor state corresponding to the to-be-decoded sub-node based on the node information of the multiple target neighbor sub-nodes, wherein the target neighbor state is used to characterize the occupancy of the multiple target neighbor sub-nodes;
  • a second determining unit configured to determine a state value of the target neighbor state based on a decoding result of the decoded child node, the neighbor state corresponding to the decoded child node being the target neighbor state;
  • the third determining unit is used to determine the second neighbor information corresponding to the to-be-decoded child node based on the state value of the target neighbor state.
  • the target neighbor state is one of a plurality of neighbor states, each of the neighbor states corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores decoding results of a plurality of the decoded child nodes, and the state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state;
  • the device also includes:
  • An updating module is used to update the sliding window corresponding to the target neighbor state based on the decoding result of the child node to be decoded.
  • the third determining unit is specifically configured to:
  • the target neighbor state is not a preset neighbor state, determining second neighbor information corresponding to the to-be-decoded child node based on a state value of the target neighbor state;
  • the determination module also includes:
  • a fourth determining unit is configured to determine, when the target neighbor state is the preset neighbor state, second neighbor information corresponding to the child node to be decoded based on a coplanar parent node corresponding to the child node to be decoded.
  • the third determining unit is specifically configured to:
  • second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.
  • the target neighbor sub-node includes at least one of the following:
  • the first neighbor sub-node includes at least one of the following:
  • the second neighbor sub-node includes at least one of the following:
  • the position of the selected child node in its parent node is the same as the position of the to-be-decoded child node in its parent node.
  • the point cloud decoding device 400 in the embodiment of the present application can improve the decoding efficiency.
  • the point cloud decoding device in the embodiment of the present application can be a device, a device or electronic device with an operating system, or a component, integrated circuit, or chip in a terminal.
  • the device or electronic device can be a mobile terminal or a non-mobile terminal.
  • the mobile terminal can include but is not limited to the types of terminals listed above, and the non-mobile terminal can be a server, a network attached storage (NAS), a personal computer (personal Computer, PC), television (television, TV), ATM or self-service machine, etc., the embodiments of the present application are not specifically limited.
  • the point cloud decoding device provided in the embodiment of the present application can implement each process implemented by the method embodiment of Figure 13 and achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • the embodiment of the present application further provides a communication device 500, including a processor 501 and a memory 502, wherein the memory 502 stores a program or instruction that can be run on the processor 501.
  • the communication device 500 is an encoding end device
  • the program or instruction is executed by the processor 501 to implement the various steps of the above-mentioned point cloud encoding method embodiment, and can achieve the same technical effect.
  • the communication device 500 is a decoding end device
  • the program or instruction is executed by the processor 501 to implement the various steps of the above-mentioned point cloud decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • the embodiment of the present application also provides a communication device, including a processor and a communication interface, wherein the processor is used to: construct a tree for the geometric information of the point cloud to obtain a subnode to be encoded; determine the first neighbor information corresponding to the subnode to be encoded; encode the subnode to be encoded based on the first neighbor information to obtain the encoding result of the subnode to be encoded; wherein, when it is determined that there is a target associated subnode corresponding to the subnode to be encoded, the first neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be encoded meets a preset condition; or, when it is determined that there is no target associated subnode, the first neighbor information is determined based on the node information of multiple target neighbor subnodes in the neighbor subnodes of the subnode to be encode
  • the embodiment of the present application also provides a communication device, including a processor and a communication interface, wherein the processor is used to: determine the second neighbor information corresponding to the subnode to be decoded; decode the subnode to be decoded based on the second neighbor information to obtain the decoding result of the subnode to be decoded; wherein, when it is determined that there is a target-associated subnode corresponding to the subnode to be decoded, the second neighbor information is determined based on the node information of the target-associated subnode, and the target-associated subnode is a neighbor subnode whose degree of association with the subnode to be decoded meets a preset condition; or, when it is determined that there is no target-associated subnode, the second neighbor information is determined based on the node information of multiple target neighbor subnodes in the neighbor subnodes of the subnode to be decoded except the target-associated subnode.
  • the communication device may be a terminal.
  • FIG17 is a schematic diagram of a hardware structure of a terminal implementing an embodiment of the present application.
  • the terminal 600 includes but is not limited to: a radio frequency unit 601, a network module 602, an audio output unit 603, an input unit 604, a sensor 605, a display unit 606, a user input unit 607, an interface unit 608, a memory 609 and at least some of the components of a processor 610.
  • the terminal 600 may also include a power source (such as a battery) for supplying power to various components.
  • the power supply can be logically connected to the processor 610 through the power management system, so that the power management system can manage charging, discharging, power consumption and other functions.
  • the terminal structure shown in FIG17 does not constitute a limitation on the terminal.
  • the terminal may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently, which will not be described in detail here.
  • the input unit 604 may include a graphics processing unit (GPU) 6041 and a microphone 6042, and the graphics processor 6041 processes the image data of the static picture or video obtained by the image capture device (such as a camera) in the video capture mode or the image capture mode.
  • the display unit 606 may include a display panel 6061, and the display panel 6061 may be configured in the form of a liquid crystal display, an organic light emitting diode, etc.
  • the user input unit 607 includes a touch panel 6071 and at least one of other input devices 6072.
  • the touch panel 6071 is also called a touch screen.
  • the touch panel 6071 may include two parts: a touch detection device and a touch controller.
  • Other input devices 6072 may include, but are not limited to, a physical keyboard, function keys (such as a volume control key, a switch key, etc.), a trackball, a mouse, and a joystick, which will not be repeated here.
  • the RF unit 601 after receiving downlink data from the network side device, can transmit the data to the processor 610 for processing; in addition, the RF unit 601 can send uplink data to the network side device.
  • the RF unit 601 includes but is not limited to an antenna, an amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, etc.
  • the memory 609 can be used to store software programs or instructions and various data.
  • the memory 609 may mainly include a first storage area for storing programs or instructions and a second storage area for storing data, wherein the first storage area may store an operating system, an application program or instruction required for at least one function (such as a sound playback function, an image playback function, etc.), etc.
  • the memory 609 may include a volatile memory or a non-volatile memory, or the memory 609 may include both volatile and non-volatile memories.
  • the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory.
  • the volatile memory may be a random access memory (RAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (SDRAM), a double data rate synchronous dynamic random access memory (DDRSDRAM), an enhanced synchronous dynamic random access memory (ESDRAM), a synchronous link dynamic random access memory (SLDRAM) and a direct memory bus random access memory (DRRAM).
  • the memory 609 in the embodiment of the present application includes but is not limited to these and any other suitable types of memories.
  • the processor 610 may include one or more processing units; optionally, the processor 610 integrates an application processor and a modem processor, wherein the application processor mainly processes operations related to an operating system, a user interface, and application programs, and the modem processor mainly processes wireless communication signals, such as a baseband processor. It is understandable that the modem processor may not be integrated into the processor 610.
  • the processor 610 is configured to:
  • the first neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be encoded meets a preset condition;
  • the first neighbor information is determined based on node information of a plurality of target neighbor sub-nodes among the neighbor sub-nodes of the to-be-encoded sub-node except the target associated sub-node.
  • the processor 610 is specifically configured to:
  • the first neighbor information corresponding to the to-be-encoded subnode is determined based on the state value of the target neighbor state.
  • the target neighbor state is one of a plurality of neighbor states, each of the neighbor states corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores encoding results of a plurality of the encoded sub-nodes, and the state value of the target neighbor state is determined based on the encoding result in the sliding window corresponding to the target neighbor state;
  • the processor 610 is further configured to:
  • the sliding window corresponding to the target neighbor state is updated based on the encoding result of the to-be-encoded sub-node.
  • the processor 610 is specifically configured to:
  • the target neighbor state is not a preset neighbor state, determining first neighbor information corresponding to the to-be-encoded subnode based on a state value of the target neighbor state;
  • the processor 610 is further configured to:
  • first neighbor information corresponding to the child node to be encoded is determined based on a coplanar parent node corresponding to the child node to be encoded.
  • the processor 610 is specifically configured to:
  • first neighbor information corresponding to the child node to be encoded is determined based on a state value of the target neighbor state and a coplanar parent node corresponding to the child node to be encoded.
  • the target neighbor sub-node includes at least one of the following:
  • the first neighbor sub-node includes at least one of the following:
  • the second neighbor sub-node includes at least one of the following:
  • the position of the selected child node in its parent node is the same as the position of the to-be-encoded child node in its parent node.
  • the processor 610 is configured to:
  • the second neighbor information is determined based on the node information of the target associated subnode, and the target associated subnode is a neighbor subnode whose degree of association with the subnode to be decoded meets a preset condition;
  • the second neighbor information is determined based on node information of a plurality of target neighbor subnodes among the neighbor subnodes of the to-be-decoded subnode except the target associated subnode.
  • the processor 610 is specifically configured to:
  • the second neighbor information corresponding to the to-be-decoded child node is determined based on the state value of the target neighbor state.
  • the target neighbor state is one of a plurality of neighbor states, each of the neighbor states corresponds to a sliding window, the sliding window corresponding to the target neighbor state stores decoding results of a plurality of the decoded child nodes, and the state value of the target neighbor state is determined based on the decoding results in the sliding window corresponding to the target neighbor state;
  • the processor 610 is further configured to:
  • the sliding window corresponding to the target neighbor state is updated based on the decoding result of the to-be-decoded child node.
  • the processor 610 is specifically configured to:
  • the target neighbor state is not a preset neighbor state, determining second neighbor information corresponding to the to-be-decoded child node based on a state value of the target neighbor state;
  • the processor 610 is further configured to:
  • the face parent node determines the second neighbor information corresponding to the child node to be decoded.
  • the processor 610 is specifically configured to:
  • second neighbor information corresponding to the child node to be decoded is determined based on the state value of the target neighbor state and the coplanar parent node corresponding to the child node to be decoded.
  • the target neighbor sub-node includes at least one of the following:
  • the first neighbor sub-node includes at least one of the following:
  • the second neighbor sub-node includes at least one of the following:
  • the position of the selected child node in its parent node is the same as the position of the to-be-decoded child node in its parent node.
  • the terminal in the embodiment of the present application can improve the encoding and decoding efficiency.
  • the terminal of the embodiment of the present application also includes: instructions or programs stored in the memory 609 and executable on the processor 610.
  • the processor 610 calls the instructions or programs in the memory 609 to execute the method executed by each module shown in Figure 14 or Figure 15, and achieves the same technical effect. To avoid repetition, it will not be repeated here.
  • An embodiment of the present application also provides a readable storage medium, on which a program or instruction is stored.
  • a program or instruction is stored.
  • the various processes of the above-mentioned point cloud encoding method embodiment are implemented, or when the program or instruction is executed by a processor, the various processes of the above-mentioned point cloud decoding method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.
  • the processor is the processor in the terminal described in the above embodiment.
  • the readable storage medium includes a computer readable storage medium, such as a computer read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, etc.
  • An embodiment of the present application further provides a chip, which includes a processor and a communication interface, wherein the communication interface is coupled to the processor, and the processor is used to run programs or instructions to implement the various processes of the above-mentioned point cloud encoding method embodiment, or to implement the various processes of the above-mentioned point cloud decoding method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be repeated here.
  • the chip mentioned in the embodiments of the present application can also be called a system-level chip, a system chip, a chip system or a system-on-chip chip, etc.
  • the technical solution of the present application can be embodied in the form of a computer software product, which is stored in a storage medium (such as ROM/RAM, a magnetic disk, or an optical disk), and includes a number of instructions for enabling a terminal (which can be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) to execute the methods described in each embodiment of the present application.
  • a storage medium such as ROM/RAM, a magnetic disk, or an optical disk
  • a terminal which can be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.

Landscapes

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

Abstract

本申请公开了一种点云编码方法、点云解码方法及相关设备,属于计算机技术领域,本申请实施例的点云编码方法,包括:对点云的几何信息进行树形构建,获取待编码子节点;确定待编码子节点对应的第一邻居信息;基于第一邻居信息对待编码子节点进行编码,得到待编码子节点的编码结果;其中,在确定存在待编码子节点对应的目标关联子节点的情况下,第一邻居信息基于目标关联子节点的节点信息确定,目标关联子节点为与待编码子节点的关联程度满足预设条件的邻居子节点;或,在确定不存在目标关联子节点的情况下,第一邻居信息基于待编码子节点的邻居子节点中除目标关联子节点外的多个目标邻居子节点的节点信息确定。

Description

点云编码方法、点云解码方法及相关设备
相关申请的交叉引用
本申请主张在2022年12月09日在中国提交的中国专利申请No.202211585959.7的优先权,其全部内容通过引用包含于此。
技术领域
本申请属于计算机技术领域,具体涉及一种点云编码方法、点云解码方法及相关设备。
背景技术
点云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散点集所构成。为了准确反映空间中的信息,所需离散点的数量相当大,而为了减少点云数据存储和传输时所占用的带宽,需要对点云数据进行编码压缩处理。点云数据通常由描述位置的几何信息如三维坐标(x,y,z)以及该位置的属性信息如颜色(R,G,B)或者反射率等构成。在点云编码压缩过程中对几何信息及属性信息的编码是分开进行的。
目前,在对点云的几何信息进行熵编码的过程中,对待编码子节点进行编码时涉及的上下文包括当前点的子层邻居预测以及当前点层的邻居预测,涉及的上下文信息较多,编码效率较低。
发明内容
本申请实施例提供一种点云编码方法、点云解码方法及相关设备,能够解决编码效率较低的问题。
第一方面,提供了一种点云编码方法,包括:
对点云的几何信息进行树形构建,获取待编码子节点;
确定所述待编码子节点对应的第一邻居信息;
基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第二方面,提供了一种点云解码方法,包括:
确定待解码子节点对应的第二邻居信息;
基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第三方面,提供了一种点云编码装置,包括:
获取模块,用于对点云的几何信息进行树形构建,获取待编码子节点;
确定模块,用于确定所述待编码子节点对应的第一邻居信息;
编码模块,用于基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第四方面,提供了一种点云解码装置,包括:
确定模块,用于确定待解码子节点对应的第二邻居信息;
解码模块,用于基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第五方面,提供了一种通信设备,该终端包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤;或者,所述程序或指令被所述处理器执行时实现如第二方面所述的方法的步骤。
第六方面,提供了一种通信设备,包括处理器及通信接口,其中,所述处理器用于:
对点云的几何信息进行树形构建,获取待编码子节点;
确定所述待编码子节点对应的第一邻居信息;
基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第七方面,提供了一种通信设备,包括处理器及通信接口,其中,所述处理器用于:
确定待解码子节点对应的第二邻居信息;
基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第八方面,提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤,或者,所述程序或指令被处理器执行时实现如第二方面所述的方法的步骤。
第九方面,提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法的步骤,或者,实现如第二方面所述的方法的步骤。
第十方面,提供了一种计算机程序/程序产品,所述计算机程序/程序产品被存储在非易失的存储介质中,所述程序/程序产品被至少一个处理器执行以实现如第一方面所述的方法的步骤,或者,实现如第二方面所述的方法的步骤。
在本申请实施例中,对点云的几何信息进行树形构建,获取待编码子节点;确定所述待编码子节点对应的第一邻居信息;基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。这样,通过确定是否存在所述待编码子节点对应的目标关联子节点确定第一邻居信息,能够基于节点疏密程度选择不同的邻居节点信息作为上下文对待编码子节点进行编码,能够减少上下文信息的数量,从而能够提高编码效率。
附图说明
图1是一种点云AVS编码器框架示意图;
图2是一种点云AVS解码器框架示意图;
图3是一种各子节点选取的参考节点示意图;
图4是一种当前节点的4组参考邻居节点示意图;
图5是一种子块分别对应6个相邻父块的示意图;
图6是一种当前待编码块利用到的周围18个相邻块及其莫顿序编号的示意图;
图7是本申请实施例提供的一种点云编码方法的流程示意图之一;
图8是本申请实施例提供的一种点云编码方法的流程示意图之二;
图9是本申请实施例提供的一种各子节点选取的参考节点示意图;
图10是本申请实施例提供的一种子节点层相同位置邻居示意图;
图11是本申请实施例提供的一种点云解码方法的流程示意图之一;
图12是本申请实施例提供的一种编码测试结果示意图;
图13是本申请实施例提供的一种点云解码方法的流程示意图之二;
图14是本申请实施例提供的一种点云编码装置的结构示意图;
图15是本申请实施例提供的一种点云解码装置的结构示意图;
图16是本申请实施例提供的一种通信设备的结构图;
图17是本申请实施例提供的一种终端的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例中的编解码方法对应的编解码端可以为终端,该终端也可以称作终端设备或者用户终端(User Equipment,UE),终端可以是手机、平板电脑(Tablet Personal Computer)、膝上型电脑(Laptop Computer)或称为笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)、掌上电脑、上网本、超级移动个人计算机(Ultra-mobile personal  computer,UMPC)、移动上网装置(Mobile Internet Device,MID)、增强现实(Augmented Reality,AR)/虚拟现实(Virtual reality,VR)设备、机器人、可穿戴式设备(Wearable Device)或车载设备(Vehicle User Equipment,VUE)、行人终端(Pedestrian User Equipment,PUE)等终端侧设备,可穿戴式设备包括:智能手表、手环、耳机、眼镜等。需要说明的是,在本申请实施例并不限定终端的具体类型。
为了方便理解,以下对本申请实施例涉及的一些内容进行说明:
(1)点云数字音视频编解码技术标准(Audio Video coding Standard,AVS)编解码框架
在点云AVS编码器框架中,点云的几何信息和每点所对应的属性信息是分开编码的。首先对几何信息进行坐标转换,使点云全都包含在一个包围盒(bounding box)中。然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点这一过程属于预处理过程。接下来,按照广度优先遍历的顺序对bounding box进行划分(八叉树/四叉树/二叉树),对每个节点的占位码进行编码。在基于八叉树的几何码框架中,将包围盒依次划分得到子立方体,对非空的(包含点云中的点)的子立方体继续进行划分,直到划分得到的叶子结点为1x1x1的单位立方体时停止划分,其次对叶子节点中所包含的点数进行编码,最终完成几何八叉树的编码,生成二进制码流。在基于八叉树的几何解码过程中,解码端按照广度优先遍历的顺序,通过不断解析得到每个节点的占位码,并且依次不断划分节点,直至划分得到1x1x1的单位立方体时停止划分,解析得到每个叶子节点中包含的点数,最终恢复得到几何重构点云信息。
几何编码完成后,对几何信息进行重建,利用重建的几何信息来对属性信息进行编码。目前,属性编码主要针对颜色、反射率信息进行。首先判断是否进行颜色空间的转换,若进行颜色空间转换,则将颜色信息从RGB颜色空间转换到YUV颜色空间。然后,在几何有损编码的情况下,需要对重建点云进行属性插值,即重上色,为重建点云中的每个点都计算新的属性值,使得重建点云和原始点云的属性误差最小。在属性信息编码中分为两个分支:属性预测与属性变换。属性预测过程如下:首先对点云进行重排序,然后进行差分预测。其中重排序的方法有两种:莫顿重排序和Hilbert重排序。当前AVS编码框架中均采用Hilbert码对点云进行重排序。然后对排序之后的点云使用差分方式进行属性预测,若当前待编码点与前一个已编码点的几何信息相同,即为重复点,则利用重复点的重建属性值作为当前待编码点的属性预测值,否则对当前待编码点选择前Hilbert序的m个点作为邻居候选点,然后分别计算它们同当前待编码点的几何信息的曼哈顿距离,确定距离最近的n个点作为当前待编码点的邻居,以距离的倒数作为权重,计算所有邻居的属性的加权平均,作为当前待编码点的属性预测值。然后通过属性预测值和当前待编码点的属性值,计算出预测残差,最后对预测残差进行量化并熵编码,生成二进制码流。属性变换过程如下:首先对点云属性做小波变换,对变换系数做量化;其次通过逆量化、逆小波变换得到 属性重建值;然后计算原始属性和属性重建值的差得到属性残差并对其量化;最后将量化后的变换系数和属性残差进行熵编码,生成二进制码流。图1和图2所示是AVS编解码器框架图。本技术涉及几何熵编码部分。
(2)熵编码
(2.1):该熵编码技术涉及的上下文包括当前点的子层邻居预测以及当前点层的邻居预测。
1)当前点的子层邻居预测
在八叉树广度优先遍历的划分方式下,编码当前点的子节点时能够获得的邻居信息包括左前下三个方向的邻居子节点。子节点层的上下文模型设计如下:对于待编码子节点层,查找与待编码子节点同层的左前下方向3个共面、3个共线、1个共点节点以及节点边长最短的维度上负方向距离当前待编码子节点两个节点边长处的节点的占位情况。以X维度上的节点边长最短为例,各子节点选择的参考节点如图3所示。其中虚线框节点为当前节点,灰色节点为当前待编码子节点,实线框节点为各子节点选取的参考节点。
其中3个共面、3个共线节点以及节点边长最短的维度上负方向距离当前待编码子节点两个节点边长处的节点的占位情况详细考虑,这7个节点的占位情况共有27=128种情况。如果不全为不占据,则共有27-1=127种情况,为每种情况分配1个上下文;若这7个节点全为不占据,则考虑共点邻居节点占位情况。该共点邻居有2种可能:占据或不占据。为该共点邻居节点被占据的情况单独分配1个上下文,若该共点邻居也为不占据,则考虑接下来要讲述的当前节点层邻居的占位情况。即待编码子节点层邻居一共对应127+2-1=128个上下文。
2)当前节点层的邻居预测
如果待编码子节点的8个同层参考节点都未被占据,则考虑如图4所示的当前节点层的四组邻居的占位情况。其中虚线框节点为当前节点,实线边框为邻居节点。
对于当前节点层,按照以下步骤确定上下文:
a)首先考虑当前节点的右上后3个共面邻居。当前节点右上后共面的3个邻居的占位情况共有23=8种可能,为不全为不占据的情况各分配一个上下文,再考虑待编码子节点位于当前节点的位置,则该组邻居节点共提供(8-1)×8=56个上下文。如果当前点的右上后3个共面的邻居都不占据,那么继续考虑当前节点层其余三组邻居
b)考虑最近被占据的节点与当前节点的距离。
具体的邻居节点分布与距离的对应关系如表1所示。
表1当前节点层占位情况与距离的对应关系

由表1可得,距离共有3个取值。为这3个取值情况各分配1个上下文,再考虑待编码子节点位于当前节点的位置情况,共3×8=24个上下文。
至此,该技术上下文模型总共分配了128+56+24=208个上下文。
(2.2)该熵编码技术方法使用双层上下文参考关系配置。
如式(1)所示,第一层是与当前待编码子块父节点已编码相邻块的占用情况(即ctxIdxParent),第二层是与当前待编码子块同一深度下的相邻已编码块的占用情况(即ctxIdxChild)。
首先,对于每一个待编码子块,第二层的ctxIdxChild如式(2)所示,表示与当前子块l2距离为1的3个已编码子块的占用情况。
idx=LUT[ctxIdxParent][ctxIdxChild]    (1)

其次,第一层的ctxIdxParent,对于不同子块的相对位置,通过查表方式寻找与其共面和共线的相邻父块,并通过其占用情况根据式(3)计算得到ctxIdxParent。如图5所示,每个子图显示了第i个子块找到的6个相邻父块的相对位置关系,其中包含3个共面父块(Pi,0,Pi,1,Pi,2)和3个共线父块(Pi,3,Pi,4,Pi,5)。每个子块和相邻父块位置关系通过表1方式获取,表2中的数字对应图6中的莫顿序号,该方式考虑了不同子块位置以及几何上的中心旋转对称性。从图6可以看出,以当前块为中心,该方法拥有更大的感受野,可以利用周围已编码的最多18个相邻父块。式(3)中采用的方式是3个共面父块占用情况的排列组合以及3个共线父块占用的个数加和。
因此,该技术方法中使用的上下文数量最多为23×25=256个。
表2.子块i和其相邻父块j的关系。表格中的数字对应图6中的莫顿序编号。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的点云编码方法、点云解码方法及相关设备进行详细地说明。
参见图7,图7是本申请实施例提供的一种网格编码方法的流程图,可以应用于编码端设备,如图7所示,点云编码方法包括以下步骤:
步骤101、对点云的几何信息进行树形构建,获取待编码子节点。
其中,树形构建可以为二叉树构建,四叉树构建或者八叉树构建等。
一种实施方式中,可以对点云的几何信息进行坐标转换,使点云全都包含在一个包围盒(bounding box)中。然后再进行量化,量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点这一过程属于预处理过程。预处理之后,可以按照广度优先遍历的顺序对bounding box进行划分(八叉树/四叉树/二叉树),得到待编码子节点。示例地,在基于八叉树的几何码框架中,将包围盒依次划分得到子立方体,对非空的(包含点云中的点)的子立方体继续进行划分,直到划分得到的叶子结点为1x1x1的单位立方体时停止划分。
步骤102、确定所述待编码子节点对应的第一邻居信息。
其中,所述第一邻居信息可以基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或者,所述第一邻居信息可以基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
步骤103、基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;和/或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
其中,所述基于所述第一邻居信息对所述待编码子节点进行编码,可以是,将第一邻居信息作为待编码子节点的上下文对所述待编码子节点进行编码。示例地,可以将第一邻居信息作为待编码子节点的上下文采用基于上下文的自适应二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)编码算法对所述待编码子节点进行编码。
另外,节点信息可以包括用于表征节点是否被占据的信息。示例地,节点被占据,节点信息可以为1;节点不被占据,节点信息可以为0。
另外,目标关联子节点可以为待编码子节点的强相关邻居子节点。
另外,所述目标关联子节点可以为所述待编码子节点对应的共面子节点;或者所述目标关联子节点可以包括所述待编码子节点对应的共面子节点和共边子节点;或者所述目标 关联子节点可以包括所述待编码子节点对应的共面子节点、共边子节点和共点子节点;等等,本实施例对此不进行限定。预设条件不同,所述目标关联子节点与所述待编码子节点的关联程度不同。
以所述目标关联子节点为所述待编码子节点对应的共面子节点为例,所述目标邻居子节点可以包括待编码子节点对应的共边子节点、待编码子节点对应的共点子节点、待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点、待编码子节点的父节点对应的共面父节点中选择的子节点及待编码子节点的父节点对应的共线父节点中选择的子节点等等。
以所述目标关联子节点为待编码子节点对应的共面子节点和共边子节点为例,所述目标邻居子节点可以包括待编码子节点对应的共点子节点、待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点、待编码子节点的父节点对应的共面父节点中选择的子节点及待编码子节点的父节点对应的共线父节点中选择的子节点等等。
以所述目标关联子节点为待编码子节点对应的共面子节点、共边子节点和共点子节点为例,所述目标邻居子节点可以包括待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点、待编码子节点的父节点对应的共面父节点中选择的子节点及待编码子节点的父节点对应的共线父节点中选择的子节点等等。
另外,存在所述待编码子节点对应的目标关联子节点,可以是指目标关联子节点被占据;不存在所述目标关联子节点,可以是指目标关联子节点不被占据。示例地,目标关联子节点的节点信息为1,则存在目标关联子节点;目标关联子节点的节点信息为0,则不存在目标关联子节点。目标关联子节点的数量可以为多个,存在所述待编码子节点对应的目标关联子节点,可以是指至少一个目标关联子节点被占据;不存在所述目标关联子节点,可以是指全部目标关联子节点均不被占据。以所述目标关联子节点为所述待编码子节点对应的共面子节点为例,存在所述待编码子节点对应的目标关联子节点,可以是指待编码子节点对应的共面子节点均不被占据;不存在所述目标关联子节点,可以是指待编码子节点对应的共面子节点均不被占据。
一种实施方式中,所述目标关联子节点为所述待编码子节点对应的共面子节点,在确定存在所述待编码子节点对应的共面子节点的情况下,所述第一邻居信息可以基于待编码子节点对应的共面子节点的节点信息确定,进一步的,所述第一邻居信息可以基于待编码子节点对应的共面子节点和待编码子节点对应的共面父节点的节点信息确定。示例地,第一邻居信息可以包括待编码子节点对应的共面子节点的节点信息和待编码子节点对应的共面父节点的节点信息。
另外,待编码子节点对应的共面子节点,可以是,在树形广度优先遍历的划分方式下待编码子节点可获取到的共面子节点。以八叉树构建为例,待编码子节点对应的共面子节点可以是在八叉树广度优先遍历的划分方式下待编码子节点可获取的左前下三个方向的共面邻居子节点。在八叉树广度优先遍历的划分方式下待编码子节点可获取到的共面子节 点的数量为三个。
另外,待编码子节点对应的共边子节点,可以是,在树形广度优先遍历的划分方式下待编码子节点可获取到的共边子节点。以八叉树构建为例,待编码子节点对应的共边子节点可以是在八叉树广度优先遍历的划分方式下待编码子节点可获取的左前下三个方向的共边子节点。在八叉树广度优先遍历的划分方式下待编码子节点可获取到的共边子节点的数量为三个。
另外,待编码子节点对应的共点子节点,可以是,在树形广度优先遍历的划分方式下待编码子节点可获取到的共点子节点。以八叉树构建为例,待编码子节点对应的共点子节点可以是在八叉树广度优先遍历的划分方式下待编码子节点可获取的左前下方向的共点子节点。在八叉树广度优先遍历的划分方式下待编码子节点可获取到的共点子节点的数量为一个。
需要说明的是,存在所述待编码子节点对应的目标关联子节点,可以认为待编码子节点处于节点较为密集的位置;不存在所述待编码子节点对应的目标关联子节点,可以认为待编码子节点处于节点较为稀疏的位置。从而可以根据节点疏密程度选择不同的邻居节点信息作为上下文对待编码子节点进行编码。
在本申请实施例中,对点云的几何信息进行树形构建,获取待编码子节点;确定所述待编码子节点对应的第一邻居信息;基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。这样,通过确定是否存在所述待编码子节点对应的目标关联子节点确定第一邻居信息,能够基于节点疏密程度选择不同的邻居节点信息作为上下文对待编码子节点进行编码,能够减少上下文信息的数量,从而能够提高编码效率。
可选地,所述确定所述待编码子节点对应的第一邻居信息,包括:
在确定不存在所述目标关联子节点的情况下:
基于所述多个目标邻居子节点的节点信息确定所述待编码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
基于已编码子节点的编码结果确定所述目标邻居状态的状态值,所述已编码子节点对应的邻居状态为所述目标邻居状态;
基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息。
其中,多个目标邻居子节点的占位情况,可以是,多个目标邻居子节点是否被占据的情况。目标邻居状态可以为多个邻居状态中的一个,以目标邻居子节点的数量为10个为例,每个目标邻居子节点用一位二进制数表示,则邻居状态M的总个数为:210。例如, 10个目标邻居子节点均被占据,则邻居状态为全1;10个目标邻居子节点均不被占据,则邻居状态为全0。
另外,所述目标邻居状态的状态值可以为多个已编码子节点的编码结果中编码结果为预设值的个数,示例地,该预设值可以为1。已编码子节点的编码结果可以包括0,或者1。目标邻居状态的状态值可以为时间最近的多个已编码子节点的编码结果中编码结果为1的个数。目标邻居状态的状态值可以为时间最近的预设个数的已编码子节点的编码结果中编码结果为1的个数。预设个数可以为8个,或9个,10个,等等,本实施例对此不进行限定。示例地,目标邻居状态的状态值可以为时间最近的8个已编码子节点的编码结果中编码结果为1的个数。
作为一种具体的实施例,在确定不存在所述目标关联子节点的情况下,第一邻居信息的考虑是基于子节点层中已编码邻居信息。目标邻居状态可以为多个邻居状态中的一个,如图8所示,邻居状态M可由邻居节点信息1确定,邻居节点信息1由状态M1和状态M2确定:
(1)选择与当前待编码子节点3个共边、1个共点以及节点边长最短的维度上负方向距离当前待编码子节点两个节点边长处的节点的占位情况,共5个子节点层邻居,如图9所示,黑色实线框节点为当前节点,黑色节点是待编码子节点,黑色节点周围的节点是子节点层邻居。
以上述5个子节点的占位情况组成状态M1,其计算公式为:
其中j代表选取的任一邻居子节点在这5个邻居子节点中的索引,sj表示索引为j的子节点邻居的占位码。M1的取值范围为0~32。
(2)在当前节点(当前待编码子节点的父节点)的已被划分的3个共面,2个共线邻居中,各自选择1个子节点邻居,以这5个子节点邻居占据信息组成状态M2。被选择的子节点邻居相对于其父节点的位置与待编码子节点相对于当前节点的位置相同。即若待编码子节点相对当前节点中的索引值为i,3个子节点邻居相对其父节点的索引值也同样为i。以子节点7为例,选取的三个共面子节点邻居如下图10所示。
以上述5个子节点的占位情况组成状态M2,其计算公式为:
M2=sx+sy×2+sz×4+sxy×8+sxz×16
其中sx、sy、sz分别表示上述3个子节点邻居中,位于当前节点x轴、y轴、z轴方向的邻居子节点的占位码;sxy与sxz为当前节点的2个共线邻居选择的邻居子节点的占位码。
结合状态M1和状态M2,邻居状态M计算公式为:
M=M1×32+M2
M的取值范围为0~1024,即邻居节点信息1的取值范围为0~1024,共1024个邻居状态。
该实施方式中,在确定不存在所述目标关联子节点的情况下:基于所述多个目标邻居子节点的节点信息确定所述待编码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;基于已编码子节点的编码结果确定所述目标邻居状态的状态值,所述已编码子节点对应的邻居状态为所述目标邻居状态;基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息。这样,能够通过同一邻居状态下的已编码子节点的编码结果确定所述待编码子节点对应的第一邻居信息,将该第一邻居信息作为上下文对待编码子节点进行编码,能够减少上下文信息的数量,从而能够提高编码效率。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已编码子节点的编码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的编码结果确定;
所述方法还包括:
基于所述待编码子节点的编码结果对所述目标邻居状态对应的滑动窗口进行更新。
其中,所述目标邻居状态对应的滑动窗口可以存储有时间最近的多个已编码子节点的编码结果。示例地,滑动窗口可以存储有时间最近的预设个数的已编码子节点的编码结果。
另外,在待编码子节点编码完成后,可以对所述目标邻居状态对应的滑动窗口进行更新,在目标邻居状态对应的滑动窗口中存储待编码子节点的编码结果,并将滑动窗口中编码时间距离当前时间最远的一个已编码子节点的编码结果从滑动窗口中移除。
作为一种具体的实施例,每个邻居状态对应滑动窗口存储每个邻居状态下最近已编码的K个符号的取值,即每个邻居状态M都有一个长度为Kbit的先入先出型滑动窗口B(M),其第k位的值为bk(M),K,k为正整数。若k的取值范围为1~K,在编码端以第k位信息代表该状态下最近已编码的前第K-k+1个符号的取值,在解码端以第k位信息代表该状态下最近已解码的前第K-k+1个符号的值。滑动窗口的更新操作为:每次编码或者解码符号S之后,将Kbits的滑动窗口B右移1位,将符号S的值赋于第K个bit,如下:
B(M)=(B(M)>>1)|(S<<K-1)。
另外,如图8所示,通过滑动窗口,状态M可以被转换为状态N,实现基于滑动窗口的状态转换。将滑动窗口中,取值为1的比特个数作为输出的状态N:
其中,状态N的取值范围为0~K。例如,若K取值为8,则N共有9个状态值。
该实施方式中,所述目标邻居状态对应的滑动窗口存储有多个所述已编码子节点的编码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的编码结果确定,基于所述待编码子节点的编码结果对所述目标邻居状态对应的滑动窗口进行更新,这样,能够通过目标邻居状态对应的滑动窗口的更新实现目标邻居状态的状态值的更新。
可选地,所述基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居 信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息;
所述方法还包括:
在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。
其中,预设邻居状态可以为多个目标邻居子节点的占位情况表征多个目标邻居子节点全不占据的邻居状态。预设邻居状态可以为邻居状态M取值为0的邻居状态。
另外,在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息,可以是,在所述目标邻居状态不为预设邻居状态的情况下,所述待编码子节点对应的第一邻居信息包括所述目标邻居状态的状态值。进一步的,在所述目标邻居状态不为预设邻居状态的情况下,可以基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。
另外,在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息,可以是,在所述目标邻居状态为所述预设邻居状态的情况下,所述待编码子节点对应的第一邻居信息包括所述待编码子节点对应的共面父节点的节点信息。示例地,共面父节点的数量为3个,共面父节点的节点信息作为上下文的上下文数量为8个,为共面父节点的每个子节点均分配一个上下文,每个共面父节点涉及8个上下文,则第一邻居信息作为上下文的上下文数量为:8*8=64个。
该实施方式中,在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息;在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。从而能够在目标邻居状态表征所述多个目标邻居子节点未被占据时考虑待编码子节点对应的共面父节点确定第一邻居信息,能够进一步考虑节点疏密程度选择不同的邻居节点信息作为上下文对待编码子节点进行编码,从而能够提高编码效率。
可选地,所述在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点,确定所述待编码子节点对应的第一邻居信息。
其中,在所述目标邻居状态不为预设邻居状态的情况下,所述待编码子节点对应的第一邻居信息可以包括所述目标邻居状态的状态值和待编码子节点对应的共面父节点的节点信息。示例地,状态N共有9个状态值,状态值作为上下文的上下文数量为9个,共面父节点的数量为3个,共面父节点的节点信息作为上下文的上下文数量为8个,则第一邻 居信息作为上下文的上下文数量为:8*9=72个。
该实施方式中,在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点,确定所述待编码子节点对应的第一邻居信息,这样,能够通过同一邻居状态下的已编码子节点的编码结果及待编码子节点对应的共面父节点共同确定所述待编码子节点对应的第一邻居信息,能够使用相关性较强的邻居信息作为上下文进行编码,能够提高编码效率。
可选地,在所述目标关联子节点为所述待编码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待编码子节点对应的共边子节点;
所述待编码子节点对应的共点子节点;
所述待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待编码子节点的父节点对应的共面父节点中选择的子节点;
所述待编码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待编码子节点在其父节点中的位置相同。
另外,待编码子节点的父节点对应的共面父节点中选择的子节点,可以满足,该选择的子节点在该共面父节点中的位置与待编码子节点在该待编码子节点的父节点中的位置相同。例如,待编码子节点在该待编码子节点的父节点中的索引值为i,则选择的子节点在其父节点中的索引值也为i。
另外,待编码子节点的父节点对应的共线父节点中选择的子节点,可以满足,该选择的子节点在该共线父节点中的位置与待编码子节点在该待编码子节点的父节点中的位置相同。例如,待编码子节点在该待编码子节点的父节点中的索引值为i,则选择的子节点在其父节点中的索引值也为i。
该实施方式中,基于目标邻居子节点的节点信息确定第一邻居信息,能够使用相关性较强的邻居信息作为上下文进行编码,能够提高编码效率。
作为一种具体的实施例,确定待编码子节点对应的第一邻居信息的过程如下:
(1):首先看当前待编码子节点的三个共面子节点是否存在,若存在,则编码当前子节点的上下文如下:
考虑父节点层三个共面节点相乘组成8个上下文,其中,父节点层三个共面节点为父节点层选取的与当前待编码子节点共面的三个父层邻居节点;
考虑子节点层三个共面子节点组成7个上下文(去掉全不占据情况),其中,子节点 层三个共面子节点为与当前待编码子节点共面的三个子层邻居节点;
父节点层和子节点层上下文信息组合相乘,一共56个上下文。
(2):若当前待编码子节点的三个共面子节点不存在,则判断邻居节点信息1是否为0(即M是否取值0),若不为0,则用滑动窗口进行状态转换得到,9个上下文(滑动窗口长度为8)。
父节点层考虑与当前子节点共面的三个父节点,排列组合共8个上下文;
父节点层和子节点层上下文信息组合相乘,一共72个上下文。
(3):若邻居节点信息1为0,则只考虑与当前待编码子节点共面的三个父节点,一共8个上下文,为每个子节点都分配,则一共64个上下文.
上述三个步骤构成熵编码整个过程,如图8所示,对于点云整体而言,上下文包括邻居节点信息1相关的上下文及其它邻居节点信息相关的上下文,该其它邻居节点信息为邻居节点信息1涉及的邻居节点外的邻居节点信息,邻居信息的组合共产生56+72+64=192个上下文,因此CABAC具有192个上下文。
对于熵解码,如图11所示,与熵编码过程类似,将输入由待编码符号变为待解码码流,相应的编码操作替换为解码操作即可。
如图12所示,采用本实施例的点云编码方法进行编码,相对于PCRM_V9.0,可以降低码率,提高编码效率,降低硬件实现的复杂度。图12中,AVSC4_ai和AVSC1_ai所在竖列为点云序列名,例如,bridge_1mm、double_T_section_1mm及intersection1_1mm等均为点云序列名。AVSC4_ai和AVSC1_ai参数代表点云编码测试条件,测试条件共4种,AVSC1表示几何位置有限度有损、属性有损;AVSC2表示几何位置无损、属性有损;AVSC3表示几何位置无损、属性有限度有损;AVSC4表示几何位置无损、属性无损。上述条件中的几何编码参数和属性编码参数含义可以如下,几何无损条件下:geom_remove_dup_flag=0,即不去除重复点;geom_quant_step=1,即不对几何坐标做量化。几何有限度有损条件下:geom_remove_dup_flag=1,即去除重复点;geom_quant_step的设置由码率点的量化步长确定,码率点的量化步长根据点云的几何位宽决定。属性无损条件下:color_transform_flag=0,即不做RGB到YUV的转换;属性量化参数color_quant_param=0或refl_quant_param=0,即属性量化步长设为1。属性有限度有损条件下:color_transform_flag=0,即不做RGB到YUV的转换;属性量化参数的设置可以按照量化损伤递减设置。属性有损条件下:color_transform_flag=1,即需要做RGB到YUV的转换;属性量化参数的设置可以按照量化损伤递减设置。图12中,Geometry参数代表点云中几何编码部分的码流,示例地,Geometry参数为99.5%,代表在测试条件为AVSC4下,使用本实施例对点云进行编码其产生的几何码流是现有方案的99.5%。D1及D1-H参数代表两种不同的点云质量失真评估参数,D1,D1-H参数为负值,则代表在测试条件为AVSC1下,使用本实施例对点云进行编码其产生的点云综合质量比现有方案更高。相对于现有方案,本实施例可以实现降低码率,提高编码效率,降低硬件实现的复杂度。
需要说明的是,熵编码的相关技术中,AVS同时存在如下两种熵编码技术,第一种,熵编码技术涉及的上下文包括当前点的子层邻居预测以及当前点层的邻居预测;第二种,熵编码技术方法使用双层上下文参考关系配置。AVS同时存在两种熵编码技术,硬件实现成本较高。同时,两种熵编码方案各自的问题在于:第一种,没有考虑到父节点层与当前子节点直接接触邻居的占据情况;第二种,子节点层只考虑了共面子节点的情况,没有考虑共线,共点子节点的利用。
本实施例提出了一种基于滑动窗口的熵编码以及熵解码方法。使用了相关性更强的邻居信息,使用基于节点疏密程度选择不同的邻居节点信息作为上下文,并且采用基于滑动窗口的状态转换技术。与相关技术相比,本实施例可以降低码率,提高编码效率,降低硬件实现的复杂度。
参见图,图13是本申请实施例提供的一种点云解码方法的流程图,可以应用于解码端设备,如图13所示,点云解码方法包括以下步骤:
步骤201、确定待解码子节点对应的第二邻居信息;
步骤202、基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
第二邻居信息的相关内容请参见前文对第一邻居信息的介绍,此处不再赘述。
可选地,所述确定待解码子节点对应的第二邻居信息,包括:
在确定不存在所述目标关联子节点的情况下:
基于所述多个目标邻居子节点的节点信息确定所述待解码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
基于已解码子节点的解码结果确定所述目标邻居状态的状态值,所述已解码子节点对应的邻居状态为所述目标邻居状态;
基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已解码子节点的解码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的解码结果确定;
所述方法还包括:
基于所述待解码子节点的解码结果对所述目标邻居状态对应的滑动窗口进行更新。
可选地,所述基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息;
所述方法还包括:
在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待解码子节点对应的共面父节点确定所述待解码子节点对应的第二邻居信息。
可选地,所述在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息,包括:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待解码子节点对应的共面父节点,确定所述待解码子节点对应的第二邻居信息。
可选地,在所述目标关联子节点为所述待解码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待解码子节点对应的共边子节点;
所述待解码子节点对应的共点子节点;
所述待解码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待解码子节点的父节点对应的共面父节点中选择的子节点;
所述待解码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待解码子节点在其父节点中的位置相同。
需要说明的是,解码端执行的步骤的相关细节介绍可以参见前文编码端实施例,此处不再赘述。
需要说明的是,本申请实施例提供的点云编码方法,执行主体可以为点云编码装置,或者,该点云编码装置中的用于执行点云编码的方法的控制模块。本申请实施例中以点云编码装置执行点云编码的方法为例,说明本申请实施例提供的点云编码装置。
请参见图14,图14是本申请实施例提供的一种点云编码装置的结构图,如图14所示,点云编码装置300包括:
获取模块301,用于对点云的几何信息进行树形构建,获取待编码子节点;
确定模块302,用于确定所述待编码子节点对应的第一邻居信息;
编码模块303,用于基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;或,
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居 信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
可选地,在确定不存在所述目标关联子节点的情况下:
所述确定模块包括:
第一确定单元,用于基于所述多个目标邻居子节点的节点信息确定所述待编码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
第二确定单元,用于基于已编码子节点的编码结果确定所述目标邻居状态的状态值,所述已编码子节点对应的邻居状态为所述目标邻居状态;
第三确定单元,用于基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已编码子节点的编码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的编码结果确定;
所述装置还包括:
更新模块,用于基于所述待编码子节点的编码结果对所述目标邻居状态对应的滑动窗口进行更新。
可选地,所述第三确定单元具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息;
所述确定模块还包括:
第四确定单元,用于在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。
可选地,所述第二确定单元具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点,确定所述待编码子节点对应的第一邻居信息。
可选地,在所述目标关联子节点为所述待编码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待编码子节点对应的共边子节点;
所述待编码子节点对应的共点子节点;
所述待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待编码子节点的父节点对应的共面父节点中选择的子节点;
所述待编码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待编码子节点在其父节点中的位置相同。
本申请实施例中的点云编码装置300能够提高编码效率。
本申请实施例中的点云编码装置可以是装置,具有操作系统的装置或电子设备,也可以是终端中的部件、集成电路、或芯片。该装置或电子设备可以是移动终端,也可以为非移动终端。示例性的,移动终端可以包括但不限于上述所列举的终端的类型,非移动终端可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例提供的点云编码装置能够实现图7的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例提供的点云解码方法,执行主体可以为点云解码装置,或者,该点云解码装置中的用于执行点云解码的方法的控制模块。本申请实施例中以点云解码装置执行点云解码的方法为例,说明本申请实施例提供的点云解码装置。
请参见图15,图15是本申请实施例提供的一种点云解码装置的结构图,如图15所示,点云解码装置400包括:
确定模块401,用于确定待解码子节点对应的第二邻居信息;
解码模块402,用于基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
可选地,在确定不存在所述目标关联子节点的情况下:
所述确定模块包括:
第一确定单元,用于基于所述多个目标邻居子节点的节点信息确定所述待解码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
第二确定单元,用于基于已解码子节点的解码结果确定所述目标邻居状态的状态值,所述已解码子节点对应的邻居状态为所述目标邻居状态;
第三确定单元,用于基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已解码子节点的解码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的解码结果确定;
所述装置还包括:
更新模块,用于基于所述待解码子节点的解码结果对所述目标邻居状态对应的滑动窗口进行更新。
可选地,所述第三确定单元具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息;
所述确定模块还包括:
第四确定单元,用于在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待解码子节点对应的共面父节点确定所述待解码子节点对应的第二邻居信息。
可选地,所述第三确定单元具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待解码子节点对应的共面父节点,确定所述待解码子节点对应的第二邻居信息。
可选地,在所述目标关联子节点为所述待解码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待解码子节点对应的共边子节点;
所述待解码子节点对应的共点子节点;
所述待解码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待解码子节点的父节点对应的共面父节点中选择的子节点;
所述待解码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待解码子节点在其父节点中的位置相同。
本申请实施例中的点云解码装置400能够提高解码效率。
本申请实施例中的点云解码装置可以是装置,具有操作系统的装置或电子设备,也可以是终端中的部件、集成电路、或芯片。该装置或电子设备可以是移动终端,也可以为非移动终端。示例性的,移动终端可以包括但不限于上述所列举的终端的类型,非移动终端可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal  computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例提供的点云解码装置能够实现图13的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
可选地,如图16所示,本申请实施例还提供一种通信设备500,包括处理器501和存储器502,存储器502上存储有可在所述处理器501上运行的程序或指令,例如,该通信设备500为编码端设备时,该程序或指令被处理器501执行时实现上述点云编码方法实施例的各个步骤,且能达到相同的技术效果。该通信设备500为解码端设备时,该程序或指令被处理器501执行时实现上述点云解码方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种通信设备,包括处理器及通信接口,所述处理器用于:对点云的几何信息进行树形构建,获取待编码子节点;确定所述待编码子节点对应的第一邻居信息;基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。该通信设备实施例与上述点云编码方法方法实施例对应,上述点云编码方法实施例的各个实施过程和实现方式均可适用于该通信设备实施例中,且能达到相同的技术效果。
本申请实施例还提供一种通信设备,包括处理器及通信接口,所述处理器用于:确定待解码子节点对应的第二邻居信息;基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。该通信设备实施例与上述点云解码方法实施例对应,上述点云解码方法实施例的各个实施过程和实现方式均可适用于该通信设备实施例中,且能达到相同的技术效果。
可选地,通信设备可以为终端。具体地,图17为实现本申请实施例的一种终端的硬件结构示意图。
该终端600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609以及处理器610等中的至少部分部件。
本领域技术人员可以理解,终端600还可以包括给各个部件供电的电源(比如电池), 电源可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图17中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本申请实施例中,输入单元604可以包括图形处理单元(Graphics Processing Unit,GPU)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元606可包括显示面板6061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板6061。用户输入单元607包括触控面板6071以及其他输入设备6072中的至少一种。触控面板6 071,也称为触摸屏。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
本申请实施例中,射频单元601接收来自网络侧设备的下行数据后,可以传输给处理器610进行处理;另外,射频单元601可以向网络侧设备发送上行数据。通常,射频单元601包括但不限于天线、放大器、收发信机、耦合器、低噪声放大器、双工器等。
存储器609可用于存储软件程序或指令以及各种数据。存储器609可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器609可以包括易失性存储器或非易失性存储器,或者,存储器609可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器609包括但不限于这些和任意其它适合类型的存储器。
处理器610可包括一个或多个处理单元;可选的,处理器610集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。
其中,在所述终端为编码端设备的情况下:
所述处理器610用于:
对点云的几何信息进行树形构建,获取待编码子节点;
确定所述待编码子节点对应的第一邻居信息;
基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
可选地,所述处理器610具体用于:
在确定不存在所述目标关联子节点的情况下:
基于所述多个目标邻居子节点的节点信息确定所述待编码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
基于已编码子节点的编码结果确定所述目标邻居状态的状态值,所述已编码子节点对应的邻居状态为所述目标邻居状态;
基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已编码子节点的编码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的编码结果确定;
所述处理器610还用于:
基于所述待编码子节点的编码结果对所述目标邻居状态对应的滑动窗口进行更新。
可选地,所述处理器610具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息;
所述处理器610还用于:
在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。
可选地,所述处理器610具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点,确定所述待编码子节点对应的第一邻居信息。
可选地,在所述目标关联子节点为所述待编码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待编码子节点对应的共边子节点;
所述待编码子节点对应的共点子节点;
所述待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待编码子节点的父节点对应的共面父节点中选择的子节点;
所述待编码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待编码子节点在其父节点中的位置相同。
在所述终端为解码端设备的情况下:
所述处理器610用于:
确定待解码子节点对应的第二邻居信息;
基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
可选地,所述处理器610具体用于:
在确定不存在所述目标关联子节点的情况下:
基于所述多个目标邻居子节点的节点信息确定所述待解码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
基于已解码子节点的解码结果确定所述目标邻居状态的状态值,所述已解码子节点对应的邻居状态为所述目标邻居状态;
基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息。
可选地,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已解码子节点的解码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的解码结果确定;
所述处理器610还用于:
基于所述待解码子节点的解码结果对所述目标邻居状态对应的滑动窗口进行更新。
可选地,所述处理器610具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息;
所述处理器610还用于:
在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待解码子节点对应的共 面父节点确定所述待解码子节点对应的第二邻居信息。
可选地,所述处理器610具体用于:
在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待解码子节点对应的共面父节点,确定所述待解码子节点对应的第二邻居信息。
可选地,在所述目标关联子节点为所述待解码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
第一邻居子节点;
第二邻居子节点;
其中,所述第一邻居子节点包括如下至少一项:
所述待解码子节点对应的共边子节点;
所述待解码子节点对应的共点子节点;
所述待解码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
所述第二邻居子节点包括如下至少一项:
所述待解码子节点的父节点对应的共面父节点中选择的子节点;
所述待解码子节点的父节点对应的共线父节点中选择的子节点;
其中,所述选择的子节点在其父节点中的位置与所述待解码子节点在其父节点中的位置相同。
本申请实施例中的终端能够提高编解码效率。
具体地,本申请实施例的终端还包括:存储在存储器609上并可在处理器610上运行的指令或程序,处理器610调用存储器609中的指令或程序执行图14或图15所示各模块执行的方法,并达到相同的技术效果,为避免重复,故不在此赘述。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述点云编码方法实施例的各个过程,或者,该程序或指令被处理器执行时实现上述点云解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的终端中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述点云编码方法实施例的各个过程,或者,实现上述点云解码方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (17)

  1. 一种点云编码方法,包括:
    对点云的几何信息进行树形构建,获取待编码子节点;
    确定所述待编码子节点对应的第一邻居信息;
    基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
    其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
    在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
  2. 根据权利要求1所述的方法,其中,所述确定所述待编码子节点对应的第一邻居信息,包括:
    在确定不存在所述目标关联子节点的情况下:
    基于所述多个目标邻居子节点的节点信息确定所述待编码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
    基于已编码子节点的编码结果确定所述目标邻居状态的状态值,所述已编码子节点对应的邻居状态为所述目标邻居状态;
    基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息。
  3. 根据权利要求2所述的方法,其中,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述已编码子节点的编码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的编码结果确定;
    所述方法还包括:
    基于所述待编码子节点的编码结果对所述目标邻居状态对应的滑动窗口进行更新。
  4. 根据权利要求2所述的方法,其中,所述基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息,包括:
    在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息;
    所述方法还包括:
    在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待编码子节点对应的共面父节点确定所述待编码子节点对应的第一邻居信息。
  5. 根据权利要求4所述的方法,其中,所述在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待编码子节点对应的第一邻居信息, 包括:
    在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待编码子节点对应的共面父节点,确定所述待编码子节点对应的第一邻居信息。
  6. 根据权利要求1-5中任一项所述的方法,其中,在所述目标关联子节点为所述待编码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
    第一邻居子节点;
    第二邻居子节点;
    其中,所述第一邻居子节点包括如下至少一项:
    所述待编码子节点对应的共边子节点;
    所述待编码子节点对应的共点子节点;
    所述待编码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
    所述第二邻居子节点包括如下至少一项:
    所述待编码子节点的父节点对应的共面父节点中选择的子节点;
    所述待编码子节点的父节点对应的共线父节点中选择的子节点;
    其中,所述选择的子节点在其父节点中的位置与所述待编码子节点在其父节点中的位置相同。
  7. 一种点云解码方法,包括:
    确定待解码子节点对应的第二邻居信息;
    基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
    其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
    在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
  8. 根据权利要求7所述的方法,其中,所述确定待解码子节点对应的第二邻居信息,包括:
    在确定不存在所述目标关联子节点的情况下:
    基于所述多个目标邻居子节点的节点信息确定所述待解码子节点对应的目标邻居状态,所述目标邻居状态用于表征所述多个目标邻居子节点的占位情况;
    基于已解码子节点的解码结果确定所述目标邻居状态的状态值,所述已解码子节点对应的邻居状态为所述目标邻居状态;
    基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息。
  9. 根据权利要求8所述的方法,其中,所述目标邻居状态为多个邻居状态中的一个,每个所述邻居状态对应一个滑动窗口,所述目标邻居状态对应的滑动窗口存储有多个所述 已解码子节点的解码结果,所述目标邻居状态的状态值基于所述目标邻居状态对应的滑动窗口中的解码结果确定;
    所述方法还包括:
    基于所述待解码子节点的解码结果对所述目标邻居状态对应的滑动窗口进行更新。
  10. 根据权利要求8所述的方法,其中,所述基于所述目标邻居状态的状态值确定待解码子节点对应的第二邻居信息,包括:
    在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息;
    所述方法还包括:
    在所述目标邻居状态为所述预设邻居状态的情况下,基于所述待解码子节点对应的共面父节点确定所述待解码子节点对应的第二邻居信息。
  11. 根据权利要求10所述的方法,其中,所述在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值确定所述待解码子节点对应的第二邻居信息,包括:
    在所述目标邻居状态不为预设邻居状态的情况下,基于所述目标邻居状态的状态值及所述待解码子节点对应的共面父节点,确定所述待解码子节点对应的第二邻居信息。
  12. 根据权利要求7-11中任一项所述的方法,其中,在所述目标关联子节点为所述待解码子节点对应的共面子节点的情况下,所述目标邻居子节点包括如下至少一项:
    第一邻居子节点;
    第二邻居子节点;
    其中,所述第一邻居子节点包括如下至少一项:
    所述待解码子节点对应的共边子节点;
    所述待解码子节点对应的共点子节点;
    所述待解码子节点的最短节点边长所在维度上负方向两个节点边长处的子节点;
    所述第二邻居子节点包括如下至少一项:
    所述待解码子节点的父节点对应的共面父节点中选择的子节点;
    所述待解码子节点的父节点对应的共线父节点中选择的子节点;
    其中,所述选择的子节点在其父节点中的位置与所述待解码子节点在其父节点中的位置相同。
  13. 一种点云编码装置,包括:
    获取模块,用于对点云的几何信息进行树形构建,获取待编码子节点;
    确定模块,用于确定所述待编码子节点对应的第一邻居信息;
    编码模块,用于基于所述第一邻居信息对所述待编码子节点进行编码,得到所述待编码子节点的编码结果;
    其中,在确定存在所述待编码子节点对应的目标关联子节点的情况下,所述第一邻居 信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待编码子节点的关联程度满足预设条件的邻居子节点;或,
    在确定不存在所述目标关联子节点的情况下,所述第一邻居信息基于所述待编码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
  14. 一种点云解码装置,包括:
    确定模块,用于确定待解码子节点对应的第二邻居信息;
    解码模块,用于基于所述第二邻居信息对所述待解码子节点进行解码,得到所述待解码子节点的解码结果;
    其中,在确定存在所述待解码子节点对应的目标关联子节点的情况下,所述第二邻居信息基于所述目标关联子节点的节点信息确定,所述目标关联子节点为与所述待解码子节点的关联程度满足预设条件的邻居子节点;或,
    在确定不存在所述目标关联子节点的情况下,所述第二邻居信息基于所述待解码子节点的邻居子节点中除所述目标关联子节点外的多个目标邻居子节点的节点信息确定。
  15. 一种通信设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至6任一项所述的点云编码方法的步骤;或者,所述程序或指令被所述处理器执行时实现如权利要求7至12任一项所述的点云解码方法的步骤。
  16. 一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至6任一项所述的点云编码方法的步骤,或者,所述程序或指令被处理器执行时实现如权利要求7至12任一项所述的点云解码方法的步骤。
  17. 一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如权利要求1至6任一项所述的点云编码方法的步骤,或者,所述程序或指令被处理器执行时实现如权利要求7至12任一项所述的点云解码方法的步骤。
PCT/CN2023/136729 2022-12-09 2023-12-06 点云编码方法、点云解码方法及相关设备 WO2024120431A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211585959.7 2022-12-09
CN202211585959.7A CN118175319A (zh) 2022-12-09 2022-12-09 点云编码方法、点云解码方法及相关设备

Publications (1)

Publication Number Publication Date
WO2024120431A1 true WO2024120431A1 (zh) 2024-06-13

Family

ID=91349332

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/136729 WO2024120431A1 (zh) 2022-12-09 2023-12-06 点云编码方法、点云解码方法及相关设备

Country Status (2)

Country Link
CN (1) CN118175319A (zh)
WO (1) WO2024120431A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112041889A (zh) * 2018-02-08 2020-12-04 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
CN112565795A (zh) * 2020-12-03 2021-03-26 西安电子科技大学 一种点云几何信息编码及解码方法
WO2021232251A1 (zh) * 2020-05-19 2021-11-25 Oppo广东移动通信有限公司 一种点云编解码方法、编码器、解码器及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112041889A (zh) * 2018-02-08 2020-12-04 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
WO2021232251A1 (zh) * 2020-05-19 2021-11-25 Oppo广东移动通信有限公司 一种点云编解码方法、编码器、解码器及存储介质
CN112565795A (zh) * 2020-12-03 2021-03-26 西安电子科技大学 一种点云几何信息编码及解码方法

Also Published As

Publication number Publication date
CN118175319A (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
US11252441B2 (en) Hierarchical point cloud compression
US20210183112A1 (en) Hierarchical Point Cloud Compression with Smoothing
US11657542B2 (en) Techniques and apparatus for alphabet-partition coding of transform coefficients for point cloud compression
CN115471627A (zh) 点云的几何信息编码处理方法、解码处理方法及相关设备
WO2022257971A1 (zh) 点云编码处理方法、点云解码处理方法及相关设备
US20210217137A1 (en) Techniques and apparatus for coarse granularity scalable lifting for point-cloud attribute coding
WO2022121650A1 (zh) 点云属性的预测方法、编码器、解码器及存储介质
WO2024120431A1 (zh) 点云编码方法、点云解码方法及相关设备
WO2022258009A1 (zh) 熵编码、解码方法及装置
WO2024188138A1 (zh) 点云编码处理方法、点云解码处理方法及相关设备
WO2023098805A1 (zh) 点云编码方法、解码方法、装置及电子设备
WO2023098820A1 (zh) 点云编码、解码方法、装置及通信设备
WO2024083039A1 (zh) 网格编码方法、网格解码方法及相关设备
US20240037799A1 (en) Point cloud coding/decoding method and apparatus, device and storage medium
WO2024082153A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
EP4319167A1 (en) Point cloud encoding processing method and apparatus, and point cloud decoding processing method and apparatus
US20240323384A1 (en) Point cloud encoding method and apparatus, point cloud decoding method and apparatus, and communication device
WO2023025024A1 (zh) 点云属性编码方法、点云属性解码方法及终端
WO2024083043A1 (zh) 网格编码方法、装置、通信设备及可读存储介质
WO2024149142A1 (zh) 变换系数编码方法、变换系数解码方法及终端
WO2023155779A1 (zh) 编码方法、解码方法、装置及通信设备
WO2023155045A1 (zh) 预测的方法和装置、编码器、解码器和编解码系统
WO2022257978A1 (zh) 点云编码方法、解码方法及装置
US20240236381A9 (en) Encoding Control Method and Apparatus, and Decoding Control Method and Apparatus
WO2024149182A1 (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: 23900005

Country of ref document: EP

Kind code of ref document: A1