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

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

Info

Publication number
WO2024062938A1
WO2024062938A1 PCT/JP2023/032696 JP2023032696W WO2024062938A1 WO 2024062938 A1 WO2024062938 A1 WO 2024062938A1 JP 2023032696 W JP2023032696 W JP 2023032696W WO 2024062938 A1 WO2024062938 A1 WO 2024062938A1
Authority
WO
WIPO (PCT)
Prior art keywords
plane
vertices
curved surface
vertex
decoding device
Prior art date
Application number
PCT/JP2023/032696
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 WO2024062938A1 publication Critical patent/WO2024062938A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree

Definitions

  • the present disclosure relates to a decoding method and a decoding device.
  • Three-dimensional data is acquired by various methods, such as a distance sensor such as a range finder, a stereo camera, or a combination of multiple monocular cameras.
  • Point cloud represents the shape of a three-dimensional structure using a group of points in three-dimensional space.
  • a point cloud stores the positions and colors of point clouds.
  • Point clouds are expected to become the mainstream method for expressing three-dimensional data, but point clouds require a very large amount of data. Therefore, when storing or transmitting three-dimensional data, it is essential to compress the amount of data through encoding, just as with two-dimensional moving images (an example is MPEG-4 AVC or HEVC standardized by MPEG). Become.
  • point cloud compression is partially supported by a public library (Point Cloud Library) that performs point cloud-related processing.
  • Point Cloud Library a public library that performs point cloud-related processing.
  • Patent Document 1 there is a known technology that uses three-dimensional map data to search for and display facilities located around a vehicle.
  • an irreversible compression method may be used as the encoding method.
  • the decoded point cloud does not completely match the original point cloud. Therefore, it is desired to be able to improve the reproducibility of the point cloud to be decoded.
  • An object of the present disclosure is to provide a decoding method or a decoding device that can improve the reproducibility of a point group to be decoded.
  • a decoding method receives encoded information regarding a plurality of three-dimensional points, and determines whether to specify a curved surface that approximates the plurality of three-dimensional points based on the encoded information. .
  • a decoding method specifies a plane based on encoded information included in a bitstream, and generates at least one three-dimensional point away from the plane.
  • a decoding method includes a first vertex included in a plurality of vertices specified based on encoding information included in a bitstream, and a center of gravity of a plurality of second vertices included in the plurality of vertices.
  • a plane or a curved surface is specified using the first vertex after the movement and the plurality of second vertices, and a plurality of three-dimensional points are generated on the plane or the curved surface.
  • the present disclosure can provide a decoding method or a decoding device that can improve the reproducibility of a point group to be decoded.
  • FIG. 1 is a diagram showing an example of an original point group according to an embodiment.
  • FIG. 2 is a diagram illustrating an example of a pruned 8-ary tree according to the embodiment.
  • FIG. 3 is a diagram showing an example of a two-dimensional display of leaf nodes according to the embodiment.
  • FIG. 4 is a diagram for explaining a method of generating centroid vertices according to the embodiment.
  • FIG. 5 is a diagram for explaining a method of generating centroid vertices according to the embodiment.
  • FIG. 6 is a diagram illustrating an example of vertex information according to the embodiment.
  • FIG. 7 is a diagram illustrating an example of a trisoap surface according to an embodiment.
  • FIG. 8 is a diagram for explaining point cloud restoration processing according to the embodiment.
  • FIG. 1 is a diagram showing an example of an original point group according to an embodiment.
  • FIG. 2 is a diagram illustrating an example of a pruned 8-ary tree according to the embodiment.
  • FIG. 3
  • FIG. 9 is a diagram showing an example of the original point group and the restoration point group according to the embodiment.
  • FIG. 10 is a diagram showing an example of vertices and triangles according to the embodiment.
  • FIG. 11 is a diagram showing an example of vertices and triangles according to the embodiment.
  • FIG. 12 is a diagram showing an example of vertices and triangles according to the embodiment.
  • FIG. 13 is a diagram showing an example of vertices and triangles according to the embodiment.
  • FIG. 14 is a diagram illustrating an example of a curved surface determination method according to the embodiment.
  • FIG. 15 is a diagram illustrating an example of a point cloud according to the embodiment.
  • FIG. 16 is a flowchart of decoding processing according to the embodiment.
  • FIG. 10 is a diagram showing an example of vertices and triangles according to the embodiment.
  • FIG. 11 is a diagram showing an example of vertices and triangles according to the embodiment.
  • FIG. 12 is a diagram showing
  • FIG. 17 is a flowchart of a restoration point generation process according to the embodiment.
  • FIG. 18 is a diagram illustrating an example of a centroid vector according to the embodiment.
  • FIG. 19 is a diagram illustrating an example of shared edge vertices according to the embodiment.
  • FIG. 20 is a diagram illustrating an example of the original point group and normal restoration points according to the embodiment.
  • FIG. 21 is a diagram illustrating an example of restoration points after adjustment according to the embodiment.
  • FIG. 22 is a diagram illustrating an example of the original point group and normal restoration points according to the embodiment.
  • FIG. 23 is a diagram illustrating an example of restoration points after adjustment according to the embodiment.
  • FIG. 24 is a flowchart of decoding processing according to the embodiment.
  • FIG. 25 is a block diagram of a decoding device according to an embodiment.
  • FIG. 26 is a flowchart of encoding processing according to the embodiment.
  • FIG. 27 is a block diagram of an encoding device according to an embodiment.
  • a decoding method receives encoded information regarding a plurality of three-dimensional points, and determines whether to specify a curved surface that approximates the plurality of three-dimensional points based on the encoded information.
  • the decoding method can specify a curved surface that approximates a plurality of three-dimensional points, for example, when the reproducibility of the original point group can be improved. Therefore, the decoding method can improve the reproducibility of the original point group.
  • the decoding method can be used, for example, if the reproducibility of the original point group cannot be improved by specifying a curved surface that approximates multiple three-dimensional points, or by specifying a plane that approximates multiple three-dimensional points. If the reproducibility of the original point group can be improved by doing so, a plane can be specified. Therefore, since the decoding method can specify a curved surface or a plane according to the original point group, the reproducibility of the original point group can be improved.
  • the curved surface or the plane may be provided within a first node of an octree structure of the plurality of three-dimensional points.
  • the decoding method can specify, for example, a curved surface or a plane for each node, so that processing can be appropriately selected depending on the characteristics of the node.
  • the plane may be specified according to a trisoap method or a mesh method.
  • the original point group can be approximated by a curved surface, without being limited by the limitation that the original point group can only be approximated by a plane as in the conventional trithorpe method or mesh method, and the reproducibility of the original point group can be improved. There are cases.
  • the curved surface may bulge out from the plane so that the curved surface is away from the center of gravity of the plurality of edge vertices, and the plurality of edge vertices may specify the plane according to the trisoap method.
  • the curved surface may be specified according to information that specifies the plane according to the trisoap method, which is included in the encoded information.
  • the decoding method can specify a curved surface that can improve the reproducibility of the shape of the original point group.
  • the decoding method can specify a curved surface that can improve the reproducibility of the shape of the original point group.
  • whether or not to specify the curved surface is determined based on at least two feature points within a first node included in the octree structure of the plurality of three-dimensional points, and the at least two feature points are: It may be derived from the encoded information. According to this, the decoding method can determine whether to specify a curved surface using information derived from encoded information.
  • the at least two feature points may be selected from centroid vertices and centroid vertices of a plurality of edge vertices, and the plurality of edge vertices and the centroid vertices may be derived according to a trisoap method.
  • a decoding method specifies a plane based on encoded information included in a bitstream, and generates at least one three-dimensional point away from the plane. According to this, the decoding method can improve the reproducibility of the original point group, for example, compared to the case where points are generated only on a plane. For example, the reproducibility of a curved surface shape, which has low reproducibility on a flat surface, can be improved.
  • the plane may be specified according to a trisoap method.
  • the plane and the at least one three-dimensional point may exist within a first node of an octree structure of a plurality of three-dimensional points.
  • the decoding method can perform appropriate processing depending on the characteristics of the node, for example.
  • the plane may be between the at least one three-dimensional point and the center of gravity of the plurality of edge vertices, and the plurality of edge vertices may specify the plane according to a trisoap method. According to this, the reproducibility of bulges, etc. of the original point group can be improved by using at least one three-dimensional point.
  • the plane may be specified according to a mesh method.
  • a decoding method includes a first vertex included in a plurality of vertices specified based on encoding information included in a bitstream, and a center of gravity of a plurality of second vertices included in the plurality of vertices.
  • a plane or a curved surface is specified using the first vertex after the movement and the plurality of second vertices, and a plurality of three-dimensional points are generated on the plane or the curved surface. According to this, the decoding method can improve the reproducibility of, for example, bulges in the original point group by moving the vertices.
  • a decoding device includes a processor and a memory, and the processor uses the memory to receive encoded information regarding a plurality of three-dimensional points, and based on the encoded information, Determine whether to specify a curved surface that approximates multiple three-dimensional points.
  • a decoding device includes a processor and a memory, and the processor uses the memory to specify a plane based on encoded information included in a bitstream, and specifies a plane away from the plane. Generate at least one three-dimensional point.
  • a decoding device includes a processor and a memory, and the processor uses the memory to decode data included in a plurality of vertices specified based on encoded information included in a bitstream. moving one vertex away from the center of gravity of a plurality of second vertices included in the plurality of vertices, and specifying a plane or a curved surface using the first vertex after the movement and the plurality of second vertices; and generate a plurality of three-dimensional points on the plane or the curved surface.
  • the encoding device generates a bitstream by encoding three-dimensional data.
  • the decoding device generates three-dimensional data by decoding the bitstream.
  • the three-dimensional data is, for example, three-dimensional point group data (also referred to as point group data).
  • a point cloud is a collection of three-dimensional points and indicates the three-dimensional shape of an object.
  • the point cloud data includes position information and attribute information of a plurality of three-dimensional points.
  • the position information indicates the three-dimensional position of each three-dimensional point.
  • the position information may also be referred to as geometry information.
  • position information is expressed in a rectangular 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.
  • Tri-soap method The encoding device according to this embodiment encodes position information using a 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.
  • FIG. 1 is a diagram showing an example of a group of original points. As shown in FIG. 1, a point group 102 of the object is included in the object space 101 and includes a plurality of points 103.
  • the encoding device divides the original point group into an octree to a predetermined depth.
  • octree division a target space is divided into eight nodes (subspaces), and 8-bit information (occupancy code) indicating whether a point group is included in each node is generated.
  • the node including the point cloud is further divided into eight nodes, and 8-bit information indicating whether or not the point group is included in each of the eight nodes is generated. This process is repeated up to a predetermined hierarchy.
  • FIG. 2 is a diagram showing an example of a pruned 8-ary tree. As shown in FIG. 2, the point cloud 102 is divided into a plurality of leaf nodes 104 (lowest layer nodes) of a pruned 8-ary tree.
  • the encoding device performs the following processing on each leaf node 104 of the pruned 8-ary tree.
  • leaf nodes are also simply referred to as nodes.
  • the encoding device generates a vertex on the edge as a representative point of a point group close to the edge of the node. This vertex is called an edge vertex.
  • edge vertex For example, edge vertices are generated for each of a plurality of edges (eg, four parallel sides).
  • FIG. 3 is an example of a two-dimensional display of the leaf node 104, and is a diagram showing, for example, an xy plane viewed from the z direction shown in FIG. 1. As shown in FIG. 3, edge vertices 112 are generated on the edge based on points near the edge among the plurality of points 111 in the leaf node 104.
  • the dotted line on the outer periphery of the leaf node 104 is an edge.
  • the edge vertex 112 is generated at a position that is a weighted average of the positions of points within 1 distance from the edge (points included in the range 113 in FIG. 3).
  • the unit of distance is, for example, the resolution of a point group, but is not limited thereto.
  • this distance (threshold value) is 1 in this example, it may be other than 1 and may be variable.
  • the encoding device also generates vertices inside the node based on the point group existing in the normal direction of the plane including the plurality of edge vertices. This vertex is called a centroid vertex.
  • FIGS. 4 and 5 are diagrams for explaining the method of generating centroid vertices.
  • the encoding device selects, for example, four points as representative points from a group of edge vertices. In the example shown in FIG. 4, edge vertices v1 to v4 are selected.
  • the encoding device calculates an approximate plane 121 passing through the four points.
  • the encoding device calculates the normal n of the approximate plane 121 and the average coordinate M of the four points.
  • the encoding device converts the centroid vertex C into a weighted average coordinate of one or more points (for example, points included in the range 122 shown in FIG. 5) close to a half-line extending from the average coordinate M in the direction of the normal line n. generate.
  • the encoding device entropy encodes vertex information, which is information on edge vertices and centroid vertices, and converts the encoded vertex information into a geometry data unit (hereinafter referred to as GDU) included in the bitstream. ).
  • GDU geometry data unit
  • the GDU includes information indicating a pruned 8-ary tree in addition to the vertex information.
  • FIG. 6 is a diagram showing an example of vertex information.
  • the point group 102 is converted into vertex information 123, as shown in FIG.
  • 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.
  • the decoding device restores the position information of the point group 133 by generating points 132 at regular intervals on the surface of the triangle 131.
  • the encoding device samples the original point group (the point group to be encoded) using vertices, and the information on the vertices is transmitted to the decoding device. to be transmitted.
  • the decoding device connects multiple vertices to restore the surface. Due to the nature of such processing, for example, when restoring points on a triangular surface using the tri-soap technique, even if there is a convex bulge or a concave bulge, it is difficult to remove bulges or dents that are smaller than the grain size of the triangle. The problem is that it cannot be reproduced.
  • the decoding device generates triangles (tri-soap surfaces) using, for example, tri-soap technology.
  • the decoding device determines whether the convex surface is a bulge side or the concave surface is a concave side, and generates points according to the determination result.
  • the decoding device determines that the side opposite to the side where the center of gravity of the edge apex is located is the "side where the bulge or dent is" (restoration surface), and sets the restoration point at a position offset from the surface of the triangle. generate.
  • FIG. 9 is a diagram showing an overview of this process, and is a diagram showing an example of the original point group and the restoration point group at node 1 and node 2.
  • FIG. 9 is an example in which adjacent nodes 1 and 2 are two-dimensionally marked.
  • node 1 has a concave surface (the surface of the original point group)
  • node 2 has a convex surface.
  • the restoration point group points before adjustment generated by normal ray tracing
  • the decoding device can reproduce the bulges or depressions of the original point cloud with a small amount of calculations, without performing iterative calculations for surface estimation or function fitting.
  • the decoding device first defines the bounding box of the triangle in order to generate points near the surface of the triangle.
  • the decoding device extends a vector in the x, y, and z axis directions from the integer grid coordinates P of each face of the bounding box, and generates a restoration point Q at the intersection of the vector and the triangle.
  • FIGS. 10 and 11 are diagrams showing examples of vertices and triangles.
  • the transmission point P of the ray is provided at each integer grid coordinate of the yz plane, xz plane, and xy plane forming a bounding box surrounding the triangle.
  • b is a unit vector in any one of x, y, and z directions.
  • u, v, w are vector coefficients representing a triangular surface. Furthermore, the following formula holds true.
  • a triangle is formed by vertices v1, v2, and v3.
  • Vertices v1, v2, and v3 are edge vertices or centroid vertices.
  • tb is a vector directed from the transmission point P to the restoration point Q
  • t is the distance between the transmission point P and the restoration point Q.
  • s is a vector from the source point P to the vertex v1
  • e1 is a vector from the vertex v1 to the vertex v2
  • the bulge of the original point group distribution is reproduced by adjusting the distance t.
  • the restoration surface always exists on the opposite side of the center of gravity G of the edge vertex, so the decoding device detects that the restoration point Q points to the surface opposite to the center of gravity G when viewed from the triangle.
  • FIG. 12 is a diagram for explaining this process, and is a diagram showing an example of vertices and triangles.
  • the polarity of ⁇ t which is the amount of change in t, changes as follows depending on the position of the ray transmission point P.
  • N be the foot of a perpendicular line drawn from the center of gravity G to a triangle.
  • the positional relationship between the ray transmission point P, the center of gravity G, and the triangle is determined according to the inner product of the vector GN and the vector PN.
  • the vector GN is a vector directed from the center of gravity G toward the foot N
  • the vector PN is a vector directed from the transmission point P toward the foot N.
  • the decoding device sets ⁇ t to a positive value when the inner product is >0, and sets ⁇ t to a negative value when the inner product is ⁇ 0.
  • FIG. 13 is a diagram showing an example of vertices and triangles. The following equation holds true for the three vertices (v1, v2, v3) of the triangle and the restoration point Q based on Moller's intersection determination method.
  • t' which is the adjusted t
  • t' t+ ⁇ t.
  • the polarity of ⁇ t can be determined by the method described above. An example of calculating the absolute value
  • the decoding device sets
  • the decoding device determines that point Q is near the center of the triangle, and
  • the decoding device sets
  • max(A, B, . . . ) is a function that returns the maximum value of its arguments.
  • the decoding device may increase
  • the above formula is merely an example, and other weighting methods may be used.
  • the decoding device adds a restoration point at a position where the coordinate value of Q' is converted into an integer.
  • the integerized position is a position on an x, y, z integer grid.
  • FIG. 14 is a diagram illustrating an example of a curved surface determination method.
  • the decoding device estimates an approximate plane from a plurality of edge vertices.
  • the approximate plane is a plane that includes multiple edge vertices.
  • the decoding device calculates the offset amount d between the approximate plane and the centroid vertex.
  • the offset amount d indicates the distance between the approximate plane and the centroid vertex.
  • the decoding device determines that "a curved surface exists" when the offset amount d is larger than a predetermined threshold. In this case, the decoding device performs the curved surface restoration process (adjustment of t) for restoring the bulge described above. Note that the decoding device may adjust the magnitude of ⁇ tmax or ⁇ t according to the offset amount d.
  • the decoding device determines that "there is no curved surface" and does not perform the above-mentioned curved surface restoration process. In other words, multiple restoration points are generated on the plane. Note that this determination is performed for each node, for example.
  • the encoding device may calculate the offset amount d and store the calculated offset amount d in the bitstream.
  • the decoding device may perform the above processing using the offset amount d included in the bitstream.
  • the decoding device may determine that there is "no curved surface" when the offset amount d is not included in the bitstream.
  • the decoding device may determine whether there is a curved surface spanning between nodes from the distribution of edge vertices of multiple nodes, as described below.
  • the above threshold value for this offset amount d may be transmitted from the encoding device to the decoding device. That is, the bitstream may include the threshold value.
  • the multiple vertices within the node used to determine this approximate plane may be limited to edge vertices, or may include other vertices.
  • the encoding device may instruct the decoding device whether or not it is necessary to calculate t' for this unevenness expression (whether or not to perform curved surface restoration processing). For example, the encoding device determines whether the accuracy of the restored point group is improved by the above-mentioned surface restoration process based on the distribution status of the original point group, and stores information indicating the determination result in the bitstream. .
  • the information may be information indicating whether the decoding device performs the above-mentioned curved surface restoration process.
  • FIG. 15 is a diagram showing an example of a point group in this case.
  • the decoding device may correct the restoration point located outside the node so that it is located inside the node.
  • the decoding device may generate a restoration point at a position before the above-mentioned surface restoration process was performed (the position of the point before adjustment).
  • FIG. 16 is a flowchart of decoding processing by the decoding device according to this embodiment.
  • the decoding device obtains a GDU header and GDU from a bitstream (S101).
  • the decoding device obtains 8-ary tree information indicating the pruned 8-ary tree from the GDU.
  • the decoding device acquires 8-ary tree information by entropy decoding the encoded 8-ary tree information included in the GDU.
  • the decoding device generates a plurality of leaf nodes (a group of leaf nodes) of the pruned 8-ary tree using the 8-ary tree information (S102).
  • the decoding device acquires vertex information, which is position information of edge vertices and centroid vertices, from the GDU (S103). For example, the decoding device acquires vertex information by entropy decoding encoded vertex information included in the GDU.
  • the decoding device performs the following processing (loop processing) of steps S104 to S107 on each of the plurality of leaf nodes of the pruned 8-ary tree.
  • the decoding device generates a triangle connecting two edge vertices and a centroid vertex for each combination of two edge vertices and a centroid vertex among a plurality of vertices belonging to a target node, which is a leaf node to be processed.
  • a list of multiple triangles is generated (S104).
  • the decoding device calculates the center of gravity G of the edge apex of the target node (S105).
  • the decoding device performs the process of step S106 below (loop process) for each of the plurality of triangles included in the list of triangles.
  • the decoding device generates a plurality of points (restoration points) on the surface of the target triangle, which is the triangle to be processed (S106). With the above, the loop processing for the target triangle is completed.
  • the decoding device makes the multiple restored points (restored point group) in the target node unique using coordinate values and adds them to the decoded point group (S107).
  • making them unique means excluding points with duplicate coordinate values. This completes the loop processing for the target node.
  • FIG. 17 is a flowchart showing details of the restoration point generation process (step S106 in FIG. 16). The processing shown in FIG. 17 is performed for each triangle.
  • the decoding device calculates the coordinates of the foot N of a perpendicular line drawn from the center of gravity G to the target triangle (S111).
  • the decoding device calculates the bounding box of the target triangle, and selects three planes, the yz plane, the xz plane, and the xy plane, which are closer to the origin among the six planes forming the bounding box (S112).
  • the decoding device performs the following processing (loop processing) of steps S113 to S115 on each of the three planes of the bounding box.
  • the decoding device performs ray tracing in a triangle from the coordinate point (ray transmission point P) of the integer grid of the target plane, which is the plane to be processed, and calculates the length t of the ray (PQ) (S113).
  • the decoding device calculates the value (polarity) of GN/PN, which is the inner product of vector GN and vector PN, the intersection Q of the triangle and the ray (restoration point Q), and the vertices of the triangle (v1, v2, v3).
  • the value of t is adjusted (increased/decreased) according to the distance to (S114).
  • the decoding device determines the polarity of ⁇ t according to the polarity of GN and PN.
  • the decoding device determines the absolute value of ⁇ t according to the distance between the intersection point Q and the triangle vertices (v1, v2, v3).
  • the decoding device calculates t' by adjusting t using the determined ⁇ t.
  • the decoding device calculates the integerized coordinates Q' of the intersection Q by converting the adjusted t(t') into an integer, and adds Q' to the group of restoration points in the node as a restoration point. That is, the decoding device generates a restoration point at Q' (S115). With the above, the loop processing for the target surface is completed.
  • FIG. 18 is a diagram showing an example of a centroid vector. In this case, the triangular surface in the direction in which the centroid vector faces is determined to be the point restoration surface.
  • the decoding device when the size of the centroid vector is greater than or equal to a predetermined threshold, the decoding device performs surface restoration processing, which is position adjustment of the restoration point using the aforementioned ⁇ t, and when the centroid vector is less than the threshold, In this case, it is not necessary to perform surface restoration processing.
  • the decoding device may make the determination using the position of a shared edge vertex, which is an edge vertex shared between adjacent nodes, without using the centroid vertex.
  • FIG. 19 is a diagram showing an example of shared edge vertices.
  • the decoding device uses the shared edge vertex as a tentative centroid vertex.
  • the shared edge vertex is an edge vertex shared by nodes 1 to 4.
  • the decoding device also calculates the center of gravity of the unshared edge vertices (center of gravity of the edge vertices between nodes), which are edge vertices other than the shared edge vertices, among the multiple edge vertices of nodes 1 to 4.
  • the unshared edge vertex is an edge vertex that is not shared by nodes 1 to 4.
  • the decoding device can use the shared edge vertices described above as centroid vertices, use the center of gravity of edge vertices between nodes as the center of gravity of edge vertices, and perform various determinations and processes using methods similar to those described above. This makes it possible to determine the presence or absence of a curved surface between nodes, the restoration surface for each triangle, and calculate the amount of bulge
  • FIG. 19 shows an example of a group of four nodes lined up on the xz plane, this is just one example, and there are other ways to consider the shared edge vertices as temporary centroid vertices.
  • the target may be a group of nodes adjacent to . Further, the number of adjacent nodes is not limited to four. For example, similar processing may be performed between two nodes. In the case between two nodes, there may be two shared edge vertices shared between the nodes. In this case, the center of gravity of the edge vertices between the nodes may be the center of gravity of a plurality of edge vertices excluding these two shared edge vertices.
  • the bitstream may include a flag indicating whether the above-described curved surface restoration process is on or off (whether or not the curved surface restoration process is performed).
  • the decoding device performs curved surface restoration processing when the flag is on, and does not perform curved surface restoration processing when the flag is off.
  • the encoding device stores the flag in, for example, SPS, GPS, or GDU.
  • SPS Sequence Parameter Set
  • GPS Global System for Mobile Communications
  • GDU Global System for Mobile Communications
  • a flag may be provided that indicates whether the surface restoration process is on or off for each node. Further, information regarding the curved surface restoration process may be constantly transmitted without providing a flag. Further, in addition to the above flags, flags for switching between the various methods described above may be separately stored in the bitstream.
  • or a parameter for determining the maximum value may be stored in the bitstream.
  • various parameters described above may be stored in the bitstream.
  • the decoding device when performing normal ray tracing rather than restoring a bulge, it is also possible to consider a method of adjusting the vertex position in order to maintain the volume of the restoring point group.
  • the decoding device does not adjust the position of a point generated by ray tracing, but adjusts the vertex position.
  • the position of the triangle generated at the adjusted vertex position is adjusted, and as a result, the position of the point generated by ray tracing is also adjusted.
  • 20 to 23 are diagrams for explaining this method.
  • FIG. 20 is a diagram showing an example of the original point cloud and normal restoration points restored by ray tracing.
  • FIG. 21 is a diagram showing an example of restoration points after adjustment. As shown in FIG. 21, the encoding device may move the centroid vertex shown in FIG. 20 in a direction away from the center of gravity of the edge vertices. This can improve the reproducibility of the original point cloud, as shown in FIG. 21.
  • FIG. 22 is a diagram showing another example of the original point group and normal restoration points restored by ray tracing.
  • FIG. 23 is a diagram showing an example of restoration points after adjustment.
  • the encoding device may move the shared edge vertices in a direction away from the center of gravity of the edge vertices between the nodes. That is, the encoding device may move the shared edge vertices along the edge.
  • the shared edge vertex is an edge vertex shared by node 1 and node 2.
  • the center of gravity of edge vertices between nodes is the center of gravity of edge vertices other than the shared edge vertices among the plurality of edge vertices included in node 1 and node 2.
  • the encoding device may move the shared edge vertex if the curved surfaces of the adjacent nodes (node 1 and node 2) have the same orientation, and otherwise may not move the shared edge vertex.
  • the directions of the curved surfaces are the same when, for example, the inner product value of the centroid vector of node 1 and the centroid vector of node 2 is positive.
  • the amount of movement of the centroid vertex in the cases shown in FIGS. 20 and 21 may be determined to be proportional to the vertex gravity center distance, which is the distance between the centroid vertex and the edge vertex gravity center, for example.
  • the vertex gravity center distance is the distance between the centroid vertex and the edge vertex gravity center, for example.
  • the amount of movement of the shared edge vertex in the cases shown in FIGS. 22 and 23 may be determined to be proportional to the vertex centroid distance, which is the distance between the shared edge vertex and the edge vertex centroid between the nodes.
  • the vertex centroid distance is the distance between the shared edge vertex and the edge vertex centroid between the nodes.
  • the moved vertex position may be located far away from the original point cloud. Therefore, in such cases, the decoding device does not need to add vertices to the restored point cloud.
  • the above vertex position adjustment technique can also be used when generating mesh data from a point cloud using the Trithorpe method. Because the mesh data itself is a representation format, mesh data that maintains the volume of the original point cloud can be obtained by gradually moving the vertex positions created from the original point cloud using the Trithorpe method toward the outside of the volume before generating a polygon model.
  • the outside direction of the volume refers to the direction away from the center of the polyhedron defined by the mesh.
  • the above-described processing may be performed by an encoding device that reconstructs at least one three-dimensional point. That is, the encoding device may adjust the position (on a plane) of a point after reconstruction, or may generate a reconstruction point whose position is adjusted on a curved surface.
  • the decoding device determines whether a curved surface exists within a certain coordinate interval as a method for determining whether a curved surface exists. Furthermore, the control information included in the bitstream includes a flag indicating whether to turn on or turn off the above function. Further, the control information may include a flag or information (parameter) for switching between the following various methods.
  • control information includes a flag indicating whether to turn on or off the above function for the entire point cloud, a flag indicating whether to turn on or off the above function for each node, and a flag indicating whether a curved surface exists or not.
  • the information may include at least one of information indicating a threshold value of the distance between two feature points for determining the distance between the two feature points.
  • the decoding device determines that there is a curved surface, it estimates a triangular restoration surface using a predetermined method and generates a point at a position away from the estimated restoration surface. For example, the decoding device determines whether a curved surface exists using the positional relationship between two feature points within a leaf node. For example, the two feature points are the centroid vertex and the center of gravity of the edge vertex. For example, the decoding device determines whether a curved surface exists based on whether the distance between two feature points within a leaf node is greater than or equal to a threshold value. Note that the two feature points may be a shared edge vertex between adjacent leaf nodes and a center of gravity of a non-shared edge vertex.
  • the above-mentioned predetermined method may be a method of determining a restoration surface based on the position of a feature point within a leaf node.
  • the decoding device may determine that the surface on the opposite side of the center of gravity of the edge vertices within the node as viewed from the triangle is the reconstruction surface. For example, the decoding device may determine that the surface in the direction of the centroid vector within the node as viewed from the triangle is the reconstruction surface. For example, the decoding device may determine that the surface on the opposite side of the center of gravity of the edge vertices between the nodes as viewed from the triangle is the reconstruction surface. In addition, the decoding device may calculate the offset ( ⁇ t) of the reconstruction point from the surface of the triangle from the positional relationship between the triangle and point Q generated by ray tracing.
  • the decoding device may move the position of the centroid vertex in a direction away from the center of gravity of the edge vertex. For example, the decoding device may move the position of the edge vertex along the edge in a direction away from the center of gravity between nodes. For example, the decoding device may calculate the movement distance of a vertex using the distance between the vertex and the center of gravity.
  • the decoding device may estimate a triangular restoration surface using a predetermined method and generate points at positions away from the restoration surface.
  • a device for example, a decoding device
  • a device generates vertices from a partial point group using a predetermined method, and connects the vertices to generate a series of polygons.
  • the device determines whether there is a curved surface within a certain coordinate interval.
  • the device may move the position of the centroid vertex away from the center of gravity of the edge vertex. If there is a curved surface within the coordinate interval, the device may move the position of the edge vertex along the edge in a direction away from the center of gravity between nodes. For example, the device may calculate the distance traveled by the vertex from the distance between the vertex and the center of gravity.
  • the decoding device (three-dimensional data decoding device) according to the embodiment performs the processing shown in FIG. 24.
  • the decoding device receives encoded information regarding a plurality of three-dimensional points (S201), and determines whether to specify a curved surface that approximates the plurality of three-dimensional points based on the encoded information (S202). According to this, the decoding device can specify a curved surface that approximates a plurality of three-dimensional points, for example, when the reproducibility of the original point group can be improved by specifying the curved surface. Therefore, the decoding device can improve the reproducibility of the original point group.
  • the decoding device determines whether to specify a curved surface that approximates a plurality of three-dimensional points or a plane that approximates a plurality of three-dimensional points. According to this, for example, if the reproducibility of the original point group cannot be improved by specifying a curved surface that approximates multiple three-dimensional points, or by specifying a plane that approximates multiple three-dimensional points, the decoding device If the reproducibility of the original point group can be improved by doing so, a plane can be specified. Therefore, since the decoding device can specify a curved surface or a plane according to the original point group, it is possible to improve the reproducibility of the original point group.
  • a curved surface or a plane is provided within the first node of an octree structure of multiple three-dimensional points.
  • the decoding device can specify, for example, a curved surface or a plane for each node, and therefore can appropriately select processing according to the characteristics of the node.
  • the plane is specified according to the trisoap method or the mesh method.
  • the original point group can be approximated by a curved surface, without being limited by the limitation that the original point group can only be approximated by a plane as in the conventional trithorpe method or mesh method, and the reproducibility of the original point group can be improved. There are cases.
  • a curved surface bulges out from a plane so that the curved surface moves away from the center of gravity of a plurality of edge vertices, and the plurality of edge vertices specify a plane according to the trithorpe method.
  • a curved surface is designated according to information that designates a plane according to the trithorpe method, which is included in the encoded information.
  • the decoding device can specify a curved surface that can improve the reproducibility of the shape of the original point group.
  • the decoding device can specify a curved surface that can improve the reproducibility of the shape of the original point group.
  • whether or not to specify a curved surface is determined based on at least two feature points in the first node included in an octree structure of multiple three-dimensional points, and at least two feature points are encoded information It is derived from According to this, the decoding device can determine whether to specify a curved surface using information derived from encoded information.
  • the at least two feature points are selected from the center of gravity of the edge vertices and the centroid vertex, and the edge vertices and the centroid vertex are derived according to the Trisope method.
  • the decoding device specifies a plane based on encoded information included in the bitstream and generates at least one three-dimensional point away from the plane. According to this, the decoding device can improve the reproducibility of the original point group, for example, compared to the case where points are generated only on a plane. For example, the reproducibility of a curved surface shape, which has low reproducibility on a flat surface, can be improved.
  • the plane is specified according to the trithorpe method.
  • the plane and at least one 3D point are in a first node of an octree structure of 3D points.
  • the decoding device can perform appropriate processing depending on the characteristics of the node, for example.
  • the plane is between at least one three-dimensional point and the centroid of the edge vertices, and the edge vertices specify the plane according to a trisoap method. According to this, the reproducibility of bulges, etc. of the original point group can be improved by using at least one three-dimensional point.
  • planes are specified according to a mesh scheme.
  • the decoding device moves the first vertex included in the plurality of vertices specified based on the encoding information included in the bitstream away from the center of gravity of the plurality of second vertices included in the plurality of vertices.
  • a plane or a curved surface is specified using the subsequent first vertex and a plurality of second vertices, and a plurality of three-dimensional points are generated on the plane or curved surface. According to this, by moving the vertices, the decoding device can improve the reproducibility of, for example, bulges in the original point group.
  • FIG. 25 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 uses the memory 12 to perform the above processing.
  • the encoding device may perform at least part of the processing performed by the above-described decoding device.
  • the encoding device three-dimensional data encoding device
  • the encoding device generates encoding information regarding the plurality of three-dimensional points (S211), and determines whether to designate a curved surface that approximates the plurality of three-dimensional points based on the encoding information (S212).
  • the encoded information may include information regarding designation of a curved surface that approximates a plurality of three-dimensional points.
  • the decoding device can specify a curved surface that approximates a plurality of three-dimensional points by, for example, specifying a curved surface that approximates a plurality of three-dimensional points using information regarding the specification of a curved surface that approximates a plurality of three-dimensional points. Furthermore, by generating information in the encoding device, the amount of processing in the decoding device can be reduced.
  • FIG. 27 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 uses the memory 22 to perform the above processing.
  • the present disclosure is limited to this embodiment. It is not something that will be done.
  • each processing unit included in the encoding device, decoding device, etc. is typically realized as an LSI, which is an integrated circuit. These may be integrated into one chip individually, or may be integrated into one chip including some or all of them.
  • circuit integration is not limited to LSI, and may be realized using a dedicated circuit or a general-purpose processor.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connections and settings of circuit cells inside the LSI may be used.
  • 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 a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
  • the present disclosure also describes an encoding method (three-dimensional data encoding method) or a decoding method (three-dimensional data decoding method), etc.
  • the present disclosure may be realized as a program that causes a computer, processor, or device to execute the encoding method or decoding method described above. Further, the present disclosure may be implemented as a bitstream generated by the above encoding method. Further, the present disclosure may be realized as a recording medium on which the program or the bitstream is recorded. For example, the present disclosure may be realized as a non-transitory computer-readable recording medium on which the program or the bitstream is recorded.
  • the present disclosure can be applied to encoding devices and decoding devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)

