Decode method, encode method, decode device and encode device
Patent Information
- Application Number
- BR112025020381
- Authority / Receiving Office
- BR · BR
- Patent Type
- Applications
- Publication Date
- 2026-08-11
Smart Images

Figure 00000000_0000_ABST
Description
1 / 56 DECODING METHOD, ENCODING METHOD, DECODING DEVICE AND ENCODING DEVICE FIELD OF TECHNIQUE
[001] The present invention relates to a decoding method, an encoding method, a decoding device and an encoding device. BACKGROUND OF THE INVENTION
[002] Devices or services using three-dimensional data are expected to find widespread use in a wide range of fields, such as computer vision enabling autonomous operation of cars or robots, map information, monitoring, infrastructure inspection and video distribution. Three-dimensional data are obtained through various means including a distance sensor such as a rangefinder, as well as a stereo camera and a combination of a plurality of monocular cameras.
[003] Methods of representing three-dimensional data include a method known as a point cloud scheme that represents the shape of a three-dimensional structure through a point cloud in a three-dimensional space. In the point cloud scheme, the positions and colors of a point cloud are stored. While point cloud is expected to be a conventional method of data representation, a massive amount of data from a point cloud necessitates compression of the amount of three-dimensional data through encoding for accumulation and transmission, as in the case of a two-dimensional moving image (examples include Moving Picture Experts Group-4 Advanced Video Coding (MPEG-4 AVC) and High Efficiency Video Coding (HEVC) standardized by MPEG).
[004] Meanwhile, point cloud compression is partial Petition 870250086229, dated 09 / 24 / 2025, page 8 / 111 2 / 56 mind supported by, for example, an open-source library (Point Cloud Library) for point cloud-related processing.
[005] Furthermore, a technique for searching and displaying an installation located in the vicinity of the vehicle using three-dimensional map data is known (see, for example, Patent Literature (PTL) 1). LIST OF QUOTES PATENT LITERATURE
[006] [PTL 1] International Publication WO 2014 / 020663 [Summary of the invention] [Technical problem]
[007] In this encoding and decoding of three-dimensional data, there is a demand for reducing the volume of data in a generated bit stream.
[008] The present disclosure provides a decoding method, an encoding method, a decoding device or an encoding device that makes it possible to reduce the data volume of a bitstream. [Solution to the problem]
[009] A decoding method according to an aspect of the present disclosure, comprising: receiving a bit stream including geometry information and first control information, the geometry information indicating nodes that constitute an octare structure, the first control information indicating whether a first face of a first node included in the nodes includes a first face vertex provided in the first face, except for the first edges of the first face; and generating or not the first face vertex in the first face according to the first control information, wherein each of the nodes is a unit for containing three-dimensional points, the Petition 870250086229, dated 09 / 24 / 2025, page 9 / 111 3 / 56 The first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme. The first face vertex, the first centroid vertex, and the first edge vertices define a triangle in which three-dimensional points in the first node are arranged, and the first control information is provided for a face of the first node that satisfies a predetermined condition.
[0010] A coding method according to an aspect of the present disclosure, comprising: generating geometry information indicating nodes that constitute an octree structure; generating first control information indicating whether a first face of a first node included in the nodes includes a first face vertex provided in the first face, except for the first edges of the first face; and generating a bitstream including the geometry information and the first control information, wherein each node is a unit for containing three-dimensional points, the first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme, the first face vertex, the first centroid vertex and the first edge vertices define a triangle in which three-dimensional points in the first node are arranged, and the first control information is provided for a face of the first node that satisfies a predetermined condition. [Advantageous effects of the invention]
[0011] The present disclosure may provide a decoding method, an encoding method, a decoding device or an encoding device that makes it possible to reduce the data volume of a bitstream. [Brief description of the drawings]
[0012] [Figure 1]
[0013] Figure 1 is a diagram that illustrates an example of an original point cloud according to Modality 1. Petition 870250086229, dated 09 / 24 / 2025, page 10 / 111 4 / 56
[0014] [Figure 2]
[0015] Figure 2 is a diagram illustrating an example of an octare trimmed according to Modality 1.
[0016] [Figure 3]
[0017] Figure 3 is a diagram that illustrates an example in which a leaf node according to Modality 1 is displayed two-dimensionally.
[0018] [Figure 4]
[0019] Figure 4 is a diagram to describe a method for generating a centroid vertex according to Modality 1.
[0020] [Figure 5]
[0021] Figure 5 is a diagram to describe the method for generating a centroid vertex according to Modality 1.
[0022] [Figure 6]
[0023] Figure 6 is a diagram that illustrates an example of vertex information according to Mode 1.
[0024] [Figure 7]
[0025] Figure 7 is a diagram illustrating an example of a TriSoup surface according to Modality 1.
[0026] [Figure 8]
[0027] Figure 8 is a diagram to describe the point cloud reconstruction processing according to Mode 1.
[0028] [Figure 9]
[0029] Figure 9 is a diagram that illustrates an example of a point cloud according to Modality 1.
[0030] [Figure 10]
[0031] Figure 10 is a diagram that illustrates an example of centroid vertex generation according to Mode 1.
[0032] [Figure 11]
[0033] Figure 11 is a diagram that illustrates an example of ge Petition 870250086229, dated 09 / 24 / 2025, page 11 / 111 5 / 56 Triangle feed (TriSoup surface) according to Modality 1.
[0034] [Figure 12]
[0035] Figure 12 is a diagram that illustrates an example of face vertex generation according to Mode 1.
[0036] [Figure 13]
[0037] Figure 13 is a diagram that illustrates an example of surfaces on which connectivity evaluation and centroid vertex reconstruction are performed according to Modality 1.
[0038] [Figure 14]
[0039] Figure 14 is a coding processing flowchart according to Mode 1.
[0040] [Figure 15]
[0041] Figure 15 is a flowchart of the decoding process according to Mode 1.
[0042] [Figure 16]
[0043] Figure 16 is a flowchart of face vertex information propagation processing according to Mode 1.
[0044] [Figure 17]
[0045] Figure 17 is a flowchart of face vertex information decoding processing according to Mode 1.
[0046] [Figure 18]
[0047] Figure 18 is a diagram that illustrates an example of a candidate face vertex according to Modality 1.
[0048] [Figure 19]
[0049] Figure 19 is a diagram that illustrates an example arrangement of a group of vertices according to Mode 1.
[0050] [Figure 20]
[0051] Figure 20 is a diagram that illustrates the NF vector according to Petition 870250086229, dated 09 / 24 / 2025, page 12 / 111 6 / 56 with Modality 1.
[0052] [Figure 21]
[0053] Figure 21 is a diagram that illustrates an example arrangement of a group of vertices according to Mode 1.
[0054] [Figure 22]
[0055] Figure 22 is a diagram that illustrates an example arrangement of a group of vertices according to Mode 1.
[0056] [Figure 23]
[0057] Figure 23 is a diagram that illustrates an example arrangement of a group of vertices according to Mode 1.
[0058] [Figure 24]
[0059] Figure 24 is a diagram that illustrates an example of edge vertices and a centroid vertex according to Modality 1.
[0060] [Figure 25]
[0061] Figure 25 is a diagram that illustrates an example of triangles generated correctly according to Mode 1.
[0062] [Figure 26]
[0063] Figure 26 is a diagram that illustrates an example of triangles generated incorrectly according to Mode 1.
[0064] [Figure 27]
[0065] Figure 27 is a diagram that illustrates an example of edge vertices, a centroid vertex, and face vertices according to Modality 1.
[0066] [Figure 28]
[0067] Figure 28 is a diagram that illustrates an example of triangle generation in a case where simple ordering according to Modality 1 is applied.
[0068] [Figure 29]
[0069] Figure 29 is a diagram to describe order processing according to Mode 1. Petition 870250086229, dated 09 / 24 / 2025, p. 13 / 111 7 / 56
[0070] [Figure 30]
[0071] Figure 30 is a diagram to describe order processing according to Mode 1.
[0072] [Figure 31]
[0073] Figure 31 is a diagram to describe order processing according to Mode 1.
[0074] [Figure 32]
[0075] Figure 32 is a diagram to describe order processing according to Mode 1.
[0076] [Figure 33]
[0077] Figure 33 is a diagram to describe another method of order processing according to Mode 1.
[0078] [Figure 34]
[0079] Figure 34 is a diagram to describe the other order processing method according to Mode 1.
[0080] [Figure 35]
[0081] Figure 35 is a diagram that illustrates an example of a GDU syntax according to Mode 1.
[0082] [Figure 36]
[0083] Figure 36 is a diagram that illustrates a variation of a GDU syntax according to Modality 1.
[0084] [Figure 37]
[0085] Figure 37 is a diagram that illustrates a variation of a GDU syntax according to Modality 1.
[0086] [Figure 38]
[0087] Figure 38 is a diagram that illustrates an example of a bitstream configuration according to Mode 2.
[0088] [Figure 39]
[0089] Figure 39 is a flowchart of the face vertex information transmission process according to Mode 2. Petition 870250086229, dated 09 / 24 / 2025, page 14 / 111 8 / 56
[0090] [Figure 40]
[0091] Figure 40 is a flowchart of the process of decoding face vertex information according to Mode 2.
[0092] [Figure 41]
[0093] Figure 41 is a diagram that illustrates an example of the syntax of a GDU header and a GDU according to Mode 2.
[0094] [Figure 42]
[0095] Figure 42 is a diagram that illustrates a variation of the GDU header syntax and the GDU according to Mode 2.
[0096] [Figure 43]
[0097] Figure 43 is a diagram that illustrates a variation of the GDU header syntax and the GDU according to Mode 2.
[0098] [Figure 44]
[0099] Figure 44 is a flowchart of a decoding process according to a modality.
[00100] [Figure 45]
[00101] Figure 45 is a block diagram of a decoding device according to a modality.
[00102] [Figure 46]
[00103] Figure 46 is a flowchart of a coding process according to a modality.
[00104] [Figure 47]
[00105] Figure 47 is a block diagram of a coding device according to a modality. [Description of the Modalities]
[00106] A decoding method, according to an aspect of the present disclosure, includes: receiving a bit stream including geometry information and initial control information, the geometry information indicating nodes that constitute an octare structure, the initial control information indicating whether a pri Petition 870250086229, dated 09 / 24 / 2025, page 15 / 111 9 / 56 The first face of a first node included in the nodes includes a first face vertex provided on the first face, except for the first edges of the first face; and generate or not the first face vertex on the first face, according to the first control information. Each of the nodes is a unit for containing three-dimensional points. The first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme. The first face vertex, the first centroid vertex, and the first edge vertices define a triangle in which the three-dimensional points in the first node are arranged. The first control information is provided for a face of the first node that satisfies a predetermined condition.
[00107] Thus, the first control information is provided for a face that satisfies a predetermined condition, reducing the volume of data in the bitstream compared to providing the first control information for all faces. This reduces the processing load on a decoding device.
[00108] For example, the predetermined condition may include a first condition, regardless of whether the face includes two or three edge vertices. Thus, if it is likely that no face vertices will be generated, the generation of the first control information is omitted. This reduces the volume of data in the bitstream.
[00109] For example, the predetermined condition may include a second condition, if a first vector, a second vector, and a third vector point in the same direction. The first vector may be a vector from a first center of the first edge vertices to the first centroid vertex. The second vector may be a vector from a second center of the second edge vertices of a second node to a second centroid vertex of the second node, with the second node adjacent to the first node and its face in contact with the second node. The third vector may be a vector from a first row to a vertex... Petition 870250086229, dated 09 / 24 / 2025, page 16 / 111 10 / 56 provisional face vertex, with the first line connecting two edge vertices of the face, the provisional face vertex being positioned in such a way that a second line connecting the first centroid vertex and the second centroid vertex intersects the face. Thus, if it is likely that no face vertex will be generated, the generation of the first control information is omitted. This reduces the volume of data in the bitstream.
[00110] For example, when an inner product of the first vector and the third vector is positive and an inner product of the second vector and the third vector is positive, the first vector, the second vector, and the third vector can be determined as pointing in the same direction. Thus, the decoding device can appropriately determine whether the second condition above is satisfied.
[00111] For example, the predetermined condition may include a third condition, if a node adjacent to the first node includes a centroid vertex. Thus, if it is likely that no face vertex will be generated, the generation of the first control information is omitted. This reduces the volume of data in the bitstream.
[00112] For example, whether or not to include the first face vertex indicated in the initial control information can be determined according to the total number or density of points included in a region located at a predetermined distance from an intersection point, which is at least a predetermined threshold value, the intersection point being an intersection point between (i) a line segment connecting the first centroid vertex and a second centroid vertex of a second node adjacent to the first node and (ii) a face shared by the first node and the second node. Thus, it is appropriately specified whether the face vertex should be generated.
[00113] For example, the bit stream may also include a second control information that indicates whether the first information of Petition 870250086229, dated 09 / 24 / 2025, page 17 / 111 11 / 56 control for faces of the first node are included in the bit stream. Thus, the decoding device can consult the second control information to switch between performing and not performing face vertex generation processing using the first control information.
[00114] For example, the decoding method may also include: generating or not generating a face vertex on a face to be processed, according to the first control information corresponding to the face to be processed among the faces, when the second control information indicates that the first control information for the faces of the first node is included in the bit stream; and generating a face vertex on each of the faces when the second control information does not indicate that the first control information for the faces of the first node is included in the bit stream.
[00115] Thus, when the face vertex is included in each of the faces, the bit stream does not need to include the first control information. Thus, the data volume of the bit stream can be reduced.
[00116] For example, when, among the faces of the first node, all faces that satisfy the predetermined condition satisfy another predetermined condition, the second control information does not need to indicate that the first control information for the faces of the first node is included in the bitstream. Consequently, for example, when the face vertex is generated on each of the faces that satisfy the predetermined condition, the bitstream does not need to include the first control information. Thus, the data volume of the bitstream can be reduced.
[00117] A coding method, according to an aspect of the present disclosure, includes: generating geometric information indicating nodes that constitute an octree structure; generating first control information indicating whether a first face of a first node Petition 870250086229, dated 09 / 24 / 2025, page 18 / 111 The 12 / 56 included nodes include a first face vertex provided on the first face, except for the first edges of the first face; and generate a bitstream including geometric information and initial control information. Each node is a unit for containing three-dimensional points. The first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme. The first face vertex, the first centroid vertex, and the first edge vertices define a triangle in which the three-dimensional points in the first node are arranged. Initial control information is provided for a face of the first node that satisfies a predetermined condition.
[00118] Thus, providing the first control information for a face that satisfies a predetermined condition reduces the volume of data in the bit stream, compared to providing the first control information for all faces.
[00119] A decoding device, according to one aspect of the present disclosure, is a decoding device that decodes three-dimensional points and includes: a processor and memory. Using the memory, the processor: receives a bit stream including geometry information and first control information, the geometry information indicating nodes that constitute an octree structure, the first control information indicating whether a first face of a first node included in the nodes includes a first face vertex provided on the first face, except for the first edges of the first face; and generates or does not generate the first face vertex on the first face, according to the first control information. Each of the nodes is a unit for containing three-dimensional points. The first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme.The first face vertex, the first centroid vertex, and the first edge vertices of. Petition 870250086229, dated 09 / 24 / 2025, page 19 / 111 13 / 56 define a triangle in which the three-dimensional points at the first node are arranged. The first control information is provided for a face of the first node that satisfies a predetermined condition.
[00120] An encoding device, according to one aspect of the present disclosure, is an encoding device that encodes three-dimensional points and includes a processor and memory. Using the memory, the processor: generates geometric information indicating the nodes that constitute an octare structure; generates initial control information indicating whether a first face of a first node included in the nodes includes a first face vertex provided in the first face, except for the first edges of the first face; and generates a bitstream including the geometric information and the initial control information. Each node is a unit for containing three-dimensional points. The first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme. The first face vertex, the first centroid vertex, and the first edge vertices define a triangle in which the three-dimensional points in the first node are arranged.The first control information is provided for a face of the first node that satisfies a predetermined condition.
[00121] It should be noted that these general or specific aspects may be implemented as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium, such as a CD-ROM, or may be implemented as any combination of a system, a method, an integrated circuit, a computer program, and a recording medium.
[00122] From here on, the modalities will be described specifically with reference to the drawings. It should be noted that each Petition 870250086229, dated 09 / 24 / 2025, page 20 / 111 14 / 56 One of the embodiments that follows indicates a specific example of the present invention. The numerical values, formats, materials, constituent elements, the arrangement and connection of the constituent elements, steps, the order of processing the steps, etc., indicated in the embodiments that follow are merely examples and, therefore, are not intended to limit the present invention. Among the constituent elements described in the embodiments that follow, constituent elements not mentioned in any of the independent claims will be described as optional constituent elements. [Modality 1]
[00123] Hereafter, an encoding device (three-dimensional data encoding device) and a decoding device (three-dimensional data decoding device) according to the present embodiment will be described. The encoding device encodes three-dimensional data to then generate a bit stream. The decoding device decodes the bit stream to thereby generate three-dimensional data.
[00124] Three-dimensional data are, for example, three-dimensional point cloud data (also called point cloud data). A point cloud, which is a set of three-dimensional points, represents a three-dimensional shape of an object. Point cloud data includes position information and attribute information on the three-dimensional points. Position information indicates the three-dimensional position of each three-dimensional point. It should be noted that position information can also be called geometry information. For example, position information is represented using an orthogonal coordinate system or a polar coordinate system.
[00125] Attribute information indicates color, reflectance, infrared, normal vector, or ho information. Petition 870250086229, dated 09 / 24 / 2025, page 21 / 111 15 / 56 of the day, for example. A three-dimensional point can have a single attribute information item or have a plurality of attribute information types.
[00126] It should be noted that although the encoding and decoding of position information are primarily described below, the encoding device can also perform encoding and decoding of attribute information. TriSoup Scheme
[00127] The encoding device according to the present embodiment encodes position information using a Triangle-Soup (TriSoup) scheme.
[00128] The TriSoup scheme is an irreversible compression scheme for encoding position information in point cloud data. In the TriSoup scheme, an original point cloud being processed is replaced by a set of triangles, and the point cloud is approximated in the planes of the triangles. Specifically, the original point cloud is replaced by vertex information at vertices (hereinafter also referred to as vertices) within each node, and the vertices are connected to each other to form a group of triangles. Furthermore, the vertex information for generating the triangles is stored in a bitstream, which is sent to the decoding device.
[00129] Now, encoding processing using the TriSoup scheme will be described. Figure 1 is a diagram illustrating an example of an original point cloud. As shown in Figure 1, the point cloud 102 of an object is in target space 101 and includes points 103.
[00130] First, the encoding device splits the original point cloud into an octree to a predetermined depth. In the octree split, a target space is divided into eight nodes (subspaces). Petition 870250086229, dated 09 / 24 / 2025, page 22 / 111 16 / 56 nodes), and 8-bit information (an occupation code) indicating whether each node includes a point cloud is generated. A node that includes a point cloud is further divided into eight nodes, and 8-bit information indicating whether each of these eight nodes includes a point cloud is generated. This processing is repeated until a predetermined layer is reached.
[00131] Here, typical octree coding splits nodes until the number of point clouds at each node reaches, for example, one or a threshold. In contrast, the TriSoup scheme performs octree splitting down to a layer along the path and not down to layers lower than that layer. Such an octree down to an intermediate layer is called a trimmed octree.
[00132] Figure 2 is a diagram illustrating an example of a trimmed octree. As shown in Figure 2, the point cloud 102 is divided into leaf nodes 104 (lowest layer nodes) of a trimmed octree.
[00133] The encoding device then performs the following processing for each leaf node 104 of the trimmed octree. It should be noted that a leaf node may henceforth also be referred to simply as a node. The encoding device generates vertices on the node's edges as representative points of the point cloud near the edges. These vertices are called edge vertices. For example, an edge vertex is generated on each of a plurality of edges (e.g., four parallel edges).
[00134] Figure 3 is a diagram illustrating an example of a two-dimensional display of the leaf node 104, for example, the xy plane seen along the z direction shown in Figure 1. As shown in Figure 3, edge vertices 112 are generated on edges based on points near the edges, between points 111 within the leaf node 104.
[00135] It should be noted that the dotted lines in Figure 3 Petition 870250086229, dated 09 / 24 / 2025, page 23 / 111 17 / 56 along the perimeter of leaf node 104 represent the edges. Also in this example, each vertex of edge 112 is generated as a weighted average of the positions of points within a distance of 1 from the corresponding edge (points within each strip 113 in Figure 3). It should be noted that the distance unit can be, as an example and not a limitation, the resolution of the point cloud. Although the distance (the limit) is 1 in this example, the distance may be a value other than 1 or may be variable.
[00136] The encoding device then generates a vertex within the node as well, based on a point cloud located in the direction normal to the plane that includes edge vertices. This vertex is called the centroid vertex.
[00137] Figures 4 and 5 are diagrams describing a method for generating the centroid vertex. First, the encoding device selects, for example, four points as representative points of a group of edge vertices. In the example shown in Figure 4, edge vertices v1 to v4 are selected. The encoding device then calculates the approximate plane 121 passing through the four points. The encoding device then calculates the normal to the approximate plane 121 and the average coordinates M of the four points. The encoding device then generates the centroid vertex C in weighted average coordinates of one or more points near a half line extending along the normal from the average coordinates M (for example, points within the range 122 shown in Figure 5).
[00138] The encoding device then entropy-encodes the vertex information, which is information about the edge vertices and the centroid vertex, and stores the encoded vertex information in a geometry data unit (hereafter referred to as GDU) included in the bitstream. It should be noted that, in addition to the information Petition 870250086229, dated 09 / 24 / 2025, page 24 / 111 18 / 56 of the vertex, the GDU includes information indicating the trimmed octree.
[00139] Figure 6 is a diagram illustrating an example of vertex information. The processing above transforms point cloud 102 into vertex information 123, as shown in Figure 6.
[00140] Now, decoding processing for the bitstream generated as above will be described. First, the decoding device decodes the GDU of the bitstream to obtain the vertex information. The decoding device then connects the vertices to generate a TriSoup surface, which is a group of triangles.
[00141] Figure 7 is a diagram illustrating an example of the TriSoup surface. In the example shown in Figure 7, four edge vertices v1 to v4 and the centroid vertex C are generated based on the vertex information. Furthermore, triangles 131 (a TriSoup surface) are generated, each having the centroid vertex C and two edge vertices as its vertices. For example, a pair of two edge vertices in a pair of two adjacent edges is selected to form triangle 131, having the selected pair of edge vertices and the centroid vertex as its vertices.
[00142] Figure 8 is a diagram describing the point cloud reconstruction processing. The above processing is performed for each leaf node to generate a three-dimensional model representing the object with 131 triangles, as shown in Figure 8.
[00143] The decoding device then generates points 132 at regular intervals on the surface of triangles 131 to reconstruct the position information in the point cloud 133. [Example of representing the crest line of the point cloud surface]
[00144] According to the TriSoup scheme, in some cases, the shape of the ridge line between adjacent nodes cannot be reconstructed. In contrast, the encoding device generates the vertex. Petition 870250086229, dated 09 / 24 / 2025, page 25 / 111 19 / 56 face tex on the surface in contact with the neighboring node and reconstructs the point cloud also on the surface of the triangle generated based on the centroid vertex, the face vertices and the edge vertices.
[00145] For example, in a case where a curved part of the point cloud distribution (point cloud surface) is distributed within the leaf node, the surface model made by connecting the vertices cannot reproduce the shape of the original point cloud in some cases because the corner of the point cloud surface and the edge do not intersect and no vertex is formed at the corner position.
[00146] Figure 9 is a diagram illustrating an example of a point cloud in a case where a point cloud is distributed across nodes 1 and 2, and a ridge line is formed. As shown in Figure 9, based on the distribution of the point cloud near the edges, edge vertices 112 are generated.
[00147] Figure 10 is a diagram illustrating an example of centroid vertex generation in this case. As shown in Figure 10, each centroid vertex 151 is formed in the normal direction of an approximate plane of the edge vertex group.
[00148] Figure 11 is a diagram illustrating an example of generating 131 triangles (TriSoup surface) in this case. As shown in Figure 11, each 131 triangle is generated by connecting a plurality of vertices (multiple edge vertices and one centroid vertex). In this case, as illustrated in Figure 11, the point cloud in the neighborhood of the node boundary cannot be reproduced.
[00149] This occurs because the centroid vertex successfully samples the surface of the original point cloud, but the current scheme fails to create any vertices between two centroid vertices of two neighboring nodes. For example, in a case where a ridgeline is continuously distributed at the node along the direction of any Petition 870250086229, dated 09 / 24 / 2025, page 26 / 111 20 / 56 on one of the x, y, and z axes, no vertex corresponding to the ridge line is formed because the ridge line does not cross any edge. Consequently, this problem occurs.
[00150] In this embodiment, the encoding device provides the ridge line of the point cloud surface. By determining that two neighboring nodes have the same ridge line, this device transfers information to the decoding device to connect two centroid vertices of the two neighboring nodes by a straight line segment. This information is, for example, 1-bit information assigned to each surface between the nodes.
[00151] The decoding device connects the centroid vertices using this information and generates a new vertex (face vertex) at the intersection between the obtained line segment and a surface shared between the nodes. When generating triangle 131, the decoding device can reproduce the ridge line using the new vertex.
[00152] Since the coordinate position of the face vertex is not quantized, there is no positional deviation problem due to quantization.
[00153] Figure 12 is a diagram illustrating an example of face vertex generation. As shown in Figure 12, the decoding device can reproduce the crest line by generating face vertex 161 and generating triangle 131 using face vertex 161.
[00154] According to the method described above, the surface of the point cloud in the vicinity of the node boundary can be reproduced. Consequently, it is possible to obtain a decoded point cloud more similar to the original point cloud. It should be noted that, in the description above, the surface of the point cloud is used only to describe the problem concerning the ridge line. The ridge line does not actually need to be obtained. [Overview of vertex generation, transfer, and reconstruction of Petition 870250086229, dated 09 / 24 / 2025, page 27 / 111 21 / 56 face]
[00155] First, the evaluation and reconstruction of the connectivity of the centroid vertices are described. The encoding device generates the line segment connecting the centroid vertex of the current node and the centroid vertex of the neighboring node, with respect to each node, and determines the connectivity between the centroid vertices based on the weight for the point cloud adjacent to the intersection between the line segment and the shared surface between the nodes.
[00156] The encoding device sets a boolean value (bool) (for example, the face vertex information described above) indicating whether to connect two centroid vertices with respect to this surface and generate the face vertex.
[00157] The boolean value of each surface is transferred from the encoding device to the decoding device. For the surface having a boolean value = true, the decoding device generates a face vertex at the position where the line segment connecting the centroid vertices of the nodes on both sides of this surface intersects this surface.
[00158] Figure 13 is a diagram illustrating an example of surfaces on which connectivity evaluation and centroid vertex reconstruction are determined among the six surfaces of the node. For example, as shown in Figure 13, for three surfaces on one side of each axis with a major coordinate among the six surfaces of the node, the encoding device and the decoding device perform connectivity evaluation and centroid vertex reconstruction on both sides of each of the surfaces.
[00159] Next, an overview of reducing the amount of bitstream data and limiting face information is described. To reduce the amount of data transferred, the encoding device defines a condition for face vertex information. Petition 870250086229, dated 09 / 24 / 2025, page 28 / 111 22 / 56 (set of Boolean values) using information known by the decoding device, thus reducing the amount of face vertex information data to be transmitted. It should be noted that the details of the process are described later.
[00160] Next, the ordering of an internal node vertex group is described. To generate the TriSoup surface, two edge vertices, or edge vertices and the face vertex, need to be appropriately selected. For example, if edge vertices close to the face vertex are not selected, and distant edge vertices are selected, the surface approximating the point cloud is not formed. Furthermore, a face to be approximated is not generated. Consequently, for example, to provide the surface without opening holes without any gaps in the node, ordering using the rotation order for the edge vertices and face vertex group with reference to the centroid vertex is necessary. It should be noted that the details are described later. [Processing flow]
[00161] Figure 14 is a flowchart of the encoding processing by the encoding device. First, the encoding device applies octree division to the point cloud and generates the trimmed octree, and generates a plurality of leaf nodes (leaf node group) of the trimmed octree. Furthermore, the encoding device applies arithmetic encoding (entropy encoding) to the octree information indicating the trimmed octree and stores the encoded octree information in the bitstream (S201).
[00162] Next, the encoding device generates the edge vertices and the centroid vertex of the point cloud distribution at the node, for each of the nodes (leaf nodes), applies arithmetic encoding (entropy encoding) to the vertex information indicating each item of position information and stores the encoded vertex information. Petition 870250086229, dated 09 / 24 / 2025, page 29 / 111 23 / 56 cado no stream bits (S202).
[00163] Next, only for the surface that satisfies a geometry condition between the surfaces of each node, the encoding device generates a face vertex at the position where the line segment connecting the centroid vertex of the current node and the centroid vertex of the neighboring node intersects the surface (S203).
[00164] Next, the encoding device encodes face vertex information on the surface that satisfies the geometry condition and stores the encoded face vertex information in the bitstream (S204). Here, the face vertex information is information indicating whether to connect the centroid on both sides of the surface to each other and generate the face vertex.
[00165] Next, the encoding device performs the processes of steps S205 to S208 that follow (loop processing) for each of the leaf nodes of the trimmed octree. First, the encoding device applies counterclockwise sorting to the edge vertices and face vertices at the node (S205). Then, the encoding device connects the group of vertices (the edge vertices, centroid vertex, and face vertices) at the node and generates a triangle (TriSoup surface) (S206).
[00166] Next, the encoding device generates a plurality of points on the surface of the triangle (S207). Then, the encoding device makes the decoded points at the node unique with their coordinate values and adds these points to the decoded point cloud (S208). Here, making unique means excluding points with redundant coordinate values. Thus, the loop processing for the current node is completed.
[00167] Figure 15 is a flowchart of the decoding process by the decoding device. First, the decoding device applies arithmetic decoding (in-center decoding). Petition 870250086229, dated 09 / 24 / 2025, page 30 / 111 24 / 56 pia) to the bit stream and obtains the octree information, generates the trimmed octree using the octree information and generates a plurality of leaf nodes (leaf-node group) (S211).
[00168] Next, the decoding device applies arithmetic decoding to the bit stream and obtains the vertex information indicating the positions of the edge vertices and the centroid vertex (S212).
[00169] Next, only for the surface satisfying the geometry condition between the surfaces of each leaf node, the decoding device applies arithmetic decoding to the face vertex information (S213). Then, the decoding device generates the face vertex, based on the face vertex information (S214).
[00170] Next, the decoding device performs the processes of steps S215 to S218 that follow (loop processing) for each of the leaf nodes of the trimmed octree. First, the decoding device applies counterclockwise sorting to the edge vertices and face vertices at the node (S215). Then, the decoding device connects the group of vertices (the edge vertices, centroid vertex, and face vertices) at the node and generates a triangle (TriSoup surface) (S216).
[00171] Next, the decoding device generates a plurality of points on the surface of the triangle (S217). Then, the decoding device makes the decoded points at the node unique with their coordinate values and adds these points to the decoded point cloud (S218). Here, making unique means excluding points with redundant coordinate values. Thus, the loop processing for the current node is completed.
[00172] Figure 16 is a flowchart of face vertex information transfer processing (details of steps S203 and S204 illustrated in Figure 14). Petition 870250086229, dated 09 / 24 / 2025, page 31 / 111 25 / 56
[00173] The encoding device performs the processes of steps S221 to S226 that follow (loop processing) for the surfaces of each node. First, the encoding device determines if the current surface as the processing target satisfies a first condition for face vertex generation (S221). It should be noted that the first condition is a limiting condition based on geometry information for reducing the amount of data in a bitstream mentioned later, and described in detail later. Furthermore, by providing this condition, surfaces where no face vertices can be generated can be excluded based on the positional relationship between the node, edge vertices, and centroid vertex. Consequently, the amount of information transferred can be reduced.
[00174] If the first condition is satisfied (Yes in S221), the encoding device determines whether the current surface satisfies a second condition for face vertex generation (S222). Note that the second condition is weight evaluation for the point cloud adjacent to the candidate face vertex position, in the centroid vertex connectivity evaluation described later. Note that details are described later. By providing the condition, the face vertex based on the distribution of the ridgeline shape of the point cloud on the surface can be generated.
[00175] If the second condition is met (Yes in S222), the encoding device sets the face vertex information on the current surface to true (with the vertex) and accumulates the face vertex information that must be transferred (S223). On the other hand, if the second condition is not met (No in S222), the face vertex information on the current surface is set to false (without the vertex) and accumulates the face vertex information that must be transferred (S224). Petition 870250086229, dated 09 / 24 / 2025, p. 32 / 111 26 / 56
[00176] If the first condition is not met (Not in S221), the encoding device does not generate face vertex information on the current surface, considers it false, and does not accumulate the face vertex information that should be transferred (S225).
[00177] Next, the encoding device generates a face vertex on the current surface based on the face vertex information (true / false) (S226). That is, the encoding device generates the face vertex on the current surface if the face vertex information is true, and does not generate the face vertex on the current surface if the face vertex information is false (or considered false). In this way, the loop processing for the current surface is completed.
[00178] Next, the encoding device encodes the accumulated face vertex information items and stores the encoded face vertex information items in the bitstream (S227).
[00179] Figure 17 is a flowchart of the face vertex information decoding process (details of steps S213 and S214 illustrated in Figure 15).
[00180] The decoding device performs the processes of steps S231 to S234 that follow (loop processing) for the surfaces of each node. First, the decoding device determines if the current surface satisfies a first condition for face vertex generation (S231). It should be noted that the first condition is the same as the first condition in step S221 illustrated in Figure 16.
[00181] If the first condition is met (Yes in S231), the decoding device decodes the bit stream and obtains face vertex information indicating whether to generate the face vertex on the current surface (S232). Consequently, it is determined whether to generate the face vertex on the current surface (true or false). Petition 870250086229, dated 09 / 24 / 2025, page 33 / 111 27 / 56
[00182] Furthermore, if the first condition is not met (Not in S231), the decoding device does not decode the bit stream and obtains the face vertex information on the current surface and sets the face vertex information on the current surface to false (S233).
[00183] Next, the decoding device generates the face vertex on the current surface based on the face vertex information (true / false) (S234). That is, the decoding device generates the face vertex on the current surface if the face vertex information is true and does not generate the face vertex on the current surface if the face vertex information is false. In this way, the loop processing for the current surface is completed.
[00184] By setting the first condition (the condition preliminarily defined in the encoding device and in the decoding device and immutable) before the second condition of generating or not the face vertex as described above, the signaling information can be prevented from being transferred.
[00185] By combining the first predefined condition (immutable condition) with the second condition that can be flexibly defined in the encoding device and notified using signaling (mutable condition), both data reduction and configuration flexibility can be achieved. [Connectivity assessment and centroid vertex reconstruction]
[00186] The encoding device evaluates the weight for the point cloud on the line segment connecting the centroid vertices, and if the weight for the point cloud adjacent to the candidate face vertex is equal to or greater than a threshold, the encoding device defines the candidate as the face vertex. Here, the candidate is the intersection between the line segment connecting the centroid vertices and the surface. Furthermore, the weight for the point cloud adjacent to the candidate face vertex is the number of points included in a region. Petition 870250086229, dated 09 / 24 / 2025, page 34 / 111 28 / 56 with a predetermined distance from the candidate to the face vertex or density.
[00187] Figure 18 is a diagram illustrating an example of a candidate face vertex. In this example, the intersection between the line segment L1 connecting the centroid vertex C1 of node 1 and the centroid vertex C2 of node 2, and the shared surface F1, is determined as the candidate face vertex.
[00188] The encoding device assigns one bit of bit information from the bitstream (centroid vertex information), which means it must connect the centroid vertices on both sides of the surface at the node and generate the vertex on the surface over the surface, as transfer information to the decoding device. Furthermore, for each of all surfaces, the encoding device generates this one-bit information item and stores the generated one-bit information items in the bitstream.
[00189] The decoding device obtains face vertex information in addition to node position information and position information at edge vertices and centroid vertex. For each surface, the decoding device generates the face vertex based on the corresponding face vertex information.
[00190] It should be noted that the encoding device here defines the intersection between the line segment of the centroid vertices and the surface at the face vertex position, but it can generate the face vertex at a position that deviates from the intersection position, based on the distribution of the point cloud, for example. In this case, the encoding device stores, in the bitstream, the amount of displacement between the intersection positions and the face vertex on the surface in addition to the one-bit information. The amount of displacement is represented as, for example, a two-dimensional value. That is, information indicating the position of the face vertex can be ar Petition 870250086229, dated 09 / 24 / 2025, p. 35 / 111 29 / 56 stored in the bitstream. It should be noted that the information indicating the position of the face vertex is not limited to the amount of displacement, and may be coordinate information, or the coordinate difference of another vertex (the edge vertices or the centroid vertex) or a vector.
[00191] According to this scheme, the position of the face vertex becomes one in which the shape of the point cloud ridge line is most appropriately reflected while maintaining the connectivity of the point cloud surface between the nodes. In this way, a high-quality reconstructed point cloud can be obtained. Reducing the amount of bitstream data
[00192] The encoding device defines a condition for each surface using information known to the decoding device and reduces the number of face vertex information items to be transferred. Specifically, since the position information items at edge vertices and centroid vertices are already known, the decoding device uses them and excludes pairs of centroid vertices that cannot be connected to each other based on geometric relationship.
[00193] For example, the encoding device limits the generation of face vertex information by AND (logical product) of the following five conditions (a) to (e). It should be noted that the encoding device may use only some of these conditions or combine yet another condition.
[00194] (a) The current node includes the centroid vertex (C0). (b) A node is present adjacent to the current node (presence of a neighboring node). It should be noted that the presence of a neighboring node on either the x, y, and z axes can be employed. (c) The neighboring node includes the centroid vertex (C1). This condition is defined because if the number of edge vertices is small, no centroid vertex is generated sometimes. (d) The Petition 870250086229, dated 09 / 24 / 2025, p. 36 / 111 30 / 56 The number of edge vertices on the shared surface that the nodes share is two or three. This condition assumes a case where a point cloud is present in the form of a ridge line.
[00195] (e) The surface in a case where the face vertex is generated swells more than the original surface. Here, the surface is a surface formed from a plurality of triangles (TriSoup surfaces). Specifically, if three vectors that are (1) vector Cvec0 from the equilibrium center G0 of the edge vertex group at the current node to the centroid vertex C0, (2) vector Cvec1 from the equilibrium center G1 of the edge vertex group at the neighboring node to the centroid vertex C1, and (3) vector NF from the candidate face vertex F to N which is the foot of the perpendicular on the line segment formed by two edge vertices on the shared surface are not inverted (both the inner product of vector Cvec0 and vector NF and the inner product of vector Cvec1 and vector NF are positive), the face vertex information on the current surface is defined as a transfer target.
[00196] Figure 19 is a diagram illustrating an example of a vertex group arrangement where the face vertex is generated. Figure 20 illustrates the NF vector. The example illustrated in Figure 19 is one where two edge vertices are present on the shared surface, and the face vertex is generated, and the surface swells accordingly, and the face vertex information is transferred.
[00197] The vector u illustrated in Figure 20 is a unit vector of vectors E2 and E3. x = E2F-u and NF = E2F - xu are valid. If Cvec0-NF > 0 and Cvec1 -NF > 0, the surface swells.
[00198] Figure 21 is a diagram illustrating an example of a vertex group arrangement in which two edge vertices are present on the shared surface, and the surface does not swell. In this case, face vertex information is not transferred.
[00199] Figure 22 is a diagram illustrating an example of air Petition 870250086229, dated 09 / 24 / 2025, page 37 / 111 31 / 56 vertex group arrangement in which two edge vertices are present on the shared surface, and the surface does not swell. In this case, face vertex information is not transferred.
[00200] Figure 23 is a diagram illustrating an example of a vertex group arrangement where three edge vertices are present on the shared surface, and the surface swells. In this case, face vertex information is transferred. In the example illustrated in Figure 23, between edge vertices E2, E3, and E4, a pair of edge vertices (E2 and E3) where the midpoint of the line segment formed by two adjacent vertices and the candidate face vertex are closest are selected, and point N is determined.
[00201] It should be noted that the determination as described above is not necessarily achieved. For example, in the case illustrated in Figure 22, it may be determined that the surface of the point cloud swells.
[00202] According to another condition, if a certain constant number of face vertices are continuously generated in the preceding reconstructed node continuous to the neighboring node in the reconstruction process, the encoding device can determine that the face vertex is also generated in the current node. As a determination that the point cloud surface swells, instead of the sign of the inner product of the vectors described above, the encoding device can actually calculate the volume of the point cloud surface and determine that the surface swells if the volume increases.
[00203] It should be noted that the determination corresponds to the first condition in step S221 illustrated in Figure 16 and in step S231 illustrated in Figure 17. Furthermore, here, the example where the encoding device performs determination is described. However, similar determination is also performed in the decoding device. Petition 870250086229, dated 09 / 24 / 2025, page 38 / 111 32 / 56 [Ordering the group of vertices at the node]
[00204] A plurality of triangles (TriSoup surfaces) is generated at the node for point cloud reconstruction. In this case, to avoid failing to develop triangles, the vertex group must be selected sequentially from the end. Specifically, the decoding device performs ordering for edge vertices and face vertices according to the rotation order centered on the centroid vertex. The decoding device sequentially selects every two points based on the defined order, and generates a triangle with three points: the two selected points and the centroid vertex. Consequently, triangles can be generated at the node without any gaps.
[00205] However, the existing method uses the assumption that the sorting target is only edge vertices in the node frames, projects the vertex group onto the main axis (any of the x, y, z axes) and successfully performs simple sorting. In the present embodiment, the face vertex is generated on the node surface. Consequently, the sorting target is not limited to node frames (edges) and simple sorting is not performed.
[00206] Figures 24 to 28 are diagrams describing this problem. Figure 24 is a diagram illustrating an example of edge vertices and the centroid vertex. Figure 25 is a diagram illustrating an example of correctly generated triangles. Figure 26 is a diagram illustrating an example of incorrectly generated triangles.
[00207] For example, as shown in the example illustrated in Figure 24, the edge vertices are sorted. For example, the decoding device projects the edge vertices in the direction of the x-axis and performs the sorting. Then, as shown in Figure 25, the decoding device generates each triangle with a combination of Petition 870250086229, dated 09 / 24 / 2025, p. 39 / 111 33 / 56 centroid vertex and two edge vertices adjacent to each other. On the other hand, as illustrated in Figure 26, faulty ordering of the edge vertices opens holes in the node.
[00208] Figure 27 is a diagram illustrating an example of edge vertices, centroid vertex, and face vertices. Figure 28 is a diagram illustrating an example of triangle generation when simple sorting is applied to this case.
[00209] For example, in a case of applying simple sorting to the vertex group including face vertices, sorting illustrated in Figure 27 is performed. It should be noted that the numerical values in parentheses indicate the order defined by the sorting. In this case, holes are formed as illustrated in Figure 28. In this case, the order of face vertex F2 should be defined as (5), but in fact it is defined as (7), which causes the formation of holes.
[00210] In contrast, instead of simple sorting, the arctangent (arctan) of each vertex with the viewpoint facing an annular distribution formed by the edge vertices and the face vertices is calculated. Furthermore, to make the viewpoint face the annular distribution, the vertex group is multiplied by a rotation matrix.
[00211] Figures 29 to 32 are diagrams to describe this process. (A) illustrated in Figure 29 indicates a unit normal vector of the edge vertex group at the node. (B) indicates a unit vector in the direction of the z-axis. (C) indicates an axis of rotation obtained by an outer product of (A) and (B).
[00212] By adjusting the origin of the vertex coordinates to the centroid vertex, and then multiplying the edge vertex and the face vertex group by a matrix that rotationally aligns (A) with (B), the annular arrangement of the vertex group faces the z-axis.
[00213] The amount of rotation (cosθ, sinθ) is obtained by the product Petition 870250086229, dated 09 / 24 / 2025, page 40 / 111 34 / 56 inner of (A) and (B). The axis of rotation (C) is obtained from the outer product of (A) and (B).
[00214] Figure 30 is a diagram illustrating an example of each vertex in a z-axis-facing state after the process described above. The decoding device calculates the arctangent (arctan) from the x and y coordinates of each vertex in the z-axis-facing state, classifies each vertex, and performs the sorting. Thus, the sorting illustrated in Figure 31 is performed. The decoding device selects each pair of points from the vertex group, including edge vertices and face vertices according to the order centered on the centroid vertex, and generates each triangle using the two selected points and the centroid vertex. Thus, a plurality of triangles is generated as illustrated in Figure 32.
[00215] It should be noted that in the example described above, the annular distribution is oriented toward the viewpoint in the direction of the z-axis, but the viewpoint can be defined in the direction of the x-axis or in the direction of the y-axis or another direction.
[00216] Another possible sorting method is as follows. Figures 33 and 34 are diagrams to describe the processing in this method.
[00217] In processing the limitation of face vertex information, as described with reference to diagrams such as Figure 19, simple sorting performs counterclockwise sorting of the edge vertices (E0 to E3) at the current node. For face vertex F to be inserted in this sorting order, the closest edge vertices would be vertices E1 and E2, as determined by the distance between face vertex F and each edge vertex. Thus, it is determined that face vertex F is inserted after vertex E1 and before vertex E2. Repeating this operation for each face vertex allows sorting in the direction of rotation of the edge vertices. Petition 870250086229, dated 09 / 24 / 2025, p. 41 / 111 35 / 56 and face vertices, as illustrated in Figure 33.
[00218] The decoding device sequentially selects two points at a time from the vertex group, including edge vertices and face vertices, rotating around the centroid vertex, and generates a triangle with each pair of selected points and the centroid vertex. This results in multiple generated triangles, as illustrated in Figure 34. [Syntax]
[00219] Regarding the reduction of the amount of data in the bit stream, the information to be transferred from the encoding device to the decoding device for face vertex reconstruction is one-bit information (face vertex information) that indicates whether to generate a face vertex on each face for which a limitation is provided based on the geometry.
[00220] Figure 35 is a diagram illustrating an example of GDU (geometry_data_unit_data) syntax included in the bitstream. The GDU includes octree and geometry_trisoup_data information. The geometry_trisoup_data includes the number of edges, edge vertex information, the number of edge vertices, edge vertex position information, the number of transfer surfaces, and face vertex information.
[00221] Octree information is information that indicates the configuration of a trimmed octree and information that indicates the positions of the leaf nodes included in the trimmed octree.
[00222] The number of edges indicates the number of unique edges. Note that a unique edge is any edge except edges with overlapping coordinates. Edge vertex information is provided for each edge, and edge vertex information [i] indicates whether an edge vertex is located on the i-th edge. For example, a value of 0 indicates the absence of a vertex of Petition 870250086229, dated 09 / 24 / 2025, p. 42 / 111 36 / 56 edge, and a value of 1 indicates the presence of an edge vertex.
[00223] The edge vertex number indicates the number of vertices on an edge, that is, the number of edge vertices. Edge vertex position information is provided for each edge vertex, and edge vertex position information [i] indicates the position of an i-th edge vertex.
[00224] The number of transfer surfaces indicates the total number of information items (face vertex information) on the surface to be transferred. Face vertex information is provided for each surface. Face vertex information [i] is a one-bit piece of information that indicates whether a face vertex should be generated on the i-th surface (if a face vertex is present). For example, a value of 0 indicates that no face vertex is generated, and a value of 1 indicates that a face vertex is generated.
[00225] The number of transfer surfaces indicates the total number of information items (face vertex information) on the surface to be transferred. Face vertex information is provided for each surface. Face vertex information [i] is one-bit information that indicates whether to generate a face vertex on the i-th surface (if a face vertex is present). For example, a value of 0 indicates that no face vertex is generated, and a value of 1 indicates that a face vertex is generated.
[00226] Furthermore, the number of transfer surfaces and face vertex information are included in the bitstream if the face vertex function is valid, and are not included in the bitstream if the face vertex function is invalid. The face vertex function is a face vertex generation process described above.
[00227] For example, a flag indicating whether the face-vertex function is valid or invalid is provided, and based on the flag, it is determined whether the face-vertex function is valid or invalid. The si Petition 870250086229, dated 09 / 24 / 2025, p. 43 / 111 37 / 56 The analyzer can be stored in the GPS or GDU header, for example.
[00228] Furthermore, the validity of the face vertex function can be defined for each node. In this case, a plurality of flags corresponding to the respective nodes can be stored in the GDU header.
[00229] Figure 36 is a diagram illustrating a variation of the GDU syntax. The syntax illustrated in Figure 36 differs from the syntax illustrated in Figure 35 in that the GDU includes face vertex group information instead of the number of transfer surfaces and face vertex information.
[00230] The face vertex group information indicates whether to generate a face vertex on each of the surfaces. That is, the face vertex group information is information in which the face vertex information items illustrated in Figure 35 are combined. Furthermore, the face vertex group information is included in the bitstream if the face vertex function is valid, and is not included in the bitstream if the face vertex function is invalid.
[00231] According to the syntax illustrated in Figure 36, GDU does not include the number of transfer surfaces. Here, node information for applying a geometry-based constraint to each surface, position information at edge vertices, and position information at the centroid vertex are already known to the decoding device. Consequently, the decoding device can calculate the number of information items on the surfaces to be actually transferred (the number of transfer surfaces) by applying the geometry-based constraint to each surface acquired from the node neighbor relationship.
[00232] Figure 37 is a diagram illustrating a variation of the GDU syntax. The syntax illustrated in Figure 37 is an example of syntax Petition 870250086229, dated 09 / 24 / 2025, page 44 / 111 38 / 56 xe in a case of face vertex generation at a position that deviates from the intersection between the line segment connecting the two centroid vertices and the surface, as described above. Compared to the syntax illustrated in Figure 35, in the syntax illustrated in Figure 37, GDU also includes displacement amount (x) and displacement amount (y).
[00233] Displacement amount (x) and displacement amount (y) are provided for each face vertex. The displacement amount (x) [i] indicates the amount of displacement of the i-th face vertex in the x-axis direction between the intersection and this face vertex. The displacement amount (y) [i] indicates the amount of displacement of the i-th face vertex in the y-axis direction between the intersection and this face vertex. That is, the displacement amount (x) and displacement amount (y) indicate the two-dimensional displacement amount from the intersection to the face vertex.
[00234] For example, the encoding device can quantize the two-dimensional displacement amount, and then store the quantized amount in the bitstream. In this case, the bitstream includes a quantization parameter used for quantization. The decoding device inversely quantizes the quantized displacement amount included in the bitstream using the quantization parameter and reconstructs the original displacement amount. [Other]
[00235] In the flowchart illustrated in Figure 17, the decoding device generates the face vertex if the received face vertex information is true, but it can generate the face vertex independently of the face vertex information. For example, if the encoding device does not need to store the face vertex information in the bitstream, the decoding device can generate the face vertex if the first condition is met and not generate any vertex. Petition 870250086229, dated 09 / 24 / 2025, page 45 / 111 39 / 56 of the face value if the first condition is not met.
[00236] Furthermore, in the flowchart illustrated in Figure 16, the encoding device determines the value (true or false) of the face vertex information using the first condition and the second condition, but it can determine the value of the face vertex information using only one of the first and second conditions.
[00237] According to the vertex group ordering at the node, the axis of rotation passing through the centroid vertex is obtained from the cross product of the normal vector of the plane formed by the edge vertex group and any coordinate axis. However, the method of obtaining the axis of rotation for vertex group ordering (edge vertices and face vertices) is not limited to this. For example, the vertex group can be projected in the direction of any axis passing through the centroid vertex, and the direction of the axis can be determined so that the minimum value of the distance between the projected point and the axis can be greater than a predetermined value. Alternatively, the direction of the axis can be determined so that the sum of the squares of the distances can be greater than a predetermined value.
[00238] In reducing the amount of data in the bitstream, the Boolean value (face vertex information of a bit) is transferred. Alternatively, information in another format can be transferred. For example, face vertex information can indicate three or more values. For example, a value of 0 can indicate no face vertex is generated, a value of 1 can indicate a face vertex is generated, and a value of 2 can indicate a face vertex is generated depending on the capability of the decoding device. Alternatively, in the case of using a Boolean value, if the Boolean value is true, the decoding device can determine whether to generate a face vertex depending on the capability of the decoding device. Petition 870250086229, dated 09 / 24 / 2025, p. 46 / 111 40 / 56 building. [Mode 2]
[00239] In this embodiment, a method for omitting the transmission of face vertex information will be described. Figure 38 is a diagram illustrating an example of a bitstream configuration according to this embodiment. As shown in Figure 38, the bitstream includes an SPS, a GPS, APSs, GDUs (Geom), and ADUs (Attr).
[00240] The SPS (Sequence Parameter Set) is metadata (a set of parameters) common to multiple frames. The APSs (Attribute Parameter Sets) are metadata (sets of parameters) related to encoding attribute information. The GPS (Geometry Parameter Set) is metadata (a set of parameters) related to encoding geometry information. For example, APSs and GPS are metadata common to multiple frames.
[00241] GDUs are data units of encoded geometric information (geometric data units). ADUs are data units of encoded attribute information (attribute data units).
[00242] Note that, in Figure 38, each point has two types of attribute information (Attr (0) and Attr (1)). A GDU and an ADU are generated for each processing unit that includes multiple three-dimensional points. A processing unit is, for example, a frame or a slice.
[00243] Figure 38 also illustrates examples of GDU configuration in a comparative example (which does not adopt the method of this modality) and in this modality. In the comparative example, a GDU includes a GDU header, octree data, edge vertex data, centroid vertex data, face vertex data, and a GDU footer. The GDU header is the header (information of Petition 870250086229, dated 09 / 24 / 2025, page 47 / 111 41 / 56 control) of the GDU. Octree data is information that indicates the structure of the octree, including, for example, the octree information illustrated in Figure 35. Edge vertex data is information about edge vertices, including, for example, edge count, edge vertex information, edge vertex count, and edge vertex position information illustrated in Figure 35.
[00244] Centroid vertex data is information about centroid vertices, including, for example, information indicating the positions of centroid vertices. Face vertex data is information about face vertices, including, for example, the count of transmitted faces and the face vertex information illustrated in Figure 35. The GDU footer is the footer (control information) of the GDU.
[00245] As shown in Figure 38, the bit stream in this mode includes a face vertex no-transmission flag, for example, in the GDU header. The face vertex no-transmission flag is, for example, a 1-bit flag that indicates whether the bit stream includes information about face vertices (face vertex data).
[00246] The encoding device determines whether each eligible face has a facial vertex. If this processing shows that all eligible faces in the processing unit (e.g., a slice) corresponding to the GDU have facial vertices, the encoding device stores, in the GDU header, the facial vertex non-transmission flag, indicating the value 1. That is, the facial vertex non-transmission flag indicates whether all eligible faces have facial vertices. If all eligible faces have facial vertices, the bitstream does not include the facial vertex data. Therefore, the transmission of the facial vertex data is omitted. Petition 870250086229, dated 09 / 24 / 2025, page 48 / 111 42 / 56
[00247] Note that an eligible face is a face determined to satisfy the first condition in step S221 shown in Figure 16 or in step S231 shown in Figure 17.
[00248] If the face vertex no-transmission flag = 0, the bit stream including the face vertex data is transmitted.
[00249] In the decoding device, if the face vertex non-transmission flag is 1 in the processing of each processing unit (e.g., slice), the decoding device determines that all eligible faces have face vertices. The decoding device then skips reading and arithmetically decoding the face vertex data.
[00250] If the face vertex non-transmission flag = 0, the decoding device reads and arithmetically decodes the face vertex data to obtain face vertex information on each eligible face.
[00251] The above processing can reduce the volume of transmitted data without compromising the restored shape of the TriSoup triangles. Furthermore, the ability to switch processing mode according to the face vertex non-transmission flag can reduce the time required for the decoding process.
[00252] Note that the face vertex no-transmission flag can be stored in locations other than the GDU header. For example, the face vertex no-transmission flag can be stored anywhere after the GDU header, for example, in the location immediately after the centroid vertex data and immediately before the face vertex data.
[00253] Alternatively, the face vertex no-transmission flag can be stored in a sequence header (e.g., SPS or GPS). In this case, the face vertex no-transmission flag stored in the sequence header po Petition 870250086229, dated 09 / 24 / 2025, page 49 / 111 43 / 56 to be used for multiple processing units (GDUs).
[00254] Now, a sequence of the coding process in this mode will be described. The coding process, according to this mode, differs from the coding process shown in Figure 14, as steps S203 and S204 are replaced by steps S203A and S204A.
[00255] Figure 39 is a flowchart of these steps, that is, the process of transmitting information from the face vertex (S203A and S204A). The process shown in Figure 39 differs from the process of steps S203 and S204 shown in Figure 16, as step S227 is replaced by steps S251 to S254. The differences in relation to the process shown in Figure 16 are described below.
[00256] After completing the loop processing for each face, the encoding device determines whether all faces that satisfy the first condition also satisfy the second condition (S251). If at least one of the faces that satisfies the first condition does not satisfy the second condition (Not in S251), the encoding device sets the face vertex no-transmission flag to the value 0 and stores the face vertex no-transmission flag with the value 0 in the bitstream (S252). The encoding device then encodes the accumulated information items across multiple face vertices and stores the encoded face vertex information in the bitstream (S254).
[00257] If all faces that satisfy the first condition also satisfy the second condition (Yes in S251), the encoding device sets the face vertex no-transmission flag to the value 1 and stores the face vertex no-transmission flag with the value 1 in the bitstream (S253). In this case, the encoding device does not encode the information items accumulated over multiple face vertices and therefore does not store the information. Petition 870250086229, dated 09 / 24 / 2025, page 50 / 111 44 / 56 encoded on the face vertices in the bitstream.
[00258] Note that if all faces that satisfy the first condition satisfy the second condition (Yes in S251), the encoding device can, for example, according to other conditions, set the face vertex non-transmission flag to the value 0 and store the face vertex information in the bitstream.
[00259] Now, a sequence of the decoding process in this mode will be described. The decoding process, according to this mode, differs from the decoding process shown in Figure 15, as steps S213 and S214 are replaced by steps S213A and S214A.
[00260] Figure 40 presents a flowchart of these steps, that is, the process of decoding the face vertex information (S213A and S214A). The process shown in Figure 40 differs from the process of steps S213 and S214, shown in Figure 17, by the addition of steps S261 and S262. The differences in relation to the process shown in Figure 17 are described below.
[00261] If the first condition is met (Yes in S231), the decoding device obtains (decodes) the face vertex no-transmission flag stored in the bit stream and determines if the face vertex no-transmission flag = 1 (S261). If the face vertex no-transmission flag = 0 (No in S261), the decoding device decodes, from the bit stream, the face vertex information indicating whether a face vertex should be generated on the current face (S232). Thus, it determines whether a face vertex should be generated on the current face (true or false).
[00262] If the face vertex no-transmission flag is = 1 (Yes in S261), the decoding device does not decode the face vertex information for the current face of the bit stream and sets the face vertex information for the current face to true. Petition 870250086229, dated 09 / 24 / 2025, page 51 / 111 45 / 56 (S262).
[00263] The decoding device then generates a face vertex on the current face based on the face vertex information (true / false) (S234). That is, the decoding device generates a face vertex on the current face if the face vertex information is true and does not generate a face vertex on the current face if the face vertex information is false.
[00264] Now, examples of the syntax of the information stored in the bitstream according to this mode will be described. Figure 41 is a diagram illustrating an example of the syntax of a GDU (geometry_data_unit_header) and a GDU (geometry_data_unit_data) in the bitstream. The syntax shown in Figure 41 differs from the syntax shown in Figure 35 because the GDU header includes a face vertex enable flag and a face vertex no-transmission flag.
[00265] The enabled face-vertex flag indicates whether the face-vertex function is enabled or disabled. The face-vertex function refers to the processing described above to generate face vertices. For example, if the enabled face-vertex flag has a value of 1, the face-vertex function is enabled (face vertices will be generated), while if the enabled face-vertex flag has a value of 0, the face-vertex function is disabled (no face vertices will be generated).
[00266] The face vertex non-transmission flag is, for example, included in the GDU header if the face vertex enabled flag = 1 (if the face vertex function is enabled) and is not included in the GDU header if the face vertex enabled flag = 0 (if the face vertex function is disabled).
[00267] The face vertex non-transmission flag instructs to generate face vertices on all geometrically bounded faces. Petition 870250086229, dated 09 / 24 / 2025, p. 52 / 111 46 / 56 (eligible faces). In other words, the face vertex non-transmission flag indicates whether the 1-bit information associated with each face that satisfies the first condition and specifies whether a face vertex should be generated on that face (face vertex information) is transmitted.
[00268] If the face vertex enable flag = 1 and the face vertex no-transmit flag = 0, the GDU includes information for generating face vertices (count of transmitted faces and face vertex information [i]). Note that these information items have the same meaning as those in Figure 35. Unless the face vertex enable flag = 1 and the face vertex no-transmit flag = 0, the bitstream does not include the information for generating face vertices.
[00269] Figure 42 is a diagram illustrating a variation of the GDU header syntax and the GDU itself. The syntax shown in Figure 42 differs from the syntax shown in Figure 41 because the GDU includes face vertex group information instead of transmitted face count and face vertex information. Furthermore, the syntax shown in Figure 42 differs from the syntax shown in Figure 36 because the GDU header includes the face vertex enable flag and the face vertex no-transmission flag. Note that these flags have the same meaning as those in Figure 41.
[00270] If the face vertex enable flag = 1 and the face vertex no-transmission flag = 0, the GDU includes information to generate face vertices (face vertex group information). The face vertex group information has the same meaning as that in Figure 36. Unless the face vertex enable flag = 1 and the face vertex no-transmission flag = 0, the bitstream does not include the information to generate face vertices. Petition 870250086229, dated 09 / 24 / 2025, p. 53 / 111 47 / 56 face cells.
[00271] Note that the face vertex enable flag and the face vertex no-transmit flag can be stored in the GDU header, as shown in Figures 41 and 42, or they can be stored elsewhere in the bitstream. For example, these flags can be stored in a sequence header (e.g., the SPS or GPS). Alternatively, these flags can be anywhere after the GDU header and before the face vertex information. The face vertex enable flag and the face vertex no-transmit flag can be stored in different locations.
[00272] Figure 43 is a diagram illustrating a variation of the GDU header and GDU syntax. For example, the syntax shown in Figure 43 differs from the syntax shown in Figure 41 in the location of the face vertex no-transmission flag. As shown in Figure 43, the face vertex no-transmission flag in one example might be located immediately before the face vertex generation information (count of transmitted faces and face vertex information [i]) in the GDU. [Summary]
[00273] As mentioned above, the decoding device (the three-dimensional data decoding device) according to the modality executes the process shown in Figure 44. The decoding device: receives a bit stream including geometric information (e.g., octree information) and first control information (S301), the geometric information indicating nodes that constitute an octree structure, the first control information indicating whether a first face of a first node included in the nodes includes a first face vertex provided in the first face, Petition 870250086229, dated 09 / 24 / 2025, page 54 / 111 48 / 56 except for the first edges of the first face; and generates or does not generate the first face vertex on the first face according to the first control information (S302). Each node is a unit for containing three-dimensional points. The first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme. The first face vertex, the first centroid vertex, and the first edge vertices define a triangle (e.g., a TriSoup triangle) in which three-dimensional points of the first node are arranged. The first control information is provided for a face of the first node that satisfies a predetermined condition (e.g., a first condition). In other words, the bitstream includes the first control information for a face that satisfies the predetermined condition and does not include the first control information for a face that does not satisfy the predetermined condition.
[00274] Thus, the first control information is provided for a face that satisfies a predetermined condition, reducing the volume of data in the bitstream compared to providing the first control information for all faces. This reduces the processing load on the decoding device.
[00275] For example, the predetermined condition includes a first condition, regardless of whether the face includes two or three edge vertices. Thus, if it is likely that no face vertices will be generated, the generation of the first control information is omitted. This reduces the volume of data in the bitstream.
[00276] For example, the predetermined condition includes a second condition: if a first vector, a second vector, and a third vector point in the same direction. The first vector is a vector from the first edge vertices to the first centroid vertex. The second vector is a vector from the second edge vertex to the second centroid vertex. Petition 870250086229, dated 09 / 24 / 2025, page 55 / 111 49 / 56 second edge vertices from a second node to a second centroid vertex of the second node, with the second node adjacent to the first node and its face in contact with the second node. The third vector is a first-line vector to a provisional face vertex, with the first line connecting two edge vertices of the face, and the provisional face vertex positioned where a second line connecting the first centroid vertex and the second centroid vertex intersects the face. Thus, if no face vertex is likely to be generated, the generation of the first control information is omitted. This reduces the volume of data in the bitstream.
[00277] For example, when an inner product of the first vector and the third vector is positive and an inner product of the second vector and the third vector is positive, the first vector, the second vector, and the third vector are determined to be pointing in the same direction. Thus, the decoding device can properly determine whether the second condition above is satisfied.
[00278] For example, the predetermined condition includes a third condition: if a node adjacent to the first node includes a centroid vertex. Thus, if it is likely that no face vertex will be generated, the generation of the first control information is omitted. This reduces the volume of data in the bitstream.
[00279] For example, the inclusion or exclusion of the first face vertex indicated in the initial control information is determined according to the total number or density of points included in a region located at a predetermined distance from an intersection point, which is at least a predetermined threshold value, the intersection point being an intersection point between (i) a line segment connecting the first centroid vertex and a second centroid vertex of a second node adjacent to the first node and (ii) a face shared by the first node and the second node. Thus, it specifies Petition 870250086229, dated 09 / 24 / 2025, page 56 / 111 50 / 56 if appropriate if the face vertex should be generated.
[00280] For example, the bitstream also includes a second control information (e.g., a face vertex non-transmission flag) that indicates whether the first control information for the faces of the first node is included in the bitstream. Thus, the decoding device can consult the second control information to toggle between performing and not performing face vertex generation processing using the first control information.
[00281] For example, the decoding device generates or does not generate a face vertex on a face to be processed, according to the first control information corresponding to the face to be processed among the faces, when the second control information indicates that the first control information for the faces of the first node is included in the bit stream (for example, the face vertex non-transmission flag = 0). The decoding device generates a face vertex on each of the faces when the second control information does not indicate that the first control information for the faces of the first node is included in the bit stream (for example, the face vertex non-transmission flag = 1).
[00282] Thus, when the face vertex is included on each of the faces, the bit stream does not need to include the first control information. Thus, the data volume of the bit stream can be reduced.
[00283] For example, when, among the faces of the first node, all faces that satisfy the predetermined condition satisfy another predetermined condition, the second control information does not indicate that the first control information for the faces of the first node is included in the bit stream. Consequently, for example, when the face vertex is generated on each of the faces Petition 870250086229, dated 09 / 24 / 2025, page 57 / 111 51 / 56 that satisfy the predetermined condition, the bit stream does not need to include the initial control information. Thus, the data volume of the bit stream can be reduced.
[00284] Figure 45 is a block diagram of the decoding device 10. For example, the decoding device 10 includes the processor 11 and memory 12, and the processor 11 executes the above process using memory 12.
[00285] The encoding device (the three-dimensional data encoding device) according to the modality executes the process shown in Figure 46. The encoding device: generates geometric information indicating the nodes that constitute an octree structure (S311); generates the first control information indicating whether a first face of a first node included in the nodes includes a first face vertex provided in the first face, except for the first edges of the first face (S312); and generates a bit stream including the geometric information and the first control information (S313). Each of the nodes is a unit for containing three-dimensional points. The first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme.The first face vertex, the first centroid vertex, and the first edge vertices define a triangle (e.g., a TriSoup triangle) in which the three-dimensional points at the first node are arranged. The first control information is provided for a face of the first node that satisfies a predetermined condition (e.g., a first condition). In other words, the encoding device generates the first control information for a face that satisfies the predetermined condition and does not generate the first control information for a face that does not satisfy the predetermined condition.
[00286] Thus, providing the first control information for a face that satisfies a predetermined condition reduces the volume Petition 870250086229, dated 09 / 24 / 2025, page 58 / 111 52 / 56 bit stream data, compared to providing the initial control information to all faces.
[00287] For example, the predetermined condition includes a first condition, regardless of whether the face includes two or three edge vertices. Thus, if it is likely that no face vertices will be generated, the generation of the first control information is omitted.
[00288] For example, the predetermined condition includes a second condition, regardless of whether a first vector, a second vector, and a third vector point in the same direction. The first vector is a vector that goes from a first center of the first edge vertices to the first centroid vertex. The second vector is a vector that goes from a second center of the second edge vertices of a second node to a second centroid vertex of the second node, with the second node adjacent to the first node and its face in contact with the second node. The third vector is a vector that goes from a first line to a provisional face vertex, with the first line connecting two edge vertices of the face, and the provisional face vertex positioned where a second line connecting the first centroid vertex and the second centroid vertex intersects the face. Thus, if it is likely that no face vertex will be generated, the generation of the first control information is omitted.
[00289] For example, when an inner product of the first vector and the third vector is positive and an inner product of the second vector and the third vector is positive, the first vector, the second vector, and the third vector are determined to be pointing in the same direction. Thus, the encoding device can properly determine whether the second condition above is satisfied.
[00290] For example, the predetermined condition includes a third condition, if a node adjacent to the first node includes a centroid vertex. Thus, if it is likely that no face vertex will be generated, the Petition 870250086229, dated 09 / 24 / 2025, page 59 / 111 53 / 56 generation of the first control information is omitted.
[00291] For example, the encoding device determines whether the first face includes the first face vertex indicated in the first control information, depending on whether the total number or density of points included in a region located at a predetermined distance from an intersection point corresponds to at least a predetermined threshold value, the intersection point being an intersection point between (i) a line segment connecting the first centroid vertex and a second centroid vertex of a second node adjacent to the first node and (ii) a face shared by the first node and the second node. Thus, the encoding device can appropriately specify whether the face vertex should be generated.
[00292] For example, the bitstream also includes a second control information (e.g., a face vertex non-transmission flag) that indicates whether the first control information for the faces of the first node is included in the bitstream. Thus, the decoding device can consult the second control information to toggle between performing and not performing face vertex generation processing using the first control information.
[00293] For example, when, among the faces of the first node, all faces that satisfy the predetermined condition also satisfy another predetermined condition, the encoding device generates the second control information, indicating that the first control information for the faces of the first node is not included in the bitstream. Consequently, for example, when the face vertex is generated on each of the faces that satisfy the predetermined condition, the bitstream does not need to include the first control information. Thus, the data volume of the bitstream can be reduced.
[00294] Figure 47 is a block diagram of the encoding device. Petition 870250086229, dated 09 / 24 / 2025, pp. 60 / 111 54 / 56 encoding 20. For example, encoding device 20 includes processor 21 and memory 22, and processor 21 performs the process using memory 22.
[00295] An encoding device (three-dimensional data encoding device), a decoding device (three-dimensional data decoding device), and the like, according to the embodiments of the present invention and its variations, have been described above, but the present invention is not limited to these embodiments, etc.
[00296] Note that each of the processors included in the encoding device, the decoding device, and the like, according to the embodiments above, is typically implemented as a large-scale integrated circuit (LSI), which is an integrated circuit (IC). They may take the form of individual chips or may be partially or fully compressed into a single chip.
[00297] Such an IC is not limited to an LSI and therefore can be implemented as a dedicated circuit or a general-purpose processor. Alternatively, a Field Programmable Gate Array (FPGA), which allows post-manufacturing programming of an LSI, or a reconfigurable processor, which allows reconfiguration of the connection and configuration of circuit cells within an LSI, can be employed.
[00298] Furthermore, in the above embodiments, the constituent elements may be implemented as dedicated hardware or may be obtained by executing a software program suitable for such constituent elements. Alternatively, the constituent elements may be implemented by a program executor such as a CPU or processor that reads and executes the software program recorded on a recording medium such as a hard disk or semiconductor memory. Petition 870250086229, dated 09 / 24 / 2025, page 61 / 111 55 / 56
[00299] The present invention can also be implemented as an encoding method (three-dimensional data encoding method), a decoding method (three-dimensional data decoding method) or similar implemented by the encoding device (three-dimensional data encoding device), the decoding device (three-dimensional data decoding device) and similar.
[00300] Furthermore, the present invention can be implemented as a program to cause a computer, processor, or device to execute the encoding method or decoding method described above. Additionally, the present invention can be implemented as a bitstream generated by the encoding method described above. Furthermore, the present invention can be implemented as a recording medium on which the program or bitstream is recorded. For example, the present invention can be implemented as a non-transient, computer-readable recording medium on which the program or bitstream is recorded.
[00301] Furthermore, the divisions of functional blocks shown in the block diagrams are merely examples and, therefore, a plurality of functional blocks can be implemented as a single functional block, or a single functional block can be divided into a plurality of functional blocks, or one or more functions can be moved to another functional block. Additionally, functions from a plurality of functional blocks having similar functions can be processed by a single piece of hardware or software in a parallelized or time-split manner.
[00302] Furthermore, the processing order of the steps shown in the flowcharts is merely an illustration to specifically describe the present invention and, therefore, may be a different order from the order shown. In addition, one or more of the Petition 870250086229, dated 09 / 24 / 2025, page 62 / 111 56 / 56 steps can be performed simultaneously (in parallel) with another step.
[00303] An encoding device, a decoding device, and the like, according to one or more aspects, have been described above based on embodiments, but the present invention is not limited to these embodiments. The one or more aspects may then include forms obtained by making various modifications to the above embodiments that may be devised by those skilled in the art, as well as forms obtained by combining constituent elements in different embodiments, without materially departing from the spirit of the present invention. Industrial Applicability
[00304] The present invention is applicable to an encoding device and a decoding device. [List of Reference Signals] decoding device, 21 processor 12, 22 memory encoding device 101 target space 102, 133 point cloud 103, 111, 132 points 104 node-leaf 112 edge vertices 113, 122 Track 121 approximate plan 123 vertex information 131 Triangle 151 vertex centroid 161 face vertex Petition 870250086229, dated 09 / 24 / 2025, page 63 / 111
Claims
1 / 5 CLAIMS 1. Decoding method, characterized in that it comprises: receiving a bit stream including geometry information and initial control information, the geometry information indicating nodes that constitute an octare structure, the initial control information indicating whether a first face of a first node included in the nodes includes a first face vertex provided in the first face, except for the first edges of the first face;and generate or not the first face vertex on the first face according to the first control information, where each of the nodes is a unit to contain three-dimensional points, the first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme, the first face vertex, the first centroid vertex and the first edge vertices define a triangle in which the three-dimensional points of the first node are arranged, and the first control information is provided for a face of the first node that satisfies a predetermined condition.
2. Decoding method, according to claim 1, characterized in that the predetermined condition includes a first condition, regardless of whether the face includes two or three edge vertices.
3. Decoding method, according to claim 1, characterized in that the predetermined condition includes a second condition, if a first vector, a second vector and a third vector point in the same direction, the first vector is a vector from a first centroid of the first vertices of the edge to the first centroid vertex, Petition 870250086229, dated 09 / 24 / 2025, p. 64 / 111 2 / 5 The second vector is a vector from a second centroid of second edge vertices from a second node to a second centroid vertex of the second node, the second node being adjacent to the first node with the face in contact with the second node, and the third vector is a vector from a first line to a provisional face vertex, the first line connecting two edge vertices of the face, the provisional face vertex being positioned in such a way that a second line connecting the first centroid vertex and the second centroid vertex intersects the face.
4. Decoding method, according to claim 3, characterized in that when an inner product of the first vector and the third vector is positive and an inner product of the second vector and the third vector is positive, the first vector, the second vector and the third vector are determined to point in the same direction.
5. Decoding method, according to claim 1, characterized in that the predetermined condition includes a third condition, if a node adjacent to the first node includes a centroid vertex.
6. Decoding method according to claim 1, characterized in that whether the first face includes the first face vertex indicated in the first control information is determined according to whether a total number or density of points included in a region located within a predetermined distance from an intersection point is at least a predetermined threshold value, the intersection point being an intersection point between (i) a line segment connecting the first centroid vertex and a second centroid vertex of a second node adjacent to the first node and (ii) a face shared by the first node and the second node.
7. Decoding method, according to claim Petition 870250086229, dated 09 / 24 / 2025, page 65 / 111 3 / 5 1, characterized in that the bit stream also includes a second control information indicating whether the first control information for faces of the first node is included in the bit stream.
8. Decoding method, according to claim 7, characterized in that it further comprises: generating or not generating a face vertex on a face to be processed, according to the first control information corresponding to the face to be processed among the faces, when the second control information indicates that the first control information for the faces of the first node is included in the bit stream; and generating a face vertex on each of the faces when the second control information does not indicate that the first control information for the faces of the first node is included in the bit stream.
9. Decoding method, according to claim 7, characterized in that when, among the faces of the first node, all faces that satisfy the predetermined condition satisfy another predetermined condition, the second control information does not indicate that the first control information for the faces of the first node is included in the bit stream.
10. Encoding method, characterized in that it comprises: generating geometry information indicating nodes that constitute an octree structure; generating initial control information indicating whether a first face of a first node included in the nodes includes a first face vertex provided in the first face, except for first edges of the first face; and generating a bit stream including the geometry information and the initial control information, Petition 870250086229, dated 09 / 24 / 2025, p.66 / 111 4 / 5 where each of the nodes is a unit to contain three-dimensional points, the first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme, the first face vertex, the first centroid vertex and the first edge vertices define a triangle in which the three-dimensional points of the first node are arranged, and the first control information is provided for a face of the first node that satisfies a predetermined condition.
11. Decoding device that decodes three-dimensional points, characterized in that it comprises: a processor; and memory, wherein using the memory, the processor: receives a bit stream including geometry information and initial control information, the geometry information indicating nodes that constitute an octare structure, the initial control information indicating whether a first face of a first node included in the nodes includes a first face vertex provided in the first face, except for first edges of the first face;and generates or does not generate the first face vertex on the first face according to the first control information, where each of the nodes is a unit to contain three-dimensional points, the first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme, the first face vertex, the first centroid vertex and the first edge vertices define a triangle in which the three-dimensional points of the first node are arranged, and the first control information is provided for Petition 870250086229, dated 09 / 24 / 2025, page 67 / 111 5 / 5 a face of the first node that satisfies a predetermined condition.; 12. Encoding device that encodes three-dimensional points, characterized by the fact that it comprises: a processor; and memory, where using the memory, the processor: generates geometric information indicating nodes that constitute an octare structure; generates the first control information indicating whether a first face of a first node included in the nodes includes a first face vertex provided in the first face, except for the first edges of the first face;and generates a bit stream including geometry information and initial control information, where each node is a unit for containing three-dimensional points, the first node includes a first centroid vertex and first edge vertices that are used in a TriSoup scheme, the first face vertex, the first centroid vertex, and the first edge vertices define a triangle in which the three-dimensional points of the first node are arranged, and the initial control information is provided for a face of the first node that satisfies a predetermined condition. Petition 870250086229, dated 09 / 24 / 2025, p. 68 / 111;