WO2024176890A1 - 復号方法及び復号装置 - Google Patents

復号方法及び復号装置 Download PDF

Info

Publication number
WO2024176890A1
WO2024176890A1 PCT/JP2024/004761 JP2024004761W WO2024176890A1 WO 2024176890 A1 WO2024176890 A1 WO 2024176890A1 JP 2024004761 W JP2024004761 W JP 2024004761W WO 2024176890 A1 WO2024176890 A1 WO 2024176890A1
Authority
WO
WIPO (PCT)
Prior art keywords
vertex
node
vertices
edge
centroid
Prior art date
Application number
PCT/JP2024/004761
Other languages
English (en)
French (fr)
Inventor
敦 伊藤
敏康 杉尾
賀敬 井口
孝啓 西
Original Assignee
パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ filed Critical パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
Publication of WO2024176890A1 publication Critical patent/WO2024176890A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods 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 a decoding method, an encoding method, a decoding device, and an encoding 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 be able to improve the reproducibility of the decoded point cloud.
  • the present disclosure aims to provide a decoding method, encoding method, decoding device, or encoding device that can improve the reproducibility of a decoded point cloud.
  • a decoding method is a decoding method for decoding a plurality of three-dimensional points, which determines whether or not to place the plurality of three-dimensional points in a Trithorpe triangle based on a first position of a first centroid vertex in a first node, which is a unit for storing the plurality of three-dimensional points included in an octree structure, and, based on the result of the determination, places or does not place the plurality of three-dimensional points in the Trithorpe triangle, and the first centroid vertex and the Trithorpe triangle are used in the Trithorpe method.
  • the present disclosure provides a decoding method, encoding method, decoding device, or encoding device that can improve the reproducibility of the 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 vertices of adjacent nodes according to the second embodiment.
  • FIG. 25 is a diagram illustrating an example of vertices of adjacent nodes according to the second embodiment.
  • FIG. 26 is a flowchart of a process for generating a plurality of triangles according to the second embodiment.
  • FIG. 27 is a flowchart of a decoding process according to the embodiment.
  • FIG. 28 is a block diagram of a decoding device according to an embodiment.
  • FIG. 29 is a block diagram of an encoding device according to an embodiment.
  • a decoding method is a decoding method for decoding a plurality of three-dimensional points, which determines whether or not to place the plurality of three-dimensional points in a Trithorpe triangle based on a first position of a first centroid vertex in a first node, which is a unit for storing the plurality of three-dimensional points included in an octree structure, and, based on the result of the determination, places or does not place the plurality of three-dimensional points in the Trithorpe triangle, and the first centroid vertex and the Trithorpe triangle are used in the Trithorpe method.
  • the decoding method can appropriately generate Trithorpe triangles according to the judgment results, improving the reproducibility of the decoded point cloud.
  • the determination may determine whether or not to place the multiple 3D points on the Trithorpe triangle based on the first position and a second position of a second vertex that is placed on the first surface excluding the sides of the first surface of the first node, and the second vertex may be a vertex of the Trithorpe triangle.
  • the decoding method can improve the accuracy of the determination by using the second position of the second vertex in addition to the first position of the first centroid vertex.
  • the decoding method can improve the accuracy of the determination by using the third position of the third vertex in addition to the first position of the first centroid vertex and the second position of the second vertex.
  • the determination it may be determined whether or not to place the multiple 3D points on the Trithorpe triangle based on (i) first information indicating whether the first centroid vertex is connected to a second centroid vertex in a second node adjacent to the first node through the Trithorpe triangle, and (ii) second information indicating whether the first centroid vertex is connected to a third centroid vertex in a third node adjacent to the first node through the Trithorpe triangle. For example, when the first centroid vertex, the second centroid vertex, and the third centroid vertex are connected through a Trithorpe triangle, a reconstruction plane spanning the first node, the second node, and the third node is substantially generated.
  • the bitstream may include control information indicating whether the determination is to be made. This allows the decoding method to be switched between making and not making the determination.
  • control information may be provided for each node. This allows the decoding method to be switched between whether or not to perform a determination for each node.
  • the bitstream does not need to include information about the positions of the edge vertices. This can reduce the amount of data in the bitstream.
  • a decoding method is a decoding method for decoding a plurality of three-dimensional points, which decodes a plurality of edge vertices and a first centroid vertex arranged in a first node, which is a unit for storing the plurality of three-dimensional points included in an octree structure, according to a Trithorpe method, and adjusts the position of at least one of the plurality of edge vertices to generate a Trithorpe triangle in which the plurality of three-dimensional points are arranged.
  • the decoding method cannot correctly reconstruct a plane (a trisorp triangle) from multiple vertices in the first node, for example, it is possible to reconstruct the correct plane by adjusting the edge vertices. This improves the reproducibility of the decoded point cloud.
  • the at least one position may be adjusted based on the positions of the first centroid vertex, the second vertex, and the third vertex, the Trithorpe triangle is defined by the second vertex and the third vertex, the second vertex is located on the first surface excluding the edge of the first surface of the first node, the third vertex is located on the second surface excluding the edge of the second surface of the first node, and the second surface may be orthogonal to the first surface.
  • the decoding method can adjust the position of at least one edge vertex so that the plane can be correctly restored.
  • the positional accuracy of the edge vertices may be lower than the positional accuracy of the first centroid vertex and the corrected positions of the edge vertices. In this way, the decoding method can correctly restore the plane when the plane cannot be correctly restored due to low positional accuracy of the edge vertices.
  • a decoding method is a decoding method for decoding a plurality of three-dimensional points, which calculates an average position of four positions in a first direction of four vertices each included in four nodes, the four nodes including an edge that is parallel to the first direction and common to the four nodes, each of the four nodes being a unit for storing a plurality of three-dimensional points included in an octree structure, the decoding method further generating an edge vertex at the average position on the common edge, and the edge vertex and each of the four vertices are used in a Trithorpe method for generating a plurality of three-dimensional points on a Trithorpe triangle.
  • the decoding method can correctly reconstruct a plane (a Trithorpe triangle) from the original vertices of the four nodes, it can reconstruct the correct plane using the generated edge vertices. This improves the reproducibility of the decoded point cloud.
  • the original position of the edge vertex may be stored in a bit stream, and in the generation, the original position may be changed to the average position of the edge.
  • the edge vertex can be generated in the decoding device, so there is no need to generate additional information in the encoding device. This reduces the amount of processing in the encoding device.
  • the four vertices may be multiple centroid vertices or multiple face vertices, and each of the multiple face vertices may be located on a face excluding the edge of the corresponding node.
  • the decoding method can appropriately generate an edge vertex using the average position of the four vertices.
  • the four nodes may include a first node, a second node adjacent to the first node in a second direction perpendicular to the first direction, a third node adjacent to the first node in a third direction perpendicular to each of the first direction and the second direction, and a fourth node adjacent to the second node in the third direction and adjacent to the third node in the second direction.
  • a decoding device is a decoding device that decodes a plurality of 3D points, and includes a processor and a memory, and the processor uses the memory to determine whether or not to place the plurality of 3D points in a Trithorpe triangle based on a first position of a first centroid vertex in a first node, which is a unit that stores the plurality of 3D points included in an octree structure, and based on the result of the determination, places or does not place the plurality of 3D points in the Trithorpe triangle, and the first centroid vertex and the Trithorpe triangle are used in a Trithorpe method.
  • 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 edge vertices and a first centroid vertex that are arranged in a first node, which is a unit that stores the plurality of three-dimensional points included in an octree structure, according to a Trithorpe method, and adjusts the position of at least one of the plurality of edge vertices to generate a Trithorpe triangle in which the plurality of three-dimensional points are arranged.
  • a decoding device is a decoding device for decoding a plurality of three-dimensional points, and includes a processor and a memory, and the processor uses the memory to calculate an average position of four positions in a first direction of four vertices each included in four nodes, the four nodes including an edge that is parallel to the first direction and common to the four nodes, each of the four nodes being a unit for storing a plurality of three-dimensional points included in an octree structure, and the processor further generates an edge vertex at the average position on the common edge, and the edge vertex and each of the four vertices are used in a Trithorpe method for generating a plurality of three-dimensional points on a Trithorpe triangle.
  • 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).
  • FIG. 24 is a diagram showing an example of this case, showing examples of vertices of adjacent nodes 1 and 2.
  • node 1 is determined to have a plane, and in the plane restoration process of node 1, the edge vertex is corrected from the position of E2 to the position of E1.
  • node 2 is not determined to have a plane, and in the plane restoration process of node 2, the edge vertex is not corrected from the position of E2. This causes a problem that a gap is created in the surface at the boundary between node 1 and node 2, degrading the quality of restoration.
  • the decoding device corrects the positions of edge vertices shared between nodes when it can estimate that the point cloud between nodes is a plane based on the positional relationship between the centroid vertices and face vertices between adjacent nodes. This makes it possible to make the restored surface flat.
  • Figure 25 is a diagram for explaining this process, showing examples of vertices of adjacent nodes A to D.
  • the decoding device determines that the area (four 1/4 faces) including the common edges of these four adjacent nodes is a plane.
  • the direction of the straight 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 straight 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
  • the direction of the straight 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 straight line Cx formed by the centroid vertex C2 of node C and the face vertex F1 in the negative direction of the x-axis.
  • the direction of the line Bx formed by the centroid vertex C1 of node B 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.
  • the decoding device corrects the position of edge vertex E0 on the shared edge, for example, using the coordinates of the centroid vertex and face vertex. For example, the decoding device calculates the average value of the y coordinates of the four centroid vertices (C0 to C3) of the four nodes, and corrects the y coordinate of edge vertex E0 to the calculated average value. The decoding device may also calculate the average value of the y coordinates of the four face vertices (F0 to F3) of the four nodes, and correct the y coordinate of edge vertex E0 to the calculated average value.
  • the decoding device may determine that the entire surface of the node is a plane, even if there is no face vertex at the node at the edge of the slice or the slice cut surface, based on the continuity of nodes that have planes up to that node. In this case, the decoding device may correct the edge vertices using the positions of the centroid vertices and face vertices, as in the plane determination process described above.
  • FIG. 26 is a flowchart of the process of generating multiple triangles (S105A).
  • the decoding device determines whether or not the four adjacent nodes including the target node satisfy the plane reconstruction judgment condition (S121).
  • the plane reconstruction judgment condition is, for example, as described above, when face vertices are generated on each of the multiple shared faces of the four adjacent nodes.
  • the decoding device judges each 1/4 face of the four adjacent nodes including the target node to be a plane, and corrects the positions of the edge vertices on the shared edge shared by the four 1/4 faces to, for example, the positions of the plane (S122). In other words, the positions of the edge vertices on the shared edge for the four adjacent nodes are corrected all at once.
  • the decoding device generates multiple triangles using multiple edge vertices, including the corrected edge vertex, the centroid vertex, and multiple face vertices (S123).
  • the decoding device does not correct the edge vertices, but generates multiple triangles using the centroid vertex, multiple edge vertices, and multiple face vertices (S123).
  • step S105A only the process of determining whether the four adjacent nodes satisfy the criteria for plane reconstruction is performed, but in addition to this process, some or all of the multiple determination processes shown in step S105 (FIG. 23) described above may also be performed.
  • a decoding device (three-dimensional data decoding device) performs the process shown in FIG. 27.
  • the decoding device decodes a plurality of three-dimensional points.
  • the decoding device determines whether or not to place a plurality of three-dimensional points on a Trithorpe triangle based on a first position of a first centroid vertex in a first node, which is a unit for storing a plurality of three-dimensional points included in an octree structure (S201), and, based on the result of the determination, places or does not place a plurality of three-dimensional points on the Trithorpe triangle (S202).
  • the first centroid vertex and the Trithorpe triangle are used in the Trithorpe method.
  • the Trithorpe triangle is a surface constituting a cross section of the first node and is a surface (approximation surface) that passes through the first centroid vertex. For example, when it is determined that a plurality of three-dimensional points are not to be placed on the Trithorpe triangle based on the result of the determination, the plurality of three-dimensional points are not restored, or the Trithorpe triangle is restored by adjusting the edge vertex positions as described later and then generating the Trithorpe triangle.
  • the determination (S201) it is determined whether or not to place multiple 3D points on a Trithorpe triangle based on the first position and the second position of a second vertex (e.g., a face vertex) that is placed on the first face, excluding the sides of the first face of the first node, and the second vertex is a vertex of the Trithorpe triangle.
  • the decoding device can improve the accuracy of the determination by using the second position of the second vertex in addition to the first position of the first centroid vertex.
  • the determination (S201) it is determined whether or not to place multiple 3D points on a Trithorpe triangle based on the first position, the second position, and the third position of a third vertex (e.g., a face vertex) placed on the second face excluding the sides of the second face of the first node, where the second face is perpendicular to the first face, and the third vertex is a vertex of the Trithorpe triangle.
  • the decoding device can improve the accuracy of the determination by using the third position of the third vertex in addition to the first position of the first centroid vertex and the second position of the second vertex.
  • whether or not to place multiple 3D points on a trisorpe triangle is determined based on (i) first information indicating whether or not a first centroid vertex is connected to a second centroid vertex in a second node adjacent to the first node by a trisorpe triangle, and (ii) second information indicating whether or not the first centroid vertex is connected to a third centroid vertex in a third node adjacent to the first node by a trisorpe triangle.
  • Connection by a trisorpe triangle means that the triangle in the first node and the triangle in the second node are generated so as to be continuous and substantially parallel.
  • the first centroid vertex, the second centroid vertex, and the third centroid vertex are connected by a Trithorpe triangle
  • a reconstruction plane spanning the first node, the second node, and the third node is essentially generated.
  • arranging multiple three-dimensional points on the Trithorpe triangle increases the reconstruction accuracy of the point cloud. Therefore, with this decoding device, highly accurate determination can be achieved with a small amount of processing by simply referring to the first information and the second information.
  • a Trithorpe triangle includes a planar portion.
  • a Trithorpe triangle includes a curved portion.
  • the bitstream includes control information that indicates whether or not a determination is to be made. This allows the decoding device to switch between making and not making a determination.
  • control information is provided for each node. This allows the decoding device to switch between making and not making a determination for each node.
  • the bitstream does not include information regarding multiple positions of multiple edge vertices. This allows the amount of data in the bitstream to be reduced.
  • the decoding device decodes multiple 3D points.
  • the decoding device decodes multiple edge vertices and a first centroid vertex arranged in a first node, which is a unit for storing multiple 3D points included in an octree structure, according to a Trithorpe method, and adjusts the position of at least one of the multiple edge vertices to generate a Trithorpe triangle in which the multiple 3D points are arranged.
  • the decoding device cannot correctly reconstruct a plane (a Trithorpe triangle) from multiple vertices in the first node, it can reconstruct the correct plane by adjusting the edge vertices. This improves the reproducibility of the decoded point group.
  • At least one position is adjusted based on the positions of a first centroid vertex, a second vertex (e.g., a face vertex), and a third vertex (e.g., a face vertex), a trisorpe triangle is defined by the second vertex and the third vertex, the second vertex is located on a first face excluding the edge of the first face of the first node, the third vertex is located on a second face excluding the edge of the second face of the first node, and the second face is orthogonal to the first face.
  • the decoding device can adjust the position of at least one edge vertex so that the plane can be correctly restored.
  • the positional accuracy of the multiple edge vertices is lower than the positional accuracy of the first centroid vertex and the corrected positions of the multiple edge vertices. This allows the decoding device to correctly restore the plane when the plane cannot be correctly restored due to low positional accuracy of the edge vertices.
  • the decoding device decodes a plurality of 3D points. Based on a first position of a first centroid vertex in a first node, the decoding device determines whether or not to place a plurality of 3D points in a Trithorpe triangle extending from the first centroid vertex toward a second centroid vertex in a second node, and based on the result of the determination, places or does not place the plurality of 3D points in the Trithorpe triangle.
  • the first centroid vertex, the second centroid vertex, and the Trithorpe triangle are used in the Trithorpe method, and each of the first node and the second node is a unit for storing a plurality of 3D points included in an octree structure.
  • the decoding device cannot correctly reconstruct a plane (a Trithorpe triangle) from multiple vertices in the first node, it can place multiple 3D points on the plane. This improves the reproducibility of the decoded point group.
  • a trisorp triangle extends to a first face of a first node, which is connected to a second node, and the trisorp triangle does not extend to a second face of the first node, which faces opposite the first face.
  • the decoding device can place multiple 3D points on the plane. This improves the reproducibility of the decoded point group.
  • the decoding device decodes multiple 3D points.
  • the decoding device calculates an average position of four positions in a first direction of four vertices each included in four nodes.
  • the four nodes include an edge that is parallel to the first direction and common to the four nodes, and each of the four nodes is a unit for storing multiple 3D points included in the octree structure.
  • the decoding device further generates an edge vertex at the average position of the common edge.
  • the edge vertex and each of the four vertices are used in a Trithorpe method for generating multiple 3D points on a Trithorpe triangle.
  • the decoding device cannot correctly reconstruct a plane (a Trithorpe triangle) from the original vertices of the four nodes, it can reconstruct the correct plane using the generated edge vertices. This improves the reproducibility of the decoded point group.
  • the original positions of the edge vertices are stored in the bit stream, and in the generation, the original positions are changed to the average positions of the edges.
  • the edge vertices can be generated in the decoding device, so there is no need to generate additional information in the encoding device. This reduces the amount of processing required by the encoding device.
  • the four vertices are multiple centroid vertices or multiple face vertices, and each of the multiple face vertices is located on a face excluding the edge of the corresponding node.
  • the decoding device can appropriately generate an edge vertex using the average position of the four vertices.
  • the four nodes include a first node, a second node adjacent to the first node in a second direction perpendicular to the first direction, a third node adjacent to the first node in a third direction perpendicular to each of the first and second directions, and a fourth node adjacent to the second node in the third direction and adjacent to the third node in the second direction.
  • FIG. 28 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 may perform the same processing as the decoding device.
  • the encoding device may perform processing in which the decoding in the above-mentioned decoding device is replaced with encoding.
  • FIG. 29 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-mentioned processing using the memory 22.
  • the encoding device generates first information indicating the positions of at least one of a plurality of centroid vertices and a plurality of face vertices by encoding a plurality of three-dimensional points according to the Trisorp method, and generates a bit stream including the first information, where the bit stream does not include second information indicating the positions of a plurality of edge vertices. This makes it possible to reduce the amount of data in the bit stream.
  • the bit stream includes third information indicating whether or not the multiple edge vertices are to be generated in the decoding device. If the third information indicates that the multiple edge vertices are to be generated in the decoding device, the bit stream does not include the second information, and if the third information does not indicate that the multiple edge vertices are to be generated in the decoding device, the bit stream includes the second information.
  • the decoding device receives a bit stream that includes first information indicating the positions of at least one of a plurality of centroid vertices and a plurality of face vertices and does not include second information indicating the positions of a plurality of edge vertices, generates the plurality of edge vertices using the first information, and generates a trisorp triangle using at least one of the plurality of centroid vertices and the plurality of face vertices and the generated plurality of edge vertices. This makes it possible to reduce the amount of data in the bit stream.
  • 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 these embodiments.
  • 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 Edge vertex 113, 122 Range 121 Approximation plane 123 Vertex information 131 Triangle 151 Centroid vertex 161 Face vertex

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)