Abstract

復号方法は、複数の三次元点に関する符号化情報を受信し(S201)、符号化情報に基づき、複数の三次元点を近似する曲面を指定するか否かを決定する(S202)。例えば、決定(S202)では、複数の三次元点を近似する曲面を指定するか、複数の三次元点を近似する平面を指定するかを決定してもよい。例えば、曲面又は平面は、複数の三次元点の8分木構造の第1ノード内に提供されてもよい。例えば、平面は、トライソープ方式又はメッシュ方式に従って指定されてもよい。

Description

復号方法及び復号装置
 本開示は、復号方法及び復号装置に関する。
 自動車或いはロボットが自律的に動作するためのコンピュータビジョン、マップ情報、監視、インフラ点検、又は、映像配信など、幅広い分野において、今後、三次元データを活用した装置又はサービスの普及が見込まれる。三次元データは、レンジファインダなどの距離センサ、ステレオカメラ、又は複数の単眼カメラの組み合わせなど様々な方法で取得される。
 三次元データの表現方法の1つとして、三次元空間内の点群によって三次元構造の形状を表すポイントクラウドと呼ばれる表現方法がある。ポイントクラウドでは、点群の位置と色とが格納される。ポイントクラウドは三次元データの表現方法として主流になると予想されるが、点群はデータ量が非常に大きい。よって、三次元データの蓄積又は伝送においては二次元の動画像(一例として、MPEGで規格化されたMPEG-4 AVC又はHEVCなどがある)と同様に、符号化によるデータ量の圧縮が必須となる。
 また、ポイントクラウドの圧縮については、ポイントクラウド関連の処理を行う公開のライブラリ(Point Cloud Library)などによって一部サポートされている。
 また、三次元の地図データを用いて、車両周辺に位置する施設を検索し、表示する技術が知られている(例えば、特許文献1参照)。
