WO2021196392A1 - 一种点云几何编码方法、解码方法、编码设备及解码设备 - Google Patents

一种点云几何编码方法、解码方法、编码设备及解码设备 Download PDF

Info

Publication number
WO2021196392A1
WO2021196392A1 PCT/CN2020/093810 CN2020093810W WO2021196392A1 WO 2021196392 A1 WO2021196392 A1 WO 2021196392A1 CN 2020093810 W CN2020093810 W CN 2020093810W WO 2021196392 A1 WO2021196392 A1 WO 2021196392A1
Authority
WO
WIPO (PCT)
Prior art keywords
child node
node
current child
context
current
Prior art date
Application number
PCT/CN2020/093810
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 WO2021196392A1 publication Critical patent/WO2021196392A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/66Analysis of geometric attributes of image moments or centre of gravity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • the present invention relates to the technical field of point cloud processing, in particular to a point cloud geometric coding method, decoding method, coding equipment and decoding equipment.
  • Three-dimensional point cloud is an important form of digital representation of the real world. With the rapid development of three-dimensional scanning equipment (such as lasers, radars, etc.), the accuracy and resolution of point clouds have become higher. High-precision point clouds are widely used in the construction of urban digital maps, and play a technical support role in many popular researches such as smart cities, unmanned driving, and cultural relics protection.
  • the point cloud is obtained by sampling the surface of the object by a three-dimensional scanning device.
  • the number of points in a frame of point cloud is generally in the order of one million. Each point contains geometric information, color, reflectivity and other attribute information, and the amount of data is very large.
  • the huge data volume of 3D point cloud brings huge challenges to data storage and transmission, so it is very important to compress the point cloud.
  • Point cloud compression is mainly divided into geometric compression and attribute compression.
  • the point cloud geometric compression framework described in the test platform PCEM provided by the Chinese AVS (Audio Video coding Standard) point cloud compression working group mainly has the binary entropy of the space occupancy code. Coding: each time the octree node is divided, the space occupancy code of the node contains eight bits (b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 ), which respectively indicate that the eight child nodes of the node occupy Case. Entropy coding is performed on each bit using a separate context (context), so that eight bits correspond to eight contexts.
  • the software uses the context adaptive entropy encoder (CABAC) widely used in the AVS2 standard, and the coding space occupies each bit (bit or bin) of the code in order to achieve a better compression effect.
  • CABAC context adaptive entropy encoder
  • the coding is mainly divided into two parts. (1) Context selection; (2) Binary arithmetic coding.
  • the present invention provides a point cloud geometric coding method, decoding method, coding device and decoding device, and aims to solve the problem that the prior art only determines a fixed context according to the order of coded bits when performing context selection, resulting in that the coded characters are not selected suitable Encoding probability reduces the problem of compression performance.
  • a geometric decoding method for a point cloud is defined in a tree structure.
  • the tree structure has multiple nodes with a parent-child relationship.
  • the current node includes K child nodes, which includes the steps:
  • K1 is an integer less than or equal to K, and K is an integer greater than 1;
  • the step of determining the context of the current child node according to the occupation information of the first K2 neighboring child nodes includes:
  • the context of the current child node is determined according to the position number of the current child node in the parent node and the occupation information of the first K2 neighbor child nodes of the current child node in the offset Morton order.
  • the step of determining the context of the current child node according to the occupation information of the first K2 neighboring child nodes includes:
  • the context of the current child node is determined according to the occupation information of the neighbor nodes of the parent node.
  • the step of determining the context of the current child node according to the occupation information of the first K2 neighboring child nodes includes:
  • the context of the current child node is determined according to the occupation information of the neighbor node of the parent node to which the current child node belongs and the position number of the current child node in the parent node.
  • the step of determining the context of the current child node according to occupancy information includes:
  • the occupancy information is calculated according to a predetermined rule to obtain the context of the current child node.
  • the step of arranging the occupancy information in a predetermined order to obtain the context of the current child node includes:
  • the occupancy information is arranged in a coplanar and collinear order to obtain the context of the current child node.
  • the step of calculating the occupancy information according to a predetermined rule to obtain the context of the current child node includes:
  • the occupancy information of the first K2 neighboring child nodes of the current child node in the offset Morton order is calculated according to the summing operation rule to obtain the context of the current child node.
  • the step of performing entropy decoding on the point cloud geometry code stream according to the context of the current child node comprises:
  • a point cloud geometry decoding device which includes a processor, a memory, and a communication bus; the memory stores a computer readable program that can be executed by the processor;
  • the communication bus realizes connection and communication between the processor and the memory
  • the processor implements the steps in the method of the present invention when the computer readable program is executed.
  • a geometric coding method for a point cloud is defined in a tree structure.
  • the tree structure has multiple nodes with a parent-child relationship.
  • the current node includes K child nodes, which includes the steps:
  • K1 is an integer less than or equal to K, and K is an integer greater than 1;
  • the step of entropy coding the occupancy status of the current child node according to the context of the current child node includes:
  • a point cloud geometric coding device which includes a processor, a memory, and a communication bus; the memory stores a computer readable program that can be executed by the processor;
  • the communication bus realizes connection and communication between the processor and the memory
  • the point cloud geometric coding method and decoding method provided by the present invention are based on the occupancy information of neighboring sub-nodes when entropy coding the occupancy state of each child node in the point cloud geometric compression process Determine the context, better capture the geometric correlation between child nodes, and improve the performance of point cloud geometric compression.
  • FIG. 1 is a schematic flowchart of an embodiment of a point cloud geometric decoding method provided by the present invention.
  • Figure 2 is a schematic diagram of the offset Morton sequence.
  • FIG. 3 is another schematic flowchart of an embodiment of a point cloud geometric decoding method provided by the present invention.
  • Figure 4 is a schematic diagram of the position numbering of the current child node in the parent node.
  • FIG. 5 is still another schematic flowchart of the embodiment of the point cloud geometric decoding method provided by the present invention.
  • FIG. 6 is still another schematic flowchart of the embodiment of the point cloud geometric decoding method provided by the present invention.
  • Fig. 7 is a schematic block diagram of a point cloud geometric decoding device provided by the present invention.
  • FIG. 8 is a schematic flowchart of an embodiment of a point cloud geometric coding method provided by the present invention.
  • Fig. 9 is a schematic block diagram of a point cloud geometric coding device provided by the present invention.
  • the present invention provides a point cloud geometric coding method, decoding method, coding equipment and decoding equipment.
  • the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described here are only used to explain the present invention, but not used to limit the present invention.
  • the present invention provides a geometric decoding method for a point cloud.
  • the point cloud is defined in a tree structure.
  • the tree structure has multiple nodes with a parent-child relationship.
  • the current node includes K child nodes. Including steps:
  • S30 Determine the context of the current child node according to the occupation information of the first K2 neighboring child nodes in the offset Morton order of the current child node;
  • the steps S10-S40 are executed on the decoding end to realize geometric decoding of the point cloud.
  • the geometric position of the point in the point cloud is represented by three-dimensional Cartesian coordinates (X, Y, Z), and each coordinate value is represented by N bits.
  • the coordinates of the k-th point (X k , Y k , Z k ) can be represented as
  • the Morton code corresponding to the k-th point can be expressed as follows:
  • K is an integer greater than 1.
  • the K can be 2, 4, 8, etc., that is to say, a binary tree, a quad tree, an octree, or a hybrid tree structure of the three can be constructed according to the geometric position of the point in the point cloud. Take the construction of an octree as an example.
  • all points are based on the 0th octal number of Morton code, Divided into eight child nodes: all Point to the 0th child node In all Point to the first child node In, and so on, all Point to the 7th child node
  • the nodes of the first layer of the octree are composed of eight nodes.
  • the space occupation code for the octree node contains eight bits (b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 ), the space occupancy code for a quadtree node contains four bits (b 3 b 2 b 1 b 0 ), and the space occupancy code for a binary tree node contains two bits (b 1 b 0 ) to indicate the node, respectively The occupancy of each child node.
  • the offset Morton order of the nodes at the same level as shown in FIG. Empty parent node taking the current child node as the K1 point in the offset Morton order, and determining the occupation information of the first K2 neighboring child nodes of the current child node in the offset Morton order;
  • the occupancy information of K2 neighboring child nodes determines the context of the current child node, where K1 is an integer less than or equal to K, and K2 is an integer less than K1.
  • K1 is an integer less than or equal to K
  • K2 is an integer less than K1.
  • the occupancy information of the first K2 neighboring child nodes in the offset Morton order of the current child node is arranged in a predetermined order to obtain the context of the current child node; or, the current child node is The occupancy information of the first K2 neighboring child nodes in the offset Morton order of the node is calculated according to a predetermined rule to obtain the context of the current child node.
  • the step of arranging the occupancy information of the first K2 neighboring child nodes in the offset Morton order of the current child node in a predetermined order to obtain the context of the current child node includes: placing the current child node at The occupancy information of the first K2 neighboring child nodes in the offset Morton order are arranged in descending Morton order to obtain the context of the current child node; or, the current child node is placed in the first K2 of the current child node in the offset Morton order
  • the occupancy information of the neighboring child nodes are arranged in descending Morton order to obtain the context of the current child node; or, the occupancy information of the first K2 neighboring child nodes of the current child node in the offset Morton order are divided into total
  • the context of the current child node is obtained by arranging the planes in collinear order.
  • K2 is an integer smaller than K1, where K2 neighboring child nodes are a subset of all neighboring child nodes of the current child node in the offset Morton order.
  • the step of calculating the occupancy information of the first K2 neighboring child nodes in the offset Morton order of the current child node according to a predetermined rule to obtain the context of the current child node includes: placing the current child node at The occupancy information of the first K2 neighboring child nodes in the offset Morton order is calculated according to the OR operation rule to obtain the context of the current child node.
  • K2 equal to 2 as an example to illustrate the or operation rule: b 1 and b 0 respectively represent neighboring child nodes Occupation status, if both b 1 and b 0 are 0, the calculation result is 0, otherwise, the calculation result is 1; or, press the occupancy information of the first K2 neighboring child nodes of the current child node in the offset Morton order by AND
  • the operation rule is calculated to obtain the context of the current child node, and K2 is equal to 2 as an example or the operation rule: b 1 and b 0 respectively represent the occupancy status of neighboring child nodes. If both b 1 and b 0 are 1, the calculation result is 1.
  • the calculation result is 0; or, calculate the occupancy information of the first K2 neighboring child nodes of the current child node in the offset Morton order according to the summing operation rule to obtain the context of the current child node, and take K2 equal to 2.
  • b 1 and b 0 respectively represent the occupancy status of neighboring child nodes. If both b 1 and b 0 are 0, the calculation result is 0; if both b 1 and b 0 are 1, then the calculation result is 2. , Otherwise, b 1 is different from b 0 , one is 0, the other is 1, and the calculation result is 1.
  • the occupancy state of the 7 neighboring child nodes of the current child node is determined as a binary number (b 6 b 5 b 4 b 3 b 2 b 1 b 0 ) according to Morton's offset sequence, for example, Morton sequence number in Figure 2
  • the child node 21 is the current child node, and the current child node is taken as the 8th point in the offset Morton order, that is, the offset Morton sequence number is 7; the current child node is the first 7 points in the offset Morton order
  • the neighboring child nodes are the child nodes offset by Morton number 6, 5, 4, 3, 2, 1, 0, corresponding to the child nodes represented by Morton number 20, 7, 6, 17, 16, 3, 2.
  • the binary symbol probability is selected from a plurality of contexts according to the context of the current child node as an index; the binary symbol probability is calculated according to the binary symbol probability.
  • the point cloud geometric code stream is arithmetic and decoded to obtain the occupation status of the current child node. Further, the probability model is updated for the selected context.
  • the step of determining the context of the current child node according to the occupation information of the first K2 neighboring child nodes further includes:
  • the context of the current child node is determined according to the position number of the current child node in the parent node and the occupation information of the first K2 neighbor child nodes of the current child node in the offset Morton order.
  • the position of the current child node in the parent node is numbered, and the value is 0-7, as shown in FIG. 4.
  • the occupancy information of the first K2 neighboring child nodes of the current child node in the offset Morton order is used as the context of the current child node .
  • the child node with sequence number 21 in Figure 2 is the current child node
  • the occupancy information of the first K2 neighbor child nodes in the offset Morton order is a binary number (1110000)
  • the position number in the parent node is 5.
  • the binary number (101) then the context of the current child node is the binary number (1110000101), that is, the decimal number 901.
  • the step of determining the context of the current child node according to the occupation information of the first K2 neighboring child nodes further includes:
  • the context of the current child node is determined according to the occupation information of the parent neighbor node.
  • the child node with Morton sequence number 21 in Figure 2 is the current child node
  • K2 is 7
  • the occupancy information of the first K2 neighboring child nodes in the offset Morton order is a binary number (0000000 )
  • there is no neighbor child node determine the three neighbor nodes (x+1,y,z), (x,y+1,z), (x,y,z+1) of the parent node of the current child node Occupancy information, the first and third neighbor nodes are empty, the second neighbor node exists, and the sequence is arranged as a binary number (010), that is, the decimal number 2, as the context of the current child node; or, further add
  • the upper offset (1 ⁇ K2) is the binary number (10000000), and the binary number (10000010), which is the decimal number 130, is obtained as the context of the current child node.
  • the step of determining the context of the current child node according to the occupation information of the first K2 neighboring child nodes further includes:
  • the context of the current child node is determined according to the occupation information of the neighbor node of the parent node to which the current child node belongs and the position number of the current child node in the parent node.
  • the child node with Morton sequence number 21 in Figure 2 is the current child node
  • K2 is 7
  • the occupancy information of the first K2 neighboring child nodes in the offset Morton order is a binary number (0000000 )
  • there is no neighbor child node determine the three neighbor nodes (x+1,y,z), (x,y+1,z), (x,y,z+1) of the parent node of the current child node
  • the occupancy information of the first and third neighbor nodes are empty, and the second neighbor node exists, in order;
  • the position number of the current child node in the parent node is 5, which is a binary number (101);
  • the occupancy information of the neighboring binary number (010) of the parent node and the position number of the current child node in the parent node are arranged as a binary number (010101), that is, the decimal number 21, as the context of the current child node; Or, further adding an offset (1 ⁇ K2), that is, a binary number (10000000), to obtain
  • the present invention also provides a point cloud geometric decoding device, as shown in FIG. 7, which includes at least one processor (processor) 20, memory (memory) 21, decoding module 22 and bus 23.
  • processor processor
  • memory memory
  • decoding module 22 decoding module 22
  • bus 23 the processor 20 and the memory 21 can communicate with each other through the bus 23.
  • the processor 20 may call the decoding module 22 in the memory 21 to execute the method in the foregoing embodiment.
  • the aforementioned decoding module 22 in the memory 21 when sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the decoding module 22 may include a computer program or application stored in the memory 21, and includes instructions for causing the processor 20 to perform operations as described herein.
  • the memory 21 can be configured to store a software program and a computer-executable program, such as the decoding module 22 corresponding to the method in the embodiment of the present disclosure.
  • the processor 20 executes functional applications and data processing by running the decoding module 22 stored in the memory 21, that is, implements the method in the foregoing embodiment.
  • the memory 21 may include a storage program area and a storage data area.
  • the storage program area may store an operating system and an application program required by at least one function; the storage data area may store data created according to the use of the electronic device, and the like.
  • the memory 21 may include a high-speed random access memory, and may also include a non-volatile memory.
  • the present invention also provides a point cloud geometric coding method.
  • the point cloud is defined in a tree structure.
  • the tree structure has multiple nodes with a parent-child relationship.
  • the current node includes K child nodes, such as As shown in Figure 8, it includes the steps:
  • S300 Determine the context of the current child node according to the occupation information of the first K2 neighboring child nodes in the offset Morton order of the current child node;
  • S400 Perform entropy coding on the occupancy state of the current child node according to the context of the current child node.
  • the steps S100-S400 are executed on the encoding end to implement the point cloud encoding process.
  • the occupancy status of the current child node's 7 neighbor nodes is expressed as a 7-bit binary number (0 6 b 5 b 4 b 3 b 2 b 1 b 0 ), corresponding to a decimal number, as the context of the current encoding child node; selecting a binary symbol probability from multiple contexts according to the current child node context as an index; according to the binary symbol probability Perform arithmetic coding on the occupancy state of the current child node to obtain a point cloud geometric code stream; send the encoded current occupancy state of the child node into the entropy coding engine, and update the probability model of the selected context.
  • the geometric position of the point in the point cloud is represented by three-dimensional Cartesian coordinates (X, Y, Z), and N bits are used to represent each coordinate value.
  • the coordinates of the k-th point (X k , Y k , Z k ) can be Expressed as
  • the Morton code corresponding to the k-th point can be expressed as follows:
  • K is an integer greater than 1.
  • the K can be 2, 4, 8, etc., that is to say, a binary tree, a quad tree, an octree, or a hybrid tree structure of the three can be constructed according to the geometric position of the point in the point cloud. Take the construction of an octree as an example.
  • all points are based on the N-1 octal number of Morton code, Divided into eight child nodes: all Point to the 0th child node In all Point to the first child node In, and so on, all Point to the 7th child node
  • the nodes of the first layer of the octree are composed of eight nodes.
  • the space occupation code for the octree node contains eight bits (b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 ), the space occupancy code for a quadtree node contains four bits (b 3 b 2 b 1 b 0 ), and the space occupancy code for a binary tree node contains two bits (b 1 b 0 ) to indicate the node, respectively The occupancy of each child node.
  • the offset Morton order of the nodes at the same level as shown in FIG. Empty parent node taking the current child node as the K1 point in the offset Morton order, and determining the occupation information of the first K2 neighboring child nodes of the current child node in the offset Morton order;
  • the occupancy information of K2 neighboring child nodes determines the context of the current child node, where K1 is an integer less than or equal to K, and K2 is an integer less than K1.
  • K1 is an integer less than or equal to K
  • K2 is an integer less than K1.
  • the present invention also provides a point cloud geometric coding device, as shown in FIG. 9, which includes a processor, a memory, an encoding module, and a bus;
  • the computer-readable program encoding module executed by the processor; the bus realizes the connection and communication between the processor and the memory; when the processor executes the computer-readable program, the steps in the point cloud geometric encoding method of the present invention are implemented .
  • the point cloud geometric coding method and decoding method of the present invention are compared with the performance of the benchmark results of the test platform PCEMv1.
  • the end-to-end rate distortion of the present invention saves 17.9%, 12.3%, and 39.7%, respectively, and the maximum point-to-point value saves 17.9%, 12.2%, and 39.5%, respectively;
  • the code rate of the present invention can be saved by 8.3%, 4.5%, and 33.2%.
  • the point cloud geometric encoding method and decoding method provided by the present invention are based on the neighboring child node's
  • the occupancy information determines the context, better captures the geometric correlation between sub-nodes, and improves the performance of point cloud geometric compression.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