Abstract

復号方法は、複数の三次元点を復号する復号方法であって、8分木構造に含まれる複数の三次元点を格納する単位である第1ノード内の第1セントロイド頂点の第1位置に基づき、トライソープ三角形に複数の三次元点を配置するか否かを判定し(S201)、判定の結果に基づき、トライソープ三角形に複数の三次元点を配置し、又は配置せず(S202)、第1セントロイド頂点及びトライソープ三角形は、トライソープ方式で用いられる。

Description

復号方法及び復号装置
 本開示は、復号方法、符号化方法、復号装置及び符号化装置に関する。
 自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。
 三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC又はHEVCなどがある)と同様に、符号化によるデータ量の圧縮が必須となる。
 また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)などによって一部サポートされている。
 また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
国際公開第2014/020663号
 また、符号化方式として不可逆圧縮方式が用いられる場合がある。このような場合には、復号された点群は、元の点群と完全には一致しない。よって、復号される点群の再現性を向上できることが望まれている。
 本開示は、復号される点群の再現性を向上できる復号方法、符号化方法、復号装置又は符号化装置を提供することを目的とする。
 本開示の一態様に係る復号方法は、複数の三次元点を復号する復号方法であって、8分木構造に含まれる前記複数の三次元点を格納する単位である第1ノード内の第1セントロイド頂点の第1位置に基づき、トライソープ三角形に前記複数の三次元点を配置するか否かを判定し、前記判定の結果に基づき、前記トライソープ三角形に前記複数の三次元点を配置し、又は配置せず、前記第1セントロイド頂点及び前記トライソープ三角形は、トライソープ方式で用いられる。
 本開示は、復号される点群の再現性を向上できる復号方法、符号化方法、復号装置又は符号化装置を提供できる。