国際公開第2014/020663号
 また、符号化方式として不可逆圧縮方式が用いられる場合がある。このような場合には、復号された点群は、元の点群と完全には一致しない。よって、復号される点群の再現性を向上できることが望まれている。
 本開示は、復号される点群の再現性を向上できる復号方法又は復号装置を提供することを目的とする。
 本開示の一態様に係る復号方法は、複数の三次元点に関する符号化情報を受信し、前記符号化情報に基づき、前記複数の三次元点を近似する曲面を指定するか否かを決定する。
 本開示の一態様に係る復号方法は、ビットストリームに含まれる符号化情報に基づいて平面を指定し、前記平面から離れた少なくとも1つの三次元点を生成する。
 本開示の一態様に係る復号方法は、ビットストリームに含まれる符号化情報に基づいて指定される複数の頂点に含まれる第1頂点を、前記複数の頂点に含まれる複数の第2頂点の重心から離れるように移動させ、移動後の前記第1頂点と、前記複数の第2頂点とを用いて、平面又は曲面を指定し、前記平面又は前記曲面上に複数の三次元点を生成する。
 本開示は、復号される点群の再現性を向上できる復号方法又は復号装置を提供できる。
図1は、実施の形態に係る元点群の例を示す図である。 図2は、実施の形態に係る剪定8分木の例を示す図である。 図3は、実施の形態に係るリーフノードを二次元表示した例を示す図である。 図4は、実施の形態に係るセントロイド頂点の生成方法を説明するための図である。 図5は、実施の形態に係るセントロイド頂点の生成方法を説明するための図である。 図6は、実施の形態に係る頂点情報の例を示す図である。 図7は、実施の形態に係るトライソープ・サーフェスの例を示す図である。 図8は、実施の形態に係る点群の復元処理を説明するための図である。 図9は、実施の形態に係る元点群及び復元点群の例を示す図である。 図10は、実施の形態に係る頂点及び三角形の例を示す図である。 図11は、実施の形態に係る頂点及び三角形の例を示す図である。 図12は、実施の形態に係る頂点及び三角形の例を示す図である。 図13は、実施の形態に係る頂点及び三角形の例を示す図である。 図14は、実施の形態に係る曲面の判定方法の例を示す図である。 図15は、実施の形態に係る点群の例を示す図である。 図16は、実施の形態に係る復号処理のフローチャートである。 図17は、実施の形態に係る復元点の生成処理のフローチャートである。 図18は、実施の形態に係るセントロイドベクトルの例を示す図である。 図19は、実施の形態に係る共有エッジ頂点の例を示す図である。 図20は、実施の形態に係る元点群及び通常の復元点の例を示す図である。 図21は、実施の形態に係る調整後の復元点の例を示す図である。 図22は、実施の形態に係る元点群及び通常の復元点の例を示す図である。 図23は、実施の形態に係る調整後の復元点の例を示す図である。 図24は、実施の形態に係る復号処理のフローチャートである。 図25は、実施の形態に係る復号装置のブロック図である。 図26は、実施の形態に係る符号化処理のフローチャートである。 図27は、実施の形態に係る符号化装置のブロック図である。
 本開示の一態様に係る復号方法は、複数の三次元点に関する符号化情報を受信し、前記符号化情報に基づき、前記複数の三次元点を近似する曲面を指定するか否かを決定する。これによれば、復号方法は、例えば、複数の三次元点を近似する曲面を指定することにより、元点群の再現性を向上できる場合に、当該曲面を指定できる。よって、復号方法は、元点群の再現性を向上できる。
 例えば、前記決定では、前記複数の三次元点を近似する前記曲面を指定するか、前記複数の三次元点を近似する平面を指定するかを決定してもよい。これによれば、復号方法は、例えば、複数の三次元点を近似する曲面を指定することにより、元点群の再現性を向上できない場合、又は、複数の三次元点を近似する平面を指定することにより、元点群の再現性を向上できる場合には、平面を指定できる。よって、復号方法は、元点群に応じて曲面又は平面を指定できるので、元点群の再現性を向上できる。
 例えば、前記曲面又は前記平面は、前記複数の三次元点の8分木構造の第1ノード内に提供されてもよい。これによれば、復号方法は、例えば、ノード毎に曲面又は平面を指定できるので、ノードの特性に応じて処理を適切に選択できる。
 例えば、前記平面は、トライソープ方式又はメッシュ方式に従って指定されてもよい。これによれば、従来のトライソープ方式又はメッシュ方式のように平面で元点群を近似するしかないという制限にとらわれず、曲面で元点群を近似でき、元点群の再現性を向上できる場合がある。
 例えば、前記曲面は、前記曲面が複数のエッジ頂点の重心から離れるように前記平面から膨らんでおり、前記複数のエッジ頂点は前記トライソープ方式に従って平面を指定してもよい。
 例えば、前記曲面は、前記符号化情報に含まれる、前記トライソープ方式に従って前記平面を指定する情報に従って指定されてもよい。
 例えば、前記平面が大きいほど、前記曲面の膨らみ量が大きくてもよい。これによれば、復号方法は、元点群の形状の再現性を向上できる曲面を指定できる。
 例えば、前記曲面の中心部における前記曲面の膨らみ量は、前記曲面の周辺部における前記膨らみ量よりも大きくてもよい。これによれば、復号方法は、元点群の形状の再現性を向上できる曲面を指定できる。
 例えば、前記曲面を指定するか否かは、前記複数の三次元点の8分木構造に含まれる第1ノード内の少なくとも2つの特徴点に基づいて決定され、前記少なくとも2つの特徴点は、前記符号化情報から導出されてもよい。これによれば、復号方法は、符号化情報から導出される情報を用いて、曲面を指定するか否かを判定できる。
 例えば、前記少なくとも2つの特徴点は、複数のエッジ頂点の重心と、セントロイド頂点とから選択され、前記複数のエッジ頂点及び前記セントロイド頂点は、トライソープ方式に従って導出されてもよい。
 本開示の一態様に係る復号方法は、ビットストリームに含まれる符号化情報に基づいて平面を指定し、前記平面から離れた少なくとも1つの三次元点を生成する。これによれば、復号方法は、例えば、平面上のみに点を生成する場合に比べて、元点群の再現性を向上できる。例えば、平面では再現性が低い曲面形状の再現性を向上できる。
 例えば、前記平面は、トライソープ方式に従って指定されてもよい。例えば、前記平面及び前記少なくとも1つの三次元点は、複数の三次元点の8分木構造の第1ノード内に存在してもよい。これによれば、復号方法は、例えば、ノードの特性に応じて適切な処理を行うことができる。
 例えば、前記平面は、前記少なくとも1つの三次元点と複数のエッジ頂点の重心との間にあり、前記複数のエッジ頂点はトライソープ方式に従って前記平面を指定してもよい。これによれば、少なくとも1つの三次元点により、元点群の膨らみ等の再現性を向上できる。例えば、記平面はメッシュ方式に従って指定されてもよい。
 本開示の一態様に係る復号方法は、ビットストリームに含まれる符号化情報に基づいて指定される複数の頂点に含まれる第1頂点を、前記複数の頂点に含まれる複数の第2頂点の重心から離れるように移動させ、移動後の前記第1頂点と、前記複数の第2頂点とを用いて、平面又は曲面を指定し、前記平面又は前記曲面上に複数の三次元点を生成する。これによれば、復号方法は、頂点を移動させることで、例えば、元点群の膨らみ等の再現性を向上できる。
 本開示の一態様に係る復号装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、複数の三次元点に関する符号化情報を受信し、前記符号化情報に基づき、前記複数の三次元点を近似する曲面を指定するか否かを決定する。
 本開示の一態様に係る復号装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、ビットストリームに含まれる符号化情報に基づいて平面を指定し、前記平面から離れた少なくとも1つの三次元点を生成する。
 本開示の一態様に係る復号装置は、プロセッサと、メモリとを備え、前記プロセッサは、前記メモリを用いて、ビットストリームに含まれる符号化情報に基づいて指定される複数の頂点に含まれる第1頂点を、前記複数の頂点に含まれる複数の第2頂点の重心から離れるように移動させ、移動後の前記第1頂点と、前記複数の第2頂点とを用いて、平面又は曲面を指定し、前記平面又は前記曲面上に複数の三次元点を生成する。
 なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
 以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 (実施の形態)
 以下、本実施の形態に係る符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)について説明する。符号化装置は、三次元データを符号化することでビットストリームを生成する。復号装置は、当該ビットストリームを復号することで三次元データを生成する。
 三次元データは、例えば、三次元点群データ(点群データとも呼ぶ)である。点群は、複数の三次元点が集まったものであり、対象物(オブジェクト)の三次元形状を示す。点群データは、複数の三次元点の位置情報及び属性情報を含む。当該位置情報は、各三次元点の三次元位置を示す。なお、位置情報は、ジオメトリ(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の位置情報を復元する。
 [曲面復元処理]
 例えば、トライソープ技術のように、点群を平面で近似する技術では、符号化装置は、元点群(符号化対象の点群)を頂点を用いてサンプリングし、その頂点の情報を復号装置に伝送する。復号装置は複数の頂点を繋いで面を復元する。このような処理の性質上、例えば、トライソープ技術によって三角形表面に点を復元する際に、凸面の膨らみ、又は凹面のへこみがあったとしても、三角形の大きさの粒度以下の膨らみ又はへこみを再現できないという課題がある。
 これに対して、本実施の形態では、復号装置は、例えばトライソープ技術を用いて、三角形(トライソープ・サーフェス)を生成する。復号装置は、三角形上にレイトレーシング(RayTracing)を用いて点を生成する際に、凸面の膨らみ側、又は凹面のへこみ側を判定し、判定結果に応じて点を生成する。
 例えば、復号装置は、三角形から見て、エッジ頂点の重心がある側の反対側を「膨らみ又はへこみがあった側」(復元面)と判定し、三角形表面からオフセットを持つ位置に復元点を生成する。
 図9は、この処理の概要を示す図であり、ノード1及びノード2における元点群及び復元点群の例を示す図である。なお、図9は、隣接するノード1及びノード2を二次元標記した例である。図9に示す例では、ノード1に凹面のサーフェス(元点群のサーフェス)があり、ノード2に凸面のサーフェスがある。この場合、各ノードにおいてエッジ頂点の重心から離れる側に復元点群(通常のレイトレーシングで生成される調整前の点)をシフトさせることで、復元点群により元点群を再現できる。
 これにより、復号装置は、曲面推定又は関数フィッティングのための反復計算を行わず、少ない計算量で元点群の膨らみ又はへこみを再現できる。
 以下、上記の処理について詳細に説明する。復号装置は、三角形の表面付近に点を生成するために、まず、三角形のバウンディングボックスを規定する。復号装置は、バウンディングボックスが持つ各面の整数グリッド座標Pからx、y、zの各軸方向にベクトルを伸ばし、そのベクトルと三角形との交点に復元点Qを生成する。
 このレイトレーシング技術の一例であるMollerの交差判定法について、図10及び図11を用いて説明する。図10及び図11は、頂点及び三角形の例を示す図である。
 レイ(Ray)の発信点Pは、三角形を囲むバウンディングボックスを成すyz面、xz面、xy面の各整数グリッド(grid)座標に設けられる。
 例としてレイトレーシングをyz面、xz面、xy面の3方向から行う場合を考える。bは、x、y、zの何れか方向の単位ベクトルである。u、v、wは三角形表面を表すベクトル係数である。また、下記の式が成り立つ。
 h=b×e2
 a=e1・h
 u=s・h/a
 q=s×e1
 v=b・q/a
 t=e2・q/a
 なお、図11に示すように三角形は、頂点v1、v2、v3により形成される。頂点v1、v2、v3はエッジ頂点又はセントロイド頂点である。tbは発信点Pから復元点Qに向かうベクトルであり、tは発信点Pと復元点Qとの距離である。sは発信点Pから頂点v1に向かうベクトルであり、e1は頂点v1から頂点v2に向かうベクトルであり、e2は頂点v1から頂点v3に向かうベクトルである。上記の式から距離tが求まるので、復元点Qの座標はQ=P+tvと表現される。
 さらに、本実施の形態では、距離tを調整することで、元点群分布の持つ膨らみを再現する。ここで、三角形へのレイトレーシングにおいて、復元面は常にエッジ頂点の重心Gの反対側の面に存在するので、復号装置は、復元点Qが三角形から見て重心Gの反対側の面を指すようにtを調整する。具体的には、復号装置は、調整後の距離t’=t+Δtを算出するためにΔtを算出する。図12は、この処理を説明するための図であり、頂点及び三角形の例を示す図である。
 ここで、レイの発信点Pの位置に応じてtの変化量であるΔtの極性は以下のように変化する。図12に示すように、重心Gから三角形に降ろした垂線の足をNとする。この場合、レイの発信点Pと、重心Gと、三角形との位置関係は、ベクトルGNとベクトルPNとの内積に応じて決定される。ここで、ベクトルGNは、重心Gから足Nへ向かうベクトルであり、ベクトルPNは、発信点Pから足Nへ向かうベクトルである。
 内積>0の場合、発信点Pと重心Gとは三角形面に対して同じ側に位置する。内積=0の場合、発信点Pは三角形上に存在する。内積<0の場合、発信点Pと重心Gとは三角形面を挟んで反対側に位置する。よって、復号装置は、内積>0の場合、Δtを正の値に設定し、内積<0の場合、Δtを負の値に設定する。
 また、復号装置は、内積=0の場合は、調整を行わない(Δt=0に設定する)。なお、復号装置は、内積の絶対値が閾値未満の場合に内積=0と判定してもよい。これにより、誤動作を抑制できる。また、この閾値を示す情報は符号化装置から復号装置へ伝送されてもよい。つまり、この閾値を示す情報がビットストリームに含まれてもよい。
 次に、膨らみ量|Δt|の決定方法について説明する。図13は、頂点及び三角形の例を示す図である。三角形の3頂点(v1、v2、v3)と復元点QについてMollerの交差判定法に基づき以下の式が成り立つ。
 Q=w×v1+u×v2+v×v2
 0≦w、u、v
 u+v+w=1
 また、調整後のtであるt’はt’=t+Δtで表される。Δtの極性は上述の方法で求めることができる。以下、Δtの絶対値|Δt|の算出の一例を説明する。
 復号装置は、三角形の頂点から離れた点の|Δt|を大きく設定する。具体的には、復号装置は、(i)u、v、wの何れかの値が1に近い、又は/及び、(ii)u、v、wの値に偏りがある場合、などには、復元点Qが三角形の端にあると判定し、|Δt|を0に近づける(|Δt|を小さい値に設定する)。また、復号装置は、u、v、wに差がない場合、又は、u、v、wの各々が所定の値に近い場合、点Qが三角形の中央付近にあると判定し、|Δt|を大きい値に設定する。
 また、復号装置は、復元点Qが三角形の端でも中央でもなく、その中間に位置する場合、復元点の位置に応じた線形補間、又は曲線補間などの方法を用いて|Δt|を設定してもよい。
 また、|Δt|の最大値は三角形の長辺の長さを基に定められてもよい。例えば、復号装置は、三角形の大きさ(例えば長辺の長さ)を1以上の整数で除算した値をΔtの最大値に設定することで、三角形の大きさに応じて膨らみの最大幅を決定できる。つまり、Δtの最大値であるΔtmax=三角形の長辺長/8が用いられてもよい。なお、「8」は調整係数であり、「8」以外の値が用いられてもよい。
 この場合、Δt=(1-max(w、u、v))×ΔtmaxによりΔtが算出される。ここで、max(A、B、...)は、引数の最大値を返す関数である。
 このように、復号装置は、三角形の長辺の長さが大きいほど|Δt|を大きくしてもよい。つまり、復号装置は、三角形が大きいほど|Δt|を大きくしてもよい。言い換えると、三角形平面が大きいほど、曲面の突出量(膨らみ量)が大きくなる。また、曲面の中心部における曲面の突出量は、曲面の周辺部における突出量よりも大きい。ただし、上記式はあくまでも一例であり、他の重み付け方式が用いられてもよい。
 復号装置は、Δtを用いてt’を算出し、t’を用いて、Q’=P+t’vによりQ’の座標を算出する。復号装置は、Q’の座標値を整数化した位置に復元点を追加する。例えば、整数化した位置とは、x、y、zの整数グリッドの位置である。
 次に、曲面の有無の判定方法について説明する。図14は、曲面の判定方法の例を示す図である。復号装置は、複数のエッジ頂点から近似平面を推定する。例えば、近似平面は複数のエッジ頂点を含む平面である。次に、復号装置は、近似平面とセントロイド頂点とのオフセット量dを算出する。ここでオフセット量dは、近似平面とセントロイド頂点との距離を示す。
 復号装置は、オフセット量dが、予め定められた閾値よりも大きい場合に「曲面あり」と判定する。この場合、復号装置は、上述の膨らみの復元のための曲面復元処理(tの調整)を行う。なお、復号装置は、オフセット量dに応じてΔtmax又はΔtの大きさを調整してもよい。
 復号装置は、オフセット量dが上記閾値以下の場合は「曲面無し」と判定し、上述の曲面復元処理を行わない。つまり、平面上に複数の復元点が生成される。なお、この判定は、例えば、ノード毎に行われる。
 なお、符号化装置は、オフセット量dを算出し、算出したオフセット量dをビットストリームに格納してもよい。この場合、復号装置は、ビットストリームに含まれるオフセット量dを用いて、上記処理を行ってもよい。また、復号装置は、オフセット量dがビットストリームに含まれない場合に、「曲面無し」と判定してもよい。
 また、復号装置は、後述のように複数ノードのエッジ頂点の分布から、ノード間に跨った曲面があるか否かを判定してもよい。
 また、このオフセット量dに対する上記の閾値を符号化装置から復号装置へ伝送してもよい。つまり、ビットストリームは、当該閾値を含んでもよい。
 また、この近似平面を決めるために用いるノード内の複数の頂点はエッジ頂点に限定されてもよいし、その他の頂点が含まれてもよい。
 また、この凹凸表現のためのt’の算出の必要性の有無(曲面復元処理を行うか否か)を、符号化装置から復号装置へ指示してもよい。例えば、符号化装置は、元点群の分布状況に基づき、上述の曲面復元処理により、復元点群の精度が向上するか否かを判定し、その判定結果を示す情報をビットストリームに格納する。例えば、当該情報は、復号装置が、上述の曲面復元処理を行うか否かを示す情報であってもよい。
 また、上記方法により求められたt’を適用した結果、復元点がノード(リーフノード)の枠外に位置することも考えられる。図15は、この場合の点群の例を示す図である。この場合、復号装置は、ノード外に位置する復元点をノード内に位置するよう補正してもよい。または、復号装置は、この場合、上述の曲面復元処理を行う前の位置(調整前の点の位置)に復元点を生成してもよい。
 [処理フロー]
 図16は、本実施の形態に係る復号装置による復号処理のフローチャートである。まず、復号装置は、ビットストリームからGDUヘッダとGDUとを取得する(S101)。次に復号装置は、GDUから、剪定8分木を示す8分木情報を取得する。例えば、復号装置は、GDUに含まれる符号化された8分木情報をエントロピー復号することで8分木情報を取得する。復号装置は、8分木情報を用いて剪定8分木の複数のリーフノード(リーフノード群)を生成する(S102)。
 次に、復号装置は、エッジ頂点とセントロイド頂点の位置情報である頂点情報をGDUから取得する(S103)。例えば、復号装置は、GDUに含まれる符号化された頂点情報をエントロピー復号することで頂点情報を取得する。
 次に、復号装置は、剪定8分木の複数のリーフノードの各々に対して以下のステップS104~S107の処理(ループ処理)を行う。まず、復号装置は、処理対象のリーフノードである対象ノードに属する複数の頂点のうちエッジ頂点2つとセントロイド頂点との組み合わせ毎に、当該エッジ頂点2つとセントロイド頂点とを結んだ三角形を生成し、複数の三角形のリストを生成する(S104)。次に、復号装置は、対象ノードのエッジ頂点の重心Gを算出する(S105)。
 次に、復号装置は、三角形のリストに含まれる複数の三角形の各々に対して以下のステップS106の処理(ループ処理)を行う。復号装置は、処理対象の三角形である対象三角形の表面に複数の点(復元点)を生成する(S106)。以上により、対象三角形に対するループ処理が終了する。
 次に、復号装置は、対象ノード内の複数の復元点(復元点群)を座標値でユニーク化して復号点群に追加する(S107)。ここで、ユニーク化とは座標値が重複する点を除外することである。以上により、対象ノードに対するループ処理が終了する。
 図17は、復元点の生成処理(図16のステップS106)の詳細を示すフローチャートである。図17に示す処理は三角形毎に行われる。
 まず、復号装置は、重心Gから対象三角形に降ろした垂線の足Nの座標を算出する(S111)。次に、復号装置は、対象三角形のバウンディングボックスを算出し、バウンディングボックスを形成する6平面のうち、原点に近い方のyz平面、xz平面、xy平面の3平面を選択する(S112)。
 次に、復号装置は、バウンディングボックスの3平面の各々に対して以下のステップS113~S115の処理(ループ処理)を行う。まず、復号装置は、処理対象の平面である対象平面の整数グリッドの座標点(レイの発信点P)から三角形にレイトレーシングを行い、レイ(PQ)の長さtを算出する(S113)。
 次に、復号装置は、ベクトルGNとベクトルPNとの内積であるGN・PNの値(極性)と、三角形とレイとの交点Q(復元点Q)と三角形の頂点(v1、v2、v3)との距離とに応じてtの値を調整(増減)する(S114)。具体的には、上述したように、復号装置は、GN・PNの極性に応じてΔtの極性を決定する。また、復号装置は、交点Qと三角形頂点(v1、v2、v3)との距離に応じてΔtの絶対値を決定する。復号装置は、決定されたΔtを用いてtを調整することでt’を算出する。
 復号装置は、調整後のt(t’)を整数化することで、交点Qの整数化座標Q’を算出し、Q’を復元点としてノード内の復元点群に追加する。つまり、復号装置は、Q’に復元点を生成する(S115)。以上により、対象面に対するループ処理が終了する。
 [変形例]
 三角形の復元面の判定の方法として、前述の例ではエッジ頂点の重心を基準に三角形の復元面を判定する方法について記載したが、以下の方法が用いられてもよい。復号装置は、エッジ頂点の重心からセントロイド頂点に向かうセントロイドベクトルの向きを判定に用いてもよい。図18はセントロイドベクトルの例を示す図である。この場合、セントロイドベクトルが向く方向にある三角形面が、点の復元面と判定される。
 さらに、復号装置は、セントロイドベクトルの大きさが予め定められた閾値以上の場合に、前述のΔtを用いた復元点の位置調整である曲面復元処理を行い、セントロイドベクトルが当該閾値未満の場合は曲面復元処理を行わなくてもよい。
 また、別の方法として、復号装置は、セントロイド頂点を用いず、隣接するノード間で共有するエッジ頂点である共有エッジ頂点の位置を用いて判定を行ってもよい。図19は、共有エッジ頂点の例を示す図である。
 この方式では、復号装置は、共有エッジ頂点を仮のセントロイド頂点として用いる。図19に示す例では、共有エッジ頂点はノード1~4で共有されるエッジ頂点である。また、復号装置は、ノード1~4の複数のエッジ頂点のうち、共有エッジ頂点以外のエッジ頂点である非共有エッジ頂点の重心(ノード間のエッジ頂点の重心)を算出する。言い換えると、非共有エッジ頂点は、ノード1~4で共有されないエッジ頂点である。
 復号装置は、上記の共有エッジ頂点をセントロイド頂点として用い、ノード間のエッジ頂点の重心をエッジ頂点の重心として用い、上述した方法と同様の方法により、各種判定及び処理を行うことができる。これにより、ノード間の曲面の有無、三角形毎の復元面の判定、及び膨らみ量|Δt|の算出ができるので、この技術の汎用性が向上する。
 なお、図19ではxz平面に4つ並んだノード群を例に挙げているが、これは一例であり、共有エッジ頂点を仮のセントロイド頂点とみなす方式として、他にxy平面、又はyz平面に隣接したノード群を対象としてもよい。また、隣接ノードの数は4つに限定されない。例えば、2つのノード間で同様の処理を行ってもよい。2つのノード間の場合は、ノード間で共有される共有エッジ頂点が2つになる場合がある。この場合、ノード間のエッジ頂点の重心は、この2つの共有エッジ頂点を除いた複数のエッジ頂点の重心であってもよい。
 また、上記処理に関連する情報の送信方法として、以下の方法が用いられてもよい。ビットストリームは、上述した曲面復元処理がオンかオフか(曲面復元処理を行うか否か)を示すフラグを含んでもよい。復号装置は、当該フラグがオンの場合に曲面復元処理を行い、当該フラグがオフの場合には曲面復元処理を行わない。
 符号化装置は、当該フラグを、例えば、SPS、GPS又はGDUに格納する。SPS(Sequence Parameter Set)は、複数フレーム共通のメタデータ(パラメータセット)である。GPS(Geometry Parameter Set)は、位置情報の符号化に関わるメタデータ(パラメータセット)である。例えば、GPSは、複数フレームに共通のメタデータである。
 また、上記のフラグに加え、又は、上記のフラグの代わりに、ノード単位で曲面復元処理がオンかオフかを示すフラグが設けられてもよい。また、フラグを設けず、曲面復元処理に関する情報が常時送信されてもよい。また、上記フラグ以外に、上述した様々な方法を切り替えるためのフラグが別途ビットストリームに格納されてもよい。
 また、|Δt|の最大値を示す情報、又はその最大値を求めるためのパラメータがビットストリームに格納されてもよい。それ以外にも前述した各種パラメータがビットストリームに格納されてもよい。
 また、上記説明では、トライソープ方式における点群復元技術として、レイトレーシングにより三角形に点を発生させる際にtの値を調整して元点群のサーフェスの膨らみを再現する技術を説明したが、本手法は別の技術にも適用できる。
 例えば、膨らみの復元ではない通常のレイトレーシングを行う場合に、復元点群の体積を維持するために、頂点位置を調整する方法も考えられる。つまり、復号装置は、レイトレーシングで生成された点の位置を調整するのではなく、頂点位置を調整する。これにより、調整後の頂点位置で生成される三角形の位置が調整され、その結果、レイトレーシングで生成される点の位置も調整される。図20~図23は、この方法を説明するための図である。
 図20は、元点群及びレイトレーシングにより復元された通常の復元点の例を示す図である。図21は、調整後の復元点の例を示す図である。図21に示すように、符号化装置は、図20に示すセントロイド頂点をエッジ頂点の重心から離れる方向に動かしてもよい。これにより、図21に示すように、元点群の再現性を向上できる。
 図22は、元点群及びレイトレーシングにより復元された通常の復元点の別の例を示す図である。図23は、調整後の復元点の例を示す図である。図23に示すように、符号化装置は、共有エッジ頂点をノード間のエッジ頂点の重心から離れる方向へ動かしてもよい。つまり、符号化装置は、共有エッジ頂点をエッジに沿って動かしてもよい。なお、この例では、共有エッジ頂点とは、ノード1とノード2とで共有されるエッジ頂点である。また、ノード間のエッジ頂点の重心とは、ノード1及びノード2に含まれる複数のエッジ頂点のうち共有エッジ頂点以外のエッジ頂点の重心である。これにより、図23に示すように、元点群の再現性を向上できる。
 例えば、符号化装置は、隣接ノード(ノード1及びノード2)で曲面の向きが同じ場合に、共有エッジ頂点を動かし、そうでない場合には共有エッジ頂点を動かさなくてもよい。ここで、曲面の向きが同じとは、例えば、ノード1のセントロイドベクトルとノード2のセントロイドベクトルとの内積値が正の場合である。
 また、図20及び図21に示すケースにおけるセントロイド頂点の移動量は、例えば、セントロイド頂点とエッジ頂点重心との距離である頂点重心距離に比例するように決定されてもよい。つまり、頂点重心距離が大きいほどセントロイド頂点の移動量は大きく設定される。
 また、図22及び図23に示すケースにおける共有エッジ頂点の移動量は、共有エッジ頂点とノード間のエッジ頂点重心の距離である頂点重心距離に比例するように決定されてもよい。つまり、頂点重心距離が大きいほどセントロイド頂点の移動量は大きく設定される。
 例えば、いずれのケースにおいても、頂点の移動距離=頂点重心距離×ノード幅×1/8により頂点の移動距離(移動量)求められてもよい。なお、「8」は調整係数であり、「8」以外の値が用いられてもよい。
 なお、復元点群に頂点そのものを点として追加する仕組みを含む方式に、これらの頂点位置調整手法を導入する場合は、動かした頂点位置が元点群から離れた場所に位置する場合がある。よって、このような場合には、復号装置は、復元点群への頂点追加を行わなくてもよい。
 また、上記の頂点位置調整の技術は、トライソープ方式により点群からメッシュデータを生成する場合にも活用できる。メッシュデータそのものが表現形式であるので、トライソープ方式で元点群から作られた頂点位置を体積の外側方向へ向けて少しずつ移動させてからポリゴンモデルを生成することで、元点群の体積を維持したメッシュデータが得られる。なお、体積の外側方向とは、メッシュで規定する多面体の中心から離れる方向である。
 また、上述した処理の少なくとも一部を、少なくとも1つの三次元点を再構成する符号化装置が行ってもよい。すなわち、符号化装置は、再構成後の点の位置(平面上)を調整したり、曲面上に位置調整された再構成点を生成してもよい。
 [まとめ]
 以上のように、本実施の形態では、復号装置は、曲面が存在するか否かの判定方法として、ある座標区間内に曲面があるか否かを判定する。また、ビットストリームに含まれる制御情報は、上記機能をオンするかオフするかを示すフラグを含む。また、当該制御情報は、以下の様々な方法を切り替えるためのフラグ又は情報(パラメータ)を含んでもよい。
 例えば、制御情報は、点群全体に対して上記機能をオンするかオフするかを示すフラグと、ノード単位で上記機能をオンするかオフするかを示すフラグと、曲面が存在するか否かを判定するための2つの特徴点間の距離の閾値を示す情報とのうち、少なくとも一つを含んでもよい。
 また、復号装置は、曲面があると判定した場合、所定の方法で三角形の復元面を推定し、推定した復元面から離れた位置に点を生成する。例えば、復号装置は、曲面が存在するか否かの判定を、リーフノード内の2つの特徴点の位置関係を用いて判定する。例えば、2つの特徴点は、セントロイド頂点と、エッジ頂点の重心とである。例えば、復号装置は、曲面が存在するか否かを、リーフノード内の2つの特徴点の距離が閾値以上であるか否かに基づき判定する。なお、2つの特徴点は、隣接リーフノード間の共有エッジ頂点と、非共有エッジ頂点の重心とであってもよい。
 また、上記の所定の方法は、リーフノード内の特徴点の位置を基準に復元面を判定する方法であってもよい。
 復元面を推定する方法として、例えば、復号装置は、三角形から見てノード内のエッジ頂点の重心の反対側の面を復元面と判定してもよい。例えば、復号装置は、三角形から見てノード内のセントロイドベクトルの向きの方向にある面を復元面と判定してもよい。例えば、復号装置は、三角形から見てノード間のエッジ頂点の重心の反対側の面を復元面と判定してもよい。また、復号装置は、復元点の三角形表面からのオフセット(Δt)を、三角形とレイトレーシングにより生成される点Qとの位置関係から算出してもよい。
 または、復元面の推定する方法として、例えば、復号装置は、セントロイド頂点の位置をエッジ頂点の重心から離れる方向に動かしてもよい。例えば、復号装置は、エッジ頂点の位置をエッジに沿ってノード間の重心から離れる方向へ動かしてもよい。例えば、復号装置は、頂点の移動距離を、頂点と重心と間の距離を用いて算出してもよい。
 復号装置は、曲面があると判定した場合、所定の方法で三角形の復元面を推定し、復元面から離れた位置に点を生成してもよい。
 また、点群からメッシュデータを生成する方法として、装置(例えば復号装置)は、所定の方法で部分点群から頂点を生成し、頂点同士を結んで一連の多角形を生成する。この場合、装置は、ある座標区間内に曲面があるか否かを判定する。
 装置は、座標区間内に曲面がある場合、セントロイド頂点の位置をエッジ頂点の重心から離れる方向に動かしてもよい。装置は、座標区間内に曲面がある場合、エッジ頂点の位置をエッジに沿ってノード間の重心から離れる方向へ動かしてもよい。例えば、装置は、頂点の移動距離を、頂点と重心との間の距離から算出してもよい。
 実施の形態に係る復号装置(三次元データ復号装置)は、図24に示す処理を行う。復号装置は、複数の三次元点に関する符号化情報を受信し(S201)、符号化情報に基づき、複数の三次元点を近似する曲面を指定するか否かを決定する(S202)。これによれば、復号装置は、例えば、複数の三次元点を近似する曲面を指定することにより、元点群の再現性を向上できる場合に、当該曲面を指定できる。よって、復号装置は、元点群の再現性を向上できる。
 例えば、復号装置は、曲面を指定するかの決定(S202)では、複数の三次元点を近似する曲面を指定するか、複数の三次元点を近似する平面を指定するかを決定する。これによれば、復号装置は、例えば、複数の三次元点を近似する曲面を指定することにより、元点群の再現性を向上できない場合、又は、複数の三次元点を近似する平面を指定することにより、元点群の再現性を向上できる場合には、平面を指定できる。よって、復号装置は、元点群に応じて曲面又は平面を指定できるので、元点群の再現性を向上できる。
 例えば、曲面又は平面は、複数の三次元点の8分木構造の第1ノード内に提供される。これによれば、復号装置は、例えば、ノード毎に曲面又は平面を指定できるので、ノードの特性に応じて処理を適切に選択できる。
 例えば、平面は、トライソープ方式又はメッシュ方式に従って指定される。これによれば、従来のトライソープ方式又はメッシュ方式のように平面で元点群を近似するしかないという制限にとらわれず、曲面で元点群を近似でき、元点群の再現性を向上できる場合がある。
 例えば、曲面は、曲面が複数のエッジ頂点の重心から離れるように平面から膨らんでおり、複数のエッジ頂点はトライソープ方式に従って平面を指定する。例えば、曲面は、符号化情報に含まれる、トライソープ方式に従って平面を指定する情報に従って指定される。
 例えば、平面が大きいほど、曲面の膨らみ量が大きい。これによれば、復号装置は、元点群の形状の再現性を向上できる曲面を指定できる。
 例えば、曲面の中心部における曲面の膨らみ量は、曲面の周辺部における膨らみ量よりも大きい。これによれば、復号装置は、元点群の形状の再現性を向上できる曲面を指定できる。
 例えば、曲面を指定するか否かは、複数の三次元点の8分木構造に含まれる第1ノード内の少なくとも2つの特徴点に基づいて決定され、少なくとも2つの特徴点は、符号化情報から導出される。これによれば、復号装置は、符号化情報から導出される情報を用いて、曲面を指定するか否かを判定できる。
 例えば、少なくとも2つの特徴点は、複数のエッジ頂点の重心と、セントロイド頂点とから選択され、複数のエッジ頂点及びセントロイド頂点は、トライソープ方式に従って導出される。
 復号装置は、ビットストリームに含まれる符号化情報に基づいて平面を指定し、平面から離れた少なくとも1つの三次元点を生成する。これによれば、復号装置は、例えば、平面上のみに点を生成する場合に比べて、元点群の再現性を向上できる。例えば、平面では再現性が低い曲面形状の再現性を向上できる。
 例えば、平面は、トライソープ方式に従って指定される。例えば、平面及び少なくとも1つの三次元点は、複数の三次元点の8分木構造の第1ノード内に存在する。これによれば、復号装置は、例えば、ノードの特性に応じて適切な処理を行うことができる。
 例えば、平面は、少なくとも1つの三次元点と複数のエッジ頂点の重心との間にあり、複数のエッジ頂点はトライソープ方式に従って平面を指定する。これによれば、少なくとも1つの三次元点により、元点群の膨らみ等の再現性を向上できる。例えば、平面はメッシュ方式に従って指定される。
 復号装置は、ビットストリームに含まれる符号化情報に基づいて指定される複数の頂点に含まれる第1頂点を、複数の頂点に含まれる複数の第2頂点の重心から離れるように移動させ、移動後の第1頂点と、複数の第2頂点とを用いて、平面又は曲面を指定し、平面又は曲面上に複数の三次元点を生成する。これによれば、復号装置は、頂点を移動させることで、例えば、元点群の膨らみ等の再現性を向上できる。
 図25は、復号装置10のブロックである。例えば、復号装置10は、プロセッサ11と、メモリ12とを備え、プロセッサ11は、メモリ12を用いて、上記処理を行う。
 また、実施の形態に係る符号化装置は、上記の復号装置により行われる処理の少なくとも一部を行ってもよい。例えば、実施の形態に係る符号化装置(三次元データ符号化装置)は、図26に示す処理を行う。符号化装置は、複数の三次元点に関する符号化情報を生成し(S211)、符号化情報に基づき、複数の三次元点を近似する曲面を指定するかを決定する(S212)。例えば、符号化情報は、複数の三次元点を近似する曲面の指定に関する情報を含んでもよい。これによれば、復号装置は、例えば、複数の三次元点を近似する曲面の指定に関する情報を用いて、複数の三次元点を近似する曲面を指定することにより、当該曲面を指定できる。また、符号化装置で情報を生成することにより、復号装置における処理量を低減できる。
 図27は、符号化装置20のブロックである。例えば、符号化装置20は、プロセッサ21と、メモリ22とを備え、プロセッサ21は、メモリ22を用いて、上記処理を行う。
 以上、本開示の実施の形態及び変形例に係る符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)等について説明したが、本開示は、この実施の形態に限定されるものではない。
 また、上記実施の形態に係る符号化装置及び復号装置等に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
 また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
 また、本開示は、符号化装置(三次元データ符号化装置)及び復号装置(三次元データ復号装置)等により実行される符号化方法(三次元データ符号化方法)又は復号方法(三次元データ復号方法)等として実現されてもよい。
 また、本開示は、上記符号化方法又は復号方法をコンピュータ、プロセッサ又は装置に実行させるプログラムとして実現されてもよい。また、本開示は、上記符号化方法により生成されたビットストリームとして実現されてもよい。また、本開示は、当該プログラム又は当該ビットストリームが記録された記録媒体として実現されてもよい。例えば、本開示は、当該プログラム又は当該ビットストリームが記録されている非一時的なコンピュータ読み取り可能な記録媒体として実現されてもよい。
 また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
 また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
 以上、一つまたは複数の態様に係る符号化装置及び復号装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
 本開示は、符号化装置及び復号装置に適用できる。
 10 復号装置
 11、21 プロセッサ
 12、22 メモリ
 20 符号化装置
 101 対象空間
 102、133 点群
 103、111、132 点
 104 リーフノード
 112 エッジ頂点
 113、122 範囲
 121 近似平面
 123 頂点情報
 131 三角形

