Movatterモバイル変換


[0]ホーム

URL:


CN112384953A - Hybrid geometric decoding of point clouds - Google Patents

Hybrid geometric decoding of point clouds
Download PDF

Info

Publication number
CN112384953A
CN112384953ACN201980043393.5ACN201980043393ACN112384953ACN 112384953 ACN112384953 ACN 112384953ACN 201980043393 ACN201980043393 ACN 201980043393ACN 112384953 ACN112384953 ACN 112384953A
Authority
CN
China
Prior art keywords
node
decoding
parameter
bitstream
octree
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201980043393.5A
Other languages
Chinese (zh)
Other versions
CN112384953B (en
Inventor
弗莱德斯拉夫·扎克哈成科
比伦德拉·卡塔里亚
陈建乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co LtdfiledCriticalHuawei Technologies Co Ltd
Publication of CN112384953ApublicationCriticalpatent/CN112384953A/en
Application grantedgrantedCritical
Publication of CN112384953BpublicationCriticalpatent/CN112384953B/en
Activelegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Images

Classifications

Landscapes

Abstract

Translated fromChinese

一种装置,包括处理器和发射器,该处理器用于获得点云,在父节点的八叉树编码或四叉树编码之间进行选择,以及基于该选择将父节点编码成位流;该发射器耦合到处理器并且用于发送位流。一种装置,包括接收器和处理器,该接收器用于接收位流;该处理器耦合到接收器并且用于从位流中解析第一参数,该第一参数指示PCC的深度,使用八叉树解码对该深度之前的第一节点进行解码,从位流中解析第二参数,该第二参数指示该深度处以及该深度之后的第二节点的节点译码模式,以及基于第二参数对第二节点进行解码。

Figure 201980043393

an apparatus comprising a processor and a transmitter for obtaining a point cloud, selecting between octree encoding or quadtree encoding of a parent node, and encoding the parent node into a bitstream based on the selection; the A transmitter is coupled to the processor and is used to transmit the bit stream. An apparatus comprising a receiver and a processor for receiving a bitstream; the processor coupled to the receiver and for parsing a first parameter from the bitstream, the first parameter indicating the depth of a PCC, using an octal Tree decoding decodes the first node before the depth, parses a second parameter from the bitstream indicating the node decoding mode for the second node at and after the depth, and pairs based on the second parameter The second node decodes.

Figure 201980043393

Description

Hybrid geometric decoding of point clouds
Cross Reference to Related Applications
The present application claims priority from U.S. provisional patent application entitled "method and apparatus for point cloud coding using hybrid coding trees" filed on 25.6.2018, Futurewei Technologies, inc. under application number 62/689,666, the contents of which are incorporated herein by reference.
Technical Field
The disclosed embodiments relate generally to PCC and, more particularly, to hybrid geometric decoding of point clouds.
Background
Point clouds use a relatively large amount of data and therefore point cloud communications use a relatively large amount of bandwidth. However, many networks operate at or near their bandwidth capacity. In addition, customers require higher point cloud quality, which requires the use of even more data. Therefore, there is a need to reduce the amount of data used for point clouds and improve the point cloud quality. One solution is to compress the point cloud during encoding and decompress the point cloud during decoding.
Disclosure of Invention
A first aspect relates to an apparatus comprising a processor and a transmitter, the processor configured to obtain a point cloud, select between octree (octree) encoding or quadtree (quadtree) encoding of a parent node, and encode the parent node into a bit stream (bitstream) based on the selection; the transmitter is coupled to the processor and is for transmitting a bit stream.
In a first embodiment of the apparatus according to the first aspect, the octree coding is three-dimensional (3D).
In a second implementation of the apparatus according to the first aspect as such or any previous implementation of the first aspect, the octree coding uses eight cube (cube) child nodes.
In a third embodiment of the apparatus according to the first aspect as such or any previous embodiment of the first aspect, the quadtree coding is two-dimensional (2D).
In a fourth implementation of the apparatus according to the first aspect as such or any previous implementation of the first aspect, the quadtree encoding uses four square (square) sub-nodes.
In a fifth embodiment of the apparatus according to the first aspect as such or any of the previous embodiments of the first aspect, the processor is further configured to select further based on a flatness parameter (flatnessparameter).
In a sixth implementation of the apparatus according to the first aspect as such or any previous implementation of the first aspect, the processor is further configured to select further based on a rate distortion (rate distortion).
A second aspect relates to a method comprising: obtaining a point cloud; selecting between octree coding or quadtree coding of the parent node; encoding the parent node into a bitstream based on the selection; and transmitting the bit stream.
In a first embodiment of the method according to the second aspect, the octree coding is 3D.
In a second embodiment of the method according to the second aspect or any previous embodiment of the second aspect, the octree encoding uses eight cube child nodes.
In a third embodiment of the method according to the second aspect or any previous embodiment of the second aspect, the quadtree encoding is 2D.
In a fourth embodiment of the method according to the second aspect or any previous embodiment of the second aspect, the quadtree coding uses four square child nodes.
In a fifth embodiment of the method according to the second aspect or any previous embodiment of the second aspect, the method further selects based on the flatness parameter.
In a sixth implementation of the method according to the second aspect as such or any previous implementation of the second aspect, the method further comprises selecting further based on rate distortion.
A third aspect relates to an apparatus comprising a receiver for receiving a bitstream and a processor coupled to the receiver and configured to parse a first parameter from the bitstream, the first parameter indicating a depth of Point Cloud Coding (PCC), decode a first node before the depth using octree decoding, parse a second parameter from the bitstream, the second parameter indicating a node coding mode of a second node at and after the depth, and decode the second node based on the second parameter.
In a first embodiment of the apparatus according to the third aspect, the octree decoding is 3D and uses eight cube child nodes.
In a second embodiment of the apparatus according to the third aspect or any previous embodiment of the third aspect, the quadtree decoding is 2D and uses four square children nodes.
In a third implementation of the apparatus according to the third aspect as such or any previous implementation of the third aspect, the processor is further configured to further decode the first node and the second node until a level of detail (LoD) is reached.
A fourth aspect relates to a method, comprising: receiving a bit stream; parsing a first parameter from the bitstream, the first parameter indicating a depth of the PCC; decoding a first node before depth using octree decoding; parsing a second parameter from the bitstream, the second parameter indicating a node coding mode of a second node at and after the depth; the second node is decoded based on the second parameter.
A fifth aspect relates to an apparatus comprising processing means for obtaining a point cloud, selecting between octree coding or quadtree coding of a parent node, and encoding the parent node into a bitstream based on the selection, and transmitting means; the transmitting means is coupled to the processing means and is for transmitting the bit stream.
Any of the above embodiments may be combined with any other of the above embodiments to create a new embodiment. These and other features will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims.
Drawings
For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.
FIG. 1 is a schematic diagram of a decoding system.
Fig. 2 is a flow chart illustrating a simplified decoding method.
Fig. 3 is a flow diagram illustrating a hybrid geometry encoding method based on flatness constraints according to an embodiment of the present disclosure.
FIG. 4A is a schematic diagram of a parent node having points along a plane or substantially along a plane.
FIG. 4B is a schematic illustration of a parent node without points along a plane or substantially along a plane.
FIG. 5 is a flow chart illustrating a cost-based hybrid geometry encoding method in accordance with an embodiment of the present disclosure.
Fig. 6 is a hybrid geometry decoding method according to an embodiment of the present disclosure.
Fig. 7 is a flow chart illustrating a hybrid geometry encoding method according to an embodiment of the present disclosure.
Fig. 8 is a flow chart illustrating a hybrid geometry decoding method according to an embodiment of the present disclosure.
Fig. 9 is a schematic diagram of an apparatus according to an embodiment of the present disclosure.
FIG. 10 is a schematic diagram of a decoding apparatus.
Detailed Description
It should be understood at the outset that although illustrative implementations of one or more embodiments are provided below, the disclosed systems and/or methods may be implemented using any number of techniques, whether currently known or in existence. The present disclosure is not limited to the illustrative embodiments, drawings, and techniques shown below (including the exemplary designs and embodiments shown and described herein), but may be modified within the scope of the appended claims along with their full scope of equivalents.
The following abbreviations apply:
ASIC: application-specific integrated circuit
A CPU: central processing unit (central processing unit)
And (4) DSP: digital signal processor
EO: electric-to-optical (electro-optical)
FPGA: field-programmable gate array
LoD: level of detail level
OE: optical-to-electrical (photoelectric)
PCC: point closed coding (Point cloud decoding)
RAM: random-access memory (RAM)
RF: radio frequency (radio frequency)
ROM: read-only memory
RX: receiver unit
SRAM: static RAM (static RAM)
TCAM: ternary content-addressable memory (ternary content addressable memory)
TX: transmitter unit (transmitter unit)
2D: two dimension (two dimension)
3D: three-dimensional (three-dimensional)
Fig. 1 is a schematic diagram of adecoding system 100. Thedecoding system 100 includes asource device 110, a medium 150, and adestination device 160.
Thesource device 110 includes apoint cloud generator 120, anencoder 130, and anoutput interface 140. Thepoint cloud generator 120 is a component adapted to generate a point cloud. Theencoder 130 may be referred to as a decoder. Theencoder 130 performs encoding according to a set of rules.Output interface 140 is an antenna or another component adapted to transmit data todestination device 160. Alternatively, thepoint cloud generator 120, theencoder 130, and theoutput interface 140 are in a combination of devices.
The medium 150 is a local area network, a wireless network, the internet, or another suitable medium.Medium 150 transfers data betweensource device 110 anddestination device 160.
Destination device 160 includesinput interface 170,decoder 180, andprojector 190.Input interface 170 is an antenna or another component adapted to receive data fromsource device 110. Thedecoder 180 may also be referred to as a transcoder. Thedecoder 180 performs decoding according to a set of rules.Projector 190 is a component adapted to project a point cloud. Alternatively, theinput interface 170,decoder 180, andprojector 190 are in a combination of devices.
In operation, in thesource device 110, thepoint cloud generator 120 captures the point cloud, theencoder 130 encodes the point cloud to create an encoded point cloud, and theoutput interface 140 transmits the encoded point cloud to thedestination device 160 over the medium 150.Source device 110 may store the point cloud or encoded point cloud locally, orsource device 110 may instruct the point cloud or encoded point cloud to be stored on another device. In thedestination device 160, theinput interface 170 receives the encoded point cloud from thesource device 110, thedecoder 180 decodes the encoded point cloud to obtain a decoded point cloud, and theprojector 190 projects the decoded point cloud. Thedecoder 180 may decode the encoded point cloud in the reverse manner as compared to how theencoder 130 encodes the point cloud. Thedestination device 160 stores the encoded point cloud or the decoded point cloud locally, or thedestination device 160 instructs the encoded point cloud or the decoded point cloud to be stored on another device.
Thepoint cloud generator 120 may be a lidar, a conventional camera, an infrared camera, a time-of-flight camera, a laser system, a scanner, or other device that scans objects and generates a point cloud representing the objects. These objects may be vehicles and thus the point cloud may be 3D. The point cloud may include hundreds of thousands or millions of points. Thus, the point cloud requires encoding of a large amount of data and a large amount of bandwidth for communication. Therefore, there is a need for efficient transcoding and communication of point clouds.
Theencoder 130 anddecoder 180 perform PCC of the point cloud. PCC includes attribute transcoding and geometry transcoding. Decoding (coding) includes encoding (encoding) and decoding (decoding). Attribute coding codes attributes such as color, reflectivity, and transparency. Geometric decoding decodes the position of a point in space. Octree decoding is a type of geometric decoding.
The octal decoding starts from a father node, which is a 3D cube containing all points in the point cloud; dividing a father node into eight child nodes, wherein the child nodes are also 3D cubes; and repeating the above division until the desired endpoint. At each division, the divided node is a parent node, and the node into which the parent node is divided is a child node. Each parent node is decoded with eight bits, where each bit indicates whether the corresponding child node includes a point. Some parent nodes may have no points distributed in their 3D space. Rather, those parent nodes may have points along a plane or substantially along a plane. Therefore, it is inefficient to divide those parent nodes into eight child nodes.
Embodiments of hybrid geometric decoding of point clouds are disclosed herein. In this context, mixed geometric coding of point clouds includes 3D coding and 2D coding, such as octree coding and quadtree coding. Quadtree decoding starts from a parent node, which is a 3D cube; projecting points in the parent node onto a 2D plane; and divides the plane into four sub-nodes, which are 2D squares. The parent node is decoded with four bits, where each bit indicates whether the corresponding child node includes a point. Whether octree coding or quadtree coding is used is based on a flatness parameter, rate distortion, or other metric. Although mixed geometry decoding is discussed in connection with octree decoding and quadtree decoding, the embodiments are also applicable to other types of coding having different numbers of nodes. Furthermore, although flatness parameters and rate distortion are discussed, embodiments are also applicable to other metrics that make 2D coding more efficient while maintaining an acceptable level of quality.
Fig. 2 is a flow chart illustrating asimplified decoding method 200. Thedecoding system 100 implements themethod 200. Thesimplified decoding method 200 illustrates a portion of the decoding process. Thus, the transcoding process may include other steps, such as attribute transcoding.
Atstep 210,encoder 130 performs geometric encoding on the point cloud to obtain a first encoded bitstream. Step 210 is further described below with reference to fig. 3 and 5. Instep 220, theencoder 130 performs arithmetic encoding on the first encoded bitstream to obtain a second encoded bitstream. Instep 230, theoutput interface 140 sends a second encoded bitstream.
Atstep 240, theinput interface 170 receives a second encoded bitstream. Instep 250, thedecoder 180 performs arithmetic decoding on the second encoded bitstream to obtain a decoded bitstream. Finally, instep 260, thedecoder 180 performs geometric decoding on the first decoded bitstream to obtain a point cloud. Step 260 is further described below with reference to fig. 6.
Fig. 3 is a flow diagram illustrating amethod 300 of hybrid geometry coding based on flatness constraints in accordance with an embodiment of the disclosure.Method 300 may implementstep 210 in fig. 2. Instep 305, theencoder 130 calculates a feature value λ of the parent node1、λ2、λ3。λ1、λ2、λ3Forming orthogonal bases (x ', y ', z '), i.e. three orthogonal axes. (x ', y ', z ') is rotated relative to the global coordinate system (x, y, z). The included angle between (x, y, z) and (x ', y ', z ') is Rx、Ry、Rz. Instep 310,encoder 130 calculates the flatness parameter Θ of the parent node. Let λ be1、λ2、λ3Middle lambda3At a minimum, Θ is as follows:
Figure BDA0002860523580000041
atdecision 315,encoder 130 determines whether λ3<And theta. If so, the parent node has a point along a plane or substantially along a plane, and themethod 300 proceeds to step 320. If not, the parent node has no points along the plane or substantially along the plane, and themethod 300 proceeds to step 340.
FIG. 4A is a schematic diagram of aparent node 410 having points along a plane or substantially along a plane. Thus, for theparent node 410, themethod 300 will proceed to step 320. Fig. 4B is a schematic diagram of aparent node 420 without points along a plane or substantially along a plane. Thus, for theparent node 420, themethod 300 will proceed to step 340.
Returning to fig. 3, theencoder 130 sets the parent node as a quadtree node atstep 320. For example, theencoder 130 encodes node _ coding _ mode ═ 1. Instep 325, theencoder 130 calculates parameters of the plane. Specifically,encoder 130 determines that λ corresponds to3The feature vector of (2); a normal vector n corresponding to the feature vector; a normal vector n' corresponding to a parent node; and comparing n with n' to obtain the angle theta of the x direction and the angle theta of the y direction
Figure BDA0002860523580000051
Angle ψ in the z direction. Theencoder 130 uses theta,
Figure BDA0002860523580000052
Psi calculates a rotation set (R) having the following componentsx,Ry,Rz):
Figure BDA0002860523580000053
Figure BDA0002860523580000054
Figure BDA0002860523580000055
Theencoder 130 uses a centroid translation component (centroid translation component) tx、ty、tzThe translation matrix T is calculated as follows:
Figure BDA0002860523580000056
t shifts the origin from the center of the parent node to the center of the plane.Encoder 130 also calculates the size of one side of the plane as 2mWherein, m-QTNodeSizeLog 2 is based on NodeSizeLog2 and scale _ project io of parent point cloudn:
QTNodeSizeLog2=NodeSizeLog2
Or
QTNodeSizeLog2=NodeSizeLog2–1。 (4)
Atstep 330, theencoder 130 projects points in the point cloud onto a plane. Specifically, encoder 130 projects the points from the 3D (x, y, z) coordinate system to the 2D (u, v) coordinate system using (Rx, Ry, Rz) and T. Instep 335, theencoder 130 encodes the parent node into a quadtree node.
As a first alternative to projecting points onto a plane,encoder 130 uses the projection axis index and distance after making the rotation. In that case, theencoder 130 may make only three rotations of the points. As a second alternative to projecting points onto a plane,encoder 130 uses oblique projection without rotating to one of the child node surfaces. In that case,encoder 130 encodes a normal vector n (x, y, z), a distance d to the centroid of the plane, and a projection plane index. For example, the projection plane index is 00 for xy, 01 for xz, and 10 for yz. The projection plane may be the smallest plane of the projection normal, as follows:
min{nxy(x,y,0),nyz(0,y,z),nxz(x,0,z)} (5)
if the normal projection size is 0, the plane is parallel to the corresponding coordinate plane, and thus theencoder 130 may encode only the distance and the projection plane index. Thus, if no normal vector exists, the plane is parallel to the corresponding coordinate plane.
Instep 340, theencoder 130 sets the parent node as an octree node. Instep 345, theencoder 130 encodes the parent node into an octree node. Finally, atstep 350,encoder 130 generates a child node. When the parent node is a quadtree node, theencoder 130 calculates the center point of the child node as follows:
ChildQTNodeSizeLog2=QTNodeSizeLog2–1 (6)
when the parent node is an octree node,encoder 130 calculates the center point of the child node using standard octree coding.
Encoder 130 repeatsmethod 300 until a LoD is reached, which indicates a predefined maximum number of node partitions or splits. Onceencoder 130 sets the parent node as a quadtree node,encoder 130 encodes each subsequent child node, grandchild node, etc. into a quadtree node untilmethod 300 reaches LoD.
To reduce signaling,encoder 130 may assume octree encoding and performmethod 300, whichmethod 300 begins at a depth indicated by minquadtree depth, a depth indicated by maxquadtiesize log2, or where the number of points in the parent node is below a threshold. Theencoder 130 may encode minquadtree depth or maxquadtiesize log 2. Depth represents the number of node splits. If minQuadTreeDepth is 0, then quad-tree coding is not used.Encoder 130 may signal minquadtree depth or maxquadtree size log 2.
Fig. 5 is a flow diagram illustrating a cost-based hybridgeometry encoding method 500 in accordance with an embodiment of the present disclosure.Method 500 may implementstep 210 in fig. 2. Instep 505,encoder 130 calculates a cost C of octree decoding of the parent nodeO. Instep 510, theencoder 130 calculates a cost C of quadtree decoding of the parent nodeQ. Cost CO、CQIndicating rate distortion, flatness, or other measure of the points in the point cloud. Atdecision 515,encoder 130 determines whether CQ<CO. If so, the cost of quadtree decoding is low enough and themethod 500 proceeds to step 520. If not, then the cost of quadtree decoding is not low enough and themethod 500 proceeds to step 540. To reduce signaling,encoder 130 may assume octree coding and performmethod 500, whichmethod 500 begins where the depth indicated by minquadtree depth, the depth indicated by maxquadtiesize log2, or the number of points in the parent node is below a threshold.Encoder 130 may signal minquadtree depth or maxquadtree size log 2.Steps 520 through 550 are similar tosteps 320 through 350 of fig. 3.
Encoder 130 repeatsmethod 500 until it reaches LoD. Onceencoder 130 sets the parent node as a quadtree node,encoder 130 encodes each subsequent child node, grandchild node, etc. into a quadtree node untilmethod 300 reaches LoD.
To further implementstep 210 of fig. 2, which is further described inmethod 300 of fig. 3 andmethod 500 of fig. 5,encoder 130 may encode the following syntax into a geometric bitstream syntax:
Figure BDA0002860523580000061
TABLE 1 geometry bitstream syntax
bitstream _ size _ in _ bytes specifies the size of the compressed geometry bitstream in bytes. minquadtree depth specifies the minimum depth of the quadtree decomposition in the current point cloud. When minqautdreededepth is 0, the bitstream does not contain a quadtree node. If minQaudTreeDepth is not defined, it is 0.
GeometryNodeOccupanacyCnt [ depth ] [ xN ] [ yN ] [ zN ] represents the number of child nodes present in an octree node at a location (xN, yN, zN) of a given depth. The undefined geometrynodeucccupancnt value is considered to be 0. It is initialized as follows: GeometryNodeOccupanacyCnt [ -1] [0] [0] ═ 8.
NodeX [ depth ] [ nondeidx ], NodeY [ depth ] [ nondeidx ], NodeZ [ depth ] [ nondeidx ] represents the x, y, z coordinates of the idx-th node in decoding order at a given depth. It is initialized as follows: NodeX [0] ═ nody [0] ═ nodz [0] ═ 0. NumNodesAtDepth [ depth ] indicates the number of nodes to be decoded at a given depth. It is initialized as follows: NumNodesAtDepth [0] ═ 1.
Further,encoder 130 may encode the following syntax into a geometric node syntax:
Figure BDA0002860523580000071
Figure BDA0002860523580000081
TABLE 2. geometric node syntax
The node with the depth of MaxGeometryCodeTreeDepth is the last child node and can be called a leaf node. For quadtree decoding, the position of a node is given by the coordinates of its lower left corner position as (uN, vN). uPn and yvn indicate the location of the parent node of the node as follows:
uPn=uN>>1
vPn=vN>>1。 (7)
for octree coding, the position of a node is given by the coordinates of its lower left corner position as (xN, yN, zN). xPn, yPn, zPn indicate the location of the parent node of the node as follows:
xPn=xN>>1
yPn=yN>>1
zPn=zN>>1。 (8)
NodeSizeLog2 is derived as follows: NodeSizeLog2 is MaxGeometryOctreeDepth-depth. ChildNodeSizeLog2 is derived as follows: ChildNodeSizeLog2 ═ NodeSizeLog 2-1. NeighbourPattern was derived as follows:
NeighbourPattern=
((GeometryNodeOccupancyCnt[depth-1][xPn+1][yPn][zPn]!=0)<<0)
((GeometryNodeOccupancyCnt[depth-1][xPn-1][yPn][zPn]!=0)<<1)
((GeometryNodeOccupancyCnt[depth-1][xPn][yPn-1][zPn]!=0)<<2)
|((GeometryNodeOccupancyCnt[depth-1][xPn][yPn+1][zPn]!=0)<<3)
|((GeometryNodeOccupancyCnt[depth-1][xPn][yPn][zPn-1]!=0)<<4)
|((GeometryNodeOccupancyCnt[depth-1][xPn][yPn][zPn+1]!=0)<<5)。
for quadtree coding, the neighbor mode is assumed to be a null node. single _ occupancy _ flag 1 indicates that the node contains a single child node. A single _ occupancy _ flag of 0 indicates that the node may contain multiple child nodes. The occupancy _ idx identifies a single child node present in the parent node. If so, OccupancyMap is set equal to 1< < occupancy _ idx. The occupancy _ map is a bitmap that identifies child nodes present in the parent node. If so, the OccupanceMap is set equal to the output of the geometric occupancy map replacement process when NeighbourPattern and occupancy _ map are called as inputs. For quadtree decoding, the occupancy _ map has a maximum of four input elements. For octree decoding, the occupancy _ map has a maximum of eight input elements. The array GeometryNodeChildren [ i ] identifies the index of the ith occupied child node of the parent node. GeometryNodeChildrenCnt identifies the number of child nodes in the array GeometryNodeChildren [ ]. For octree coding, a parent node may have one to eight child nodes. For quadtree coding, a parent node may have one to four child nodes.
When either occupancy _ idx or occupancy _ map is present, the following conditions apply:
Figure BDA0002860523580000091
the directmodeflag present is derived as follows:
directmodeflag present is 1 when all of the following conditions are true:
inferred_direct_coding_mode_enabled_flag=1
NodeSizeLog2>1
GeometryNodeOccupancyCnt[depth-1][xPn][yPn][zPn]≤2
GeometryNodeOccupancyCnt[depth][xN][yN][zN]=1
otherwise, DirectModeFlagPresent is 0.
num _ points _ eq _1_ flag 1 indicates that the current child node includes a single point. num _ points _ eq _1_ flag ═ 0 indicates that the child node includes at least two points. If not, num _ points _ eq _1_ flag is inferred to be 1. num _ points _ minus2 indicates the number of points represented by a child node. direct _ mode _ flag 1 indicates that a single child node of the parent node is a leaf node and contains one or more delta point coordinates (delta point coordinates). direct _ mode _ flag-0 indicates that the single child node of the parent node is an octree node. If not, direct _ mode _ flag is inferred to be 0.
When direct _ mode _ flag is equal to 1, the following condition applies: GeometryNodeOccupanacyCnt [ depth ] [ xN ] [ yN ] [ zN ] ═ 0. When direct _ mode _ flag is equal to 0, the following condition applies:
Figure BDA0002860523580000092
num _ direct _ points _ minus1 indicates the number of points in the child node. Point _ rem _ x [ i ] [ j ], point _ rem _ y [ i ] [ j ], point _ rem _ z [ i ] [ j ] indicate the j-th bit of the corresponding x, y, z coordinate of the ith point of the current child node relative to the origin of the child node identified by the index GeometryNodeChildren [0 ].
Fig. 6 is a hybridgeometry decoding method 600 according to an embodiment of the disclosure.Method 600 may implementstep 260 in fig. 2. Atdecision 610, thedecoder 180 determines whether minquadtree depth is 0. If so, themethod 600 proceeds to step 620. If not,method 600 proceeds todecision 630. Alternatively, once thedecoder 180 reaches a depth where the number of points in the parent node is below the threshold, thedecoder 180 may proceed to step 620. Instep 620, thedecoder 180 decodes the current node as an octree node. Thedecoder 180 repeats step 620 until LoD is reached.
Atdecision 630, thedecoder 180 determines whether the node _ coding _ mode is 0. If so, themethod 600 proceeds to step 640. If not, the method proceeds to step 650. Instep 640, thedecoder 180 decodes the current node as an octree node. Further, if the current node is an octree node and its parent node is also an octree node, thedecoder 180 may not read additional information from the bitstream. Instep 650, thedecoder 180 decodes the current node as a quadtree node. If the current node is a quadtree node and its parent node is an octree node, thedecoder 180 reads a scale parameter (scale parameter), an offset parameter (mean _ value _ x, mean _ value _ y, mean _ value _ z), and a normal parameter (normal parameter) (projection _ rot _ x, projection _ rot _ y, projection _ rot _ z) from the bitstream, and thedecoder 180 applies an inverse scale parameter (scale _ projection) to project the point onto the plane. If the current node is a quadtree node and its parent node is also a quadtree node, thedecoder 180 reads a scale parameter, offset parameters (mean _ value _ x, mean _ value _ y, mean _ value _ z), and normal parameters (project _ rot _ x, project _ rot _ y, animation _ rot _ z) inherited from the parent node from the bitstream, and thedecoder 180 projects the point onto the plane using an inverse scale parameter (scale _ project). Thedecoder 180 repeats thedecision 630 to proceed to step 640 and repeatssteps 640 through 650 until it reaches LoD.
Fig. 7 is a flow diagram illustrating a hybridgeometry encoding method 700 according to an embodiment of the present disclosure.Source device 110implements method 700. Atstep 710, a point cloud is obtained. For example, thepoint cloud generator 120 records a point cloud. At step 720, a selection is made between octree coding or quadtree coding of the parent node. For example,encoder 130 makesdecision 315 in fig. 3 ordecision 515 in fig. 5. Atstep 730, the parent node is encoded into a bitstream based on the selection. For example,encoder 130 performsstep 335 or step 345 in fig. 3, or performsstep 535 or step 545 in fig. 5. Finally, instep 740, the bit stream is transmitted. For example, theoutput interface 140 sends the bitstream to thedestination device 160 through the medium 150.
Fig. 8 is a flow chart illustrating a hybridgeometry decoding method 800 according to an embodiment of the present disclosure.Destination device 160implements method 800. Atstep 810, a bitstream is received. For example,input interface 170 receives a bitstream fromsource device 110. Atstep 820, a first parameter is parsed from the bitstream, the first parameter indicating a depth of the PCC. For example, thedecoder 180 parses minquadtree depth from the bitstream. Atstep 830, the first node before the depth is decoded using octree decoding. For example, after the result ofdecision 610 in fig. 6 is yes, thedecoder 180 performsstep 620. Atstep 840, a second parameter is parsed from the bitstream, the second parameter indicating a node decoding mode of a second node at and after the depth. For example, thedecoder 180 parses the node _ coding _ mode from the bitstream. Finally, atstep 850, the second node is decoded based on the second parameter. For example, thedecoder 180 performsstep 640 or step 650 in fig. 6.
Fig. 9 is a schematic diagram of anapparatus 900 according to an embodiment of the present disclosure.Apparatus 900 may implement the disclosed embodiments.Apparatus 900 includesingress port 910 andRX 920 for receiving data; a processor, logic unit, baseband unit, orCPU 930 for processing data;TX 940 andegress port 950 for transmitting data; amemory 960 for storing data. Theapparatus 900 may also include OE components, EO components, or RF components coupled to theingress ports 910,RX 920,TX 940, andegress ports 950 to provide ingress or egress of optical signals, electrical signals, or RF signals.
Processor 930 is any combination of hardware, middleware, firmware, or software.Processor 930 includes any combination of one or more CPU chips, cores, FPGAs, ASICs, or DSPs. Theprocessor 930 is in communication with theingress port 910, theRX 920, theTX 940, theegress port 950, and thememory 960.Processor 930 includes a hybridgeometry decoding component 970, wheregeometry decoding component 970 implements disclosed embodiments. Thus, the inclusion of hybridgeometry decoding component 970 provides a substantial improvement to the functionality ofdevice 900 and enables the transition ofdevice 900 to different states. Alternatively,memory 960 stores hybridgeometry decoding component 970 as instructions andprocessor 930 executes those instructions.
Memory 960 includes any combination of disks, tape drives, or solid state drives.Apparatus 900 may usememory 960 as an overflow data store to store programs to be executed when selected byapparatus 900, and to store instructions and data read byapparatus 900 during execution of those programs, e.g., as a computer program product.Memory 960 can be volatile or non-volatile, and can be any combination of ROM, RAM, TCAM, or SRAM.
A computer program product may include computer-executable instructions stored on a non-transitory medium (e.g., memory 960) that, when executed by a processor (e.g., processor 930), cause an apparatus to perform any of the embodiments.
Fig. 10 is a schematic diagram of adecoding apparatus 1000. In an embodiment, thecoding apparatus 1000 is implemented in the PCC device 1002 (e.g., theencoder 130 or the decoder 180). ThePCC device 1002 includes a receiving means 1001. Thereceiving device 1001 is used for receiving an image to be encoded or receiving a bitstream to be decoded. ThePCC device 1002 includes atransmitting apparatus 1007 coupled to thereceiving apparatus 1001. Thetransmitting device 1007 is used to send a bitstream to a decoder or a decoded image to a display device.
PCC device 1002 includes astorage 1003. Thestorage device 1003 is coupled to at least one of thereceiving device 1001 or thetransmitting device 1007. Thestorage device 1003 is used to store instructions.PCC device 1002 also includes aprocessing apparatus 1005. Theprocessing device 1005 is coupled to thestorage device 1003.Processing device 1005 is used to execute instructions stored instorage device 1003 to perform the methods disclosed herein.
While various embodiments have been provided in the present disclosure, it can be understood that the disclosed systems and methods can be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein. For example, various elements or components may be combined or integrated in another system or certain features may be omitted, or not implemented.
Moreover, techniques, systems, subsystems, and methods described and illustrated in the various embodiments as discrete or separate may be combined or integrated with other systems, components, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as coupled may be directly coupled or may be indirectly coupled or communicating through some interface, device, or intermediate component, whether electrically, mechanically, or otherwise. Other examples of changes, substitutions, and alterations are ascertainable by one skilled in the art and could be made without departing from the spirit and scope disclosed herein.

Claims (20)

1. An apparatus, comprising:
a processor to:
a point cloud is obtained and,
selecting between octree coding or quadtree coding of parent nodes, an
Encoding the parent node into a bitstream based on the selection; and
a transmitter coupled to the processor and configured to transmit the bit stream.
2. The apparatus of claim 1, wherein the octree encoding is three-dimensional (3D).
3. The apparatus of claim 2, wherein the octree encoding uses eight cube child nodes.
4. The apparatus of claim 1, wherein the quadtree encoding is two-dimensional (2D).
5. The apparatus of claim 4, wherein the quadtree encoding uses four square children nodes.
6. The apparatus of claim 1, wherein the processor is further configured to make the selection based further on a flatness parameter.
7. The apparatus of claim 1, wherein the processor is further configured to make the selection further based on rate distortion.
8. A method, comprising:
obtaining a point cloud;
selecting between octree coding or quadtree coding of the parent node;
encoding the parent node into a bitstream based on the selection; and
the bitstream is transmitted.
9. The method of claim 8, wherein the octree encoding is three-dimensional (3D).
10. The method of claim 9, wherein the octree encoding uses eight cube child nodes.
11. The method of claim 8, wherein the quadtree encoding is two-dimensional (2D).
12. The method of claim 11, wherein the quadtree encoding uses four square children.
13. The method of claim 8, further comprising making the selection further based on a flatness parameter.
14. The method of claim 8, further comprising making the selection further based on rate distortion.
15. An apparatus, comprising:
a receiver for receiving a bit stream; and
a processor coupled to the receiver and configured to:
parse a first parameter from the bitstream, the first parameter indicative of a depth of Point Cloud Coding (PCC),
decoding a first node before the depth using octree decoding,
parsing a second parameter from the bitstream, the second parameter indicating a node coding mode of a second node at and after the depth, an
Decoding the second node based on the second parameter.
16. The apparatus of claim 15, wherein the octree decoding is three-dimensional (3D) and uses eight cube child nodes.
17. The apparatus of claim 15, wherein the quadtree decoding is two-dimensional and uses four square children.
18. The apparatus of claim 15, wherein the processor is further configured to further decode the first node and the second node until a level of detail (LoD) is reached.
19. A method, comprising:
receiving a bit stream;
parse a first parameter from the bitstream, the first parameter indicating a depth of Point Cloud Coding (PCC);
decoding a first node before the depth using octree decoding;
parsing a second parameter from the bitstream, the second parameter indicating a node coding mode of a second node at and after the depth;
decoding the second node based on the second parameter.
20. An apparatus, comprising:
processing means for:
a point cloud is obtained and,
selecting between octree coding or quadtree coding of parent nodes, an
Encoding the parent node into a bitstream based on the selection; and
transmitting means coupled to the processing means and for transmitting the bit stream.
CN201980043393.5A2018-06-252019-06-25 Hybrid geometry decoding of point cloudsActiveCN112384953B (en)

Applications Claiming Priority (3)

Application NumberPriority DateFiling DateTitle
US201862689666P2018-06-252018-06-25
US62/689,6662018-06-25
PCT/US2019/039031WO2020005975A1 (en)2018-06-252019-06-25Hybrid geometric coding of point clouds

Publications (2)

Publication NumberPublication Date
CN112384953Atrue CN112384953A (en)2021-02-19
CN112384953B CN112384953B (en)2024-05-14

Family

ID=68987118

Family Applications (1)

Application NumberTitlePriority DateFiling Date
CN201980043393.5AActiveCN112384953B (en)2018-06-252019-06-25 Hybrid geometry decoding of point clouds

Country Status (9)

CountryLink
US (1)US12175715B2 (en)
EP (1)EP3803798B1 (en)
JP (1)JP7183309B2 (en)
KR (1)KR102486255B1 (en)
CN (1)CN112384953B (en)
BR (1)BR112020026567A2 (en)
MX (1)MX2020014247A (en)
SG (1)SG11202012837QA (en)
WO (1)WO2020005975A1 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
JP7322020B2 (en)*2018-06-272023-08-07パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
CN113168719A (en)*2018-12-072021-07-23松下电器(美国)知识产权公司 Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device and three-dimensional data decoding device
CA3134855A1 (en)*2019-06-262020-12-30Tencent America LLCImplicit quadtree or binary-tree geometry partition for point cloud coding
WO2021045601A1 (en)*2019-09-052021-03-11엘지전자 주식회사Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11503870B2 (en)*2019-09-122022-11-22Adobe Inc.Pattern filling in garment pieces
US11223836B2 (en)*2019-12-022022-01-11Tencent America LLCMethod and apparatus for point cloud coding
US11475605B2 (en)2020-01-092022-10-18Apple Inc.Geometry encoding of duplicate points
CN113812164B (en)*2020-04-142024-06-18北京小米移动软件有限公司Method and device for processing point cloud
CN114241026B (en)*2021-12-312025-01-24西安邮电大学 Point cloud simplification algorithm and device based on flatness division
WO2024044082A2 (en)*2022-08-232024-02-29Innopeak Technology, Inc.Decoding method, encoding method, decoder and endoder

Citations (7)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
EP0152741A2 (en)*1984-01-121985-08-28Octree CorporationHigh-speed image generation of complex solid objects using octree encoding
CA2413056A1 (en)*2001-11-272003-05-27Samsung Electronics Co., Ltd.Apparatus and method for depth image-based representation of 3-dimensional object
US20050180340A1 (en)*2004-02-172005-08-18Samsung Electronics Co., Ltd.Method, medium and apparatus for encoding and decoding 3D data
US20120176381A1 (en)*2001-11-272012-07-12Samsung Electronics Co., Ltd.Apparatus and method for depth image-based representation of 3-dimensional object
WO2014000160A1 (en)*2012-06-262014-01-03Intel CorporationInter-layer coding unit quadtree pattern prediction
CN103918009A (en)*2011-11-072014-07-09汤姆逊许可公司Predictive position encoding
CN107993279A (en)*2017-11-032018-05-04中国人民解放军陆军工程大学Scene accurate expression method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US7002571B2 (en)2002-06-042006-02-21Intel CorporationGrid-based loose octree for spatial partitioning
CN1681330B (en)2004-03-082010-07-21三星电子株式会社 Adaptive 2n-fork tree generation method, 3D volume data encoding and decoding method and device
US8169434B2 (en)2008-09-292012-05-01Microsoft CorporationOctree construction on graphics processing units
AU2014201583A1 (en)*2014-03-142015-10-01Canon Kabushiki KaishaMethod, apparatus and system for encoding and decoding video data using a block dictionary
EP2933777A1 (en)*2014-04-172015-10-21amberMindThree dimensional modeling
US10535161B2 (en)*2017-11-092020-01-14Samsung Electronics Co., Ltd.Point cloud compression using non-orthogonal projection

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
EP0152741A2 (en)*1984-01-121985-08-28Octree CorporationHigh-speed image generation of complex solid objects using octree encoding
US4694404A (en)*1984-01-121987-09-15Key Bank N.A.High-speed image generation of complex solid objects using octree encoding
CA2413056A1 (en)*2001-11-272003-05-27Samsung Electronics Co., Ltd.Apparatus and method for depth image-based representation of 3-dimensional object
US20120176381A1 (en)*2001-11-272012-07-12Samsung Electronics Co., Ltd.Apparatus and method for depth image-based representation of 3-dimensional object
US20050180340A1 (en)*2004-02-172005-08-18Samsung Electronics Co., Ltd.Method, medium and apparatus for encoding and decoding 3D data
CN1684109A (en)*2004-02-172005-10-19三星电子株式会社 Method and apparatus for encoding and decoding three-dimensional data
CN103918009A (en)*2011-11-072014-07-09汤姆逊许可公司Predictive position encoding
WO2014000160A1 (en)*2012-06-262014-01-03Intel CorporationInter-layer coding unit quadtree pattern prediction
CN107993279A (en)*2017-11-032018-05-04中国人民解放军陆军工程大学Scene accurate expression method

Also Published As

Publication numberPublication date
US20210104077A1 (en)2021-04-08
JP7183309B2 (en)2022-12-05
CN112384953B (en)2024-05-14
US12175715B2 (en)2024-12-24
JP2021530143A (en)2021-11-04
MX2020014247A (en)2021-05-12
WO2020005975A1 (en)2020-01-02
EP3803798A1 (en)2021-04-14
KR20210019555A (en)2021-02-22
EP3803798A4 (en)2021-08-18
KR102486255B1 (en)2023-01-06
EP3803798B1 (en)2024-01-24
SG11202012837QA (en)2021-01-28
BR112020026567A2 (en)2021-03-23

Similar Documents

PublicationPublication DateTitle
CN112384953A (en)Hybrid geometric decoding of point clouds
US20210407144A1 (en)Attribute parameter coding for geometry-based point cloud compression
US20210314616A1 (en)Predictor index signaling for predicting transform in geometry-based point cloud compression
US12412311B2 (en)High level syntax refinements for geometry point cloud compression (G-PCC)
TWI888586B (en)Scale factor for quantization parameter values in geometry-based point cloud compression
US11729428B2 (en)Temporal scalability in geometry point cloud compression (G-PCC)
TW202333112A (en)Inter prediction coding with radius interpolation for predictive geometry-based point cloud compression
EP4071718A1 (en)Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
CN117581541A (en)Point cloud data transmitting device, point cloud data transmitting method, point cloud data receiving device and point cloud data receiving method
WO2022134753A1 (en)Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
US20240244242A1 (en)Reduced Memory Coding
US20250113033A1 (en)Method and apparatus of encoding/decoding a slice of point cloud data
US20240404117A1 (en)Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
KR102852170B1 (en) Method and device for encoding/decoding point cloud geometry data detected by at least one sensor
US20240233197A9 (en)Enhanced Edge Neighborhood for Coding Vertex Information
US12439084B2 (en)Method and apparatus of encoding/decoding point cloud captured by a spinning sensors head
EP4583055A1 (en)Neighbor-based coding of point cloud geometry information
WO2025080820A1 (en)Refining trisoup triangles representing a point cloud geometry
WO2024059232A1 (en)Point cloud decoding method, point cloud encoding method, decoder and encoder
WO2024138172A1 (en)Motion compensation based neighborhood configuration for trisoup centroid information

Legal Events

DateCodeTitleDescription
PB01Publication
PB01Publication
SE01Entry into force of request for substantive examination
SE01Entry into force of request for substantive examination
GR01Patent grant
GR01Patent grant

[8]ページ先頭

©2009-2025 Movatter.jp