図1は、実施の形態1に係る元点群の例を示す図である。 図2は、実施の形態1に係る剪定8分木の例を示す図である。 図3は、実施の形態1に係るリーフノードを二次元表示した例を示す図である。 図4は、実施の形態1に係るセントロイド頂点の生成方法を説明するための図である。 図5は、実施の形態1に係るセントロイド頂点の生成方法を説明するための図である。 図6は、実施の形態1に係る頂点情報の例を示す図である。 図7は、実施の形態1に係るトライソープ・サーフェスの例を示す図である。 図8は、実施の形態1に係る点群の復元処理を説明するための図である。 図9は、実施の形態1に係る点群の例を示す図である。 図10は、実施の形態1に係るセントロイド頂点の生成例を示す図である。 図11は、実施の形態1に係る三角形(トライソープ・サーフェス)の生成例を示す図である。 図12は、実施の形態1に係るフェース頂点の生成例を示す図である。 図13は、実施の形態1に係るエッジ頂点及びセントロイド頂点の生成例を示す図である。 図14は、実施の形態1に係るエッジ頂点の補正方法を説明するための図である。 図15は、実施の形態1に係るエッジ頂点の別の補正方法を説明するための図である。 図16は、実施の形態1に係る複数の頂点の例を示す図である。 図17は、実施の形態1に係る4個のノードに生成される頂点の例を示す図である。 図18は、実施の形態1に係る4個のノードに生成される頂点の例を示す図である。 図19は、実施の形態1に係る4個のノードに生成される頂点の例を示す図である。 図20は、実施の形態1に係る頂点座標の復元における情報の依存関係を示す図である。 図21は、実施の形態1に係る4個のノードに生成される頂点の例を示す図である。 図22は、実施の形態1に係る復号処理のフローチャートである。 図23は、実施の形態1に係る複数の三角形の生成処理のフローチャートである。 図24は、実施の形態2に係る隣接するノードの頂点の例を示す図である。 図25は、実施の形態2に係る隣接するノードの頂点の例を示す図である。 図26は、実施の形態2に係る複数の三角形の生成処理のフローチャートである。 図27は、実施の形態に係る復号処理のフローチャートである。 図28は、実施の形態に係る復号装置のブロック図である。 図29は、実施の形態に係る符号化装置のブロック図である。
 本開示の一態様に係る復号方法は、複数の三次元点を復号する復号方法であって、8分木構造に含まれる前記複数の三次元点を格納する単位である第1ノード内の第1セントロイド頂点の第1位置に基づき、トライソープ三角形に前記複数の三次元点を配置するか否かを判定し、前記判定の結果に基づき、前記トライソープ三角形に前記複数の三次元点を配置し、又は配置せず、前記第1セントロイド頂点及び前記トライソープ三角形は、トライソープ方式で用いられる。
 これによれば、復号方法は、判定結果に従って適切にトライソープ三角形を生成することができ、復号される点群の再現性を向上できる。
 例えば、前記判定では、前記第1位置と、前記第1ノードの第1面の辺を除く、前記第1面上に配置される第2頂点の第2位置とに基づき、前記トライソープ三角形に前記複数の三次元点を配置するか否かが判定され、前記第2頂点は、前記トライソープ三角形の頂点であってもよい。これによれば、復号方法は、第1セントロイド頂点の第1位置に加え、第2頂点の第2位置を用いることで、判定の精度を向上できる。
 例えば、前記判定では、前記第1位置と、前記第2位置と、前記第1ノードの第2面の辺を除く、前記第2面上に配置される第3頂点の第3位置とに基づき、前記トライソープ三角形に前記複数の三次元点を配置するか否かが判定され、前記第2面は、前記第1面と直交し、前記第3頂点は、前記トライソープ三角形の頂点であってもよい。これによれば、復号方法は、第1セントロイド頂点の第1位置及び第2頂点の第2位置に加え、第3頂点の第3位置を用いることで、判定の精度を向上できる。
 例えば、前記判定では、(i)前記第1セントロイド頂点が、前記第1ノードに隣接する第2ノード内の第2セントロイド頂点に、前記トライソープ三角形により接続されるか否かを示す第1情報と、(ii)前記第1セントロイド頂点が、前記第1ノードに隣接する第3ノード内の第3セントロイド頂点に、前記トライソープ三角形により接続されるか否かを示す第2情報と、に基づき、前記トライソープ三角形に前記複数の三次元点を配置するか否かが判定されてもよい。例えば、第1セントロイド頂点、第2セントロイド頂点、及び第3セントロイド頂点がトライソープ三角形により接続される場合、第1ノード、第2ノード、及び第3ノードにわたる復元平面が実質的に生成される。この場合、複数の三次元点をトライソープ三角形上に配置すれば、点群の復元精度が高くなる。したがって、この復号方法によれば、第1情報及び第2情報を参照するだけで精度の高い判定を少ない処理量で実現できる。
 例えば、ビットストリームは、前記判定が行われるか否かを示す制御情報を含んでもよい。これによれば、復号方法は、判定を行うか否かを切り替えることができる。
 例えば、前記制御情報は、ノード毎に設けられてもよい。これによれば、復号方法は、ノード毎に判定を行うか否かを切り替えることができる。
 例えば、前記複数の三次元点が前記トライソープ三角形に配置されると判定された場合、ビットストリームは、複数のエッジ頂点の複数の位置に関する情報を含まなくてもよい。これによれば、ビットストリームのデータ量を削減できる。
 本開示の一態様に係る復号方法は、複数の三次元点を復号する復号方法であって、8分木構造に含まれる前記複数の三次元点を格納する単位である第1ノードに配置される複数のエッジ頂点及び第1セントロイド頂点を、トライソープ方式に従い復号し、前記複数のエッジ頂点の少なくとも一つの位置を調整して、前記複数の三次元点が配置されるトライソープ三角形を生成する。
 これによれば、復号方法は、例えば、第1ノード内の複数の頂点から平面(トライソープ三角形)を正しく復元できない場合に、エッジ頂点を調整することで、正しい平面を復元できる。よって、復号される点群の再現性を向上できる。
 例えば、前記調整では、前記少なくとも一つの位置は、前記第1セントロイド頂点、第2頂点及び第3頂点の位置に基づき調整され、前記トライソープ三角形は、前記第2頂点及び前記第3頂点で規定され、前記第2頂点は、前記第1ノードの第1面の辺を除く、前記第1面上に配置され、前記第3頂点は、前記第1ノードの第2面の辺を除く、前記第2面上に配置され、前記第2面は、前記第1面と直交してもよい。これによれば、復号方法は、平面を正しく復元できるように少なくとも一つのエッジ頂点の位置を調整できる。
 例えば、前記複数のエッジ頂点の位置の精度は、前記第1セントロイド頂点の位置の精度及び前記複数のエッジ頂点の補正された位置の精度より低くてもよい。これによれば、復号方法は、エッジ頂点の位置の精度が低いことに起因して平面が正しく復元できない場合において、平面を正しく復元できる。
 本開示の一態様に係る復号方法は、複数の三次元点を復号する復号方法であって、4個のノードにそれぞれが含まれる4個の頂点の第1方向における4個の位置の平均位置を算出し、前記4個のノードは、前記第1方向に平行な、前記4個のノードで共通の辺を含み、前記4個のノードの各々は、8分木構造に含まれる複数の三次元点を格納する単位であり、前記復号方法は、さらに、前記共通の辺において前記平均位置にエッジ頂点を生成し、前記エッジ頂点と、前記4個の頂点の各々とは、トライソープ三角形上に複数の三次元点を生成するトライソープ方式で用いられる。
 これによれば、復号方法は、例えば、4個のノードの元の複数の頂点から平面(トライソープ三角形)を正しく復元できない場合であっても、生成されたエッジ頂点を用いて、正しい平面を復元できる。よって、復号される点群の再現性を向上できる。
 例えば、前記エッジ頂点の元の位置が、ビットストリームに格納され、前記生成では、前記元の位置が、前記辺の前記平均位置に変更されてもよい。これによれば、復号装置においてエッジ頂点を生成できるので、符号化装置において追加の情報等を生成する必要がない。よって、符号化装置の処理量を低減できる。
 例えば、前記4個の頂点は、複数のセントロイド頂点又は複数のフェース頂点であり、前記複数のフェース頂点の各々は、対応するノードの辺を除く面に配置されてもよい。これによれば、復号方法は、4個の頂点の平均位置を用いて適切にエッジ頂点を生成できる。
 例えば、前記4個のノードは、第1ノードと、前記第1方向と直交する第2方向で前記第1ノードと隣接する第2ノードと、前記第1方向及び前記第2方向の各々と直交する第3方向で前記第1ノードと隣接する第3ノードと、前記第2ノードと前記第3方向で隣接し、前記第3ノードと前記第2方向で隣接する第4ノードと、を含んでもよい。
 また、本開示の一態様に係る復号装置は、複数の三次元点を復号する復号装置であって、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、8分木構造に含まれる前記複数の三次元点を格納する単位である第1ノード内の第1セントロイド頂点の第1位置に基づき、トライソープ三角形に前記複数の三次元点を配置するか否かを判定し、前記判定の結果に基づき、前記トライソープ三角形に前記複数の三次元点を配置し、又は配置せず、前記第1セントロイド頂点及び前記トライソープ三角形は、トライソープ方式で用いられる。
 また、本開示の一態様に係る復号装置は、複数の三次元点を復号する復号装置であって、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、8分木構造に含まれる前記複数の三次元点を格納する単位である第1ノードに配置される複数のエッジ頂点及び第1セントロイド頂点を、トライソープ方式に従い復号し、前記複数のエッジ頂点の少なくとも一つの位置を調整して、前記複数の三次元点が配置されるトライソープ三角形を生成する。
 また、本開示の一態様に係る復号装置は、複数の三次元点を復号する復号装置であって、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、4個のノードにそれぞれが含まれる4個の頂点の第1方向における4個の位置の平均位置を算出し、前記4個のノードは、前記第1方向に平行な、前記4個のノードで共通の辺を含み、前記4個のノードの各々は、8分木構造に含まれる複数の三次元点を格納する単位であり、前記プロセッサは、さらに、前記共通の辺において前記平均位置にエッジ頂点を生成し、前記エッジ頂点と、前記4個の頂点の各々とは、トライソープ三角形上に複数の三次元点を生成するトライソープ方式で用いられる。
 なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 (実施の形態1)
 以下、本実施の形態に係る符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)について説明する。符号化装置は、三次元データを符号化することでビットストリームを生成する。復号装置は、当該ビットストリームを復号することで三次元データを生成する。
 三次元データは、例えば、三次元点群データ(点群データとも呼ぶ)である。点群は、複数の三次元点が集まったものであり、対象物(オブジェクト)の三次元形状を示す。点群データは、複数の三次元点の位置情報及び属性情報を含む。当該位置情報は、各三次元点の三次元位置を示す。なお、位置情報は、ジオメトリ(geometry)情報とも呼ばれる場合がある。例えば、位置情報は、直交座標系又は極座標系で表される。
 属性情報は、例えば、色情報、反射率、透過率、赤外情報、法線ベクトル、又は時刻情報などを示す。1つの三次元点は、単一の属性情報を持つ場合もあれば、複数種類の属性情報を持つ場合もある。
 なお、以下では、主に位置情報の符号化及び復号について説明するが、符号化装置は、属性情報の符号化及び復号を行ってもよい。
 [トライソープ方式]
 本実施の形態に係る符号化装置は、トライソープ(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)。
 次に、復号装置は、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の手法を用いることで、ノード内の平面の推定及び平面の復元は可能であるが、ノード間でサーフェスの位置が一致しない場合がある。図24は、この場合の例を示す図であり、隣接するノード1及びノード2の頂点の例を示す図である。図24に示す例では、ノード1は平面が存在すると判定され、ノード1の平面復元処理ではエッジ頂点はE2の位置からE1の位置に補正される。一方で、ノード2は、平面が存在すると判定されず、ノード2の平面復元処理では、エッジ頂点はE2の位置から補正されない。これにより、ノード1とノード2との境界でサーフェスに隙間が空き、復元の品質が低下するという課題がある。
 本実施の形態では、この課題を解決する手法を説明する。本実施の形態では、復号装置は、隣接ノード間におけるセントロイド頂点とフェース頂点との位置関係に基づき、ノード間の点群が平面であると推定できる場合、ノード間で共有されるエッジ頂点の位置を補正する。これにより、復元されるサーフェスを平面にできる。
 図25は、この処理を説明するための図であり、隣接するノードA~ノードDの頂点の例を示す図である。例えば、図25に示すように、4隣接ノードの複数の共有面の各々にフェース頂点F0~F3が生成される場合、復号装置は、これら4隣接ノードの共通エッジを含む領域(4つの1/4面)を平面と判定する。なお、4隣接ノードの複数の共有面の各々にフェース頂点F0~F3が生成される場合、(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の方向とが同じ、又は差が予め定められた値未満である。
 この場合、復号装置は、例えばセントロイド頂点及びフェース頂点の座標を用いて共有エッジ上のエッジ頂点E0の位置を補正する。例えば、復号装置は、4個のノードの4個のセントロイド頂点(C0~C3)のy座標の平均値を算出し、エッジ頂点E0のy座標を算出された平均値に補正する。なお、復号装置は、4個のノードの4個のフェース頂点(F0~F3)のy座標の平均値を算出し、エッジ頂点E0のy座標を算出された平均値に補正してもよい。
 また、復号装置は、この平面の判定の結果、スライスの端の直前まで平面が継続している場合には、スライスの端又はスライス切断面のノードにフェース頂点が存在しない場合でも、そのノードに至るまでの平面を有するノードの連続性に基づき、当該ノードの全面を平面と判定してもよい。この場合、復号装置は、上述した平面判定処理と同様に、セントロイド頂点及びフェース頂点の位置を用いてエッジ頂点を補正してもよい。
 なお、本実施の形態においても、上述した実施の形態1と同様の各種変形例を適用してもよい。また、実施の形態1と同様のシンタックス例が用いられてもよい。
 なお、本実施の形態における復号装置のフローチャートは、図22に示すフローチャートに対してステップS105がステップS105Aに置き換えられる点が異なる。図26は、この複数の三角形の生成処理(S105A)のフローチャートである。
 まず、復号装置は、対象ノードを含む4隣接ノードが平面復元の判定条件を満たすか否かを判定する(S121)。ここで、平面復元の判定条件とは、例えば、上述したように、4隣接ノードの複数の共有面の各々にフェース頂点が生成される場合である。
 4隣接ノードが平面復元の判定条件を満たす場合(S121でYes)、復号装置は、対象ノードを含めた4隣接ノードの各1/4面を平面と判定し、その4個の1/4面に共有される共有エッジ上のエッジ頂点の位置を、例えば平面の位置に補正する(S122)。つまり、4隣接ノードに対して一括で共有エッジ上のエッジ頂点の位置が補正される。次に、復号装置は、補正されたエッジ頂点を含む複数のエッジ頂点、セントロイド頂点、及び複数のフェース頂点を用いて複数の三角形を生成する(S123)。
 一方、4隣接ノードが平面復元の判定条件を満たさない場合(S121でNo)、復号装置は、エッジ頂点の補正は行わず、セントロイド頂点、複数のエッジ頂点、複数のフェース頂点を用いて複数の三角形を生成する(S123)。
 なお、ここでは、ステップS105Aにおいて、4隣接ノードが平面復元の判定条件を満たすかの判定処理のみが行われる例を述べたが、当該判定処理に加え、上述したステップS105(図23)に示す複数の判定処理の一部又は全てが行われてもよい。
 [まとめ]
 実施の形態に係る復号装置(三次元データ復号装置)は、図27に示す処理を行う。復号装置は、複数の三次元点を復号する。復号装置は、8分木構造に含まれる複数の三次元点を格納する単位である第1ノード内の第1セントロイド頂点の第1位置に基づき、トライソープ三角形に複数の三次元点を配置するか否かを判定し(S201)、判定の結果に基づき、トライソープ三角形に複数の三次元点を配置し、又は配置しない(S202)。第1セントロイド頂点及びトライソープ三角形は、トライソープ方式で用いられる。例えば、トライソープ三角形は、第1ノードの断面を構成する面であって、第1セントロイド頂点を通過する面(近似面)である。例えば、判定の結果に基づき、トライソープ三角形に複数の三次元点を配置しないと判定された場合、複数の三次元点を復元しない、又は、後述するようにエッジ頂点位置を調整してからトライソープ三角形を生成することで複数の三次元点を復元する。
 これによれば、復号装置は、判定結果に従って適切にトライソープ三角形を生成することができ、復号される点群の再現性を向上できる。
 例えば、判定(S201)では、第1位置と、第1ノードの第1面の辺を除く、第1面上に配置される第2頂点(例えばフェース頂点)の第2位置とに基づき、トライソープ三角形に複数の三次元点を配置するか否かが判定され、第2頂点は、トライソープ三角形の頂点である。これによれば、復号装置は、第1セントロイド頂点の第1位置に加え、第2頂点の第2位置を用いることで、判定の精度を向上できる。
 例えば、判定(S201)では、第1位置と、第2位置と、第1ノードの第2面の辺を除く、第2面上に配置される第3頂点(例えばフェース頂点)の第3位置とに基づき、トライソープ三角形に複数の三次元点を配置するか否かが判定され、第2面は、第1面と直交し、第3頂点は、トライソープ三角形の頂点である。これによれば、復号装置は、第1セントロイド頂点の第1位置及び第2頂点の第2位置に加え、第3頂点の第3位置を用いることで、判定の精度を向上できる。
 例えば、判定(S201)では、(i)第1セントロイド頂点が、第1ノードに隣接する第2ノード内の第2セントロイド頂点に、トライソープ三角形により接続されるか否かを示す第1情報と、(ii)第1セントロイド頂点が、第1ノードに隣接する第3ノード内の第3セントロイド頂点に、トライソープ三角形により接続されるか否かを示す第2情報と、に基づき、トライソープ三角形に複数の三次元点を配置するか否かが判定される。トライソープ三角形による接続とは、第1ノード内の三角形と、第2ノード内の三角形が連続し、且つ、実質的に平行するように生成されることを意味する。
 例えば、第1セントロイド頂点、第2セントロイド頂点、及び第3セントロイド頂点がトライソープ三角形により接続される場合、第1ノード、第2ノード、及び第3ノードにわたる復元平面が実質的に生成される。この場合、複数の三次元点をトライソープ三角形上に配置すれば、点群の復元精度が高くなる。したがって、この復号装置によれば、第1情報及び第2情報を参照するだけで精度の高い判定を少ない処理量で実現できる。
 例えば、トライソープ三角形は、平面部分を含む。例えば、トライソープ三角形は、曲面部分を含む。
 例えば、ビットストリームは、判定が行われるか否かを示す制御情報を含む。これによれば、復号装置は、判定を行うか否かを切り替えることができる。
 例えば、制御情報は、ノード毎に設けられる。これによれば、復号装置は、ノード毎に判定を行うか否かを切り替えることができる。
 例えば、複数の三次元点がトライソープ三角形に配置されると判定された場合、ビットストリームは、複数のエッジ頂点の複数の位置に関する情報を含まない。これによれば、ビットストリームのデータ量を削減できる。
 例えば、復号装置は、複数の三次元点を復号する。復号装置は、8分木構造に含まれる複数の三次元点を格納する単位である第1ノードに配置される複数のエッジ頂点及び第1セントロイド頂点を、トライソープ方式に従い復号し、複数のエッジ頂点の少なくとも一つの位置を調整して、複数の三次元点が配置されるトライソープ三角形を生成する。
 これによれば、復号装置は、例えば、第1ノード内の複数の頂点から平面(トライソープ三角形)を正しく復元できない場合に、エッジ頂点を調整することで、正しい平面を復元できる。よって、復号される点群の再現性を向上できる。
 例えば、前記調整では、少なくとも一つの位置は、第1セントロイド頂点、第2頂点(例えばフェース頂点)及び第3頂点(例えばフェース頂点)の位置に基づき調整され、トライソープ三角形は、第2頂点及び第3頂点で規定され、第2頂点は、第1ノードの第1面の辺を除く、第1面上に配置され、第3頂点は、第1ノードの第2面の辺を除く、第2面上に配置され、第2面は、第1面と直交する。これによれば、復号装置は、平面を正しく復元できるように少なくとも一つのエッジ頂点の位置を調整できる。
 例えば、複数のエッジ頂点の位置の精度は、第1セントロイド頂点の位置の精度及び複数のエッジ頂点の補正された位置の精度より低い。これによれば、復号装置は、エッジ頂点の位置の精度が低いことに起因して平面が正しく復元できない場合において、平面を正しく復元できる。
 例えば、復号装置は、複数の三次元点を復号する。復号装置は、第1ノード内の第1セントロイド頂点の第1位置に基づき、第1セントロイド頂点から、第2ノード内の第2セントロイド頂点に向かって広がるトライソープ三角形に複数の三次元点を配置するか否かを判定し、判定の結果に基づき、トライソープ三角形に複数の三次元点を配置し、又は配置しない。第1セントロイド頂点、第2セントロイド頂点及びトライソープ三角形は、トライソープ方式で用いられ、第1ノード及び第2ノードの各々は、8分木構造に含まれる複数の三次元点を格納する単位である。
 これによれば、復号装置は、例えば、第1ノード内の複数の頂点から平面(トライソープ三角形)を正しく復元できない場合であっても、当該平面に複数の三次元点を配置できる。よって、復号される点群の再現性を向上できる。
 例えば、トライソープ三角形は、第1ノードの第1面まで広がり、第1ノードは第2ノードに接続され、トライソープ三角形は、第1ノードの第2面まで広がらず、第2面は、第1面と対向する。
 これによれば、復号装置は、第1ノードの一部に平面が存在する場合においても、当該平面に複数の三次元点を配置できる。よって、復号される点群の再現性を向上できる。
 例えば、復号装置は、複数の三次元点を復号する。復号装置は、4個のノードにそれぞれが含まれる4個の頂点の第1方向における4個の位置の平均位置を算出する。4個のノードは、第1方向に平行な、4個のノードで共通の辺を含み、4個のノードの各々は、8分木構造に含まれる複数の三次元点を格納する単位である。復号装置は、さらに、共通の辺において平均位置にエッジ頂点を生成する。エッジ頂点と、4個の頂点の各々とは、トライソープ三角形上に複数の三次元点を生成するトライソープ方式で用いられる。
 これによれば、復号装置は、例えば、4個のノードの元の複数の頂点から平面(トライソープ三角形)を正しく復元できない場合であっても、生成されたエッジ頂点を用いて、正しい平面を復元できる。よって、復号される点群の再現性を向上できる。
 例えば、エッジ頂点の元の位置が、ビットストリームに格納され、前記生成では、元の位置が、辺の平均位置に変更される。これによれば、復号装置においてエッジ頂点を生成できるので、符号化装置において追加の情報等を生成する必要がない。よって、符号化装置の処理量を低減できる。
 例えば、4個の頂点は、複数のセントロイド頂点又は複数のフェース頂点であり、複数のフェース頂点の各々は、対応するノードの辺を除く面に配置される。これによれば、復号装置は、4個の頂点の平均位置を用いて適切にエッジ頂点を生成できる。
 例えば、4個のノードは、第1ノードと、第1方向と直交する第2方向で第1ノードと隣接する第2ノードと、第1方向及び第2方向の各々と直交する第3方向で第1ノードと隣接する第3ノードと、第2ノードと第3方向で隣接し、第3ノードと第2方向で隣接する第4ノードと、を含む。
 図28は、復号装置10のブロック図である。例えば、復号装置10は、プロセッサ11と、メモリ12とを備え、プロセッサ11は、メモリ12を用いて、上記処理を行う。
 また、実施の形態に係る符号化装置(三次元データ符号化装置)は、復号装置と同様の処理を行ってよい。例えば、符号化装置は、上記復号装置における復号を符号化に置き換えた処理を行ってもよい。
 図29は、符号化装置20のブロック図である。例えば、符号化装置20は、プロセッサ21と、メモリ22とを備え、プロセッサ21は、メモリ22を用いて、上記処理を行う。
 例えば、符号化装置は、複数の三次元点をトライソープ方式に従って符号化することで複数のセントロイド頂点及び複数のフェース頂点の少なくとも一方の位置を示す第1情報を生成し、前記第1情報を含むビットストリームを生成し、前記ビットストリームは、複数のエッジ頂点の位置を示す第2情報を含まない。これによれば、ビットストリームのデータ量を削減できる。
 例えば、前記ビットストリームは、復号装置において前記複数のエッジ頂点を生成するか否かを示す第3情報を含む。前記第3情報により、前記復号装置において前記複数のエッジ頂点を生成することが示される場合、前記ビットストリームは前記第2情報を含まず、前記第3情報により、前記復号装置において前記複数のエッジ頂点を生成することが示されない場合、前記ビットストリームは前記第2情報を含む。
 例えば、復号装置は、複数のセントロイド頂点及び複数のフェース頂点の少なくとも一方の位置を示す第1情報を含み、複数のエッジ頂点の位置を示す第2情報を含まないビットストリームを受信し、前記第1情報を用いて前記複数のエッジ頂点を生成し、前記複数のセントロイド頂点及び前記複数のフェース頂点の少なくとも一方と、生成された前記複数のエッジ頂点とを用いてトライソープ三角形を生成する。これによれば、ビットストリームのデータ量を削減できる。
 以上、本開示の実施の形態及び変形例に係る符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)等について説明したが、本開示は、この実施の形態に限定されるものではない。
 また、上記実施の形態に係る符号化装置及び復号装置等に含まれる各処理部は典型的には集積回路である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 エッジ頂点
 113、122 範囲
 121 近似平面
 123 頂点情報
 131 三角形
 151 セントロイド頂点
 161 フェース頂点