公开了一种点云几何编码方法、解码方法、编码设备及解码设备,所述点云定义在树结构中,树结构中有多个具有父子关系的节点,当前节点包括K个子节点,K为大于1的整数,所述点云几何解码方法包括步骤:将当前子节点作为偏移莫顿顺序下的第K1个点,其中,K1为小于等于K的整数;确定所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息,其中,K2为小于K1的整数;根据所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息确定所述当前子节点的上下文;根据所述当前子节点的上下文对点云几何码流进行熵解码。通过提供的点云几何编码方法和解码方法能够提升节点之间几何相关性地利用,从而有效提高点云几何压缩性能。

Description

一种点云几何编码方法、解码方法、编码设备及解码设备 技术领域
本发明涉及点云处理技术领域,特别涉及一种点云几何编码方法、解码方法、编码设备及解码设备。
背景技术
三维点云是现实世界数字化的重要表现形式。随着三维扫描设备(如激光、雷达等)的快速发展,点云的精度和分辨率变得更高。高精度点云广泛应用于城市数字化地图的构建,在智慧城市、无人驾驶、文物保护等众多热门研究中起技术支撑作用。点云是三维扫描设备对物体表面采样所获取的,一帧点云的点数一般是百万级别,其中每个点包含几何信息和颜色、反射率等属性信息,数据量十分庞大。三维点云庞大的数据量给数据存储、传输等带来了巨大挑战,因此对点云进行压缩变得十分重要。
点云压缩主要分为几何压缩和属性压缩,目前由中国AVS(Audio Video coding Standard)点云压缩工作组所提供的测试平台PCEM中描述的点云几何压缩框架主要有空间占用码的二值熵编码:在每次八叉树节点划分时,该节点的空间占用码包含八个比特(b 7b 6b 5b 4b 3b 2b 1b 0),分别表示该节点的八个子节点占用的情况。对每个比特使用单独的上下文(context)进行熵编码,这样八个比特对应八个上下文。软件采用在AVS2标准中广泛应用的上下文自适应熵编码器(CABAC),编码空间占用码的每一位(bit或者bin),以求达到更好的压缩效果,编码主要分为两个部分,(1)上下文选择;(2)二元算术编码。
但是,以上相关技术在进行上下文选择时仅仅按照编码比特的顺序确定固定的上下文,存在编码顺序并不能很好的表示编码节点的空间相关性的问题,导致编码字符并没有选择适合的编码概率,降低压缩性能。
因此,现有技术还有待于改进和发展。
发明内容
本发明提供一种点云几何编码方法、解码方法、编码设备及解码设备,旨在解决现有技术在进行上下文选择时仅仅按照编码比特的顺序确定固定的上下文,导致编码字 符并没有选择适合的编码概率,降低压缩性能的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种点云几何解码方法,所述点云定义在树结构中,所述树结构中有多个具有父子关系的节点,当前节点包括K个子节点,其中,包括步骤:
将当前子节点作为偏移莫顿顺序下的第K1个点,其中,K1为小于等于K的整数,K为大于1的整数;
确定所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息,其中,K2为小于K1的整数;
根据所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息确定所述当前子节点的上下文;
根据所述当前子节点的上下文对点云几何码流进行熵解码。
所述的点云几何解码方法,其中,所述根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文的步骤包括:
确定所述当前子节点在父节点中的位置编号;
根据所述当前子节点在父节点中的位置编号和所述当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息确定所述当前子节点的上下文。
所述的点云几何解码方法,其中,所述根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文的步骤包括:
当所述前K2个邻居子节点的占用信息为不存在任何邻居子节点时:
确定所述当前子节点所属父节点的邻居节点的占用信息;
根据所述父节点的邻居节点的占用信息确定所述当前子节点的上下文。
所述的点云几何解码方法,其中,所述根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文的步骤包括:
当所述前K2个邻居子节点的占用信息为不存在任何邻居子节点时:
确定所述当前子节点所属父节点的邻居节点的占用信息;
确定所述当前子节点在父节点中的位置编号;
根据所述当前子节点所属父节点的邻居节点的占用信息和所述当前子节点在父节 点中的位置编号确定所述当前子节点的上下文。
所述的点云几何解码方法,其中,所述根据占用信息确定所述当前子节点的上下文的步骤包括:
将所述占用信息按预定顺序排列得到所述当前子节点的上下文;
或者,将所述占用信息按预定规则计算得到所述当前子节点的上下文。
所述的点云几何解码方法,其中,所述将所述占用信息按预定顺序排列得到所述当前子节点的上下文的步骤包括:
将所述占用信息按莫顿顺序由小到大排列得到所述当前子节点的上下文;
或者,将所述占用信息按莫顿顺序由大到小排列得到所述当前子节点的上下文;
或者,将所述占用信息按共面共线顺序排列得到所述当前子节点的上下文。
所述的点云几何解码方法,其中,所述将所述占用信息按预定规则计算得到所述当前子节点的上下文的步骤包括:
将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按或运算规则计算得到所述当前子节点的上下文;
或者,将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按与运算规则计算得到所述当前子节点的上下文;
或者,将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按求和运算规则计算得到所述当前子节点的上下文。
所述的点云几何解码方法,其中,所述根据所述当前子节点的上下文对点云几何码流进行熵解码的步骤包括:
根据所述当前子节点的上下文作为索引从多个上下文中选择二值符号概率;
根据所述二值符号概率对所述点云几何码流进行算数解码,得到所述当前子节点的占用状态。
一种点云几何解码设备,其中,包括处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现本发明所述方法中的步骤。
一种点云几何编码方法,所述点云定义在树结构中,所述树结构中有多个具有父子关系的节点,当前节点包括K个子节点,其中,包括步骤:
将当前子节点作为偏移莫顿顺序下的第K1个点,其中,K1为小于等于K的整数,K为大于1的整数;
确定所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息,其中,K2为小于K1的整数;
根据所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息确定所述当前子节点的上下文;
根据所述当前子节点的上下文对所述当前子节点的占用状态进行熵编码。
所述的点云几何编码方法,其中,所述根据所述当前子节点的上下文对所述当前子节点的占用状态行熵编码的步骤包括:
根据所述当前子节点的上下文作为索引从多个上下文中选择二值符号概率;
根据所述二值符号概率对所述当前子节点的占用状态进行算数编码,得到点云几何码流。
一种点云几何编码设备,其中,包括处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求10-11任意一项所述方法中的步骤。
有益效果:与现有技术相比,本发明提供的点云几何编码方法和解码方法在点云几何压缩过程中,在对每个子节点的占用状态进行熵编码时,依据邻居子节点的占用信息确定上下文,更好地捕捉子节点之间的几何相关性,提高点云几何压缩的性能。
附图说明
图1为本发明提供的点云几何解码方法实施例的示意性流程图。
图2为偏移莫顿顺序示意图。
图3为本发明提供的点云几何解码方法实施例的另一示意性流程图。
图4为当前子节点在父节点中的位置编号示意图。
图5为本发明提供的点云几何解码方法实施例的再一示意性流程图。
图6为本发明提供的点云几何解码方法实施例的再一示意性流程图。
图7为本发明提供的点云几何解码设备的示意性框图。
图8为本发明提供的点云几何编码方法实施例的示意性流程图。
图9为本发明提供的点云几何编码设备的示意性框图。
具体实施方式
本发明提供一种点云几何编码方法、解码方法、编码设备及解码设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
请参阅图1,本发明提供了一种点云几何解码方法,所述点云定义在树结构中,所述树结构中有多个具有父子关系的节点,当前节点包括K个子节点,其中,包括步骤:
S10、将当前子节点作为偏移莫顿顺序下的第K1个点,其中,K1为小于等于K的整数,K为大于1的整数;
S20、确定所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息,其中,K2为小于K1的整数;
S30、根据所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息确定所述当前子节点的上下文;
S40、根据所述当前子节点的上下文对所述当前子节点的占用状态进行熵解码。
在本实施例中,在解码端执行所述步骤S10-S40的步骤,实现所述点云的几何解码。点云中点的几何位置用三维笛卡尔坐标(X,Y,Z)表示,用N比特来表示每个坐标值,第k个点的坐标(X k,Y k,Z k)可以表示成
Figure PCTCN2020093810-appb-000001
Figure PCTCN2020093810-appb-000002
Figure PCTCN2020093810-appb-000003
第k个点对应的莫顿码可以表示如下:
Figure PCTCN2020093810-appb-000004
将每三个比特用八进制数表示
Figure PCTCN2020093810-appb-000005
则第k个点对应的莫顿码可以表示成
Figure PCTCN2020093810-appb-000006
依据莫顿码,按照广度优先从根节点
Figure PCTCN2020093810-appb-000007
(第0层)构建几何K叉树,K为大于1的整数。作为举例,所述K可以为2、4或8等,也就是说,根据点云中点的几何位置可构建二叉树或者四叉树或者八叉树或者此三种的混合树结构,本实施例以构建八叉树为例,具体来讲,首先将所有的点根据莫顿码的第0个八进制数,
Figure PCTCN2020093810-appb-000008
分到八个子节点中:所有
Figure PCTCN2020093810-appb-000009
的点分到第0个子节点
Figure PCTCN2020093810-appb-000010
中,所有
Figure PCTCN2020093810-appb-000011
的点分到第1个子节点
Figure PCTCN2020093810-appb-000012
中,依次类推,所有
Figure PCTCN2020093810-appb-000013
的点分到第7个子节点
Figure PCTCN2020093810-appb-000014
中则,八叉树第一层的节点由此八个节点构成。
八比特
Figure PCTCN2020093810-appb-000015
表示根节点
Figure PCTCN2020093810-appb-000016
的八个子节点是否被占用。如果
Figure PCTCN2020093810-appb-000017
至少包含点云中的一个点,其对应的比特
Figure PCTCN2020093810-appb-000018
如果该子节点不包含任何点,b k=0。根据几何位置的莫顿码的第1个八进制数
Figure PCTCN2020093810-appb-000019
对第一层中被占用的节点
Figure PCTCN2020093810-appb-000020
进一步划分成八个子节点;并用八个比特
Figure PCTCN2020093810-appb-000021
表示其子节点的占用信息,其中,l n是被占用节点的序号,n=0,...,N 1-1,N 1表示第一层被占用的节点数。
Figure PCTCN2020093810-appb-000022
再根据几何位置的莫顿码中的第t个八进制数
Figure PCTCN2020093810-appb-000023
对第t=2,3,...,N-2层中被占用的节点进 一步划分成八个子节点;并用八个比特
Figure PCTCN2020093810-appb-000024
表示将其子节点的占用信息,其中,l n是被占用节点的序号,n=0,...,N t-1,N t表示第t层被占用的节点数。对第t=N-1层,所有的节点成为叶节点,如果编码器配置允许重复点,需要在码流中记录每个被占用的叶节点上的重复点数。
在一些实施方式中,当所述几何树构建完成后,在每次树节点划分时,对于八叉树节点的空间占用码包含八个比特(b 7b 6b 5b 4b 3b 2b 1b 0),对于四叉树节点的空间占用码包含四个比特(b 3b 2b 1b 0),对于二叉树节点的空间占用码包含两个比特(b 1b 0)分别表示该节点的各个子节点占用的情况。
在一些实施方式中,按照Z轴、Y轴、X轴负方向依次偏移得到如图2所示的同级节点的偏移莫顿顺序(以数字升序表示顺序),其中虚框表示占用为空的父节点;将当前子节点作为偏移莫顿顺序下的第K1个点,确定所述当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息;根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文,其中,K1为小于等于K的整数,K2为小于K1的整数。以八叉树为例,因为偏移莫顿顺序下紧邻的子节点最多有7个,最少有0个,则所述K1的取值为1-8,K2的取值则为0-7。
在一些具体实施方式中,将所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息按预定顺序排列得到所述当前子节点的上下文;或者,将所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息按预定规则计算得到所述当前子节点的上下文。
在一些实施方式中,将所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息按预定顺序排列得到所述当前子节点的上下文的步骤包括:将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按莫顿顺序由小到大排列得到所述当前子节点的上下文;或者,将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按莫顿顺序由大到小排列得到所述当前子节点的上下文;或者,将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按共面共线顺序排列得到所述当前子节点的上下文。本实施例中,K2为小于K1的整数,其中K2个邻居子节点为偏移莫顿顺序下当前子节点所有邻居子节点的子集。
在一些实施方式中,将所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的 占用信息按预定规则计算得到所述当前子节点的上下文的步骤包括:将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按或运算规则计算得到所述当前子节点的上下文,以K2等于2举例说明或运算规则:b 1和b 0分别表示邻居子节点占用状态,b 1与b 0都为0,则计算结果为0,否则,计算结果为1;或者,将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按与运算规则计算得到所述当前子节点的上下文,以K2等于2举例说明或运算规则:b 1和b 0分别表示邻居子节点占用状态,若b 1与b 0都为1,则计算结果为1,否则,计算结果为0;或者,将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按求和运算规则计算得到所述当前子节点的上下文,以K2等于2举例说明或运算规则:b 1和b 0分别表示邻居子节点占用状态,若b 1与b 0都为0,则计算结果为0,若b 1与b 0都为1,则计算结果为2,否则,b 1与b 0不同,一个为0,一个为1,计算结果为1。
作为举例,按照莫顿偏移顺序确定当前子节点的7个邻居子节点的占用状态为二进制数(b 6b 5b 4b 3b 2b 1b 0),例如,图2中莫顿序号为21的子节点为当前子节点,将当前子节点作为偏移莫顿顺序下的第8个点,即偏移莫顿序号为7;当前子节点的偏移莫顿顺序下的前7个邻居子节点分别为偏移莫顿序号6、5、4、3、2、1、0的子节点,对应莫顿序号20、7、6、17、16、3、2所代表的子节点,占用信息为二进制数(b 6b 5b 4b 3b 2b 1b 0);偏移莫顿序下的第1、第2、第3个邻居子节点包含点云中的的点,即占用信息为占用,则(b 6b 5b 4)=(111);偏移莫顿顺序下的第4,第5,第6,第7个邻居子节点不存在,即占用信息为未占用,则(b 3b 2b 1b 0)=(0000)。将此7个邻居节点的占用信息表示为7比特二进制数(b 6b 5b 4b 3b 2b 1b 0)=(1110000),对应到十进制数112,作为当前子节点的上下文。
在一些实施方式中,当获取到所述当前子节点的上下文后,则根据所述当前子节点的上下文作为索引从多个上下文中选择二值符号概率;根据所述二值符号概率对所述点云几何码流进行算数解码,得到所述当前子节点的占用状态。进一步的,对被选择的上下文进行概率模型的更新。
在一些实施方式中,如图3所示,所述根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文的步骤还包括:
确定所述当前子节点在父节点中的位置编号;
根据所述当前子节点在父节点中的位置编号和所述当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息确定所述当前子节点的上下文。
本实施例中,将当前子节点在父节点中的位置进行编号,数值为0-7,如图4所示。通过将所述当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息左移3位,加上当前子节点在父节点中的位置编号,作为所述当前子节点的上下文。作为举例,图2中序号为21的子节点为当前子节点,在偏移莫顿顺序下的前K2个邻居子节点的占用信息为二进制数(1110000),在父节点中的位置编号为5,即二进制数(101),则当前子节点的上下文为二进制数(1110000101),即十进制数901。
在一些实施方式中,如图5,所述根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文的步骤还包括:
当所述前K2个邻居子节点的占用信息为不存在任何邻居子节点时:
确定所述当前子节点所属父节点的邻居节点的占用信息;
根据所述父邻居节点的占用信息确定所述当前子节点的上下文。
本实施例中,作为举例,图2中莫顿序号为21的子节点为当前子节点,K2为7,在偏移莫顿顺序下的前K2个邻居子节点的占用信息为二进制数(0000000),不存在任何邻居子节点,确定当前子节点所属父节点的三个邻居节点(x+1,y,z)、(x,y+1,z)、(x,y,z+1)的占用信息,第一个、第三个邻居节点为空,第二个邻居节点存在,顺序排列为二进制数(010),即十进制数2,作为所述当前子节点的上下文;或者,进一步加上偏移(1<<K2)即二进制数(10000000),得到二进制数(10000010),即十进制数130,作为所述当前子节点的上下文。
在一些实施方式中,如图6,所述根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文的步骤还包括:
当所述前K2个邻居子节点的占用信息为不存在任何邻居子节点时:
确定所述当前子节点所属父节点的邻居节点的占用信息;
确定所述当前子节点在父节点中的位置编号;
根据所述当前子节点所属父节点的邻居节点的占用信息和所述当前子节点在父节点中的位置编号确定所述当前子节点的上下文。
本实施例中,作为举例,图2中莫顿序号为21的子节点为当前子节点,K2为7,在偏移莫顿顺序下的前K2个邻居子节点的占用信息为二进制数(0000000),不存在任何邻居子节点,确定当前子节点所属父节点的三个邻居节点(x+1,y,z)、(x,y+1,z)、(x,y,z+1)的占用信息,第一个、第三个邻居节点为空,第二个邻居节点存在,顺序排列为;当前子节点在父节点中的位置编号为5,即二进制数(101);当前子节点所属父节点的邻二进制数(010)居节点的占用信息和所述当前子节点在父节点中的位置编号排列为二进制数(010101),即十进制数21,作为所述当前子节点的上下文;或者,进一步加上偏移(1<<K2)即二进制数(10000000),得到二进制数(10010101),即十进制数149,作为所述当前子节点的上下文。
基于上述点云几何解码方法,本发明还提供一种点云几何解码设备,如图7所示,其包括至少一个处理器(processor)20,存储器(memory)21,解码模块22和总线23。其中,处理器20、存储器21可以通过总线23完成相互间的通信。处理器20可以调用存储器21中的解码模块22,以执行上述实施例中的方法。
此外,上述的存储器21中的解码模块22作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。解码模块22可以包括存储在存储器21中的计算机程序或应用,并包括使处理器20执行如本文所述的操作的指令。
存储器21作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的解码模块22。处理器20通过运行存储在存储器21中的解码模块22,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器21可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器21可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及点云几何编码设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
在一些实施方式中,本发明还提供一种点云几何编码方法,所述点云定义在树结构中,所述树结构中有多个具有父子关系的节点,当前节点包括K个子节点,如图8所示, 其包括步骤:
S100、将当前子节点作为偏移莫顿顺序下的第K1个点,其中,K1为小于等于K的整数,K为大于1的整数;
S200、确定所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息,其中,K2为小于K1的整数;
S300、根据所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息确定所述当前子节点的上下文;
S400、根据所述当前子节点的上下文对所述当前子节点的占用状态进行熵编码。
本实施例中,在编码端执行所述步骤S100-S400实现所述点云的编码过程。具体来讲,以八叉树结构为例,按照偏移莫顿顺序,如图2所示,当前子节点的7个邻居节点的占用状态表示为7比特二进制数(0 6b 5b 4b 3b 2b 1b 0),对应到十进制数,作为当前编码子节点的上下文;根据所述当前子节点的上下文作为索引从多个上下文中选择二值符号概率;根据所述二值符号概率对所述当前子节点的占用状态进行算数编码,得到点云几何码流;将编码的当前子节点占用状态送入熵编码引擎中,对被选择的上下文进行概率模型的更新。例如,点云中点的几何位置用三维笛卡尔坐标(X,Y,Z)表示,用N比特来表示每个坐标值,第k个点的坐标(X k,Y k,Z k)可以表示成
Figure PCTCN2020093810-appb-000025
Figure PCTCN2020093810-appb-000026
Figure PCTCN2020093810-appb-000027
第k个点对应的莫顿码可以表示如下:
Figure PCTCN2020093810-appb-000028
将每三个比特用八进制数表示
Figure PCTCN2020093810-appb-000029
则第k个点对应的莫顿码可以表示成
Figure PCTCN2020093810-appb-000030
依据莫顿码,按照广度优先从根节点
Figure PCTCN2020093810-appb-000031
(第0层)构建几何K叉树,K为大于1的整数。作为举例,所述K可以为2、4或8等,也就是说,根据点云中点的几何位置可构建二叉树或者四叉树或者八叉树或者此三种的混合树结构,本实施例以构建八叉树为 例,具体来讲,首先将所有的点根据莫顿码的第N-1个八进制数,
Figure PCTCN2020093810-appb-000032
分到八个子节点中:所有
Figure PCTCN2020093810-appb-000033
的点分到第0个子节点
Figure PCTCN2020093810-appb-000034
中,所有
Figure PCTCN2020093810-appb-000035
的点分到第1个子节点
Figure PCTCN2020093810-appb-000036
中,依次类推,所有
Figure PCTCN2020093810-appb-000037
的点分到第7个子节点
Figure PCTCN2020093810-appb-000038
中则,八叉树第一层的节点由此八个节点构成。
八比特
Figure PCTCN2020093810-appb-000039
表示根节点
Figure PCTCN2020093810-appb-000040
的八个子节点是否被占用。如果
Figure PCTCN2020093810-appb-000041
至少包含点云中的一个点,其对应的比特b k=1;如果该子节点不包含任何点,b k=0。根据几何位置的莫顿码的第1个八进制数
Figure PCTCN2020093810-appb-000042
对第一层中被占用的节点
Figure PCTCN2020093810-appb-000043
进一步划分成八个子节点;并用八个比特
Figure PCTCN2020093810-appb-000044
表示其子节点的占用信息,其中,l n是被占用节点的序号,n=0,...,N 1-1,N 1表示第一层被占用的节点数。
Figure PCTCN2020093810-appb-000045
再根据几何位置的莫顿码中的第t个八进制数
Figure PCTCN2020093810-appb-000046
对第t=2,3,...,N-2层中被占用的节点进一步划分成八个子节点;并用八个比特
Figure PCTCN2020093810-appb-000047
表示将其子节点的占用信息,其中,l n是被占用节点的序号,n=0,...,N t-1,N t表示第t层被占用的节点数。对第t=N-1层,所有的节点成为叶节点,如果编码器配置允许重复点,需要在码流中记录每个被占用的叶节点上的重复点数。
在一些实施方式中,当所述几何树构建完成后,在每次树节点划分时,对于八叉树节点的空间占用码包含八个比特(b 7b 6b 5b 4b 3b 2b 1b 0),对于四叉树节点的空间占用码包含四个比特(b 3b 2b 1b 0),对于二叉树节点的空间占用码包含两个比特(b 1b 0)分别表示该节点的各个子节点占用的情况。
在一些实施方式中,按照Z轴、Y轴、X轴负方向依次偏移得到如图2所示的同级节点的偏移莫顿顺序(以数字升序表示顺序),其中虚框表示占用为空的父节点;将当前子节点作为偏移莫顿顺序下的第K1个点,确定所述当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息;根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文,其中,K1为小于等于K的整数,K2为小于K1的整数。以八叉树为例,因为偏移莫顿顺序下紧邻的子节点最多有7个,最少有0个,则所述K1的取值为1-8,K2的取值则为0-7。
基于上述点云几何编码方法,本发明还提供一种点云几何编码设备,如图9所示,其中,包括处理器、存储器、编码模块及总线;所述存储器上存储有可被所述处理器执行的计算机可读程序编码模块;所述总线实现处理器和存储器之间的连接通信;所述处 理器执行所述计算机可读程序时实现本发明所述的点云几何编码方法中的步骤。
为了验证本发明的效果,将本发明的点云几何编码方法、解码方法与测试平台PCEMv1的基准结果的性能进行对比。对于几何位置,在有限有损几何条件下,本发明的端到端率失真分别节约了17.9%、12.3%和39.7%,点到点的最大值分别节约了17.9%、12.2%和39.5%;在无损几何条件下,本发明的码率节约8.3%,4.5%,33.2%。
综上所述,与现有技术相比,本发明提供的点云几何编码方法和解码方法在点云几何压缩过程中,在对每个子节点的占用状态进行熵编码时,依据邻居子节点的占用信息确定上下文,更好地捕捉子节点之间的几何相关性,提高点云几何压缩的性能。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

  1. 一种点云几何解码方法,所述点云定义在树结构中,所述树结构中有多个具有父子关系的节点,当前节点包括K个子节点,其特征在于,包括步骤:
    将当前子节点作为偏移莫顿顺序下的第K1个点,其中,K1为小于等于K的整数,K为大于1的整数;
    确定所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息,其中,K2为小于K1的整数;
    根据所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息确定所述当前子节点的上下文;
    根据所述当前子节点的上下文对点云几何码流进行熵解码。
  2. 根据权利要求1所述的点云几何解码方法,其特征在于,所述根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文的步骤包括:
    确定所述当前子节点在父节点中的位置编号;
    根据所述当前子节点在父节点中的位置编号和所述当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息确定所述当前子节点的上下文。
  3. 根据权利要求1所述的点云几何解码方法,其特征在于,所述根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文的步骤包括:
    当所述前K2个邻居子节点的占用信息为不存在任何邻居子节点时:
    确定所述当前子节点所属父节点的邻居节点的占用信息;
    根据所述父节点的邻居节点的占用信息确定所述当前子节点的上下文。
  4. 根据权利要求1所述的点云几何解码方法,其特征在于,所述根据所述前K2个邻居子节点的占用信息确定所述当前子节点的上下文的步骤包括:
    当所述前K2个邻居子节点的占用信息为不存在任何邻居子节点时:
    确定所述当前子节点所属父节点的邻居节点的占用信息;
    确定所述当前子节点在父节点中的位置编号;
    根据所述当前子节点所属父节点的邻居节点的占用信息和所述当前子节点在父节点中的位置编号确定所述当前子节点的上下文。
  5. 根据权利要求1-4所述的点云几何解码方法,其特征在于,所述根据占用信息确定所述当前子节点的上下文的步骤包括:
    将所述占用信息按预定顺序排列得到所述当前子节点的上下文;
    或者,将所述占用信息按预定规则计算得到所述当前子节点的上下文。
  6. 根据权利要求5所述的点云几何解码方法,其特征在于,所述将所述占用信息按预定顺序排列得到所述当前子节点的上下文的步骤包括:
    将所述占用信息按莫顿顺序由小到大排列得到所述当前子节点的上下文;
    或者,将所述占用信息按莫顿顺序由大到小排列得到所述当前子节点的上下文;
    或者,将所述占用信息按共面共线顺序排列得到所述当前子节点的上下文。
  7. 根据权利要求5所述的点云几何解码方法,其特征在于,所述将所述占用信息按预定规则计算得到所述当前子节点的上下文的步骤包括:
    将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按或运算规则计算得到所述当前子节点的上下文;
    或者,将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按与运算规则计算得到所述当前子节点的上下文;
    或者,将当前子节点在偏移莫顿顺序下的前K2个邻居子节点的占用信息按求和运算规则计算得到所述当前子节点的上下文。
  8. 根据权利要求1所述的点云几何解码方法,其特征在于,所述根据所述当前子节点的上下文对点云几何码流进行熵解码的步骤包括:
    根据所述当前子节点的上下文作为索引从多个上下文中选择二值符号概率;
    根据所述二值符号概率对所述点云几何码流进行算数解码,得到所述当前子节点的占用状态。
  9. 一种点云几何解码设备,其特征在于,包括处理器、存储器、解码模块和总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
    所述总线实现处理器和存储器之间的连接通信;
    所述处理器用以调用所述存储器中的解码模块从而执行所述计算机可读程序时实现如权利要求1-8任意一项所述方法中的步骤。
  10. 一种点云几何编码方法,所述点云定义在树结构中,所述树结构中有多个具有父子关系的节点,当前节点包括K个子节点,其特征在于,包括步骤:
    将当前子节点作为偏移莫顿顺序下的第K1个点,其中,K1为小于等于K的整数,K为大于1的整数;
    确定所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息,其中,K2为小于K1的整数;
    根据所述当前子节点的偏移莫顿顺序下的前K2个邻居子节点的占用信息确定所述当前子节点的上下文;
    根据所述当前子节点的上下文对所述当前子节点的占用状态进行熵编码。
  11. 根据权利要求10所述的点云几何编码方法,其特征在于,所述根据所述当前子节点的上下文对所述当前子节点的占用状态行熵编码的步骤包括:
    根据所述当前子节点的上下文作为索引从多个上下文中选择二值符号概率;
    根据所述二值符号概率对所述当前子节点的占用状态进行算数编码,得到点云几何码流。
  12. 一种点云几何编码设备,其特征在于,包括处理器、存储器、编码模块和总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
    所述总线实现处理器和存储器之间的连接通信;
    所述处理器用于调用所述编码模块从而执行所述计算机可读程序时实现如权利要求10-11任意一项所述方法中的步骤。