Claims (19)

  1.  複数の三次元点に関する符号化情報を受信し、
     前記符号化情報に基づき、前記複数の三次元点を近似する曲面を指定するか否かを決定する
     復号方法。
  2.  前記決定では、前記複数の三次元点を近似する前記曲面を指定するか、前記複数の三次元点を近似する平面を指定するかを決定する
     請求項1記載の復号方法。
  3.  前記曲面又は前記平面は、前記複数の三次元点の8分木構造の第1ノード内に提供される
     請求項2記載の復号方法。
  4.  前記平面は、トライソープ方式又はメッシュ方式に従って指定される
     請求項3記載の復号方法。
  5.  前記曲面は、前記曲面が複数のエッジ頂点の重心から離れるように前記平面から膨らんでおり、前記複数のエッジ頂点は前記トライソープ方式に従って平面を指定する
     請求項4記載の復号方法。
  6.  前記曲面は、前記符号化情報に含まれる、前記トライソープ方式に従って前記平面を指定する情報に従って指定される
     請求項5記載の復号方法。
  7.  前記平面が大きいほど、前記曲面の膨らみ量が大きい
     請求項5記載の復号方法。
  8.  前記曲面の中心部における前記曲面の膨らみ量は、前記曲面の周辺部における前記膨らみ量よりも大きい
     請求項5記載の復号方法。
  9.  前記曲面を指定するか否かは、前記複数の三次元点の8分木構造に含まれる第1ノード内の少なくとも2つの特徴点に基づいて決定され、
     前記少なくとも2つの特徴点は、前記符号化情報から導出される
     請求項1記載の復号方法。
  10.  前記少なくとも2つの特徴点は、複数のエッジ頂点の重心と、セントロイド頂点とから選択され、
     前記複数のエッジ頂点及び前記セントロイド頂点は、トライソープ方式に従って導出される
     請求項9記載の復号方法。
  11.  ビットストリームに含まれる符号化情報に基づいて平面を指定し、
     前記平面から離れた少なくとも1つの三次元点を生成する
     復号方法。
  12.  前記平面は、トライソープ方式に従って指定される
     請求項11記載の復号方法。
  13.  前記平面及び前記少なくとも1つの三次元点は、複数の三次元点の8分木構造の第1ノード内に存在する
     請求項12記載の復号方法。
  14.  前記平面は、前記少なくとも1つの三次元点と複数のエッジ頂点の重心との間にあり、前記複数のエッジ頂点はトライソープ方式に従って前記平面を指定する
     請求項13記載の復号方法。
  15.  前記平面はメッシュ方式に従って指定される
     請求項11記載の復号方法。
  16.  ビットストリームに含まれる符号化情報に基づいて指定される複数の頂点に含まれる第1頂点を、前記複数の頂点に含まれる複数の第2頂点の重心から離れるように移動させ、
     移動後の前記第1頂点と、前記複数の第2頂点とを用いて、平面又は曲面を指定し、
     前記平面又は前記曲面上に複数の三次元点を生成する
     復号方法。
  17.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     複数の三次元点に関する符号化情報を受信し、
     前記符号化情報に基づき、前記複数の三次元点を近似する曲面を指定するか否かを決定する
     復号装置。
  18.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     ビットストリームに含まれる符号化情報に基づいて平面を指定し、
     前記平面から離れた少なくとも1つの三次元点を生成する
     復号装置。
  19.  プロセッサと、
     メモリとを備え、
     前記プロセッサは、前記メモリを用いて、
     ビットストリームに含まれる符号化情報に基づいて指定される複数の頂点に含まれる第1頂点を、前記複数の頂点に含まれる複数の第2頂点の重心から離れるように移動させ、
     移動後の前記第1頂点と、前記複数の第2頂点とを用いて、平面又は曲面を指定し、
     前記平面又は前記曲面上に複数の三次元点を生成する
     復号装置。