Claims (17)

  1.  複数の三次元点を復号する復号方法であって、
     8分木構造に含まれる前記複数の三次元点を格納する単位である第1ノード内の第1セントロイド頂点の第1位置に基づき、トライソープ三角形に前記複数の三次元点を配置するか否かを判定し、
     前記判定の結果に基づき、前記トライソープ三角形に前記複数の三次元点を配置し、又は配置せず、
     前記第1セントロイド頂点及び前記トライソープ三角形は、トライソープ方式で用いられる
     復号方法。
  2.  前記判定では、前記第1位置と、前記第1ノードの第1面の辺を除く、前記第1面上に配置される第2頂点の第2位置とに基づき、前記トライソープ三角形に前記複数の三次元点を配置するか否かが判定され、
     前記第2頂点は、前記トライソープ三角形の頂点である
     請求項1記載の復号方法。
  3.  前記判定では、前記第1位置と、前記第2位置と、前記第1ノードの第2面の辺を除く、前記第2面上に配置される第3頂点の第3位置とに基づき、前記トライソープ三角形に前記複数の三次元点を配置するか否かが判定され、
     前記第2面は、前記第1面と直交し、
     前記第3頂点は、前記トライソープ三角形の頂点である
     請求項2記載の復号方法。
  4.  前記判定では、(i)前記第1セントロイド頂点が、前記第1ノードに隣接する第2ノード内の第2セントロイド頂点に、前記トライソープ三角形により接続されるか否かを示す第1情報と、(ii)前記第1セントロイド頂点が、前記第1ノードに隣接する第3ノード内の第3セントロイド頂点に、前記トライソープ三角形により接続されるか否かを示す第2情報と、に基づき、前記トライソープ三角形に前記複数の三次元点を配置するか否かが判定される
     請求項1記載の復号方法。
  5.  ビットストリームは、前記判定が行われるか否かを示す制御情報を含む
     請求項1記載の復号方法。
  6.  前記制御情報は、ノード毎に設けられる
     請求項5記載の復号方法。
  7.  前記複数の三次元点が前記トライソープ三角形に配置されると判定された場合、ビットストリームは、複数のエッジ頂点の複数の位置に関する情報を含まない
     請求項1記載の復号方法。
  8.  複数の三次元点を復号する復号方法であって、
     8分木構造に含まれる前記複数の三次元点を格納する単位である第1ノードに配置される複数のエッジ頂点及び第1セントロイド頂点を、トライソープ方式に従い復号し、
     前記複数のエッジ頂点の少なくとも一つの位置を調整して、前記複数の三次元点が配置されるトライソープ三角形を生成する
     復号方法。
  9.  前記調整では、前記少なくとも一つの位置は、前記第1セントロイド頂点、第2頂点及び第3頂点の位置に基づき調整され、
     前記トライソープ三角形は、前記第2頂点及び前記第3頂点で規定され、
     前記第2頂点は、前記第1ノードの第1面の辺を除く、前記第1面上に配置され、
     前記第3頂点は、前記第1ノードの第2面の辺を除く、前記第2面上に配置され、
     前記第2面は、前記第1面と直交する
     請求項8記載の復号方法。
  10.  前記複数のエッジ頂点の位置の精度は、前記第1セントロイド頂点の位置の精度及び前記複数のエッジ頂点の補正された位置の精度より低い
     請求項8記載の復号方法。
  11.  複数の三次元点を復号する復号方法であって、
     4個のノードにそれぞれが含まれる4個の頂点の第1方向における4個の位置の平均位置を算出し、
     前記4個のノードは、前記第1方向に平行な、前記4個のノードで共通の辺を含み、
     前記4個のノードの各々は、8分木構造に含まれる複数の三次元点を格納する単位であり、
     前記復号方法は、さらに、
     前記共通の辺において前記平均位置にエッジ頂点を生成し、
     前記エッジ頂点と、前記4個の頂点の各々とは、トライソープ三角形上に複数の三次元点を生成するトライソープ方式で用いられる
     復号方法。
  12.  前記エッジ頂点の元の位置が、ビットストリームに格納され、
     前記生成では、前記元の位置が、前記辺の前記平均位置に変更される
     請求項11記載の復号方法。
  13.  前記4個の頂点は、複数のセントロイド頂点又は複数のフェース頂点であり、前記複数のフェース頂点の各々は、対応するノードの辺を除く面に配置される
     請求項11記載の復号方法。
  14.  前記4個のノードは、
      第1ノードと、
      前記第1方向と直交する第2方向で前記第1ノードと隣接する第2ノードと、
      前記第1方向及び前記第2方向の各々と直交する第3方向で前記第1ノードと隣接する第3ノードと、
      前記第2ノードと前記第3方向で隣接し、前記第3ノードと前記第2方向で隣接する第4ノードと、を含む
     請求項11記載の復号方法。
  15.  複数の三次元点を復号する復号装置であって、
     プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     8分木構造に含まれる前記複数の三次元点を格納する単位である第1ノード内の第1セントロイド頂点の第1位置に基づき、トライソープ三角形に前記複数の三次元点を配置するか否かを判定し、
     前記判定の結果に基づき、前記トライソープ三角形に前記複数の三次元点を配置し、又は配置せず、
     前記第1セントロイド頂点及び前記トライソープ三角形は、トライソープ方式で用いられる
     復号装置。
  16.  複数の三次元点を復号する復号装置であって、
     プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     8分木構造に含まれる前記複数の三次元点を格納する単位である第1ノードに配置される複数のエッジ頂点及び第1セントロイド頂点を、トライソープ方式に従い復号し、
     前記複数のエッジ頂点の少なくとも一つの位置を調整して、前記複数の三次元点が配置されるトライソープ三角形を生成する
     復号装置。
  17.  複数の三次元点を復号する復号装置であって、
     プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     4個のノードにそれぞれが含まれる4個の頂点の第1方向における4個の位置の平均位置を算出し、
     前記4個のノードは、前記第1方向に平行な、前記4個のノードで共通の辺を含み、
     前記4個のノードの各々は、8分木構造に含まれる複数の三次元点を格納する単位であり、
     前記プロセッサは、さらに、
     前記共通の辺において前記平均位置にエッジ頂点を生成し、
     前記エッジ頂点と、前記4個の頂点の各々とは、トライソープ三角形上に複数の三次元点を生成するトライソープ方式で用いられる
     復号装置。