PCT/CN2020/093810 2020-03-30 2020-06-01 一种点云几何编码方法、解码方法、编码设备及解码设备 WO2021196392A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010238176.6A CN113473127B (zh) 2020-03-30 2020-03-30 一种点云几何编码方法、解码方法、编码设备及解码设备
CN202010238176.6 2020-03-30

Publications (1)

Publication Number Publication Date
WO2021196392A1 true WO2021196392A1 (zh) 2021-10-07

Family

ID=77864947

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/093810 WO2021196392A1 (zh) 2020-03-30 2020-06-01 一种点云几何编码方法、解码方法、编码设备及解码设备

Country Status (2)

Country Link
CN (1) CN113473127B (zh)
WO (1) WO2021196392A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4242969A1 (en) * 2022-03-10 2023-09-13 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding occupancy information of a current node of a tree representing point cloud geometry data
WO2024065272A1 (zh) * 2022-09-28 2024-04-04 Oppo广东移动通信有限公司 点云编解码方法、装置、设备及存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116543060A (zh) * 2022-01-25 2023-08-04 华为技术有限公司 基于树结构划分的点云编码方法和装置
EP4220561A1 (en) * 2022-02-01 2023-08-02 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encoding/decoding a slice of point cloud data
WO2023197338A1 (zh) * 2022-04-16 2023-10-19 Oppo广东移动通信有限公司 索引确定方法、装置、解码器以及编码器
WO2024011417A1 (zh) * 2022-07-12 2024-01-18 Oppo广东移动通信有限公司 编解码方法、解码器、编码器及计算机可读存储介质
WO2024011472A1 (zh) * 2022-07-13 2024-01-18 Oppo广东移动通信有限公司 点云编解码方法、编解码器及计算机存储介质
WO2024103304A1 (zh) * 2022-11-16 2024-05-23 Oppo广东移动通信有限公司 点云编解码方法、编码器、解码器、码流及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190080483A1 (en) * 2017-09-14 2019-03-14 Apple Inc. Point Cloud Compression
CN109993839A (zh) * 2019-04-09 2019-07-09 北京大学深圳研究生院 一种自适应的点云条带划分方法
CN110418135A (zh) * 2019-08-05 2019-11-05 北京大学深圳研究生院 一种基于邻居的权重优化的点云帧内预测方法及设备
EP3579194A1 (en) * 2018-06-08 2019-12-11 My Virtual Reality Software AS Indexation of massive point cloud data for efficient visualization
CN110572655A (zh) * 2019-09-30 2019-12-13 北京大学深圳研究生院 一种基于邻居权重的参数选取和传递的点云属性编码和解码的方法及设备
CN110853129A (zh) * 2018-07-27 2020-02-28 索尼互动娱乐股份有限公司 泛洪填充的并行方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190080483A1 (en) * 2017-09-14 2019-03-14 Apple Inc. Point Cloud Compression
EP3579194A1 (en) * 2018-06-08 2019-12-11 My Virtual Reality Software AS Indexation of massive point cloud data for efficient visualization
CN110853129A (zh) * 2018-07-27 2020-02-28 索尼互动娱乐股份有限公司 泛洪填充的并行方法和装置
CN109993839A (zh) * 2019-04-09 2019-07-09 北京大学深圳研究生院 一种自适应的点云条带划分方法
CN110418135A (zh) * 2019-08-05 2019-11-05 北京大学深圳研究生院 一种基于邻居的权重优化的点云帧内预测方法及设备
CN110572655A (zh) * 2019-09-30 2019-12-13 北京大学深圳研究生院 一种基于邻居权重的参数选取和传递的点云属性编码和解码的方法及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4242969A1 (en) * 2022-03-10 2023-09-13 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding occupancy information of a current node of a tree representing point cloud geometry data
WO2024065272A1 (zh) * 2022-09-28 2024-04-04 Oppo广东移动通信有限公司 点云编解码方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113473127A (zh) 2021-10-01
CN113473127B (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
WO2021196392A1 (zh) 一种点云几何编码方法、解码方法、编码设备及解码设备
CN111145090B (zh) 一种点云属性编码方法、解码方法、编码设备及解码设备
CN111699696A (zh) 用于对字节流进行编码和解码的方法和设备
JP5456903B2 (ja) メッシュ・モデルを符号化する方法及び装置、符号化されたメッシュ・モデル、並びに、メッシュ・モデルを復号化する方法及び装置
CN104737165B (zh) 用于内存数据库查询处理的最优数据表示和辅助结构
CN111405281A (zh) 一种点云属性信息的编码方法、解码方法、存储介质及终端设备
Gurung et al. SQuad: Compact representation for triangle meshes
CN112822491A (zh) 一种图像数据的编码、解码方法及装置
CN111260784B (zh) 一种城市三维空间网格压缩编码方法、装置及终端设备
WO2021232251A1 (zh) 一种点云编解码方法、编码器、解码器及存储介质
CN110633262B (zh) 基于Spark的地图相交区域面积计算方法及系统
CN107565973B (zh) 一种结点可扩展的哈夫曼编码的实现方法及电路结构
CN110457317B (zh) 一种基于状态视图的Hilbert曲线编码和解码方法
WO2022147923A1 (zh) 一种面向空间数据的区块网安全组织存储映射方法
CN116227209A (zh) 一种点云数据多维线性差值方法、终端设备及存储介质
WO2021218509A1 (zh) 一种最近邻搜索方法、编码器、解码器及存储介质
CN112332854A (zh) 霍夫曼编码的硬件实现方法、装置及存储介质
CN112052228A (zh) 一种基于标准欧几里德空间与平面空间投影互为映射的二进制编码方法
CN115801024B (zh) 局部等距性优化球面格网的编码方法、系统、装置及介质
WO2021197238A1 (zh) 一种点云属性预测方法、编码方法、解码方法及其设备
CN108021678B (zh) 一种结构紧凑的键值对存储结构及快速键值对查找方法
CN113395506A (zh) 一种基于分段的点云邻居搜索方法、编码方法、解码方法及设备
CN114078170A (zh) 一种点云几何孤立点解码的方法与装置
CN117953175B (zh) 一种虚拟世界数据模型的构建方法、系统、设备及介质
WO2023169007A1 (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: 20928269

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20928269

Country of ref document: EP

Kind code of ref document: A1