PCT/JP2023/032696 2022-09-20 2023-09-07 復号方法及び復号装置 WO2024062938A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202263408273P 2022-09-20 2022-09-20
US63/408,273 2022-09-20

Publications (1)

Publication Number Publication Date
WO2024062938A1 true WO2024062938A1 (ja) 2024-03-28

Family

ID=90454277

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/032696 WO2024062938A1 (ja) 2022-09-20 2023-09-07 復号方法及び復号装置

Country Status (1)

Country Link
WO (1) WO2024062938A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019521417A (ja) * 2016-08-19 2019-07-25 三菱電機株式会社 シーンを表す点群を符号化する方法、符号化器システム、及びプログラムを記憶した非一時的コンピューター可読記録媒体
US20200302652A1 (en) * 2017-07-13 2020-09-24 Interdigital Vc Holdings, Inc. A method and apparatus for encoding/decoding a colored point cloud representing the geometry and colors of a 3d object
US20210209811A1 (en) * 2020-01-08 2021-07-08 Qualcomm Incorporated Quantization for geometry-based point cloud compression
JP2022102806A (ja) * 2020-12-25 2022-07-07 Kddi株式会社 点群復号装置、点群復号方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019521417A (ja) * 2016-08-19 2019-07-25 三菱電機株式会社 シーンを表す点群を符号化する方法、符号化器システム、及びプログラムを記憶した非一時的コンピューター可読記録媒体
US20200302652A1 (en) * 2017-07-13 2020-09-24 Interdigital Vc Holdings, Inc. A method and apparatus for encoding/decoding a colored point cloud representing the geometry and colors of a 3d object
US20210209811A1 (en) * 2020-01-08 2021-07-08 Qualcomm Incorporated Quantization for geometry-based point cloud compression
JP2022102806A (ja) * 2020-12-25 2022-07-07 Kddi株式会社 点群復号装置、点群復号方法及びプログラム