PCT/JP2024/004761 2023-02-22 2024-02-13 復号方法及び復号装置 WO2024176890A1 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202363447443P 2023-02-22 2023-02-22
US63/447,443 2023-02-22
US202363542159P 2023-10-03 2023-10-03
US63/542,159 2023-10-03

Publications (1)

Publication Number Publication Date
WO2024176890A1 true WO2024176890A1 (ja) 2024-08-29

Family

ID=92501043

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2024/004761 WO2024176890A1 (ja) 2023-02-22 2024-02-13 復号方法及び復号装置

Country Status (1)

Country Link
WO (1) WO2024176890A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
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 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法。

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
CN114616592A (zh) 用于云压缩的方位角先验和树表示的方法和系统
US20230048381A1 (en) Context determination for planar mode in octree-based point cloud coding
US11582483B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, three-dimensional data decoding device
CN115315725A (zh) 基于几何的点云压缩中的角模式和方位角模式的激光角度译码
KR20220166793A (ko) 지오메트리 기반 포인트 클라우드 압축을 위한 각도 모드 단순화
KR20220166792A (ko) 지오메트리 기반 포인트 클라우드 압축을 위한 각도 모드 단순화
CA3153825A1 (en) Methods and devices for tree switching in point cloud compression
EP4272167A1 (en) Inter prediction coding for geometry point cloud compression
TW202333112A (zh) 用於基於預測幾何的點雲端壓縮的利用半徑內插的訊框間預測譯碼
US12047603B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
WO2024176890A1 (ja) 復号方法及び復号装置
WO2024176931A1 (ja) 符号化方法、復号方法、符号化装置及び復号装置
KR100294923B1 (ko) 손실 탄력성을 갖는 점진적 삼차원 메쉬 정보의 부호화/복호화방법
WO2024214447A1 (ja) 復号方法、符号化方法、復号装置及び符号化装置
WO2024062938A1 (ja) 復号方法及び復号装置
CA3198097A1 (en) Global motion estimation using road and ground object labels for geometry-based point cloud compression
CN117581537A (zh) 用于对点云进行编码和解码的方法
WO2023166888A1 (ja) 復号方法、符号化方法、復号装置及び符号化装置
WO2024111355A1 (ja) 復号方法、符号化方法、復号装置及び符号化装置
WO2022260115A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20240357171A1 (en) Three-dimensional data decoding method, three-dimensional data encoding method, three-dimensional data decoding device, and three-dimensional data encoding device
JP7557436B2 (ja) 点群復号装置、点群復号方法及びプログラム
US20240233198A9 (en) Three-dimensional data decoding method, three-dimensional data decoding device, and three-dimensional data encoding device
WO2023105954A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2023132331A1 (ja) 点群復号装置、点群復号方法及びプログラム

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: 24760192

Country of ref document: EP

Kind code of ref document: A1