WO2024176931A1 - 符号化方法、復号方法、符号化装置及び復号装置 - Google Patents
符号化方法、復号方法、符号化装置及び復号装置 Download PDFInfo
- Publication number
- WO2024176931A1 WO2024176931A1 PCT/JP2024/005179 JP2024005179W WO2024176931A1 WO 2024176931 A1 WO2024176931 A1 WO 2024176931A1 JP 2024005179 W JP2024005179 W JP 2024005179W WO 2024176931 A1 WO2024176931 A1 WO 2024176931A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- vertex
- edge
- vertices
- face
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 250
- 238000010586 diagram Methods 0.000 description 52
- 239000013598 vector Substances 0.000 description 12
- 230000001172 regenerating effect Effects 0.000 description 9
- 230000000295 complement effect Effects 0.000 description 7
- 230000008929 regeneration Effects 0.000 description 4
- 238000011069 regeneration method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 238000002834 transmittance Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
Definitions
- This disclosure relates to an encoding method, a decoding method, an encoding device, and a decoding device.
- 3D data can be acquired in a variety of ways, including distance sensors such as range finders, stereo cameras, or a combination of multiple monocular cameras.
- One method of expressing three-dimensional data is a method called a point cloud, which uses a group of points in three-dimensional space to represent the shape of a three-dimensional structure.
- a point cloud In a point cloud, the position and color of the point cloud are stored.
- Point clouds are expected to become the mainstream method of expressing three-dimensional data, but point clouds have a very large amount of data. Therefore, when storing or transmitting three-dimensional data, it is essential to compress the amount of data by encoding, just as with two-dimensional moving images (examples include MPEG-4 AVC or HEVC standardized by MPEG).
- Patent Document 1 There is also known technology that uses three-dimensional map data to search for and display facilities located around a vehicle (see, for example, Patent Document 1).
- lossy compression methods may be used as the encoding method.
- the decoded point cloud does not completely match the original point cloud. Therefore, it is desirable to improve the reproducibility of the decoded point cloud.
- the present disclosure aims to provide an encoding method, a decoding method, an encoding device, or a decoding device that can improve the reproducibility of a decoded point cloud.
- An encoding method is an encoding method for encoding a plurality of three-dimensional points, which determines whether four first edge vertices have been generated on each of the four first edges of a first face of a first node, and encodes the plurality of three-dimensional points based on the result of the determination, the four first edge vertices are used in a trisorp method, and the first node is a unit for storing a plurality of three-dimensional points included in an octree structure.
- a decoding method is a decoding method for decoding a plurality of three-dimensional points, which generates a plurality of first edge vertices on a plurality of first edges of the first node that are parallel to each other by decoding a plurality of encoded first edge vertices in the first node, and if the number of the plurality of first edge vertices is less than four, uses the positions of the plurality of first edge vertices to estimate the positions of one or two second edge vertices on one or two second edges other than the plurality of first edges and parallel to the plurality of first edges, the plurality of first edge vertices and the one or two second edge vertices are used in a trisorp method, and the first node is a unit for storing a plurality of three-dimensional points included in an octree structure.
- a decoding method is a decoding method for decoding a plurality of three-dimensional points, which includes determining whether a first face of a first node is parallel to a cross section of the first node, and decoding the encoded plurality of three-dimensional points based on the result of the determination, the first face having four sides on which four edge vertices are respectively arranged, the cross section passing through a first centroid vertex of the first node, the cross section being defined by two sets of face vertex pairs, each of the two sets of face vertex pairs being arranged on a second face perpendicular to the first face, a line connecting the first centroid vertex and a second centroid vertex of a second node adjacent to the first node intersects with a face vertex of the second face, the first centroid vertex, the second centroid vertex, and the four edge vertices are used in a tri-sort method, and the first node is a unit for storing a plurality of three-dimensional points
- the present disclosure provides an encoding method, a decoding method, an encoding device, or a decoding device that can improve the reproducibility of a decoded point cloud.
- FIG. 1 is a diagram showing an example of an original point group according to the first embodiment.
- FIG. 2 is a diagram showing an example of a pruned octree according to the first embodiment.
- FIG. 3 is a diagram showing an example of a two-dimensional display of leaf nodes according to the first embodiment.
- FIG. 4 is a diagram for explaining a method of generating a centroid vertex according to the first embodiment.
- FIG. 5 is a diagram for explaining a method of generating a centroid vertex according to the first embodiment.
- FIG. 6 is a diagram showing an example of vertex information according to the first embodiment.
- FIG. 7 is a diagram showing an example of a TriSoap surface according to the first embodiment.
- FIG. 8 is a diagram for explaining the point cloud restoration process according to the first embodiment.
- FIG. 9 is a diagram showing an example of a point cloud according to the first embodiment.
- FIG. 10 is a diagram illustrating an example of generating centroid vertices according to the first embodiment.
- FIG. 11 is a diagram showing an example of generation of a triangle (trithorpe surface) according to the first embodiment.
- FIG. 12 is a diagram illustrating an example of generating face vertices according to the first embodiment.
- FIG. 13 is a diagram showing an example of generating edge vertices and centroid vertices according to the first embodiment.
- FIG. 14 is a diagram for explaining the edge apex correction method according to the first embodiment.
- FIG. 15 is a diagram for explaining another method of correcting an edge apex according to the first embodiment.
- FIG. 16 is a diagram illustrating an example of a plurality of vertices according to the first embodiment.
- FIG. 17 is a diagram illustrating an example of vertices generated at four nodes according to the first embodiment.
- FIG. 18 is a diagram illustrating an example of vertices generated at four nodes according to the first embodiment.
- FIG. 19 is a diagram illustrating an example of vertices generated at four nodes according to the first embodiment.
- FIG. 20 is a diagram showing information dependency in the restoration of vertex coordinates according to the first embodiment.
- FIG. 21 is a diagram illustrating an example of vertices generated at four nodes according to the first embodiment.
- FIG. 22 is a flowchart of the decoding process according to the first embodiment.
- FIG. 22 is a flowchart of the decoding process according to the first embodiment.
- FIG. 23 is a flowchart of a process for generating a plurality of triangles according to the first embodiment.
- FIG. 24 is a diagram illustrating an example of generation of edge vertices and centroid vertices according to the second embodiment.
- FIG. 25 is a diagram showing an example of a reconstructed surface according to the second embodiment.
- FIG. 26 is a diagram illustrating an example of generating centroid vertices and edge vertices according to the second embodiment.
- FIG. 27 is a diagram showing an example of a reconstructed surface according to the second embodiment.
- FIG. 28 is a diagram showing an example of generating centroid vertices, edge vertices, and face vertices according to the second embodiment.
- FIG. 24 is a diagram illustrating an example of generation of edge vertices and centroid vertices according to the second embodiment.
- FIG. 25 is a diagram showing an example of a reconstructed surface according to the second embodiment.
- FIG. 26 is a
- FIG. 29 is a diagram showing an example of generating centroid vertices, edge vertices, and face vertices according to the second embodiment.
- FIG. 30 is a flowchart of the encoding process according to the second embodiment.
- FIG. 31 is a flowchart of edge vertex regeneration processing according to the second embodiment.
- FIG. 32 is a flowchart of the encoding process and the decoding process according to the second embodiment.
- FIG. 33 is a flowchart of an edge vertex adding process according to the second embodiment.
- FIG. 34 is a flowchart of a decoding process according to the embodiment.
- FIG. 35 is a block diagram of a decoding device according to an embodiment.
- FIG. 36 is a flowchart of the encoding process according to the embodiment.
- FIG. 37 is a block diagram of an encoding device according to an embodiment.
- An encoding method is an encoding method for encoding a plurality of three-dimensional points, which determines whether four first edge vertices have been generated on each of the four first edges of a first face of a first node, and encodes the plurality of three-dimensional points based on the result of the determination, the four first edge vertices are used in a trisorp method, and the first node is a unit for storing a plurality of three-dimensional points included in an octree structure.
- the encoding method can determine whether or not the first edge vertices have been generated correctly, for example, based on whether four first edge vertices have been generated on each of the four first edges of the first face. Specifically, when first edge vertices have been generated on all first edges, there is a possibility that edge vertices for restoring the original point cloud have not been generated correctly. This allows the encoding method to improve the reproducibility of the point cloud decoded in the decoding device, for example, by performing encoding processing according to the determination result.
- the encoding processing according to the determination result can, for example, correct the edge vertex positions as described below, or not generate edge vertices.
- the encoding method may further include performing at least one of a first process and a second process when the four first edge vertices are generated on the four first edges, and in the first process, generating a plurality of second edge vertices on the plurality of second edges of the first node that are perpendicular to the first face, and in the second process, increasing a threshold for edge vertex generation that is compared with distances between the plurality of three-dimensional points and the edges.
- the encoding method can generate a correct edge vertex by generating an additional edge vertex or regenerating the edge vertex. This can improve the reproducibility of the point group decoded by the decoding device.
- the threshold value for the second edges may be increased. This allows the encoding method to generate a correct edge vertex when an edge vertex is erroneously generated on the first face and no edge vertex is generated on some of the second edges.
- the threshold value may be repeatedly increased until the plurality of second edge vertices are generated.
- the encoding method can generate appropriate edge vertices by gradually increasing the threshold value.
- the positions of one or two edge vertices may be estimated using the positions of the second edge vertices. In this way, the encoding method can generate an edge vertex to be added using the second edge vertices.
- attribute information of the one or two edge vertices may be estimated from attribute information of the second edge vertices.
- the encoding method can improve the reproducibility of the decoded point group by estimating attribute information of the second edge vertices.
- a decoding method is a decoding method for decoding a plurality of three-dimensional points, which generates a plurality of first edge vertices on a plurality of first edges of the first node that are parallel to each other by decoding a plurality of encoded first edge vertices in the first node, and if the number of the plurality of first edge vertices is less than four, uses the positions of the plurality of first edge vertices to estimate the positions of one or two second edge vertices on one or two second edges other than the plurality of first edges and parallel to the plurality of first edges, the plurality of first edge vertices and the one or two second edge vertices are used in a trisorp method, and the first node is a unit for storing a plurality of three-dimensional points included in an octree structure.
- the decoding method can generate an additional second edge vertex if the edge vertex is not generated correctly. This allows the decoding method to improve the reproducibility of the decoded point cloud.
- the estimation may be performed according to control information included in the bitstream that indicates whether to perform the estimation.
- the decoding method can determine whether to perform the estimation based on the control information generated by the encoding device, which simplifies the determination process in the decoding device and reduces the amount of processing in the decoding device.
- the attribute information of the one or two second edge vertices may be estimated from the attribute information of the multiple first edge vertices.
- the decoding method can improve the reproducibility of the decoded point group by estimating the attribute information of the second edge vertices.
- a decoding method is a decoding method for decoding a plurality of three-dimensional points, which includes determining whether a first face of a first node is parallel to a cross section of the first node, and decoding the encoded plurality of three-dimensional points based on the result of the determination, the first face having four sides on which four edge vertices are respectively arranged, the cross section passing through a first centroid vertex of the first node, the cross section being defined by two sets of face vertex pairs, each of the two sets of face vertex pairs being arranged on a second face perpendicular to the first face, a line connecting the first centroid vertex and a second centroid vertex of a second node adjacent to the first node intersects with a face vertex of the second face, the first centroid vertex, the second centroid vertex, and the four edge vertices are used in a tri-sort method, and the first node is a unit for storing a plurality of three-dimensional points
- the decoding method can determine whether or not the vertices have been generated correctly based on, for example, whether the first surface is parallel to the cross section of the first node. This allows the decoding method to improve the reproducibility of the decoded point group by, for example, performing a decoding process according to the determination result.
- the encoded three-dimensional points may be decoded according to the Trisorp method, and the three-dimensional points may be arranged on an approximation surface defined by the first centroid vertex and the four edge vertices.
- the decoding method can improve the reproducibility of the decoded point group by determining that the edge vertices have been correctly generated when the first surface is not parallel to the cross section of the first node, and generating an approximation surface using the edge vertices.
- the decoding method may further decode the encoded three-dimensional points and place the three-dimensional points on the cross section when it is determined that the first surface is parallel to the cross section.
- the decoding method determines that the edge vertices have not been generated correctly when the first surface is parallel to the cross section of the first node, for example, and generates the three-dimensional points on the cross section defined by the centroid vertices and the face vertices. This can improve the reproducibility of the decoded point group.
- An encoding device is an encoding device that encodes a plurality of three-dimensional points, and includes a processor and a memory, and the processor uses the memory to determine whether four first edge vertices have been generated on each of the four first edges of the first face of the first node, and encodes the plurality of three-dimensional points based on the result of the determination, the four first edge vertices being used in a trisorp method, and the first node being a unit for storing a plurality of three-dimensional points included in an octree structure.
- a decoding device is a decoding device that decodes a plurality of three-dimensional points, and includes a processor and a memory, and the processor uses the memory to decode a plurality of encoded first edge vertices in a first node to generate the plurality of first edge vertices on a plurality of first edges of the first node that are parallel to each other, and if the number of the plurality of first edge vertices is less than four, the positions of the plurality of first edge vertices are used to estimate the positions of one or two second edge vertices on one or two second edges other than the plurality of first edges and parallel to the plurality of first edges, the plurality of first edge vertices and the one or two second edge vertices are used in a trisorp method, and the first node is a unit for storing a plurality of three-dimensional points included in an octree structure.
- a decoding device that decodes a plurality of three-dimensional points, and includes a processor and a memory, and the processor uses the memory to determine whether a first face of a first node is parallel to a cross section of the first node, and decodes the encoded plurality of three-dimensional points based on the result of the determination, the first face has four sides on which four edge vertices are respectively arranged, the cross section passes through a first centroid vertex of the first node, the cross section is defined by two sets of face vertex pairs, each of the two sets of face vertex pairs is arranged on a second face perpendicular to the first face, a line connecting the first centroid vertex and a second centroid vertex of a second node adjacent to the first node intersects with a face vertex of the second face, the first centroid vertex, the second centroid vertex, and the four edge vertices are used in a tri-sort method, and the
- an encoding device three-dimensional data encoding device
- a decoding device three-dimensional data decoding device
- the encoding device generates a bit stream by encoding three-dimensional data.
- the decoding device generates three-dimensional data by decoding the bit stream.
- Three-dimensional data is, for example, three-dimensional point cloud data (also called point cloud data).
- a point cloud is a collection of multiple three-dimensional points, and indicates the three-dimensional shape of an object.
- Point cloud data includes position information and attribute information of multiple three-dimensional points.
- the position information indicates the three-dimensional position of each three-dimensional point.
- position information may also be called geometry information.
- the position information is expressed in a Cartesian coordinate system or a polar coordinate system.
- the attribute information indicates, for example, color information, reflectance, transmittance, infrared information, normal vector, or time information.
- a single 3D point may have a single piece of attribute information or may have multiple types of attribute information.
- the encoding device may also encode and decode attribute information.
- the encoding device encodes the position information using the TriSoup (Triangle-Soup) method.
- the Trithorpe method is a method for encoding the position information of point cloud data, and is a lossy compression method.
- the original point cloud to be processed is replaced with a set of triangles, and the point cloud is approximated on the plane.
- the original point cloud is replaced with vertex information within a node, and a set of triangles is generated by connecting the vertices.
- the vertex information used to generate the triangles is stored in the bitstream and sent to the decoding device.
- Figure 1 is a diagram showing an example of an original point cloud.
- the point cloud 102 of an object is contained in an object space 101 and includes a plurality of points 103.
- the encoding device divides the original point cloud into an octree to a predetermined depth.
- the target space is divided into eight nodes (subspaces), and 8-bit information (occupancy code) is generated indicating whether or not a point cloud is included in each node.
- the node that contains a point cloud is further divided into eight nodes, and 8-bit information is generated indicating whether or not a point cloud is included in each of the eight nodes. This process is repeated up to a predetermined hierarchy.
- octree division is repeated until, for example, the number of points contained in the node is reduced to one or a threshold value or less.
- octree division is performed up to an intermediate level, but not to the levels below that level. Such an octree up to an intermediate level is called a pruned octree.
- FIG. 2 shows an example of a pruned octree.
- a point cloud 102 is divided into multiple leaf nodes 104 (nodes at the bottom level) of the pruned octree.
- the encoding device then performs the following process on each of the leaf nodes 104 of the pruned octree.
- a leaf node is also referred to simply as a node.
- the encoding device generates a vertex on the edge as a representative point of the point group close to the edge of the node. This vertex is called an edge vertex. For example, an edge vertex is generated for each of multiple edges (e.g., four parallel sides).
- FIG. 3 is an example of a two-dimensional display of a leaf node 104, for example, a diagram showing the xy plane as viewed from the z direction shown in FIG. 1. As shown in FIG. 3, an edge vertex 112 is generated on the edge based on the adjacent points of the edge among the multiple points 111 in the leaf node 104.
- the dotted line on the periphery of the leaf node 104 is the edge.
- the edge vertex 112 is generated at the weighted average position of the positions of points (points included in the range 113 in FIG. 3) whose distance from the edge is within 1.
- the unit of distance is, for example, the resolution of the point cloud, but is not limited to this. In this example, this distance (threshold) is 1, but it may be other than 1 and may be variable.
- the encoding device generates a vertex inside the node based on the group of points that exist in the normal direction of the plane that contains the edge vertices. This vertex is called the centroid vertex.
- FIGS. 4 and 5 are diagrams for explaining a method for generating a centroid vertex.
- the encoding device selects, for example, four points as representative points from the group of edge vertices. In the example shown in FIG. 4, edge vertices v1 to v4 are selected.
- the encoding device calculates an approximation plane 121 that passes through the four points.
- the encoding device calculates a normal n of the approximation plane 121 and an average coordinate M of the four points.
- the encoding device generates a centroid vertex C at the weighted average coordinate of one or more points (for example, points included in the range 122 shown in FIG. 5) that are close to a half line extending from the average coordinate M in the direction of the normal n.
- the encoding device entropy-encodes the vertex information, which is information on the edge vertices and centroid vertices, and stores the encoded vertex information in a Geometry Data Unit (GDU) included in the bitstream.
- GDU Geometry Data Unit
- the GDU includes information indicating the pruned octree in addition to the vertex information.
- FIG. 6 is a diagram showing an example of vertex information.
- the point cloud 102 is converted into vertex information 123 as shown in FIG. 6.
- the decoding device decodes the GDU from the bitstream and obtains vertex information.
- the decoding device connects the vertices to generate a TriSoup-Surface, which is a group of triangles.
- FIG. 7 is a diagram showing an example of a Trithorpe surface.
- four edge vertices v1 to v4 and a centroid vertex C are generated based on the vertex information.
- a triangle 131 (Trithorpe surface) is generated whose vertices are the centroid vertex C and the two edge vertices. For example, each pair of two edge vertices on two adjacent edges is selected, and a triangle 131 is generated whose vertices are the selected pair and the centroid vertex.
- FIG. 8 is a diagram for explaining the point cloud restoration process. By performing the above process for each leaf node, a three-dimensional model is generated in which the target object is represented by multiple triangles 131, as shown in FIG. 8.
- the decoding device then generates points 132 at regular intervals on the surface of triangle 131 to restore the position information of point group 133.
- point cloud surface For example, if there are bends in the point cloud distribution (point cloud surface) inside a leaf node, the corners and edges of the point cloud surface do not intersect, and vertices are not created at the corners, so the surface model created by connecting the vertices may not be able to reproduce the shape of the original point cloud.
- FIG. 9 shows an example of a point cloud in which the point cloud is distributed across node 1 and node 2, forming a ridge line. As shown in FIG. 9, an edge vertex 112 is generated based on the point cloud distribution near the edge.
- FIG. 10 shows an example of how the centroid vertex is generated in this case.
- the centroid vertex 151 is generated in the normal direction of the approximation plane of the edge vertex group.
- FIG. 11 shows an example of the generation of triangle 131 (Triteorp surface) in this case.
- triangle 131 is generated by connecting multiple vertices (multiple edge vertices and centroid vertices). In this case, as shown in FIG. 11, the point cloud near the node boundaries cannot be reproduced.
- centroid vertices are able to sample the original point cloud surface, but the current method does not allow for the creation of a vertex between two centroid vertices of two adjacent nodes. For example, if a ridge line continues to be distributed within a node along one of the x, y, or z axes, a vertex corresponding to the ridge line is not generated because the ridge line does not cross an edge. This causes this problem.
- the encoding device predicts the ridge line of the point cloud surface, and when it determines that two adjacent nodes have the same ridge line, it transmits information to the decoding device for connecting the two centroid vertices of the two adjacent nodes with a line segment.
- This information is, for example, 1 bit of information assigned to each face between the nodes.
- the decoding device uses this information to connect the centroid vertices and generate new vertices (face vertices) at the intersections of the resulting line segments and the shared faces between the nodes.
- the decoding device can use these new vertices to reconstruct the ridge lines when generating triangle 131.
- FIG. 12 is a diagram showing an example of face vertex generation. As shown in FIG. 12, the decoding device can reproduce the ridge line by generating face vertices 161 and using the face vertices 161 to generate triangles 131.
- the above method makes it possible to reproduce the point cloud surface near the node boundaries, resulting in a decoded point cloud that is closer to the original point cloud.
- the point cloud surface is only used to explain the issues related to ridge lines, and the ridge lines do not need to be actually found.
- FIG. 13 is a diagram showing an example of edge vertex and centroid vertex generation in this case.
- FIG. 13 shows node 1 and node 2 aligned in the x direction.
- the precision of edge vertex 112 is the expressive capability of 1/4 of the edge length (8 position intervals) when the node width is 32.
- centroid vertex 151 has integer coordinate precision.
- the restored surface obtained from vertices with different height positions (y coordinates) has a wavy shape and is not flat like the original point cloud. Note that the surface is composed of multiple triangles generated based on the vertices in one or more nodes.
- the decoding device when the decoding device can estimate that the points in a node are planar using the positional relationship between the centroid vertices and the face vertices, it corrects the positions of the edge vertices, thereby making the reconstructed surface planar.
- FIG. 14 is a diagram for explaining this edge vertex correction method.
- FIG. 14 shows node 1 and node 2 aligned in the x direction.
- Node 2 is the target node to be processed.
- Node 2 has centroid vertex C0, edge vertices E0, E1, E2, and E3, and face vertices F0, F1, F2, and F3.
- centroid vertex For example, only one centroid vertex is generated per node.
- a maximum of one edge vertex is generated per edge (i.e., only one is generated, or none is generated).
- a maximum of one face vertex is generated per face (face).
- the decoding device determines whether a pair of face vertices (e.g., F0 and F2) belonging to opposing faces and the centroid vertex C0 form a straight line. For example, the decoding device determines whether the centroid vertex C0 exists on a straight line L0 that passes through the face vertex F0 and the face vertex F2. A pair of face vertices (e.g., F0 and F2) that satisfies this condition is called a straight-line vertex pair. Note that the presence of the centroid vertex C0 on the straight line L0 may mean, for example, that the distance between the straight line L0 and the centroid vertex C0 is less than a predetermined threshold.
- a pair of face vertices e.g., F0 and F2
- the decoding device further determines whether a pair of linear vertices (e.g., F1 and F3) exists on the other two opposing faces. For example, the decoding device determines whether the centroid vertex C0 exists on the line L1 passing through face vertex F1 and face vertex F3. If a pair of two linear vertices exists, the decoding device determines that the original point cloud is a plane. In the example of Figure 14, since pairs of linear vertices exist on two faces opposing in the z direction and two faces opposing in the x direction, it is determined that the plane of the original point cloud exists on the xz plane. The condition in which a pair of two linear vertices exists within the target node is called the two linear line condition within the node.
- a pair of linear vertices e.g., F1 and F3
- the directions of two vectors pointing from the centroid vertex C0 to the face vertices of the two opposing faces may mean that the difference in the vector directions is 0° or 180°, or falls within a certain range from these standards.
- directions may be used instead of vectors.
- directions may be used instead of vectors.
- the decoding device may use the following method to find a plane using a formula.
- the decoding device calculates the cross product of a line segment connecting a pair of opposing face vertices within a node and a line segment connecting another pair of opposing face vertices.
- the decoding device finds a plane whose normal direction is equal to the calculated cross product as a plane that includes the face vertices and the centroid vertex.
- the decoding device corrects the positions of the edge vertices from the positions of the face vertices and the centroid vertices. This makes it possible to improve the positional accuracy of the edge vertices and reconstruct the planar surface from these vertices.
- the decoding device performs normal surface restoration processing without correcting the positions of the edge vertices.
- edge vertex E0 is corrected to edge vertex E4.
- the decoding device may move the edge vertex (E0) on the edge to the intersection position (position E4) between the estimated plane and the edge (side) of the node.
- the decoding device may move the edge vertex (E0) on the edge to the intersection position (position E4) of the edge and a straight line (L2 in FIG. 14) connecting two face vertices belonging to consecutive faces between adjacent nodes.
- FIG. 14 shows an example in which only edge vertex E0 is corrected, edge vertices E1, E2, and E3 are also corrected in the same manner as edge vertex E0.
- FIG. 15 is a diagram for explaining another method of correcting edge vertices.
- FIG. 15 shows an example in which node 2 is the target node and edge vertex E0 is corrected. Note that other edge vertices included in node 2 may also be corrected in the same way as edge vertex E0.
- the decoding device calculates offset amounts OS1 and OS2, which are the individual movement amounts seen from the centroid vertex C0, for the edge vertex E0 to the two face vertices F1 and F2 generated on the two faces that share the edge to which the edge vertex E0 belongs.
- the decoding device corrects the position of the edge vertex E0 to a position (the position of E1) obtained by adding these offset amounts OS1 and OS2 to the position of the centroid vertex C0.
- the decoding device may also exclude edge vertices that exist on edges that intersect (are perpendicular to) the plane when a node is determined to have a plane from the vertices used in restoring the plane.
- FIG. 16 is a diagram showing an example of multiple vertices when a slope and a group of nodes intersect three-dimensionally. Even in such a case, the slope can be restored using the above method. Specifically, a centroid vertex 151 and a face vertex 161 are generated at each of nodes B and E shown in FIG. 16. Even in this case, the centroid vertex 151 and the face vertex 161 are aligned in a straight line, so plane determination can be performed individually at each node.
- the decoding device determines whether the target node has a plane, and if the target node has a plane, corrects the edge vertices. This allows the plane to be correctly restored, improving the accuracy of the restored point cloud. Furthermore, the above method can determine whether the target node has a plane and correct the edge vertices using only information from within the target node (without using information from adjacent nodes).
- the decoding device may make the determination using a first centroid vertex of a first node adjacent to the target node in a first direction, a second centroid vertex of a second node adjacent to the target node in a second direction perpendicular to the first direction, a first face vertex generated on the face of the target node adjacent to the first node, and a second face vertex generated on the face of the target node adjacent to the second node.
- the decoding device may determine that the target node has a plane if these four vertices are included in the same plane.
- FIG. 17 is a diagram showing an example of vertices generated for four nodes A to D.
- nodes C and D have planes (point clouds) that cross the nodes, and nodes A and B have planes (point clouds) in the right half of the nodes (positive x-axis direction).
- node A has a pair of face vertices (F0 and F1) on the opposing faces, but does not have a pair of two line vertices.
- the condition where a pair of line vertices exists within the target node is called the one line within node condition.
- node B has a pair of face vertices (F1 and F2) on the opposing faces, but does not have a pair of two line vertices. Therefore, nodes A and B do not meet the two line within node condition mentioned above.
- the half-planes in the positive x-axis direction in nodes A and B may be a continuation of the plane continuing from the right side.
- the decoding device performs the following determination.
- the decoding device determines that a plane exists on one half of the node in the other direction (positive x-axis direction in the example of FIG. 17) perpendicular to the direction in which the node satisfies the one line condition (z-direction in the example of FIG. 17), if the target node satisfies the one line condition within the node, and the other direction (positive x-axis direction in the example of FIG. 17) perpendicular to the direction in which the one line condition within the node is satisfied.
- the one line condition outside the node means that the direction of the line Ax formed by the centroid vertex C0 and face vertex F3 in node A is the same as the direction of the line Cx formed by the pair of linear vertices (F3 and F5) in the adjacent node C on the direction Ax side, or the difference between them is less than a predetermined value.
- the target node also satisfies the in-node 1 line condition, and the out-node 1 line condition is satisfied in another direction (positive x-axis direction in the example of FIG. 17) perpendicular to the direction in which the in-node 1 line condition is satisfied (z-direction in the example of FIG. 17), so it is determined that a plane exists on the half surface in that other direction (positive x-axis direction).
- the direction of the line Bx formed by the centroid vertex C1 and face vertex F4 is the same as the direction of the line Dx formed by the pair of linear vertices (F4 and F6) in the adjacent node D on the direction Bx side, or the difference is less than a predetermined value, so it is determined that a plane exists on the half surface in the positive x-axis direction of node B.
- the decoding device corrects the positions of edge vertices on edges that intersect with the half-plane area in the same manner as in the plane processing described above, and restores the surface within the target node. Note that edge vertices are not shown in Figure 17.
- FIG. 18 is a diagram showing an example of vertices generated for four nodes A to D.
- nodes B, C, and D have planes (point clouds) that cross the nodes, and node A has a plane (point cloud) on the 1/4 plane on the far right side of the node (negative z-axis direction and positive x-axis direction).
- node A does not satisfy the in-node 2 line condition and the in-node 1 line condition.
- the decoding device determines whether the above-mentioned out-node 1 line condition is satisfied in two directions. Note that the condition in which the out-node 1 line condition is satisfied in two directions is called the out-node 2 line condition.
- node B has a pair of vertices on a line (F1 and F2), and the direction of the line Az formed by the centroid vertex C0 and face vertex F1 of node A is the same as the direction of the line Bz formed by the pair of linear vertices (F1 and F2) in the adjacent node B, or the difference is less than a predetermined value.
- node C has a pair of linear vertices (F3 and F5) in the same direction (x-axis direction), and the direction of the line Ax formed by the centroid vertex C0 of node A and the face vertex F3 is the same as the direction of the line Cx formed by the pair of linear vertices (F3 and F5) in the adjacent node C, or the difference is less than a predetermined value.
- the decoding device estimates that the 1/4 region of node A in the positive x-axis direction and negative z-axis direction is a planar region continuing from the adjacent node. In this way, if there is a set of vertices on a straight line from the target node to the adjacent node for each of the adjacent nodes in two directions, the decoding device estimates that the 1/4 region of the target node is a similar plane. The decoding device also corrects the positions of edge vertices generated on edges that intersect with the plane to restore the surface within the target node. Note that edge vertices are not shown in Figure 18.
- FIG. 19 is a diagram showing an example of vertices generated for four nodes A to D.
- planes point clouds
- planes exist on 1/4 faces of nodes A to D. Specifically, planes exist on 1/4 faces in the negative z-axis direction and positive x-axis direction of node A, in the positive z-axis direction and positive x-axis direction of node B, in the negative z-axis direction and negative x-axis direction of node C, and in the positive z-axis direction and negative x-axis direction of node D.
- the decoding device determines that the four quarter faces of each node are planes.
- the decoding device detects whether (1) the direction of the line Az formed by the centroid vertex C0 of node A and the face vertex F0 in the negative direction of the z-axis is the same as the direction of the line Bz formed by the centroid vertex C1 of node B and the face vertex F0 in the positive direction of the z-axis, or the difference is less than a predetermined value, and (2) the direction of the line Ax formed by the centroid vertex C0 of node A and the face vertex F1 in the positive direction of the x-axis is the same as the direction of the line Cx formed by the centroid vertex C2 of node C and the face vertex F1 in the negative direction of the x-axis, or the difference is less than a predetermined value, and (3) the direction of the line Ax formed by the centroid vertex C0 of node A and the face vertex F1 in the negative direction of the x-axis is the same as the direction of the line Cx formed by the centroid vertex C
- the direction of the line Bx formed by the centroid vertex C1 of node C1 and the face vertex F2 in the positive x-axis direction is the same as the direction of the line Dx formed by the centroid vertex C3 of node D and the face vertex F2 in the negative x-axis direction, or the difference is less than a predetermined value
- the direction of the line Cz formed by the centroid vertex C2 of node C and the face vertex F3 in the negative z-axis direction is the same as the direction of the line Dz formed by the centroid vertex C3 of node D and the face vertex F3 in the positive z-axis direction, or the difference is less than a predetermined value, it is determined that a quarter-plane exists in each of nodes A to D.
- the above conditions are called a set of extra-node two-line conditions.
- the decoding device also corrects the positions of edge vertices generated on edges that intersect with the plane to restore the surface within the target node. Note that edge vertices are not shown in Figure 19.
- the decoding device may determine that the entire surface of the node is a plane based on the continuity of nodes that have planes up to that node.
- the decoding device corrects the position of the edge vertex generated on the edge that intersects with the plane to restore the surface within the target node.
- the encoding device can perform the above plane restoration process once on a trial basis, and does not need to transmit edge vertex information for nodes that meet the plane restoration conditions. In other words, the encoding device does not need to store edge vertex information for nodes that meet the plane restoration conditions in the bit stream.
- Figure 20 shows the dependency of information in the restoration of vertex coordinates within a node in the TriSoap method.
- the coordinates of the edge vertices and the centroid vector length are transmitted as information for each node.
- the centroid vector is a vector that extends in the normal direction of an approximation plane that passes through multiple edge vertices and points from the approximation plane to the centroid vertex.
- the decoding device uses this information to calculate the coordinates of the centroid vertex for each node.
- the decoding device also calculates the coordinates of the face vertices from the coordinates of the two centroid vertices of adjacent nodes.
- the encoding device does not transmit the centroid vector length for nodes that do not transmit edge vertex coordinates.
- the encoding device adds an edge vertex no transmission flag, indicating whether or not edge vertex coordinates will be transmitted, to the bit stream, and transmits the coordinates of the centroid vertices. This allows the decoding device to restore the coordinates of the centroid vertices and the coordinates of the face vertices.
- planes may also be determined by connecting the centroid vertices of adjacent nodes without using face vertices.
- FIG. 21 is a diagram showing an example of centroid vertices and edge vertices 112 generated for four nodes 1 to 4.
- the decoding device may determine that a plane exists if, for example, the centroid vertices C1 to C4 of nodes 1 to 4 are included in the same plane.
- the decoding device corrects the positions of the edge vertices generated on the edges that intersect with the plane to restore the surface within the target node.
- the following method may be used as a method for determining whether the original point group should be restored onto a plane spanning adjacent nodes. For example, the decoding device may determine that the target node has a plane if a first centroid vertex of a first node adjacent to the target node in a first direction is connected to the centroid vertex of the target node, and a second centroid vertex of a second node adjacent to the target node in a second direction orthogonal to the first direction is connected to the centroid vertex of the target node.
- information indicating whether the first centroid vertex is connected to the centroid vertex of the target node and information indicating whether the second centroid vertex is connected to the centroid vertex of the target node are generated by the encoding device and stored in the bit stream.
- the decoding device makes the above determination using this information.
- the bitstream may include a first flag indicating whether or not to apply the above method.
- the decoding device may perform plane reconstruction processing applying the above method.
- the encoding device may store the first flag, for example, in a sequence parameter set (SPS), a geometry parameter set (GPS), a geometry data unit (GDU), or a GDU header.
- SPS sequence parameter set
- GPS geometry parameter set
- GDU geometry data unit
- SPS is metadata (parameter set) common to multiple frames.
- GPS is metadata (parameter set) related to encoding of location information. For example, GPS is metadata common to multiple frames.
- GDU is a data unit (geometry data unit) of encoded data of location information.
- GDU header is the header (control information) of the GDU.
- the first flag may also be stored on a per-node basis. In other words, whether or not to apply the above method may be switched on a per-node basis.
- parameters for switching between the various methods or thresholds described in this method may be stored separately in the bit stream.
- the parameters may include information for determining the allowable error range of the two vector directions when determining the two-line condition within a node.
- the parameters may also include a second flag indicating whether or not to perform plane reconstruction at the above-mentioned slice end.
- These parameters may be stored in either the SPS, GPS, or GDU, or may be stored on a per-node basis. Alternatively, the above parameters may be stored in the bitstream when the first flag is on, or may always be stored in the bitstream regardless of the value of the first flag.
- [flowchart] 22 is a flowchart of the decoding process by the decoding device.
- the decoding device obtains a GDU header and a GDU from a bit stream (S101).
- the decoding device entropy-decodes octree information from the GDU, and generates a plurality of leaf nodes (a group of leaf nodes) of a pruned octree using the octree information (S102).
- the decoding device obtains vertex information indicating the positions of the edge vertices and the centroid vertex from the GDU (S103). Specifically, the decoding device obtains the vertex information by entropy decoding the encoded vertex information included in the GDU.
- the decoding device generates face vertices for each leaf node (hereinafter also simply referred to as node) (S104). For example, for each node, the decoding device connects the centroid vertex of the target node to the centroid vertex of an adjacent node according to a condition, and generates face vertices at the intersections of the obtained line segments and the node boundaries.
- the decoding device performs the following processing (loop processing) of steps S105 to S107 for each of the multiple nodes of the pruned octree.
- the decoding device generates multiple triangles (trithorpe surfaces) by connecting the vertices (multiple edge vertices, centroid vertices, and face vertices) in the target node (S105).
- the decoding device performs the following processing (loop processing) of step S106 for each of the multiple triangles in the target node.
- the decoding device generates multiple points on the surface of the target triangle (S106). This completes the loop processing for each triangle.
- the decoding device makes the restored points in each node unique by their coordinate values and adds them to the decoded points (S107). Making them unique means excluding points with duplicate coordinate values. This completes the loop processing for each node.
- FIG. 23 is a flowchart of the process of generating multiple triangles (S105).
- the decoding device determines whether the target node satisfies the above-mentioned "two straight lines within the node condition" (S111). If the target node satisfies the "two straight lines within the node condition" (Yes in S111), the decoding device determines that the target node has a plane, and corrects the positions of the edge vertices on the edges that intersect with the plane, for example, to the positions of the plane (S112).
- the decoding device judges whether the target node satisfies the above-mentioned "one line condition within the node” and "one line condition outside the node” (S113). If the target node satisfies both the "one line condition within the node” and the “one line condition outside the node” (Yes in S113), the decoding device judges that a plane exists on half of the target node, and corrects the position of the edge vertex on the edge that intersects with the plane, for example, to the position of the plane (S114).
- the decoding device judges whether the target node satisfies the above-mentioned "two line outside the node condition" (S115). If the target node satisfies the "two line outside the node condition" (Yes in S115), the decoding device judges that a plane exists on one-quarter of the surface of the target node, and corrects the position of the edge vertex on the edge that intersects with the plane, for example, to the position of the plane (S116).
- the decoding device judges whether the target node satisfies the above-mentioned "set of two extra-node line conditions" (S117). If the target node satisfies the "set of two extra-node line conditions" (Yes in S117), the decoding device judges that a plane exists in each of the four adjacent nodes including the target node, and corrects the position of the edge vertex on the edge that intersects with the plane to, for example, the position of the plane (S118). Note that four adjacent nodes are, for example, a group of nodes that are adjacent to two other nodes on the same plane, such as nodes A to D shown in FIG. 19.
- the decoding device After steps S112, S114, S116 or S118, the decoding device generates a number of triangles using a number of edge vertices, including the corrected edge vertex, the centroid vertex, and a number of face vertices (S119).
- the decoding device does not correct the edge vertices, but generates multiple triangles using the centroid vertex, multiple edge vertices, and multiple face vertices (S119).
- Figure 24 is a diagram for explaining this issue, showing an example of the generation of edge vertices 112A and 112B and centroid vertex 151.
- Figure 24 shows node 1 and node 2 aligned in the x direction.
- an edge vertex is generated when the sum of index values multiplied by weights according to the distance between each point and the edge exceeds a threshold value TH.
- TH threshold value
- the edge vertex 112A on an edge parallel to the point cloud is weighted higher than the edge vertex 112B on an edge perpendicular to the point cloud, as would be expected. This results in the edge vertex 112A being erroneously generated on an edge parallel to the point cloud.
- FIG. 25 is a diagram showing an example of a restored surface when edge vertices 112A are erroneously generated in this manner. As shown in FIG. 25, when a surface is restored using these erroneously generated edge vertices 112A, a distorted surface is restored.
- the edge vertex 112B that should have been generated may not be generated. All of these factors hinder the decoding device from receiving data transmitted using the Trisoap method and restoring a high-quality point cloud from the vertices.
- the above problem can be solved by the following method.
- the following process can be performed by either or both of the encoding device and the decoding device.
- the edge vertices can be determined to be erroneously generated. Therefore, the encoding device and the decoding device can perform a solution process when they detect that four edge vertices are arranged on this same face.
- Fig. 26 is a diagram showing an example of generation of a centroid vertex 151 and edge vertices 112A and 112B.
- Fig. 26 in addition to three correct edge vertices 112B, four edge vertices 112A are erroneously generated on the bottom surface.
- an edge vertex should be generated, but no edge vertex has been generated.
- the encoding device determines whether the target node has a four-vertex face, which is a face in which four edge vertices are arranged on the same face. If the target node has a four-vertex face, the encoding device determines that the node containing the four-vertex face contains an erroneously generated edge vertex, and regenerates the edge vertices of the target node.
- the encoding device may exclude the four edges belonging to the four vertex faces (the bottom face in FIG. 26) from the edge vertex generation targets and then regenerate the edge vertices. Furthermore, if an edge vertex is not generated for each of the four edges perpendicular to the four vertex faces in the initial edge vertex generation result, the encoding device may relax the threshold value TH used to generate the edge vertices before regenerating the edge vertices.
- the encoding device uses an initial value of 2 (coordinate grid) for the distance between an edge and a point, and increases the threshold by one grid each time regeneration is performed, thereby relaxing the threshold.
- An upper limit may also be set for the threshold. This makes it possible to prevent the threshold from being set to a value that exceeds the width of the node. Any value may also be used as the initial value.
- the initial value may be a threshold value of 1, and the upper limit may be approximately 50% of the node width. Also, the initial value may be greater than 1, and the upper limit may be less than 25% of the node width.
- This threshold adjustment may be performed only on the four edges perpendicular to the four vertex faces, or on all eight edges excluding the four edges of the four vertex faces, or the threshold may be varied for each individual edge to suit other circumstances.
- This threshold relaxation and vertex generation process may be repeated iteratively until correct edge vertices are generated for all four orthogonal edges.
- the processing of this embodiment may be used as a pre-processing stage of the edge vertex correction processing described in embodiment 1.
- the edge vertices and centroid vertices regenerated by the processing of this embodiment may be restored as a plane based on the technique of embodiment 1. Note that the processing of embodiment 1 does not have to be performed.
- the above process allows the decoding device to restore the geometry with high accuracy. It also reduces unnecessary edge vertex data in the transmission data and simplifies processing in the decoding device.
- FIG. 27 is a diagram showing an example of a surface restored by the above process.
- the edge vertex 112A generated on the four-vertex surface shown in FIG. 26 is excluded.
- the correct edge vertex 112C is added by changing the threshold and regenerating the edge vertices, thereby restoring the plane.
- the encoding device stores information indicating the positions of the edge vertices regenerated above in the bit stream.
- the decoding device can generate the correct edge vertices by using this information to generate the edge vertices.
- the second method is implemented in an encoding device or a decoding device. Although an example of processing in an encoding device will be described below, a similar processing may be performed in a decoding device.
- the second method differs from the first method in the method of regenerating edge vertices.
- the encoding device excludes four edge vertices that belong to a four-vertex face (the bottom face in FIG. 26). Furthermore, if edge vertices have not been generated on all four orthogonal edges that are orthogonal to the four-vertex face, the encoding device generates an edge vertex on the orthogonal edge on which no edge vertex has been generated. For example, as shown in FIG.
- edge vertex 112C At a height estimated from the three edge vertices 112B, as shown in FIG. 27.
- the encoding device may estimate the height of the fourth edge vertex from the heights of the three edge vertices, and generate the fourth edge vertex by complementation.
- the encoding device may also generate an edge vertex on an orthogonal edge on which no edge vertex has been generated in a case where an edge vertex has been generated on two orthogonal edges and no edge vertex has been generated on the remaining two orthogonal edges, and in a case where an edge vertex has been generated on one orthogonal edge and no edge vertex has been generated on the remaining three orthogonal edges.
- the average value of the heights of the one or two edge vertices that have been generated may be used as the height of the remaining edge vertex.
- the face vertices can be generated at the correct height by the edge vertex correction process described in embodiment 1, making it possible to restore a plane. Therefore, the process of this embodiment may be used as a pre-stage process of the edge vertex correction process described in embodiment 1. In other words, the edge vertices and centroid vertices regenerated by the process of this embodiment may be restored as a plane based on the technology of embodiment 1. Note that the process of embodiment 1 does not need to be performed.
- this second method when this second method is performed in an encoding device, it is possible to restore a geometry shape with high accuracy, just like the first method. It is also possible to reduce unnecessary edge vertex data in the transmitted data and simplify processing in the decoding device. Furthermore, since it is possible to omit the process of regenerating vertices in the encoding device, it is possible to reduce the amount of processing in the encoding device.
- the encoding device stores information indicating the positions of the edge vertices regenerated above in the bit stream.
- the decoding device can generate correct edge vertices by using this information to generate edge vertices. In this way, the decoding device can restore a geometric shape that is close to the original point cloud.
- the decoding device may complement attribute information (such as color) of the added edge vertex or attribute information of the restored point group.
- attribute information such as color
- the decoding device may complement and generate attribute information of the restored point group based on the position of the point in the restored point group using attribute information of the vertex or surrounding points.
- the decoding device may also complement and generate attribute information of the added edge vertex based on the position of the edge vertex using attribute information of other edge vertices. Note that this complementation of attribute information of edge vertices or points may be performed by the encoding device.
- the encoding device stores attribute information of multiple three-dimensional points, including the complemented attribute information, in the bit stream.
- the third method is implemented in an encoding device or a decoding device. Although an example of processing in an encoding device will be described below, a similar processing may be performed in a decoding device.
- estimation is easy when the original point cloud is a plane parallel to the node face, but estimation is not easy when the original point cloud is an inclined plane relative to the node face.
- the arrangement directions of the centroid vertices and face vertices are utilized to determine erroneously generated vertices.
- Figures 28 and 29 are diagrams for explaining this third method, and show examples of generating the centroid vertex 151, edge vertices 112A and 112B, and face vertex 161.
- centroid vertex 151 and the face vertex 161 are both vertices that are generated based on the distribution of the original point cloud. Therefore, the encoding device determines that an edge vertex generated on a node face that is parallel to a face that contains two line segments (line segments L1 and L2 in the example shown in FIG. 28) formed by two pairs of face vertices 161 of opposing faces within a node is an erroneously generated vertex.
- the face including the line segments L1 and L2 is parallel to the bottom face of the node. Therefore, the four edge vertices 112A generated on the bottom face are determined to be erroneously generated vertices and are deleted. For example, the edge vertices are regenerated using the first or second method described above.
- the plane including the line segments L1 and L2 is not parallel to the bottom surface of node 1 (the top surface of node 2). Therefore, it is determined that the four edge vertices generated on the bottom surface (two edge vertices 112A and two edge vertices 112B) include correct vertices that are not erroneously generated vertices.
- edge vertex can be complemented and the plane restored using the edge vertex correction process of embodiment 1, using the vertex positions as they are.
- the edge vertices are not regenerated using the first or second method described above.
- a slope refers to a case where the angle difference between the normals of each face of the node and the normals of the slope formed by the original point cloud is equal to or greater than a threshold.
- This threshold is not particularly limited, but may be, for example, 10 degrees or 20 degrees. This threshold may be set according to circumstances.
- a face formed by a point cloud and one of the faces of a node are parallel when the angular difference between their normals is less than a threshold value.
- This threshold value is not particularly limited, but may be, for example, 10 degrees or 20 degrees.
- the encoding device stores information indicating the positions of the edge vertices regenerated above in the bit stream.
- the decoding device can generate correct edge vertices by using this information to generate edge vertices.
- the decoding device can achieve highly accurate restoration of the geometry. It can also reduce unnecessary edge vertex data in the transmission data and simplify the processing of the decoding device. Furthermore, it may be possible to omit the process of regenerating edge vertices in the encoding device, thereby reducing the amount of processing required by the encoding device.
- this third method is performed by a decoding device
- the decoding device decodes data in which multiple edge vertices, including erroneously generated edge vertices, are encoded, and the above-mentioned third method is performed using the obtained edge vertices. This makes it possible to restore a geometric shape close to the original point cloud.
- the decoding device may complement attribute information (such as color) of the added edge vertex or attribute information of the restored point group.
- attribute information such as color
- the decoding device may complement and generate attribute information of the restored point group based on the position of the point in the restored point group using attribute information of the vertex or surrounding points.
- the decoding device may also complement and generate attribute information of the added edge vertex based on the position of the edge vertex using attribute information of other edge vertices. Note that this complementation of attribute information of edge vertices or points may be performed by the encoding device.
- the encoding device stores attribute information of multiple three-dimensional points, including the complemented attribute information, in the bit stream.
- the bitstream may include a flag indicating whether or not to apply the above method.
- the bitstream may include a first flag indicating whether or not the decoding device applies the above second method. That is, when the first flag indicates that the above second method is to be applied, the decoding device may perform plane reconstruction processing applying the second method.
- the bitstream may include a second flag indicating whether or not the decoding device applies the above third method. That is, when the second flag indicates that the above third method is to be applied, the decoding device may perform plane reconstruction processing applying the third method.
- the bitstream may also include a third flag indicating whether the decoding device applies the above-mentioned complementation of the attribute information. In other words, when the third flag indicates that the above-mentioned complementation is to be applied, the decoding device may complement the above-mentioned attribute information.
- the encoding device may store these flags, for example, in the SPS, GPS, or GDU. Furthermore, these flags may be stored on a node-by-node basis. At least one of the first flag, the second flag, and the third flag may be stored in the bit stream. When multiple flags are stored, the storage destinations for these flags may be the same or different.
- the above flag may be a single flag indicating whether multiple processes are on or off, or individual flags indicating whether each of the multiple processes is on or off.
- this information may be transmitted at all times. Also, this information does not have to be included in the bit stream. Even in this case, the decoding device may perform the above processing.
- FIG. 30 is a flowchart of the encoding process by the encoding device.
- the process shown in Fig. 30 is a process in which the above-mentioned first method and third method are implemented by the encoding device.
- the encoding device generates multiple leaf nodes (a group of leaf nodes) of a pruned octree by dividing the original point cloud into an octree (S201).
- the encoding device generates edge vertices and centroid vertices for each leaf node (hereinafter also simply referred to as a node) (S202).
- the encoding device generates face vertices for each node (S203). For example, for each node, the encoding device connects the centroid vertex of the target node to the centroid vertex of an adjacent node according to a condition, and generates face vertices at the intersections of the resulting line segments and the node boundaries.
- the encoding device performs the following steps S204 to S207 (loop processing) for each of the multiple nodes of the pruned octree.
- the encoding device determines whether the target node contains an erroneously generated vertex and regenerates the edge vertex (S204).
- the encoding device generates multiple triangles (triangle surfaces) by connecting the vertices (multiple edge vertices, centroid vertices, and face vertices) in the target node (S205).
- the details of this process are the same as S105 in FIG. 22 described in the first embodiment.
- the encoding device performs the following processing (loop processing) of step S206 for each of the multiple triangles in the target node.
- the encoding device generates multiple points on the surface of the target triangle (S206). This completes the loop processing for each triangle.
- the encoding device makes the restored points in each node unique using their coordinate values and adds them to the decoded points (S207). Making them unique means excluding points with duplicate coordinate values. This completes the loop processing for each node.
- FIG. 31 is a flowchart of the edge vertex regeneration process (S204).
- the encoding device sets the vertex reconstruct flag to off to initialize the vertex reconstruct flag, which indicates whether or not to reconstruct the edge vertices (S211).
- the encoding device performs the following processing (loop processing) of steps S212 to S215 for each face included in the target node.
- the encoding device determines whether or not four edge vertices exist in the target face (S212). In other words, the encoding device determines whether or not one edge vertex has been generated for each of the four edges of the target face.
- the encoding device determines whether the target surface is parallel to a surface based on the face vertices. Specifically, the encoding device determines whether the target surface is parallel to a surface formed by two pairs of opposing face vertices within the node (S213).
- the encoding device determines that the target face is an invalidated face that includes an erroneously generated vertex, and sets the vertex reconstruction flag to ON (S214). Next, the encoding device discards the four edge vertices included in the target face (invalidated face), and excludes the four edges included in the target face (invalidated face) from the edge vertex regeneration targets (S215). This ends the loop processing for each face included in the target node. Also, if the target face does not have four edge vertices (No in S212) or the target face is not parallel to the face (No in S213), the loop processing for each face included in the target node ends.
- the encoding device determines whether the vertex reconfiguration flag of the target node is on (S216). If the vertex reconfiguration flag is on (Yes in S216), the encoding device relaxes the threshold used to generate edge vertices and regenerates the edge vertices in the target node (S217).
- the encoding device determines whether edge vertices have been generated for all four edges perpendicular to the invalidation surface (S218). If edge vertices have not been generated for all four edges (No in S218), the encoding device further relaxes the threshold used to generate edge vertices and regenerates the edge vertices in the target node (S217).
- step S204 If the vertex reconstruction flag is off (No in S216), or if edge vertices have been generated for all four edges (Yes in S218), the encoding device ends the processing of step S204.
- FIG. 32 is a flowchart of the encoding process in the encoding device and the decoding process in the decoding device when the second and third methods are performed. Note that although the process in the encoding device is described below, the process in the decoding device is similar.
- step S201 to S203 are replaced with step S201A
- step S204 is replaced with step S204A.
- the encoding device generates edge vertices, centroid vertices, and face vertices of multiple leaf nodes (S201A).
- the processing of step S201A in the encoding device is similar to, for example, steps S201 to S203 shown in FIG. 30.
- the processing of step S201A in the decoding device is similar to, for example, steps S101 to S104 shown in FIG. 22.
- the encoding device performs the following processing (loop processing) of steps S204A to S207 for each of the multiple nodes of the pruned octree.
- the encoding device adds an edge vertex (S204A). Specifically, the encoding device determines whether or not there is an erroneously generated vertex in the target node, and estimates the position of the missing edge vertex. Note that the processing from step S205 onwards is the same as in FIG. 30, and a description thereof will be omitted.
- FIG. 33 is a flowchart of the process of adding an edge vertex (S204A). Note that the process shown in FIG. 33 differs from the process shown in FIG. 31 in that step S217 is replaced with step S217A. The differences from FIG. 31 are explained below.
- the encoding device If the vertex reconstruction flag is on (Yes in S216), the encoding device generates edge vertices for the four edges perpendicular to the invalidation surface that do not have an edge vertex (S217A). Specifically, the encoding device complements the edge vertex to be added using the positions of the edge vertices of the remaining edges of the four edges perpendicular to the invalidation surface.
- a decoding device (three-dimensional data decoding device) performs the process shown in FIG. 34.
- the decoding device decodes a plurality of three-dimensional points.
- the decoding device generates a plurality of first edge vertices on a plurality of first edges of the first node that are parallel to each other by decoding a plurality of encoded first edge vertices in the first node (S301). If the number of the plurality of first edge vertices is less than four, the decoding device estimates the positions of one or two second edge vertices on one or two second edges that are other than the plurality of first edges and parallel to the plurality of first edges, using the positions of the plurality of first edge vertices (S302).
- the plurality of first edge vertices and one or two second edge vertices are used in a trisorp method.
- the first node is a unit for storing a plurality of three-dimensional points included in an octree structure.
- the decoding device decodes a plurality of three-dimensional points using a plurality of first edge vertices and one or two second edge vertices.
- the decoding device generates a triangle using the plurality of first edge vertices and one or two second edge vertices, and arranges a plurality of three-dimensional points on the triangle.
- the decoding device can generate an additional second edge vertex if the edge vertex has not been generated correctly. This allows the decoding device to improve the reproducibility of the decoded point group.
- the estimation (S302) is performed according to control information included in the bitstream that indicates whether or not to perform the estimation. This allows the decoding device to determine whether or not to perform the estimation based on the control information generated by the encoding device, simplifying the determination process in the decoding device and reducing the amount of processing required by the decoding device.
- attribute information of one or two second edge vertices is estimated from attribute information of multiple first edge vertices. This allows the decoding device to improve the reproducibility of the decoded point group by estimating the attribute information of the second edge vertices.
- the decoding device decodes a plurality of three-dimensional points.
- the decoding device determines whether the first face of the first node is parallel to the cross section of the first node, and decodes the encoded plurality of three-dimensional points based on the result of the determination.
- the first face has four sides on which four edge vertices are respectively arranged.
- the cross section (e.g., a trisorp triangle) passes through the first centroid vertex of the first node.
- the cross section is defined by two sets of face vertex pairs, and each of the two sets of face vertex pairs is arranged on a second face perpendicular to the first face.
- the first centroid vertex, the second centroid vertex, and the four edge vertices are used in the trisorp method.
- the first node is a unit for storing a plurality of three-dimensional points included in the octree structure.
- the trisorp triangle is a face constituting the cross section of the first node, and is a face (approximation face) that passes through the first centroid vertex.
- the decoding device can determine whether or not the vertices have been generated correctly based on, for example, whether the first surface is parallel to the cross section of the first node. This allows the decoding device to improve the reproducibility of the decoded point group by, for example, performing a decoding process according to the determination result.
- the decoding device determines that the first surface is not parallel to the cross section, it decodes the encoded multiple 3D points according to the Trisorp method and places the multiple 3D points on an approximation surface defined by the first centroid vertex and four edge vertices.
- the decoding device determines that the edge vertices have been correctly generated when the first surface is not parallel to the cross section of the first node, for example, and generates an approximation surface using the edge vertices, it is possible to improve the reproducibility of the decoded point group.
- the decoding device further determines that the first surface is parallel to the cross section, it decodes the encoded three-dimensional points and places the three-dimensional points on the cross section. According to this, if the first surface is parallel to the cross section of the first node, for example, the decoding device determines that the edge vertices have not been generated correctly, and generates the three-dimensional points on the cross section defined by the centroid vertices and the face vertices. This can improve the reproducibility of the decoded point group.
- FIG. 35 is a block diagram of the decoding device 10.
- the decoding device 10 includes a processor 11 and a memory 12, and the processor 11 performs the above processing using the memory 12.
- the encoding device (three-dimensional data encoding device) according to the embodiment performs the process shown in FIG. 36.
- the encoding device encodes a plurality of three-dimensional points.
- the encoding device determines whether four first edge vertices have been generated on each of the four first edges of the first face of the first node (S311), and encodes the plurality of three-dimensional points based on the result of the determination (S312).
- the four first edge vertices are used in the Trisoap method, and the first node is a unit for storing a plurality of three-dimensional points included in the octree structure.
- the encoding device can determine whether or not the first edge vertices have been generated correctly, for example, based on whether four first edge vertices have been generated on each of the four first edges of the first face. Specifically, when first edge vertices have been generated on all first edges, there is a possibility that edge vertices for restoring the original point cloud have not been generated correctly. This allows the encoding device to improve the reproducibility of the point cloud decoded by the decoding device, for example, by performing encoding processing according to the determination result.
- the encoding processing according to the determination result can, for example, correct the edge vertex positions as described below, or not generate edge vertices.
- the encoding device when four first edge vertices are generated on four first edges, the encoding device further performs at least one of a first process and a second process, and in the first process, generates a plurality of second edge vertices on a plurality of second edges of the first node that are perpendicular to the first face, and in the second process, increases a threshold for edge vertex generation that is compared with the distances between the plurality of three-dimensional points and the edges. For example, an edge vertex is generated when there is a three-dimensional point whose distance to the edge is less than the threshold.
- the encoding device can generate a correct edge vertex by generating an additional edge vertex or regenerating the edge vertex. This can improve the reproducibility of the point group decoded by the decoding device.
- the encoding device increases the threshold value for the multiple second edges. This allows the encoding device to generate a correct edge vertex when an edge vertex is erroneously generated on the first face and no edge vertex is generated on some of the multiple second edges.
- the encoding device repeatedly increases the threshold value until multiple second edge vertices are generated. In this way, the encoding device can generate appropriate edge vertices by gradually increasing the threshold value.
- the encoding device estimates the positions of one or two edge vertices using the positions of the second edge vertices. In this way, the encoding device can generate an edge vertex to be added using the second edge vertices.
- the encoding device estimates attribute information of one or two edge vertices from attribute information of multiple second edge vertices. In this way, the encoding device can improve the reproducibility of the decoded point group by estimating attribute information of the second edge vertices.
- FIG. 37 is a block diagram of the encoding device 20.
- the encoding device 20 includes a processor 21 and a memory 22, and the processor 21 performs the above processing using the memory 22.
- the encoding device (three-dimensional data encoding device) and decoding device (three-dimensional data decoding device) according to the embodiment and modified examples of the present disclosure have been described above, but the present disclosure is not limited to this embodiment.
- each processing unit included in the encoding device and decoding device according to the above-mentioned embodiments is typically realized as an LSI, which is an integrated circuit. These may be individually implemented as single chips, or may be integrated into a single chip that includes some or all of them.
- the integrated circuit is not limited to LSI, but may be realized by a dedicated circuit or a general-purpose processor. It is also possible to use an FPGA (Field Programmable Gate Array) that can be programmed after the LSI is manufactured, or a reconfigurable processor that can reconfigure the connections and settings of the circuit cells inside the LSI.
- FPGA Field Programmable Gate Array
- each component may be configured with dedicated hardware, or may be realized by executing a software program suitable for each component.
- Each component may be realized by a program execution unit such as a CPU or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory.
- the present disclosure may also be realized as an encoding method (three-dimensional data encoding method) or a decoding method (three-dimensional data decoding method) executed by an encoding device (three-dimensional data encoding device) and a decoding device (three-dimensional data decoding device), etc.
- the present disclosure may also be realized as a program that causes a computer, processor, or device to execute the encoding method or decoding method.
- the present disclosure may also be realized as a bitstream generated by the encoding method.
- the present disclosure may also be realized as a recording medium on which the program or the bitstream is recorded.
- the present disclosure may also be realized as a non-transitory computer-readable recording medium on which the program or the bitstream is recorded.
- the division of functional blocks in the block diagram is one example, and multiple functional blocks may be realized as one functional block, one functional block may be divided into multiple blocks, or some functions may be transferred to other functional blocks. Furthermore, the functions of multiple functional blocks having similar functions may be processed in parallel or in a time-shared manner by a single piece of hardware or software.
- This disclosure can be applied to encoding devices and decoding devices.
- REFERENCE SIGNS LIST 10 Decoding device 11, 21 Processor 12, 22 Memory 20 Encoding device 101 Object space 102, 133 Point group 103, 111, 132 Point 104 Leaf node 112, 112A, 112B, 112C Edge vertex 113, 122 Range 121 Approximation plane 123 Vertex information 131 Triangle 151 Centroid vertex 161 Face vertex 201 Area
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
符号化方法は、複数の三次元点を符号化する符号化方法であって、第1ノードの第1面の4個の第1辺に4個の第1エッジ頂点が各々生成されたかを判定し(S311)、判定の結果に基づき、複数の三次元点を符号化し(S312)、4個の第1エッジ頂点は、トライソープ方式で用いられ、第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。例えば、符号化方法は、さらに、4個の第1辺に4個の第1エッジ頂点が各々生成された場合、第1処理及び第2処理の少なくとも一方を行い、第1処理では、第1ノードの複数の辺から4個の第1辺を除外した複数の辺に含まれる複数の第2辺に複数の第2エッジ頂点を各々生成し、第2処理では、複数の第2エッジ頂点の生成に三次元点が用いられるように閾値を増加させ、複数の第2辺と三次元点との距離は、増加後の閾値より小さくてもよい。
Description
本開示は、符号化方法、復号方法、符号化装置及び復号装置に関する。
自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。
三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC又はHEVCなどがある)と同様に、符号化によるデータ量の圧縮が必須となる。
また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)などによって一部サポートされている。
また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
また、符号化方式として不可逆圧縮方式が用いられる場合がある。このような場合には、復号された点群は、元の点群と完全には一致しない。よって、復号される点群の再現性を向上できることが望まれている。
本開示は、復号される点群の再現性を向上できる符号化方法、復号方法、符号化装置又は復号装置を提供することを目的とする。
本開示の一態様に係る符号化方法は、複数の三次元点を符号化する符号化方法であって、第1ノードの第1面の4個の第1辺に4個の第1エッジ頂点が各々生成されたかを判定し、前記判定の結果に基づき、前記複数の三次元点を符号化し、前記4個の第1エッジ頂点は、トライソープ方式で用いられ、前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。
本開示の一態様に係る復号方法は、複数の三次元点を復号する復号方法であって、第1ノード内の符号化された複数の第1エッジ頂点を復号することで、前記第1ノードの、互いに平行な複数の第1辺に前記複数の第1エッジ頂点を生成し、前記複数の第1エッジ頂点の数が4個未満の場合、前記複数の第1エッジ頂点の位置を用いて、前記複数の第1辺以外、かつ前記複数の第1辺に平行な1又は2個の第2辺上の1又は2個の第2エッジ頂点の位置を推定し、前記複数の第1エッジ頂点及び前記1又は2個の第2エッジ頂点は、トライソープ方式で用いられ、前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。
本開示の一態様に係る復号方法は、複数の三次元点を復号する復号方法であって、第1ノードの第1面が、前記第1ノードの断面と平行かを判定し、前記判定の結果に基づき、符号化された前記複数の三次元点を復号し、前記第1面は、4個のエッジ頂点のそれぞれが配置される4個の辺を有し、前記断面は、前記第1ノードの第1セントロイド頂点を通過し、前記断面は、2組のフェース頂点対で定義され、前記2組のフェース頂点対の各々は、前記第1面と垂直な第2面に配置され、前記第1セントロイド頂点と、前記第1ノードに隣接する第2ノードの第2セントロイド頂点とを結ぶ線は、前記第2面のフェース頂点と交差し、前記第1セントロイド頂点、前記第2セントロイド頂点、及び前記4個のエッジ頂点は、トライソープ方式で用いられ、前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。
本開示は、復号される点群の再現性を向上できる符号化方法、復号方法、符号化装置又は復号装置を提供できる。
本開示の一態様に係る符号化方法は、複数の三次元点を符号化する符号化方法であって、第1ノードの第1面の4個の第1辺に4個の第1エッジ頂点が各々生成されたかを判定し、前記判定の結果に基づき、前記複数の三次元点を符号化し、前記4個の第1エッジ頂点は、トライソープ方式で用いられ、前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。
これによれば、符号化方法は、例えば、第1面の4個の第1辺に4個の第1エッジ頂点が各々生成されたかに基づき、第1エッジ頂点が正しく生成されているか否かを判定できる。具体的には、全ての第1辺に第1エッジ頂点が生成されている場合、元点群を復元するためのエッジ頂点が正しく生成されていない可能性がある。これにより、符号化方法は、例えば、判定結果に応じた符号化処理を行うことで、復号装置において復号される点群の再現性を向上できる。判定結果に応じた符号化処理とは、例えば、後述するエッジ頂点位置の補正又はエッジ頂点を生成しないことである。
例えば、前記符号化方法は、さらに、前記4個の第1辺に前記4個の第1エッジ頂点が各々生成された場合、第1処理及び第2処理の少なくとも一方を行い、前記第1処理では、前記第1面に直交する複数の第2辺であって、前記第1ノードの前記複数の第2辺に複数の第2エッジ頂点を各々生成し、前記第2処理では、エッジ頂点生成のための閾値であって、複数の三次元点と辺との距離と比較される前記閾値を増加してもよい。
これによれば、符号化方法は、エッジ頂点が正しく生成されていない場合に、追加のエッジ頂点の生成、又はエッジ頂点の再生成を行うことで、正しいエッジ頂点を生成できる。これにより、復号装置において復号される点群の再現性を向上できる。
例えば、前記第2処理では、前記複数の第2辺のための前記閾値を増加してもよい。これによれば、符号化方法は、誤って第1面にエッジ頂点が生成され、かつ、複数の第2辺の一部にエッジ頂点が生成されていない場合に、正しいエッジ頂点を生成できる。
例えば、前記第2処理では、前記複数の第2エッジ頂点が生成されるまで前記閾値を繰り返し増加してもよい。これによれば、符号化方法は、段階的に閾値を増加させることで、適切なエッジ頂点を生成できる。
例えば、前記第1処理では、前記複数の第2エッジ頂点の数が4未満の場合、1又は2個のエッジ頂点の位置を、前記複数の第2エッジ頂点の位置を用いて推定してもよい。これによれば、符号化方法は、複数の第2エッジ頂点を用いて、追加するエッジ頂点を生成できる。
例えば、前記第1処理では、前記数が4未満の場合、前記1又は2個のエッジ頂点の属性情報は、前記複数の第2エッジ頂点の属性情報から推定されてもよい。これによれば、符号化方法は、第2エッジ頂点の属性情報を推定することで復号される点群の再現性を向上できる。
本開示の一態様に係る復号方法は、複数の三次元点を復号する復号方法であって、第1ノード内の符号化された複数の第1エッジ頂点を復号することで、前記第1ノードの、互いに平行な複数の第1辺に前記複数の第1エッジ頂点を生成し、前記複数の第1エッジ頂点の数が4個未満の場合、前記複数の第1エッジ頂点の位置を用いて、前記複数の第1辺以外、かつ前記複数の第1辺に平行な1又は2個の第2辺上の1又は2個の第2エッジ頂点の位置を推定し、前記複数の第1エッジ頂点及び前記1又は2個の第2エッジ頂点は、トライソープ方式で用いられ、前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。
これによれば、復号方法は、正しくエッジ頂点が生成されてない場合に、第2エッジ頂点を追加で生成できる。これにより、復号方法は、復号される点群の再現性を向上できる。
例えば、前記推定は、ビットストリームに含まれる、前記推定を行うかを示す制御情報に従い実行されてもよい。これによれば、復号方法は、符号化装置で生成された制御情報に基づき、推定を行うか否かを判定できるので、復号装置における判定処理を簡略化でき、復号装置の処理量を低減できる。
例えば、前記1又は2個の第2エッジ頂点の属性情報は、前記複数の第1エッジ頂点の属性情報から推定されてもよい。これによれば、復号方法は、第2エッジ頂点の属性情報を推定することで復号される点群の再現性を向上できる。
本開示の一態様に係る復号方法は、複数の三次元点を復号する復号方法であって、第1ノードの第1面が、前記第1ノードの断面と平行かを判定し、前記判定の結果に基づき、符号化された前記複数の三次元点を復号し、前記第1面は、4個のエッジ頂点のそれぞれが配置される4個の辺を有し、前記断面は、前記第1ノードの第1セントロイド頂点を通過し、前記断面は、2組のフェース頂点対で定義され、前記2組のフェース頂点対の各々は、前記第1面と垂直な第2面に配置され、前記第1セントロイド頂点と、前記第1ノードに隣接する第2ノードの第2セントロイド頂点とを結ぶ線は、前記第2面のフェース頂点と交差し、前記第1セントロイド頂点、前記第2セントロイド頂点、及び前記4個のエッジ頂点は、トライソープ方式で用いられ、前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。
これによれば、復号方法は、例えば、第1面が第1ノードの断面と平行かに基づき、頂点が正しく生成されているか否かを判定できる。これにより、復号方法は、例えば、判定結果に応じた復号処理を行うことで、復号される点群の再現性を向上できる。
例えば、前記第1面が前記断面と平行でないと判定された場合、前記トライソープ方式に従って、前記符号化された複数の三次元点を復号し、前記第1セントロイド頂点と前記4個のエッジ頂点とで定義される近似面上に複数の三次元点を配置してもよい。これによれば、復号方法は、例えば、第1面が第1ノードの断面と平行でない場合には、エッジ頂点が正しく生成されていると判定し、当該エッジ頂点を用いて近似面を生成することで、復号される点群の再現性を向上できる。
例えば、前記復号方法は、さらに、前記第1面が前記断面と平行であると判定された場合、前記符号化された複数の三次元点を復号して、前記断面上に複数の三次元点を配置してもよい。これによれば、復号方法は、例えば、第1面が第1ノードの断面と平行である場合には、エッジ頂点が正しく生成されていないと判定し、セントロイド頂点及びフェース頂点で定義される断面に複数の三次元点を生成する。これにより、復号される点群の再現性を向上できる。
また、本開示の一態様に係る符号化装置は、複数の三次元点を符号化する符号化装置であって、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、第1ノードの第1面の4個の第1辺に4個の第1エッジ頂点が各々生成されたかを判定し、前記判定の結果に基づき、前記複数の三次元点を符号化し、前記4個の第1エッジ頂点は、トライソープ方式で用いられ、前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。
また、本開示の一態様に係る復号装置は、複数の三次元点を復号する復号装置であって、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、第1ノード内の符号化された複数の第1エッジ頂点を復号することで、前記第1ノードの、互いに平行な複数の第1辺に前記複数の第1エッジ頂点を生成し、前記複数の第1エッジ頂点の数が4個未満の場合、前記複数の第1エッジ頂点の位置を用いて、前記複数の第1辺以外、かつ前記複数の第1辺に平行な1又は2個の第2辺上の1又は2個の第2エッジ頂点の位置を推定し、前記複数の第1エッジ頂点及び前記1又は2個の第2エッジ頂点は、トライソープ方式で用いられ、前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。
また、本開示の一態様に係る復号装置は、複数の三次元点を復号する復号装置であって、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、第1ノードの第1面が、前記第1ノードの断面と平行かを判定し、前記判定の結果に基づき、符号化された前記複数の三次元点を復号し、前記第1面は、4個のエッジ頂点のそれぞれが配置される4個の辺を有し、前記断面は、前記第1ノードの第1セントロイド頂点を通過し、前記断面は、2組のフェース頂点対で定義され、前記2組のフェース頂点対の各々は、前記第1面と垂直な第2面に配置され、前記第1セントロイド頂点と、前記第1ノードに隣接する第2ノードの第2セントロイド頂点とを結ぶ線は、前記第2面のフェース頂点と交差し、前記第1セントロイド頂点、前記第2セントロイド頂点、及び前記4個のエッジ頂点は、トライソープ方式で用いられ、前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
以下、本実施の形態に係る符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)について説明する。符号化装置は、三次元データを符号化することでビットストリームを生成する。復号装置は、当該ビットストリームを復号することで三次元データを生成する。
以下、本実施の形態に係る符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)について説明する。符号化装置は、三次元データを符号化することでビットストリームを生成する。復号装置は、当該ビットストリームを復号することで三次元データを生成する。
三次元データは、例えば、三次元点群データ(点群データとも呼ぶ)である。点群は、複数の三次元点が集まったものであり、対象物(オブジェクト)の三次元形状を示す。点群データは、複数の三次元点の位置情報及び属性情報を含む。当該位置情報は、各三次元点の三次元位置を示す。なお、位置情報は、ジオメトリ(geometry)情報とも呼ばれる場合がある。例えば、位置情報は、直交座標系又は極座標系で表される。
属性情報は、例えば、色情報、反射率、透過率、赤外情報、法線ベクトル、又は時刻情報などを示す。1つの三次元点は、単一の属性情報を持つ場合もあれば、複数種類の属性情報を持つ場合もある。
なお、以下では、主に位置情報の符号化及び復号について説明するが、符号化装置は、属性情報の符号化及び復号を行ってもよい。
[トライソープ方式]
本実施の形態に係る符号化装置は、トライソープ(TriSoup:Triangle-Soup)方式を用いて位置情報を符号化する。
本実施の形態に係る符号化装置は、トライソープ(TriSoup:Triangle-Soup)方式を用いて位置情報を符号化する。
トライソープ方式は、点群データの位置情報を符号化する方式の一つであり、不可逆圧縮方式である。トライソープ方式では、処理対象の元点群を三角形の集合に置き換え、その平面上に点群を近似する。具体的には、元点群をノード内の頂点情報に置き換え、頂点同士を結んで三角形群を生成する。また、三角形を生成するための頂点情報がビットストリームに格納され、復号装置へ送られる。
まず、トライソープ方式を用いた符号化処理について説明する。図1は、元点群の例を示す図である。図1に示すように、対象物の点群102は、対象空間101に含まれ、複数の点103を含む。
初めに、符号化装置は、元点群を所定の深さ(depth)まで8分木(Octree)分割する。8分木分割では、対象空間が8個のノード(サブ空間)に分割され、各ノードに点群が含まれるか否かを示す8ビットの情報(オキュパンシー符号)が生成される。また、点群が含まれるノードは、さらに、8個のノードに分割され、当該8個のノードの各々に点群が含まれるか否かを示す8ビットの情報が生成される。この処理が、予め定められた階層まで繰り返される。
ここで、通常の8分木符号化では、例えば、ノードに含まれる点群の数の1つ又は閾値以下になるまで分割が繰り返される。一方、トライソープ方式は、8分木分割は途中の階層まで行われるが、当該階層以下の階層に対しては行われない。このような途中の階層までの8分木を、剪定8分木と呼ぶ。
図2は、剪定8分木の例を示す図である。図2に示すように、点群102は、剪定8分木の複数のリーフノード104(最下層のノード)に分割される。
次に、符号化装置は、剪定8分木のリーフノード104の各々に対して以下の処理を行う。なお、以下では、リーフノードを単にノードとも記す。符号化装置は、ノードのエッジ(edge)に近い点群の代表点として、エッジ上に頂点を生成する。この頂点をエッジ頂点と呼ぶ。例えば、エッジ頂点は、複数のエッジ(例えば平行な4辺)の各々に対して生成される。
図3は、リーフノード104を二次元表示した例であり、例えば、図1に示すz方向から見たxy平面を示す図である。図3に示すように、リーフノード104内の複数の点111のうちエッジの近接点に基づき、エッジ上にエッジ頂点112が生成される。
なお、図3では、リーフノード104の外周の点線がエッジである。また、この例ではエッジとの距離が1以内の点(図3における範囲113に含まれる点)の位置の重み付き平均の位置にエッジ頂点112が生成される。なお、距離の単位は例えば点群の分解能であるが、これに限らない。また、この距離(閾値)は、この例では1であるが、1以外でもよく、可変であってもよい。
次に、符号化装置は、複数のエッジ頂点を含む平面の法線方向に存在する点群に基づき、ノードの内部にも頂点を生成する。この頂点をセントロイド(centroid)頂点と呼ぶ。
図4及び図5は、セントロイド頂点の生成方法を説明するための図である。まず、符号化装置は、エッジ頂点群の中から例えば4点を代表点として選択する。図4に示す例ではエッジ頂点v1~v4が選択される。次に、符号化装置は、4点を通る近似平面121を算出する。次に、符号化装置は、近似平面121の法線nと、4点の平均座標Mとを算出する。次に、符号化装置は、平均座標Mから法線nの方向に延びる半直線に近い1以上の点(例えば図5に示す範囲122に含まれる点)の重み付き平均座標にセントロイド頂点Cを生成する。
次に、符号化装置は、エッジ頂点とセントロイド頂点の情報である頂点情報をエントロピー符号化し、符号化された頂点情報を、ビットストリームに含まれるジオメトリデータユニット(Geometry Data Unit:以下、GDUと記す)に格納する。なお、GDUは、頂点情報に加え、剪定8分木を示す情報を含む。
図6は、頂点情報の例を示す図である。上記の処理により、図6に示すように、点群102は頂点情報123に変換される。
次に、上記で生成されたビットストリームの復号処理について説明する。まず、復号装置は、ビットストリームからGDUを復号し、頂点情報を得る。次に、復号装置は、頂点同士を結び、三角形群であるトライソープ・サーフェス(TriSoup-Surface)を生成する。
図7は、トライソープ・サーフェスの例を示す図である。図7に示す例では、頂点情報に基づき、4つのエッジ頂点v1~v4と、セントロイド頂点Cとが生成される。また、セントロイド頂点Cと、2つのエッジ頂点とを頂点とする三角形131(トライソープ・サーフェス)が生成される。例えば、隣接する2つエッジ上の2つのエッジ頂点の組がそれぞれ選択され、選択された組とセントロイド頂点とを頂点とする三角形131が生成される。
図8は、点群の復元処理を説明するための図である。上記の処理がリーフノード毎に行われることで、図8に示すように、対象物を複数の三角形131で表現した三次元モデルが生成される。
次に、復号装置は、三角形131の表面に一定間隔で点132を生成することで、点群133の位置情報を復元する。
[点群サーフェスの尾根線の表現の例]
トライソープ方式において、隣接するノードにまたがる尾根線(稜線)の形状を復元できない場合がある。これに対して、符号化装置は、隣接するノードと当接する面にフェース頂点を生成し、セントロイド頂点、フェース頂点及びエッジ頂点から生成される三角形の面上にも点群を復元する。
トライソープ方式において、隣接するノードにまたがる尾根線(稜線)の形状を復元できない場合がある。これに対して、符号化装置は、隣接するノードと当接する面にフェース頂点を生成し、セントロイド頂点、フェース頂点及びエッジ頂点から生成される三角形の面上にも点群を復元する。
例えば、リーフノードの内側に、点群分布(点群サーフェス)の折れ曲がり部分が分布した場合に、点群サーフェスの角とエッジが交わらず、角の位置に頂点が作られないために、頂点を結んで出来るサーフェスモデルが元点群の形状を再現できない場合がある。
図9は、ノード1及びノード2にまたがって点群が分布しており、尾根線が形成されている場合の点群の例を示す図である。図9に示すように、エッジ近くの点群分布に基づき、エッジ頂点112が生成される。
図10は、この場合のセントロイド頂点の生成例を示す図である。図10に示すように、エッジ頂点群の近似平面の法線方向にセントロイド頂点151が生成される。
図11は、この場合の三角形131(トライソープ・サーフェス)の生成例を示す図である。図11に示すように、複数の頂点(複数のエッジ頂点及びセントロイド頂点)を接続することで三角形131が生成される。このとき、図11に示すように、ノード境界付近の点群が再現できていない。
これは、セントロイド頂点は、元の点群サーフェスをサンプリングできているが、現行の方式では、隣接する2つのノードの2つのセントロイド頂点の間に頂点を作れないためである。例えば尾根線がx、y、zのいずれかの軸方向に沿ってノード内に分布し続けた場合に、尾根線がエッジを跨がないために尾根線に対応する頂点が生成されない。これにより、この問題が発生する。
本実施の形態では、符号化装置は、点群サーフェスの尾根線を予測し、2つの隣接ノードが同じ尾根線を有していると判定した場合、2つの隣接ノードの2つのセントロイド頂点を線分で接続するための情報を復号装置へ伝送する。この情報は、例えば、ノード間の面ごとに付与される1ビットの情報である。
復号装置は、この情報を用いてセントロイド頂点を接続し、得られた線分とノード間の共有面との交点に新頂点(フェース頂点)を生成する。復号装置は、この新頂点を用いて、三角形131の生成時に尾根線を再現できる。
また、フェース頂点の座標位置は量子化されないため、量子化による位置ずれの問題が存在しない。
図12は、フェース頂点の生成例を示す図である。図12に示すように、復号装置は、フェース頂点161を生成し、フェース頂点161を用いて三角形131を生成することで尾根線を再現できる。
上記の手法により、ノード境界付近の点群サーフェスを再現できるので、より元点群に近い復号点群が得られる。なお、上記説明において点群サーフェスは尾根線に係る課題を説明するために用いられるだけであり、尾根線は実際に求められる必要はない。
[平面復元の課題]
これら各種頂点を用いて平面を有する点群を復元する際に、復元された点群のサーフェスが平面を成さず、元の点群に無かった凹凸が生じる可能性がある。考えられる原因は以下のとおりである。なお、この問題は、フェース頂点を用いて隣接ノードに跨る面を使うか否かによらず生じる。例えば、エッジ頂点の精度が、セントロイド頂点の精度より低い場合、ノードを平面的に横断する点群のサーフェスに対して作られる各頂点の位置には差が生じる。
これら各種頂点を用いて平面を有する点群を復元する際に、復元された点群のサーフェスが平面を成さず、元の点群に無かった凹凸が生じる可能性がある。考えられる原因は以下のとおりである。なお、この問題は、フェース頂点を用いて隣接ノードに跨る面を使うか否かによらず生じる。例えば、エッジ頂点の精度が、セントロイド頂点の精度より低い場合、ノードを平面的に横断する点群のサーフェスに対して作られる各頂点の位置には差が生じる。
図13は、この場合のエッジ頂点及びセントロイド頂点の生成例を示す図である。図13は、x方向に並ぶノード1とノード2を示す。例えば、エッジ頂点112の精度は、ノード幅が32の場合にエッジ長の1/4の表現能力(8刻み位置)である。一方、セントロイド頂点151は、整数座標精度を持つ。
図13に示すように、この高さ位置(y座標)の違いを持った頂点同士から得られる復元サーフェスは、波打った形状になり、元の点群のような平面にならない。なお、サーフェスは、例えば、1以上のノード内の、頂点群に基づき生成された複数の三角形で構成される。
この問題の解決策としてエッジ頂点の位置精度を向上させることも考えられるが、一律に精度を向上した場合、精度の向上が必要でない領域のエッジ頂点のデータ量も一律に増加するという問題が生じる。また、エッジ頂点毎にデータのビット数を変更する可変ビット割付を用いると処理が複雑になる問題がある。よって、いずれの方法も現実的ではない。
[解決方法]
本実施の形態では、復号装置は、セントロイド頂点及びフェース頂点の位置関係を用いて、ノード内の点群が平面であったと推定できる場合、エッジ頂点の位置を補正する。これにより、復元されるサーフェスを平面にできる。
本実施の形態では、復号装置は、セントロイド頂点及びフェース頂点の位置関係を用いて、ノード内の点群が平面であったと推定できる場合、エッジ頂点の位置を補正する。これにより、復元されるサーフェスを平面にできる。
図14は、このエッジ頂点の補正方法を説明するための図である。図14は、x方向に並ぶノード1とノード2を示す。また、ノード2が処理対象の対象ノードである。ノード2は、セントロイド頂点C0と、エッジ頂点E0、E1、E2及びE3と、フェース頂点F0、F1、F2及びF3とを有する。
なお、例えば、セントロイド頂点は、1個のノードの1個のみ生成される。エッジ頂点は、1個のエッジ(辺)に最大で1個生成される(つまり、1個のみ生成される、又は生成されない)。フェース頂点は、1個のフェース(面)に最大で1個生成される。
まず、復号装置は、対象ノード内の複数の頂点を用いてサーフェスを復元する処理の前に、向かい合う面に属するフェース頂点の組(例えばF0とF2)とセントロイド頂点C0とが直線を成すかを判定する。例えば、復号装置は、フェース頂点F0とフェース頂点F2とを通る直線L0上にセントロイド頂点C0が存在するかを判定する。この条件を満たすフェース頂点の組(例えばF0とF2)を、直線状頂点の組と呼ぶ。なお、直線L0上にセントロイド頂点C0が存在するとは、例えば、直線L0とセントロイド頂点C0との距離が予め定められた閾値未満のことを意味してもよい。
さらに、復号装置は、他の向かい合う2面にも直線状頂点の組(例えばF1とF3)が存在するかを判定する。例えば、復号装置は、フェース頂点F1とフェース頂点F3とを通る直線L1上にセントロイド頂点C0が存在するかを判定する。そして、復号装置は、2個の直線状頂点の組が存在する場合、元の点群は平面であると判定する。また、図14の例では、z方向に向かい合う2面と、x方向に向かい合う2面とに直線状頂点の組が存在するため、xz平面に元の点群の平面が存在すると判定される。また、このように、対象ノード内に2個の直線状頂点の組が存在する条件を、ノード内2直線条件と呼ぶ。
ここで、隣接するノードのセントロイド頂点を繋いだ直線上にフェース頂点が存在する場合とは、元の点群がその直線上に存在したことを意味する。
また、直線状頂点の組を判定する別の方法として、セントロイド頂点C0から向かい合う2つの面のフェース頂点(例えばF0とF2)のそれぞれへ向かう2つのベクトルの向きが同じであるかが判定されてもよい。ここで、2つのベクトルの向きが同じとはベクトルの向きの差分が0°或いは180°、又は、それら基準から一定の範囲内に収まる場合であってもよい。なお、ここではベクトルを用いる例を述べるが、ベクトルの代わりに方向が用いられてもよい。また、以下の説明においても、同様にベクトルの代わりに方向が用いられてもよい。
例えば、復号装置は、平面を、数式を用いて求める方法として、以下の方法を用いてもよい。復号装置は、ノード内で向かい合うフェース頂点の組を結ぶ線分と、他の向かい合うフェース頂点の組を結ぶ線分との外積を算出する。次に、復号装置は、法線方向が算出された外積に等しい平面を、フェース頂点及びセントロイド頂点を含む平面として求める。
また、復号装置は、平面を有すると判定されたノードについては、フェース頂点とセントロイド頂点との位置からエッジ頂点の位置を補正する。これにより、エッジ頂点の位置精度を高めることができ、これら頂点群から平面のサーフェスを復元できる。
また、復号装置は、平面を有すると判定されなかったノードについては、エッジ頂点の位置を補正せずに、通常のサーフェス復元処理を行う。
例えば、図14に示すように、エッジ頂点E0がエッジ頂点E4に補正される。具体的には、復号装置は、推定された平面とノードのエッジ(辺)との交差位置(E4の位置)に、当該エッジ上のエッジ頂点(E0)を移動させてもよい。
または、復号装置は、隣接ノード間で連続する面に属する2つのフェース頂点同士を結んだ直線(図14のL2)とエッジとの交差位置(E4の位置)に、当該エッジ上のエッジ頂点(E0)を移動させてもよい。
なお、図14では、エッジ頂点E0のみが補正される例を示しているが、エッジ頂点E1、E2及びE3もエッジ頂点E0と同様に補正される。
図15は、エッジ頂点の別の補正方法を説明するための図である。図15は、ノード2が対象ノードであり、エッジ頂点E0が補正される例を示す。なお、ノード2に含まれる他のエッジ頂点もエッジ頂点E0と同様に補正されてもよい。
まず、復号装置は、エッジ頂点E0に対して、当該エッジ頂点E0が属するエッジを共有する2面に生成される2つのフェース頂点F1及びF2への、セントロイド頂点C0から見た個々の移動量であるオフセット量OS1及びOS2を算出する。次に、復号装置は、セントロイド頂点C0の位置にこれらオフセット量OS1及びOS2を加算した位置(E1の位置)にエッジ頂点E0の位置を補正する。
なお、ここでは、ノードが平面を有すると判定された場合に、誤生成されたエッジ頂点が補正される例を述べたが、復号装置は、ノードが平面を有すると判定された場合に、当該平面と交差する(直交する)エッジに存在するエッジ頂点を、平面復元に用いる頂点から除外してもよい。
図16は、斜面とノード群とが立体的に交差する場合の複数の頂点の例を示す図である。このような場合にも、上記の手法により斜面を復元可能である。具体的には、図16に示すノードBとノードEとの各々でセントロイド頂点151とフェース頂点161とが生成される。この場合でも、セントロイド頂点151とフェース頂点161とが直線的に並ぶので、各ノードで個別に平面の判定を実行できる。
以上の方法により、復号装置は、対象ノードが平面を有するかを判定し、対象ノードが平面を有する場合には、エッジ頂点を補正する。これにより、正しく平面を復元できるので、復元される点群の精度を向上できる。また、上記の方法では、対象ノードの内の情報のみを用いて(隣接ノードの情報を用いずに)、対象ノードが平面を有するかの判定、及び、エッジ頂点の補正を実現できる。
なお、元の点群が隣接ノードにまたがる平面上に復元されるべきか否かを判定する方法としては上述の方法以外の方法が用いられてもよい。例えば、復号装置は、対象ノードに第1方向で隣接する第1ノードの第1セントロイド頂点と、第1方向に直交する第2方向で対象ノードと隣接する第2ノードの第2セントロイド頂点と、第1ノードと隣接する側の対象ノードの面に生成された第1フェース頂点と、第2ノードと隣接する側の対象ノードの面に生成された第2フェース頂点とを用いて、判定を行ってもよい。例えば、復号装置は、これらの4個の頂点が同一平面に含まれる場合に、対象ノードが平面を有すると判定してもよい。
上記では、ノードを横断する平面が存在する場合を判定する例を述べたが、以下では、ノード内で途切れる平面が存在するかを判定する方法について説明する。これにより、正しく復元できる平面の面積をより大きくできるので、復元される点群の品質を向上できる。
図17は、4個のノードA~Dに生成される頂点の例を示す図である。図17に示す例では、ノードC及びノードDには、当該ノードを横断する平面(点群)が存在し、ノードA及びノードBには、当該ノードの右側(x軸正方向)半分に平面(点群)が存在する。
この場合、例えば、ノードAでは向かい合う面上にフェース頂点の組(F0とF1)が存在するが、2個の直線状頂点の組は存在しない。なお、対象ノード内に1個の直線状頂点の組が存在する条件を、ノード内1直線条件と呼ぶ。同様に、ノードBでは向かい合う面上にフェース頂点の組(F1とF2)が存在するが、2個の直線状頂点の組は存在しない。よって、ノードA及びノードBは、前述のノード内2直線条件には該当しない。
この場合、ノードA及びノードB内のx軸正方向の半面は、右側から連なる平面の続きである可能性がある。このようなノード内の半面の平面を判定するために、復号装置は、以下の判定を行う。
復号装置は、対象ノードがノード内1直線条件を満たし、かつ、ノード内1直線条件を満たす方向(図17の例ではz方向)と直交する他の方向(図17の例ではx軸正方向)においてノード外1直線条件が満たされる場合、当該他の方向(x軸正方向側)に半面に平面が存在すると判定する。ここで、ノード外1直線条件とは、ノードAにおいて、セントロイド頂点C0とフェース頂点F3とが成す直線Axの方向と、方向Ax側の隣接ノードC内の直線状頂点の組(F3とF5)が成す直線Cxの方向とが同じ、又は差が予め定められた値未満であることである。
ノードBにおいても、対象ノードがノード内1直線条件を満たし、かつ、ノード内1直線条件を満たす方向(図17の例ではz方向)と直交する他の方向(図17の例ではx軸正方向)においてノード外1直線条件が満たされるため、当該他の方向(x軸正方向側)の半面に平面が存在すると判定される。具体的には、ノードBにおいて、セントロイド頂点C1とフェース頂点F4とが成す直線Bxの方向と、方向Bx側の隣接ノードD内の直線状頂点の組(F4とF6)が成す直線Dxの方向とが同じ、又は差が予め定められた値未満であるため、ノードBのx軸正方向側の半面に平面が存在すると判定される。
復号装置は、上記の平面の処理と同様に半面の領域に交差するエッジ上のエッジ頂点の位置を補正して、対象ノード内のサーフェスを復元する。なお、図17ではエッジ頂点は図示していない。
図18は、4個のノードA~Dに生成される頂点の例を示す図である。図18に示す例では、ノードB、ノードC及びノードDには、当該ノードを横断する平面(点群)が存在し、ノードAには、当該ノードの右奥側(z軸負方向かつx軸正方向)の1/4面に平面(点群)が存在する。
この例では、ノードAは、ノード内2直線条件及びノード内1直線条件を満たさない。この場合、復号装置は、上述したノード外1直線条件が2方向で満たされるか否かを判定する。なお、ノード外1直線条件が2方向で満たされる条件を、ノード外2直線条件と呼ぶ。
図18の例では、ノードAと、ノードAにz軸負方向で隣接するノードBとの境界面にフェース頂点F1が有り、かつノードBが直線上頂点の組(F1とF2)を持ち、かつノードAのセントロイド頂点C0とフェース頂点F1とが成す直線Azの方向と、隣接ノードB内の直線状頂点の組(F1とF2)が成す直線Bzの方向とが同じ、又は差が予め定められた値未満である。
また、ノードAと、ノードAにx軸正方向で隣接するノードCとの境界面にフェース頂点F3が有り、かつノードCが同じ方向(x軸方向)に直線上頂点の組(F3とF5)を持ち、かつノードAのセントロイド頂点C0とフェース頂点F3とが成す直線Axの方向と、隣接ノードC内の直線状頂点の組(F3とF5)が成す直線Cxの方向とが同じ、又は差が予め定められた値未満である。
この場合、復号装置は、ノードAのx軸正方向かつz軸負方向の1/4領域は隣接ノードから続く平面領域であると推定する。このように、復号装置は、2方向の隣接ノードの各々において、対象ノードから隣接ノードの方向に直線上頂点の組がある場合、対象ノードの1/4領域は同様の平面であると推定する。また、復号装置は、当該平面と交差するエッジ上に生成されたエッジ頂点の位置を補正して、対象ノード内のサーフェスを復元する。なお、図18ではエッジ頂点は図示していない。
図19は、4個のノードA~Dに生成される頂点の例を示す図である。図19に示す例では、ノードA~ノードDには1/4面に平面(点群)が存在する。具体的には、ノードAのz軸負方向かつx軸正方向、ノードBのz軸正方向かつx軸正方向、ノードCのz軸負方向かつx軸負方向、及びノードDのz軸正方向かつx軸負方向に1/4面の平面が存在する。
復号装置は、図19に示すように、上記の判定では平面と判定されるノードが存在しない場合でも、隣接する4個のノードの各々の境界面にフェース頂点が生成されている場合に、各ノードの4つの1/4面を平面と判定する。
具体的には、復号装置は、(1)ノードAのセントロイド頂点C0とz軸負方向のフェース頂点F0とが成す直線Azの方向と、ノードBのセントロイド頂点C1とz軸正方向のフェース頂点F0とが成す直線Bzの方向とが同じ、又は差が予め定められた値未満であり、かつ(2)ノードAのセントロイド頂点C0とx軸正方向のフェース頂点F1とが成す直線Axの方向と、ノードCのセントロイド頂点C2とx軸負方向のフェース頂点F1とが成す直線Cxの方向とが同じ、又は差が予め定められた値未満であり、かつ(3)ノードBのセントロイド頂点C1とx軸正方向のフェース頂点F2とが成す直線Bxの方向と、ノードDのセントロイド頂点C3とx軸負方向のフェース頂点F2とが成す直線Dxの方向とが同じ、又は差が予め定められた値未満であり、かつ(4)ノードCのセントロイド頂点C2とz軸負方向のフェース頂点F3とが成す直線Czの方向と、ノードDのセントロイド頂点C3とz軸正方向のフェース頂点F3とが成す直線Dzの方向とが同じ、又は差が予め定められた値未満である場合、ノードA~Dの各々に1/4面の平面が存在すると判定する。なお、上記の条件をノード外2直線条件の集合と呼ぶ。
また、復号装置は、当該平面と交差するエッジ上に生成されたエッジ頂点の位置を補正して、対象ノード内のサーフェスを復元する。なお、図19ではエッジ頂点は図示していない。
なお、復号装置は、前述のノード内の半面、ノード内の1/4面に平面が存在すると判定した場合において、スライスの端の直前まで平面が継続している場合には、スライスの端又はスライス切断面のノードにフェース頂点が存在しない場合でも、そのノードに至るまでの平面を有するノードの連続性を基に、当該ノードの全面を平面と判定してもよい。
例えば、図17に示す例において、ノードAの左面(x軸負方向の面)がスライスの端である場合には、ノードAの全面が平面と判定されてもよい。この場合、復号装置は、当該平面と交差するエッジ上に生成されたエッジ頂点の位置を補正して、対象ノード内のサーフェスを復元する。
ここで、上述したノード内の平面復元処理に必要なノード内の情報はセントロイド頂点とフェース頂点のみであり、復元されたエッジ頂点の座標そのものは平面復元処理には不要な情報となる。そこで、伝送データ量の削減のために、符号化装置は、上記の平面復元処理を一度試行的に行っておき、平面復元条件に該当したノードについては、エッジ頂点の情報の伝送を行わなくてもよい。つまり、符号化装置は、平面復元条件に該当したノードのエッジ頂点の情報を、ビットストリームに格納しなくてもよい。
図20は、トライソープ方式のノード内の頂点座標の復元における情報の依存関係を示す図である。図20に示すように、ノード毎の情報として、エッジ頂点の座標と、セントロイドベクトル長とが伝送される。ここで、セントロイドベクトルは、複数のエッジ頂点を通る近似平面の法線方向に延び、近似平面からセントロイド頂点に向かうベクトルである。復号装置は、これらの情報を用いてノード毎にセントロイド頂点の座標を算出する。また、復号装置は、隣接ノードの2つのセントロイド頂点の座標からフェース頂点の座標を算出する。
よって、エッジ頂点座標を伝送しないノードについては頂点復元の依存関係が崩れてセントロイド頂点及びフェース頂点を復元できなくなる。これに対して、符号化装置は、エッジ頂点座標を伝送しないノードについては、セントロイドベクトル長も伝送を行わない。また、符号化装置は、エッジ頂点座標の伝送を行うか否かを示すエッジ頂点無伝送フラグをビットストリームに付与すると共に、セントロイド頂点の座標を伝送する。これにより、復号装置は、セントロイド頂点の座標及びフェース頂点の座標を復元できる。
なお、上記説明では、平面の判定にフェース頂点を用いていたが、フェース頂点を使わずに、隣接ノードのセントロイド頂点を接続し、平面の判定が行われてもよい。
図21は、4個のノード1~4に生成されるセントロイド頂点及びエッジ頂点112の例を示す図である。この場合、復号装置は、例えば、ノード1~4のセントロイド頂点C1~C4が同一平面に含まれる場合、平面が存在すると判定してもよい。復号装置は、当該平面と交差するエッジ上に生成されたエッジ頂点の位置を補正して、対象ノード内のサーフェスを復元する。
なお、元の点群が隣接ノードにまたがる平面上に復元されるべきか否かを判定する方法として以下の方法が用いられてもよい。例えば、復号装置は、対象ノードに第1方向で隣接する第1ノードの第1セントロイド頂点と、対象ノードのセントロイド頂点とが結ばれ、かつ、第1方向に直交する第2方向で対象ノードに隣接する第2ノードの第2セントロイド頂点と、対象ノードのセントロイド頂点とが結ばれる場合に、対象ノードは平面を有すると判定してもよい。例えば、第1セントロイド頂点と対象ノードのセントロイド頂点とが結ばれるか否かを示す情報、及び、第2セントロイド頂点と対象ノードのセントロイド頂点とが結ばれるか否かを示す情報は、符号化装置で生成され、ビットストリームに格納される。復号装置は、これらの情報を用いて、上記の判定を行う。
[シンタックス例]
上述した手法を実現するためのビットストリームに含まれる情報のシンタックス例を説明する。
上述した手法を実現するためのビットストリームに含まれる情報のシンタックス例を説明する。
ビットストリームは、上記方式を適用するか否かを示す第1フラグを含んでもよい。復号装置は、第1フラグがオンの場合、つまり、第1フラグにより、上記方式を適用することが示される場合に、上記方式を適用した平面復元処理を行ってもよい。
符号化装置は、第1フラグを、例えば、SPS(Sequence Parameter Set)、GPS(Geometry Parameter Set)、GDU(Geometry Data Unit)又はGDUヘッダに格納してもよい。
SPSは、複数フレームに共通のメタデータ(パラメータセット)である。GPSは、位置情報の符号化に関わるメタデータ(パラメータセット)である。例えば、GPSは、複数フレームに共通のメタデータである。GDUは、位置情報の符号化データのデータユニット(ジオメトリデータユニット)である。GDUヘッダは、GDUのヘッダ(制御情報)である。
また、ノード単位で第1フラグが格納されてもよい。つまり、ノード単位で、上記方式を適用するか否かが切り替えられてもよい。
また、第1フラグ以外に、本方式に記載の様々な方法又は閾値を切り替えるためのパラメータが別途ビットストリームに格納されてもよい。例えば、当該パラメータは、ノード内2直線条件を判定する際の2本のベクトル向きの許容誤差範囲を決定するための情報を含んでもよい。また、当該パラメータは、上述したスライス端において平面復元を行うか否かを示す第2フラグを含んでもよい。
これらのパラメータは、SPS、GPS及びGDUのいずれかに格納されてもよいし、ノード単位で格納されてもよい。または、上記パラメータは、第1フラグがオンの場合にビットストリームに格納されてもよいし、第1フラグの値に関わらず、常にビットストリームに格納されてもよい。
[フローチャート]
図22は、復号装置による復号処理のフローチャートである。まず、復号装置は、ビットストリームからGDUヘッダとGDUとを取得する(S101)。次に、復号装置は、GDUから8分木情報をエントロピー復号し、8分木情報を用いて剪定8分木の複数のリーフノード(リーフノード群)を生成する(S102)。
図22は、復号装置による復号処理のフローチャートである。まず、復号装置は、ビットストリームからGDUヘッダとGDUとを取得する(S101)。次に、復号装置は、GDUから8分木情報をエントロピー復号し、8分木情報を用いて剪定8分木の複数のリーフノード(リーフノード群)を生成する(S102)。
次に、復号装置は、GDUから、エッジ頂点とセントロイド頂点の位置を示す頂点情報を取得する(S103)。具体的には、復号装置は、GDUに含まれる符号化された頂点情報をエントロピー復号することで頂点情報を取得する。
次に、復号装置は、各リーフノード(以下では単にノードとも記す)にフェース頂点を生成する(S104)。例えば、復号装置は、各ノードにおいて、対象ノードのセントロイド頂点と隣接ノードのセントロイド頂点とを条件に応じて接続し、得られた線分とノード境界との交差位置にフェース頂点を生成する。
次に、復号装置は、剪定8分木の複数のノードの各々に対して以下のステップS105~S107の処理(ループ処理)を行う。まず、復号装置は、対象ノード内の頂点群(複数のエッジ頂点、セントロイド頂点及びフェース頂点)を結んで複数の三角形(トライソープ・サーフェス)を生成する(S105)。
次に、復号装置は、対象ノード内の複数の三角形の各々に対して以下のステップS106の処理(ループ処理)を行う。復号装置は、対象三角形の表面に複数の点を生成する(S106)。以上により、各三角形に対するループ処理が終了する。
次に、復号装置は、各ノード内の復元点群を座標値でユニーク化して復号点群に追加する(S107)。ここで、ユニーク化とは座標値が重複する点を除外することである。以上により、各ノードに対するループ処理が終了する。
図23は、複数の三角形の生成処理(S105)のフローチャートである。まず。復号装置は、対象ノードが上述した「ノード内2直線条件」を満たすか否かを判定する(S111)。対象ノードが「ノード内2直線条件」を満たす場合(S111でYes)、復号装置は、対象ノードが平面を有すると判定し、当該平面と交差するエッジ上のエッジ頂点の位置を、例えば平面の位置に補正する(S112)。
対象ノードが「ノード内2直線条件」を満たさない場合(S111でNo)、復号装置は、対象ノードが上述した「ノード内1直線条件」と「ノード外1直線条件」を満たすか否かを判定する(S113)。対象ノードが「ノード内1直線条件」と「ノード外1直線条件」とを共に満たす場合(S113でYes)、復号装置は、対象ノードの半面に平面が存在すると判定し、当該平面と交差するエッジ上のエッジ頂点の位置を、例えば平面の位置に補正する(S114)。
対象ノードが「ノード内1直線条件」と「ノード外1直線条件」との少なくとも一方を満たさない場合(S113でNo)、復号装置は、対象ノードが上述した「ノード外2直線条件」を満たすか否かを判定する(S115)。対象ノードが「ノード外2直線条件」を満たす場合(S115でYes)、復号装置は、対象ノードの1/4面に平面が存在すると判定し、当該平面と交差するエッジ上のエッジ頂点の位置を、例えば平面の位置に補正する(S116)。
対象ノードが「ノード外2直線条件」を満たさない場合(S115でNo)、復号装置は、対象ノードが上述した「ノード外2直線条件の集合」を満たすか否かを判定する(S117)。対象ノードが「ノード外2直線条件の集合」を満たす場合(S117でYes)、復号装置は、対象ノードを含む4隣接ノードの各々の1/4面に平面が存在すると判定し、当該平面に交差するエッジ上のエッジ頂点の位置を、例えば平面の位置に補正する(S118)。なお、4隣接ノードとは、例えば、図19に示すノードA~ノードDのように同一平面において、各々が他の2個のノードと隣接するノード群である。
ステップS112、S114、S116又はS118の後、復号装置は、補正されたエッジ頂点を含む複数のエッジ頂点、セントロイド頂点、及び複数のフェース頂点を用いて複数の三角形を生成する(S119)。
一方、対象ノードが「ノード外2直線条件の集合」を満たさない場合(S117でNo)、復号装置は、エッジ頂点の補正は行わず、セントロイド頂点、複数のエッジ頂点、複数のフェース頂点を用いて複数の三角形を生成する(S119)。
なお、図23に示す全ての判定が必ずしも行われる必要はなく、一部の判定のみが行われてもよい。また、判定の順序は一例であり、異なる順序で判定が行われてもよいし、並列に判定が行われてもよい。
(実施の形態2)
[平面復元の課題]
これら各種頂点を用いて平面を有する点群を復元する際に、復元された点群のサーフェスが平面を成さず、元点群に無かった凹凸が生じる可能性がある。この原因として、上記実施の形態1で説明した原因に加え、以下の原因が考えられる。なお、この問題は、フェース頂点を用いて隣接ノードに跨る面を使うか否かによらず生じる。
[平面復元の課題]
これら各種頂点を用いて平面を有する点群を復元する際に、復元された点群のサーフェスが平面を成さず、元点群に無かった凹凸が生じる可能性がある。この原因として、上記実施の形態1で説明した原因に加え、以下の原因が考えられる。なお、この問題は、フェース頂点を用いて隣接ノードに跨る面を使うか否かによらず生じる。
考えられる原因の一つとして、エッジ頂点生成処理における感度の問題がある。図24は、この問題を説明するための図であり、エッジ頂点112A及び112B、並びにセントロイド頂点151の生成例を示す図である。図24は、x方向に並ぶノード1とノード2を示す。
エッジ付近に分布する元点群に含まれる複数の点に対して、各点とエッジとの距離に応じた重みを乗じた指標値の合計が閾値THを超えた場合に、エッジ頂点が生成される。点群の面がノード境界面付近に分布した場合、本来期待される、点群と直交するエッジ上のエッジ頂点112Bよりも、点群と平行なエッジ上のエッジ頂点112Aのほうが重みが大きくなる。これにより、点群と平行なエッジ上にエッジ頂点112Aが誤生成される。
図25は、このようにエッジ頂点112Aが誤生成された場合の復元されるサーフェス(復元サーフェス)の例を示す図である。図25に示すように、これら誤生成されたエッジ頂点112Aを用いてサーフェスが復元された場合、歪んだサーフェスが復元される。
さらに、元の点群が疎な場合、本来の生成されるべきエッジ頂点112Bが生成されない場合もある。これらはいずれも、復号装置がトライソープ方式で伝送されたデータを受けて、頂点群から高品位な点群を復元する際の妨げとなる。
[解決方法]
上記課題を以下の方法で解決できる。なお、以下の処理は、符号化装置及び復号装置の一方又は両方で行うことができる。符号化装置及び復号装置のいずれにおいても、リーフノードの同一面に属する4個のエッジの全てにエッジ頂点が生成されている場合、当該エッジ頂点は誤生成であると判定できる。よって、符号化装置及び復号装置は、この同一面に4個のエッジ頂点が配置されていることを検出した場合に解決処理を行うことが考えられる。
上記課題を以下の方法で解決できる。なお、以下の処理は、符号化装置及び復号装置の一方又は両方で行うことができる。符号化装置及び復号装置のいずれにおいても、リーフノードの同一面に属する4個のエッジの全てにエッジ頂点が生成されている場合、当該エッジ頂点は誤生成であると判定できる。よって、符号化装置及び復号装置は、この同一面に4個のエッジ頂点が配置されていることを検出した場合に解決処理を行うことが考えられる。
[第1方法]
まず、上記課題を解決する第1方法を説明する。なお、第1方法は、符号化装置において実施される。図26は、セントロイド頂点151、並びにエッジ頂点112A及び112Bの生成例を示す図である。図26では、正しい3個のエッジ頂点112Bに加え、底面に4個のエッジ頂点112Aが誤生成されている。また、領域201には、エッジ頂点が生成されるべきであるが、エッジ頂点は生成されていない。
まず、上記課題を解決する第1方法を説明する。なお、第1方法は、符号化装置において実施される。図26は、セントロイド頂点151、並びにエッジ頂点112A及び112Bの生成例を示す図である。図26では、正しい3個のエッジ頂点112Bに加え、底面に4個のエッジ頂点112Aが誤生成されている。また、領域201には、エッジ頂点が生成されるべきであるが、エッジ頂点は生成されていない。
まず、符号化装置は、対象ノードに、同一面に4個のエッジ頂点が配置されている面である4頂点面が存在するかを判定する。符号化装置は、対象ノードに4頂点面が存在する場合には、当該4頂点面を含むノードには誤生成されたエッジ頂点である誤生成頂点が含まれていると判定し、対象ノードのエッジ頂点を再生成する。
この際に、符号化装置は、4頂点面(図26おける底面)に属するエッジ4本をエッジ頂点の生成対象から除外したうえでエッジ頂点を生成し直してもよい。また、符号化装置は、初回のエッジ頂点の生成結果において、4頂点面に直交するエッジ4本の個々にエッジ頂点が生成されていなかった場合、このエッジ頂点の再生成の際に、エッジ頂点の生成に用いる閾値THを緩和してからエッジ頂点を再生成してもよい。
なお、ノードの面と一致するように分布する点群を復元する場合は、4頂点面に直交する直交エッジの最下部に点群に基づいたエッジ頂点が生成される。よって、4頂点面に誤生成されたエッジ頂点を削除しても問題はない。
例えば、符号化装置は、エッジと点との距離の閾値=2(座標グリッド)を初期値として用い、再生成の度に1グリッドずつ閾値を増やしていくことで、閾値を緩和する。また、閾値には上限値が設けられてもよい。これにより、ノードの幅を超えた閾値を設定することを防止できる。なお、初期値として任意の値が用いられてもよい。
例えば、初期値は閾値=1であり、上限値は、ノード幅の50%程度であってもよい。また、初期値は1より大きく、且つ上限値は、ノード幅の25%未満であってもよい。
この閾値の調整は、4頂点面に直交する4本のエッジだけに行われてもよいし、4頂点面の4本のエッジを除いた残り8本の全てのエッジに対して行われてもよいし、その他の状況に合わせて個々のエッジ毎に閾値が変動されてもよい。
この閾値の緩和と頂点生成処理は、正しいエッジ頂点が直交エッジ4本の全てに生成されるまで、反復的に繰り返し行われてもよい。
また、頂点の再生成において、4頂点面のエッジを対象から除外せずに、閾値の緩和のみが行われてもよい。また、例えば、点群が4頂点面に非常に近い位置に分布していたとしても、セントロイド頂点はその高さを保持している。よって、別の平面復元技術(例えば、実施の形態1で説明した技術)によってフェース頂点が正しい高さに生成され、平面復元が可能である。よって、本実施の形態の処理は、実施の形態1で説明したエッジ頂点補正処理の前段処理として用いられてもよい。つまり、本実施の形態の処理により再生成されたエッジ頂点群とセントロイド頂点が、実施の形態1の技術に基づいて、平面として復元されてもよい。なお、実施の形態1の処理は行われなくてもよい。
上記の処理により、復号装置により、精度の良いジオメトリ形状の復元を実現できる。また、伝送データ中の無駄なエッジ頂点データの削減、及び、復号装置における処理の簡易化を実現できる。
図27は、上記の処理により、復元されるサーフェスの例を示す図である。図26に示す4頂点面に生成されていたエッジ頂点112Aは除外される。また、閾値を変えてエッジ頂点を再生成することで、正しいエッジ頂点112Cが追加される、これにより、平面が復元される。
なお、符号化装置は、上記で再生成されたエッジ頂点の位置を示す情報をビットストリームに格納する。復号装置は、当該情報を用いてエッジ頂点を生成することで、正しいエッジ頂点を生成できる。
[第2方法]
次に、上記課題を解決する第2方法を説明する。なお、第2方法は、符号化装置又は復号装置で実施される。なお、以下では、符号化装置における処理の例を説明するが、復号装置において同様の処理を行ってもよい。
次に、上記課題を解決する第2方法を説明する。なお、第2方法は、符号化装置又は復号装置で実施される。なお、以下では、符号化装置における処理の例を説明するが、復号装置において同様の処理を行ってもよい。
第2方法は、第1方法と、エッジ頂点の再生成の方法が異なる。エッジ頂点の再生成において、符号化装置は、4頂点面(図26における底面)に属するエッジ頂点4つを除外する。さらに、符号化装置は、4頂点面に直交する4本の直交エッジの全てにエッジ頂点が生成されていない場合、エッジ頂点が生成されていない直交エッジ上にエッジ頂点を生成する。例えば図26に示すように4本の直交エッジのうち3本にエッジ頂点112Bが生成され、残りの1本のエッジにエッジ頂点が生成されていない場合、符号化装置は、図27に示すように、3点のエッジ頂点112Bから推定される高さにエッジ頂点112Cを生成する。
例えば、点群が平面であり、点群がノード面を平行に横切っている場合、生成されるエッジ頂点の高さはいずれも近くなるので、4点目のエッジ頂点の高さを3点のエッジ頂点の高さの平均から求めることができる。このように、符号化装置は、3つのエッジ頂点の高さから4つ目のエッジ頂点の高さを推定し、4つ目のエッジ頂点を補完生成してもよい。
また、符号化装置は、2本の直交エッジにエッジ頂点が生成され、残りの2本の直交エッジにエッジ頂点が生成されていない場合、及び、1本の直交エッジにエッジ頂点が生成され、残りの3本の直交エッジにエッジ頂点が生成されていない場合にも、同様にエッジ頂点が生成されていない直交エッジ上にエッジ頂点が生成されてもよい。例えば、上記と同様に、生成されている1又は2個のエッジ頂点の高さの平均値を、残りのエッジ頂点の高さに用いることができる。
この方法により生成されたエッジ頂点及びセントロイド頂点を用いることで、実施の形態1で説明したエッジ頂点補正処理によってフェース頂点が正しい高さに生成され、平面復元が可能である。よって、本実施の形態の処理は、実施の形態1で説明したエッジ頂点補正処理の前段処理として用いられてもよい。つまり、本実施の形態の処理により再生成されたエッジ頂点群とセントロイド頂点が、実施の形態1の技術に基づいて、平面として復元されてもよい。なお、実施の形態1の処理は行われなくてもよい。
また、この第2方法を符号化装置で行う場合は、第1方法と同様に精度の良いジオメトリ形状を復元できる。また、伝送データ中の無駄なエッジ頂点データの削減、及び、復号装置における処理の簡易化を実現できる。さらに、符号化装置での頂点再生成の処理を省くことができるので、符号化装置の処理量を低減できる。
また、この第2方法を復号装置で行う場合、符号化装置は、上記で再生成されたエッジ頂点の位置を示す情報をビットストリームに格納する。復号装置は、当該情報を用いてエッジ頂点を生成することで、正しいエッジ頂点を生成できる。このように、復号装置は、元点群に近いジオメトリ形状を復元できる。
この場合、復号装置は、追加したエッジ頂点の属性情報(色等)、又は復元点群の属性情報を、補完してもよい。例えば、復号装置は、復元点群の属性情報を、復元された点群の点の位置に基づき、頂点、又は周辺の点の属性情報を用いて、補完生成してもよい。また、復号装置は、追加したエッジ頂点の属性情報を、当該エッジ頂点の位置に基づき、他のエッジ頂点の属性情報を用いて、補完生成してもよい。なお、このエッジ頂点又は点の属性情報の補完は符号化装置で行われてもよい。この場合、符号化装置は、補完された属性情報を含む複数の三次元点の属性情報をビットストリームに格納する。
[第3方法]
次に、上記課題を解決する第3方法を説明する。なお、第3方法は、符号化装置又は復号装置で実施される。なお、以下では、符号化装置における処理の例を説明するが、復号装置において同様の処理を行ってもよい。
次に、上記課題を解決する第3方法を説明する。なお、第3方法は、符号化装置又は復号装置で実施される。なお、以下では、符号化装置における処理の例を説明するが、復号装置において同様の処理を行ってもよい。
先に記載した誤生成頂点の判定(第1方法)、又は不足頂点位置の推定処理(第2方法)において、元点群がノード面に平行な平面である場合、推定は容易だが、元点群がノード面に対して斜面であった場合の推定は容易ではない。第3方法では、誤生成頂点の判定のために、セントロイド頂点とフェース頂点の配置方向を活用する。
図28及び図29は、この第3方法を説明するための図であり、セントロイド頂点151、エッジ頂点112A及び112B、並びにフェース頂点161の生成例を示す図である。
セントロイド頂点151及びフェース頂点161はいずれも元点群の分布を踏まえて生成される頂点である。よって、符号化装置は、ノード内で向かい合う面のフェース頂点161の2組が成す線分2本(図28に示す例では線分L1及びL2)を含む面と平行なノード面に生成されたエッジ頂点は誤生成頂点であると判定する。
例えば、図28に示す例では、線分L1及びL2を含む面はノードの底面と平行である。よって、底面に生成された4個のエッジ頂点112Aは、誤生成頂点であると判定され、削除される。例えば、上述した第1方法又は第2方法を用いて、エッジ頂点が再生成される。
一方、図29に示す例では、線分L1及びL2を含む面はノード1の底面(ノード2の上面)と平行でない。よって、底面に生成された4個のエッジ頂点(2個のエッジ頂点112A及び2個のエッジ頂点112B)は、誤生成頂点でない正しい頂点を含むと判定される。
なお、正しい頂点を含むと判定されたノード面については、そのままの頂点の位置を用いて、実施の形態1のエッジ頂点補正処理により、エッジ頂点の補完と平面復元が可能である。つまり、上述した第1方法又は第2方法を用いた、エッジ頂点の再生成は行われない。
なお、斜面とは、ノードの各面の法線と元点群が成す斜面の法線との間に何れも閾値以上の角度差がある場合を意味する。この閾値は、特に限定されないが、例えば、10度であってもよいし、20度であってもよい。この閾値は場合に応じて設定されてもよい。
一方、点群が成す面とノードのいずれかの面が平行とは、それぞれの法線の角度差が閾値未満である場合を意味する。この閾値は、特に限定されないが、例えば、10度であってもよいし、20度であってもよい。
この第3方法を符号化装置で行う場合、符号化装置は、上記で再生成されたエッジ頂点の位置を示す情報をビットストリームに格納する。復号装置は、当該情報を用いてエッジ頂点を生成することで、正しいエッジ頂点を生成できる。よって、復号装置は、精度の良いジオメトリ形状の復元を実現できる。また、伝送データ中の無駄なエッジ頂点データの削減、及び、復号装置の処理の簡易化を実現できる。さらに、符号化装置におけるエッジ頂点の再生成処理を省ける場合があるため、符号化装置の処理量を低減できる。
また、この第3方法を復号装置で行う場合、復号装置は、誤生成されたエッジ頂点を含む複数のエッジ頂点が符号化されたデータを復号し、得られたエッジ頂点を用いて、上記第3方法を行う。これにより、元点群に近いジオメトリ形状の復元が可能である。
この場合、復号装置は、追加したエッジ頂点の属性情報(色等)、又は復元点群の属性情報を、補完してもよい。例えば、復号装置は、復元点群の属性情報を、復元された点群の点の位置に基づき、頂点、又は周辺の点の属性情報を用いて、補完生成してもよい。また、復号装置は、追加したエッジ頂点の属性情報を、当該エッジ頂点の位置に基づき、他のエッジ頂点の属性情報を用いて、補完生成してもよい。なお、このエッジ頂点又は点の属性情報の補完は符号化装置で行われてもよい。この場合、符号化装置は、補完された属性情報を含む複数の三次元点の属性情報をビットストリームに格納する。
[シンタックス例]
上述した手法を実現するためのビットストリームに含まれる情報のシンタックス例を説明する。
上述した手法を実現するためのビットストリームに含まれる情報のシンタックス例を説明する。
ビットストリームは、上記方式を適用するか否かを示すフラグを含んでもよい。例えば、ビットストリームは、上記の第2方法を復号装置が適用するか否かを示す第1フラグを含んでもよい。つまり、第1フラグにより、上記第2方法を適用することが示される場合に、復号装置は、第2方法を適用した平面復元処理を行ってもよい。例えば、ビットストリームは、上記の第3方法を復号装置が適用するか否かを示す第2フラグを含んでもよい。つまり、第2フラグにより、上記第3方法を適用することが示される場合に、復号装置は、第3方法を適用した平面復元処理を行ってもよい。
また、ビットストリームは、上記の属性情報の補完を復号装置が適用するか否かを示す第3フラグを含んでもよい。つまり、第3フラグにより、上記補完を適用することが示される場合に、復号装置は、上記の属性情報の補完を行ってもよい。
符号化装置は、これらのフラグを、例えば、SPS、GPS又はGDUに格納してもよい。また、ノード単位でこれらのフラグが格納されてもよい。なお、第1フラグ、第2フラグ及び第3フラグの少なくとも一つがビットストリームに格納されてもよい。複数のフラグが格納される場合には、これらのフラグの格納先は同じであってもよいし、異なってもよい。
また、上記のフラグは複数の処理のオン又はオフを示す単一のフラグであってもよいし、複数の処理の各々のオン又はオフを示す個別のフラグであってもよい。
また、これらの情報は、常時送信されてもよい。また、これらの情報がビットストリームに含まれなくてもよい。その場合でも、復号装置は、上記の処理を行ってもよい。
[フローチャート]
図30は、符号化装置による符号化処理のフローチャートである。図30に示す処理は、上述した第1方法と、第3方法とを符号化装置で実施する場合の処理である。
図30は、符号化装置による符号化処理のフローチャートである。図30に示す処理は、上述した第1方法と、第3方法とを符号化装置で実施する場合の処理である。
まず、符号化装置は、元点群を8分木分割することで剪定8分木の複数のリーフノード(リーフノード群)を生成する(S201)。次に、符号化装置は、各リーフノード(以下では単にノードとも記す)のエッジ頂点及びセントロイド頂点を生成する(S202)。
次に、符号化装置は、各ノードにフェース頂点を生成する(S203)。例えば、符号化装置は、各ノードにおいて、対象ノードのセントロイド頂点と隣接ノードのセントロイド頂点とを条件に応じて接続し、得られた線分とノード境界との交差位置にフェース頂点を生成する。
次に、符号化装置は、剪定8分木の複数のノードの各々に対して以下のステップS204~S207の処理(ループ処理)を行う。まず、符号化装置は、対象ノード内に誤生成頂点が含まれるかを判定し、エッジ頂点を再生成する(S204)。
次に、符号化装置は、対象ノード内の頂点群(複数のエッジ頂点、セントロイド頂点及びフェース頂点)を結んで複数の三角形(トライソープ・サーフェス)を生成する(S205)。例えば、この処理の詳細は、実施の形態1で説明した図22のS105と同様である。
次に、符号化装置は、対象ノード内の複数の三角形の各々に対して以下のステップS206の処理(ループ処理)を行う。符号化装置は、対象三角形の表面に複数の点を生成する(S206)。以上により、各三角形に対するループ処理が終了する。
次に、符号化装置は、各ノード内の復元点群を座標値でユニーク化して復号点群に追加する(S207)。ここで、ユニーク化とは座標値が重複する点を除外することである。以上により、各ノードに対するループ処理が終了する。
図31は、エッジ頂点の再生成処理(S204)のフローチャートである。まず、符号化装置は、エッジ頂点の再構成を行うか否かを示す頂点再構成フラグを初期化するために、頂点再構成フラグをオフに設定する(S211)。
次に、符号化装置は、対象ノードに含まれる各面に対して以下のステップS212~S215の処理(ループ処理)を行う。まず、符号化装置は、対象面に4個のエッジ頂点が存在するか否かを判定する(S212)。つまり、符号化装置は、対象面の4本のエッジのそれぞれに1個のエッジ頂点が生成されているか否かを判定する。
対象面に4個のエッジ頂点が存在する場合(S212でYes)、符号化装置は、対象面が、フェース頂点に基づく面と平行であるか否かを判定する。具体的には、符号化装置は、対象面が、ノード内で向かい合うフェース頂点同士の2組が成す面と平行であるか否かを判定する(S213)。
対象面が、上記面と平行である場合(S213でYes)、符号化装置は、対象面を、誤生成頂点を含む無効化面と判定し、頂点再構成フラグをオンに設定する(S214)。次に、符号化装置は、対象面(無効化面)に含まれる4個のエッジ頂点を破棄し、対象面(無効化面)に含まれる4本のエッジをエッジ頂点の再生成対象から除外する(S215)。以上により、対象ノードに含まれる各面に対するループ処理が終了する。また、対象面に4個のエッジ頂点が存在しない場合(S212でNo)、又は、対象面が、上記面と平行でない場合(S213でNo)、対象ノードに含まれる各面に対するループ処理が終了する。
次に、符号化装置は、対象ノードの頂点再構成フラグがオンであるか否かを判定する(S216)。頂点再構成フラグがオンである場合(S216でYes)、符号化装置は、エッジ頂点の生成に用いる閾値を緩和して対象ノード内のエッジ頂点を再生成する(S217)。
次に、符号化装置は、無効化面に垂直な4本のエッジの全てにエッジ頂点が生成されたか否かを判定する(S218)。4本のエッジの全てにエッジ頂点が生成されていない場合(S218でNo)、符号化装置は、エッジ頂点の生成に用いる閾値をさらに緩和して対象ノード内のエッジ頂点を再生成する(S217)。
頂点再構成フラグがオフである場合(S216でNo)、又は、4本のエッジの全てにエッジ頂点が生成された場合(S218でYes)、符号化装置は、ステップS204の処理を終了する。
図32は、上記の第2方法と第3方法とを行う場合の符号化装置における符号化処理及び復号装置における復号処理のフローチャートである。なお、以下では符号化装置における処理を説明するが、復号装置における処理も同様である。
なお、図32に示す処理は、図30に示す処理に対して、ステップS201~S203がステップS201Aに置き換えられており、ステップS204がステップS204Aに置き換えられている点が異なる。
まず、符号化装置は、複数のリーフノードのエッジ頂点、セントロイド頂点及びフェース頂点を生成する(S201A)。なお、符号化装置におけるステップS201Aの処理は、例えば、図30に示すステップS201~S203と同様である。また、復号装置におけるステップS201Aの処理は、例えば、図22に示すステップS101~S104の処理と同様である。
次に、符号化装置は、剪定8分木の複数のノードの各々に対して以下のステップS204A~S207の処理(ループ処理)を行う。まず、符号化装置は、エッジ頂点を追加する(S204A)。具体的には、符号化装置は、対象ノード内に誤生成頂点が存在するか否かを判定し、不足しているエッジ頂点の位置を推定する。なお、ステップS205以降の処理は、図30と同様であり、説明は省略する。
図33は、エッジ頂点の追加処理(S204A)のフローチャートである。なお、図33に示す処理は、図31に示す処理に対して、ステップS217がステップS217Aに置き換えられている点が異なる。以下では図31との相違点を説明する。
頂点再構成フラグがオンである場合(S216でYes)、符号化装置は、無効化面に垂直な4本のエッジのうち、エッジ頂点が存在しないエッジにエッジ頂点を生成する(S217A)。具体的には、符号化装置は、無効化面に垂直な4本のエッジのうちの残りエッジのエッジ頂点の位置を用いて、追加するエッジ頂点を補完する。
[まとめ]
実施の形態に係る復号装置(三次元データ復号装置)は、図34に示す処理を行う。復号装置は、複数の三次元点を復号する。復号装置は、第1ノード内の符号化された複数の第1エッジ頂点を復号することで、第1ノードの、互いに平行な複数の第1辺に複数の第1エッジ頂点を生成し(S301)、複数の第1エッジ頂点の数が4個未満の場合、複数の第1エッジ頂点の位置を用いて、複数の第1辺以外、かつ複数の第1辺に平行な1又は2個の第2辺上の1又は2個の第2エッジ頂点の位置を推定する(S302)。複数の第1エッジ頂点及び1又は2個の第2エッジ頂点は、トライソープ方式で用いられる。第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。例えば、復号装置は、複数の第1エッジ頂点及び1又は2個の第2エッジ頂点を用いて複数の三次元点を復号する。例えば、復号装置は、複数の第1エッジ頂点及び1又は2個の第2エッジ頂点を用いて三角形を生成し、三角形上に複数の三次元点を配置する。
実施の形態に係る復号装置(三次元データ復号装置)は、図34に示す処理を行う。復号装置は、複数の三次元点を復号する。復号装置は、第1ノード内の符号化された複数の第1エッジ頂点を復号することで、第1ノードの、互いに平行な複数の第1辺に複数の第1エッジ頂点を生成し(S301)、複数の第1エッジ頂点の数が4個未満の場合、複数の第1エッジ頂点の位置を用いて、複数の第1辺以外、かつ複数の第1辺に平行な1又は2個の第2辺上の1又は2個の第2エッジ頂点の位置を推定する(S302)。複数の第1エッジ頂点及び1又は2個の第2エッジ頂点は、トライソープ方式で用いられる。第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。例えば、復号装置は、複数の第1エッジ頂点及び1又は2個の第2エッジ頂点を用いて複数の三次元点を復号する。例えば、復号装置は、複数の第1エッジ頂点及び1又は2個の第2エッジ頂点を用いて三角形を生成し、三角形上に複数の三次元点を配置する。
これによれば、復号装置は、正しくエッジ頂点が生成されてない場合に、第2エッジ頂点を追加で生成できる。これにより、復号装置は、復号される点群の再現性を向上できる。
例えば、推定(S302)は、ビットストリームに含まれる、推定を行うかを示す制御情報に従い実行される。これによれば、復号装置は、符号化装置で生成された制御情報に基づき、推定を行うか否かを判定できるので、復号装置における判定処理を簡略化でき、復号装置の処理量を低減できる。
例えば、1又は2個の第2エッジ頂点の属性情報は、複数の第1エッジ頂点の属性情報から推定される。これによれば、復号装置は、第2エッジ頂点の属性情報を推定することで復号される点群の再現性を向上できる。
例えば、復号装置は、複数の三次元点を復号する。復号装置は、第1ノードの第1面が、第1ノードの断面と平行かを判定し、判定の結果に基づき、符号化された複数の三次元点を復号する。第1面は、4個のエッジ頂点のそれぞれが配置される4個の辺を有する。断面(例えばトライソープ三角形)は、第1ノードの第1セントロイド頂点を通過する。断面は、2組のフェース頂点対で定義され、2組のフェース頂点対の各々は、第1面と垂直な第2面に配置される。第1セントロイド頂点と、第1ノードに隣接する第2ノードの第2セントロイド頂点とを結ぶ線は、第2面のフェース頂点と交差する。第1セントロイド頂点、第2セントロイド頂点、及び4個のエッジ頂点は、トライソープ方式で用いられる。第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。例えば、トライソープ三角形は、第1ノードの断面を構成する面であって、第1セントロイド頂点を通過する面(近似面)である。
これによれば、復号装置は、例えば、第1面が第1ノードの断面と平行かに基づき、頂点が正しく生成されているか否かを判定できる。これにより、復号装置は、例えば、判定結果に応じた復号処理を行うことで、復号される点群の再現性を向上できる。
例えば、復号装置は、第1面が断面と平行でないと判定された場合、トライソープ方式に従って、符号化された複数の三次元点を復号し、第1セントロイド頂点と4個のエッジ頂点とで定義される近似面上に複数の三次元点を配置する。これによれば、復号装置は、例えば、第1面が第1ノードの断面と平行でない場合には、エッジ頂点が正しく生成されていると判定し、当該エッジ頂点を用いて近似面を生成することで、復号される点群の再現性を向上できる。
例えば、復号装置は、さらに、第1面が断面と平行であると判定された場合、符号化された複数の三次元点を復号して、断面上に複数の三次元点を配置する。これによれば、復号装置は、例えば、第1面が第1ノードの断面と平行である場合には、エッジ頂点が正しく生成されていないと判定し、セントロイド頂点及びフェース頂点で定義される断面に複数の三次元点を生成する。これにより、復号される点群の再現性を向上できる。
図35は、復号装置10のブロック図である。例えば、復号装置10は、プロセッサ11と、メモリ12とを備え、プロセッサ11は、メモリ12を用いて、上記処理を行う。
また、実施の形態に係る符号化装置(三次元データ符号化装置)は、図36に示す処理を行う。符号化装置は、複数の三次元点を符号化する。符号化装置は、第1ノードの第1面の4個の第1辺に4個の第1エッジ頂点が各々生成されたかを判定し(S311)、判定の結果に基づき、複数の三次元点を符号化する(S312)。4個の第1エッジ頂点は、トライソープ方式で用いられ、第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である。
これによれば、符号化装置は、例えば、第1面の4個の第1辺に4個の第1エッジ頂点が各々生成されたかに基づき、第1エッジ頂点が正しく生成されているか否かを判定できる。具体的には、全ての第1辺に第1エッジ頂点が生成されている場合、元点群を復元するためのエッジ頂点が正しく生成されていない可能性がある。これにより、符号化装置は、例えば、判定結果に応じた符号化処理を行うことで、復号装置において復号される点群の再現性を向上できる。判定結果に応じた符号化処理とは、例えば、後述するエッジ頂点位置の補正又はエッジ頂点を生成しないことである。
例えば、符号化装置は、さらに、4個の第1辺に4個の第1エッジ頂点が各々生成された場合、第1処理及び第2処理の少なくとも一方を行い、第1処理では、第1面に直交する複数の第2辺であって、第1ノードの複数の第2辺に複数の第2エッジ頂点を各々生成し、第2処理では、エッジ頂点生成のための閾値であって、複数の三次元点と辺との距離と比較される閾値を増加させる。例えば、辺との距離が閾値未満の三次元点が存在する場合にエッジ頂点が生成される。
これによれば、符号化装置は、エッジ頂点が正しく生成されていない場合に、追加のエッジ頂点の生成、又はエッジ頂点の再生成を行うことで、正しいエッジ頂点を生成できる。これにより、復号装置において復号される点群の再現性を向上できる。
例えば、符号化装置は、第2処理では、複数の第2辺のための閾値を増加する。これによれば、符号化装置は、誤って第1面にエッジ頂点が生成され、かつ、複数の第2辺の一部にエッジ頂点が生成されていない場合に、正しいエッジ頂点を生成できる。
例えば、符号化装置は、第2処理では、複数の第2エッジ頂点が生成されるまで閾値を繰り返し増加する。これによれば、符号化装置は、段階的に閾値を増加させることで、適切なエッジ頂点を生成できる。
例えば、符号化装置は、第1処理では、複数の第2エッジ頂点の数が4未満の場合、1又は2個のエッジ頂点の位置を、複数の第2エッジ頂点の位置を用いて推定する。これによれば、符号化装置は、複数の第2エッジ頂点を用いて、追加するエッジ頂点を生成できる。
例えば、符号化装置は、第1処理では、数が4未満の場合、1又は2個のエッジ頂点の属性情報は、複数の第2エッジ頂点の属性情報から推定される。これによれば、符号化装置は、第2エッジ頂点の属性情報を推定することで復号される点群の再現性を向上できる。
図37は、符号化装置20のブロック図である。例えば、符号化装置20は、プロセッサ21と、メモリ22とを備え、プロセッサ21は、メモリ22を用いて、上記処理を行う。
以上、本開示の実施の形態及び変形例に係る符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)等について説明したが、本開示は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る符号化装置及び復号装置等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、本開示は、符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)等により実行される符号化方法(三次元データ符号化方法)又は復号方法(三次元データ復号方法)等として実現されてもよい。
また、本開示は、上記符号化方法又は復号方法をコンピュータ、プロセッサ又は装置に実行させるプログラムとして実現されてもよい。また、本開示は、上記符号化方法により生成されたビットストリームとして実現されてもよい。また、本開示は、当該プログラム又は当該ビットストリームが記録された記録媒体として実現されてもよい。例えば、本開示は、当該プログラム又は当該ビットストリームが記録されている非一時的なコンピュータ読み取り可能な記録媒体として実現されてもよい。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、一つまたは複数の態様に係る符号化装置及び復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
本開示は、符号化装置及び復号装置に適用できる。
10 復号装置
11、21 プロセッサ
12、22 メモリ
20 符号化装置
101 対象空間
102、133 点群
103、111、132 点
104 リーフノード
112、112A、112B、112C エッジ頂点
113、122 範囲
121 近似平面
123 頂点情報
131 三角形
151 セントロイド頂点
161 フェース頂点
201 領域
11、21 プロセッサ
12、22 メモリ
20 符号化装置
101 対象空間
102、133 点群
103、111、132 点
104 リーフノード
112、112A、112B、112C エッジ頂点
113、122 範囲
121 近似平面
123 頂点情報
131 三角形
151 セントロイド頂点
161 フェース頂点
201 領域
Claims (15)
- 複数の三次元点を符号化する符号化方法であって、
第1ノードの第1面の4個の第1辺に4個の第1エッジ頂点が各々生成されたかを判定し、
前記判定の結果に基づき、前記複数の三次元点を符号化し、
前記4個の第1エッジ頂点は、トライソープ方式で用いられ、
前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である
符号化方法。 - 前記符号化方法は、さらに、
前記4個の第1辺に前記4個の第1エッジ頂点が各々生成された場合、第1処理及び第2処理の少なくとも一方を行い、
前記第1処理では、前記第1面に直交する複数の第2辺であって、前記第1ノードの前記複数の第2辺に複数の第2エッジ頂点を各々生成し、
前記第2処理では、エッジ頂点生成のための閾値であって、複数の三次元点と辺との距離と比較される前記閾値を増加させる
請求項1記載の符号化方法。 - 前記第2処理では、前記複数の第2辺のための前記閾値を増加する
請求項2記載の符号化方法。 - 前記第2処理では、前記複数の第2エッジ頂点が生成されるまで前記閾値を繰り返し増加する
請求項2記載の符号化方法。 - 前記第1処理では、前記複数の第2エッジ頂点の数が4未満の場合、1又は2個のエッジ頂点の位置を、前記複数の第2エッジ頂点の位置を用いて推定する
請求項2記載の符号化方法。 - 前記第1処理では、前記数が4未満の場合、前記1又は2個のエッジ頂点の属性情報は、前記複数の第2エッジ頂点の属性情報から推定される
請求項5記載の符号化方法。 - 複数の三次元点を復号する復号方法であって、
第1ノード内の符号化された複数の第1エッジ頂点を復号することで、前記第1ノードの、互いに平行な複数の第1辺に前記複数の第1エッジ頂点を生成し、
前記複数の第1エッジ頂点の数が4個未満の場合、前記複数の第1エッジ頂点の位置を用いて、前記複数の第1辺以外、かつ前記複数の第1辺に平行な1又は2個の第2辺上の1又は2個の第2エッジ頂点の位置を推定し、
前記複数の第1エッジ頂点及び前記1又は2個の第2エッジ頂点は、トライソープ方式で用いられ、
前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である
復号方法。 - 前記推定は、ビットストリームに含まれる、前記推定を行うかを示す制御情報に従い実行される
請求項7記載の復号方法。 - 前記1又は2個の第2エッジ頂点の属性情報は、前記複数の第1エッジ頂点の属性情報から推定される
請求項7記載の復号方法。 - 複数の三次元点を復号する復号方法であって、
第1ノードの第1面が、前記第1ノードの断面と平行かを判定し、
前記判定の結果に基づき、符号化された前記複数の三次元点を復号し、
前記第1面は、4個のエッジ頂点のそれぞれが配置される4個の辺を有し、
前記断面は、前記第1ノードの第1セントロイド頂点を通過し、
前記断面は、2組のフェース頂点対で定義され、
前記2組のフェース頂点対の各々は、前記第1面と垂直な第2面に配置され、
前記第1セントロイド頂点と、前記第1ノードに隣接する第2ノードの第2セントロイド頂点とを結ぶ線は、前記第2面のフェース頂点と交差し、
前記第1セントロイド頂点、前記第2セントロイド頂点、及び前記4個のエッジ頂点は、トライソープ方式で用いられ、
前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である
復号方法。 - 前記第1面が前記断面と平行でないと判定された場合、前記トライソープ方式に従って、前記符号化された複数の三次元点を復号し、前記第1セントロイド頂点と前記4個のエッジ頂点とで定義される近似面上に複数の三次元点を配置する
請求項10記載の復号方法。 - 前記復号方法は、さらに、
前記第1面が前記断面と平行であると判定された場合、前記符号化された複数の三次元点を復号して、前記断面上に複数の三次元点を配置する
請求項10記載の復号方法。 - 複数の三次元点を符号化する符号化装置であって、
プロセッサと、
メモリとを備え、
前記プロセッサは、前記メモリを用いて、
第1ノードの第1面の4個の第1辺に4個の第1エッジ頂点が各々生成されたかを判定し、
前記判定の結果に基づき、前記複数の三次元点を符号化し、
前記4個の第1エッジ頂点は、トライソープ方式で用いられ、
前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である
符号化装置。 - 複数の三次元点を復号する復号装置であって、
プロセッサと、
メモリとを備え、
前記プロセッサは、前記メモリを用いて、
第1ノード内の符号化された複数の第1エッジ頂点を復号することで、前記第1ノードの、互いに平行な複数の第1辺に前記複数の第1エッジ頂点を生成し、
前記複数の第1エッジ頂点の数が4個未満の場合、前記複数の第1エッジ頂点の位置を用いて、前記複数の第1辺以外、かつ前記複数の第1辺に平行な1又は2個の第2辺上の1又は2個の第2エッジ頂点の位置を推定し、
前記複数の第1エッジ頂点及び前記1又は2個の第2エッジ頂点は、トライソープ方式で用いられ、
前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である
復号装置。 - 複数の三次元点を復号する復号装置であって、
プロセッサと、
メモリとを備え、
前記プロセッサは、前記メモリを用いて、
第1ノードの第1面が、前記第1ノードの断面と平行かを判定し、
前記判定の結果に基づき、符号化された前記複数の三次元点を復号し、
前記第1面は、4個のエッジ頂点のそれぞれが配置される4個の辺を有し、
前記断面は、前記第1ノードの第1セントロイド頂点を通過し、
前記断面は、2組のフェース頂点対で定義され、
前記2組のフェース頂点対の各々は、前記第1面と垂直な第2面に配置され、
前記第1セントロイド頂点と、前記第1ノードに隣接する第2ノードの第2セントロイド頂点とを結ぶ線は、前記第2面のフェース頂点と交差し、
前記第1セントロイド頂点、前記第2セントロイド頂点、及び前記4個のエッジ頂点は、トライソープ方式で用いられ、
前記第1ノードは、8分木構造に含まれる複数の三次元点を格納する単位である
復号装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202363447443P | 2023-02-22 | 2023-02-22 | |
US63/447,443 | 2023-02-22 | ||
US202363452750P | 2023-03-17 | 2023-03-17 | |
US63/452,750 | 2023-03-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024176931A1 true WO2024176931A1 (ja) | 2024-08-29 |
Family
ID=92501255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2024/005179 WO2024176931A1 (ja) | 2023-02-22 | 2024-02-15 | 符号化方法、復号方法、符号化装置及び復号装置 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024176931A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022521991A (ja) * | 2019-09-03 | 2022-04-13 | テンセント・アメリカ・エルエルシー | 一般化されたtrisoupジオメトリ符号化のための技術 |
JP2022162485A (ja) * | 2021-04-12 | 2022-10-24 | Kddi株式会社 | 点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラム |
JP2022550877A (ja) * | 2019-10-03 | 2022-12-05 | エルジー エレクトロニクス インコーポレイティド | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法。 |
-
2024
- 2024-02-15 WO PCT/JP2024/005179 patent/WO2024176931A1/ja unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022521991A (ja) * | 2019-09-03 | 2022-04-13 | テンセント・アメリカ・エルエルシー | 一般化されたtrisoupジオメトリ符号化のための技術 |
JP2022550877A (ja) * | 2019-10-03 | 2022-12-05 | エルジー エレクトロニクス インコーポレイティド | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法。 |
JP2022162485A (ja) * | 2021-04-12 | 2022-10-24 | Kddi株式会社 | 点群復号装置、点群符号化装置、点群処理システム、点群復号方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230126256A1 (en) | Methods and devices using direct coding in point cloud compression | |
CN114008997B (zh) | 基于八叉树的点云编码中的平面模式的上下文确定 | |
US20230162402A1 (en) | Method and apparatus for processing a point cloud | |
US20230048381A1 (en) | Context determination for planar mode in octree-based point cloud coding | |
CN114073095A (zh) | 基于八叉树的点云编码中的平面模式 | |
CN103918009A (zh) | 预测位置编码 | |
KR20120085066A (ko) | 데이터 처리 장치 및 방법 | |
CN113096200B (zh) | 一种基于法向量的点云属性压缩方法、装置、设备及介质 | |
CN114731161A (zh) | 用于点云压缩中的树切换的方法和设备 | |
WO2024176931A1 (ja) | 符号化方法、復号方法、符号化装置及び復号装置 | |
WO2024176890A1 (ja) | 復号方法及び復号装置 | |
KR100294923B1 (ko) | 손실 탄력성을 갖는 점진적 삼차원 메쉬 정보의 부호화/복호화방법 | |
WO2021164861A1 (en) | Methods and devices for multi-point direct coding in point cloud compression | |
WO2024214447A1 (ja) | 復号方法、符号化方法、復号装置及び符号化装置 | |
WO2024053454A1 (ja) | 復号方法、符号化方法、復号装置及び符号化装置 | |
KR20240026233A (ko) | 점군 부호화 및 복호화 방법(method for encoding and decoding a point cloud) | |
WO2024062938A1 (ja) | 復号方法及び復号装置 | |
KR20210152186A (ko) | 인트라 예측을 이용한 포인트 클라우드 데이터 부호화/복호화 방법 및 장치 | |
WO2023166888A1 (ja) | 復号方法、符号化方法、復号装置及び符号化装置 | |
WO2024111355A1 (ja) | 復号方法、符号化方法、復号装置及び符号化装置 | |
US20240289994A1 (en) | Point cloud decoding device, point cloud decoding method, and program | |
WO2023135967A1 (ja) | 三次元データ復号方法、三次元データ符号化方法、三次元データ復号装置、及び三次元データ符号化装置 | |
WO2024143032A1 (ja) | 復号方法、符号化方法、復号装置及び符号化装置 | |
WO2024143031A1 (ja) | 復号方法、符号化方法、復号装置及び符号化装置 | |
RU2812090C1 (ru) | Способ кодирования и декодирования, кодер и декодер |
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: 24760232 Country of ref document: EP Kind code of ref document: A1 |