Similar Documents

Publication Publication Date Title
CN113615181B (zh) 用于点云编解码的方法、装置
Schwarz et al. Emerging MPEG standards for point cloud compression
KR102634079B1 (ko) 포인트 클라우드 데이터 처리 장치 및 방법
JP2023510179A (ja) ポイントクラウドデータ送信装置、送信方法、処理装置および処理方法
US11263356B2 (en) Scalable and precise fitting of NURBS surfaces to large-size mesh representations
WO2018162406A1 (en) Quality metric for point clouds
JP7307260B2 (ja) ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法。
JP2024053014A (ja) ポイントクラウドデータ処理方法及び装置
JP7448660B2 (ja) ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
US20230290006A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
TW202037169A (zh) 基於視訊的點雲壓縮的區塊分段的方法及裝置
WO2023093824A1 (zh) 点云质量评价方法、设备和存储介质
JP5178538B2 (ja) 深度マップを画像から決定する方法、深度マップを決定する装置
JP2009530701A5 (ja)
WO2024062938A1 (ja) 復号方法及び復号装置
CN105612748A (zh) 活动图像编码方法、活动图像解码方法、活动图像编码装置、活动图像解码装置、活动图像编码程序、以及活动图像解码程序
JP2022538857A (ja) ポイントクラウドデータ処理装置及び方法
KR20240032912A (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
JP2024515174A (ja) ポイントクラウドデータ送信方法、ポイントクラウドデータ送信装置、ポイントクラウドデータ受信方法及びポイントクラウドデータ受信装置
JP2023541271A (ja) 高密度メッシュ圧縮
WO2024042909A1 (ja) 復号方法、符号化方法、復号装置及び符号化装置
JP2023509730A (ja) ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
WO2024053454A1 (ja) 復号方法、符号化方法、復号装置及び符号化装置
WO2023238867A1 (ja) 符号化装置、復号装置、符号化方法及び復号方法
WO2024111355A1 (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: 23868061

Country of ref document: EP

Kind code of ref document: A1