Information processing device, information processing method, data structure, and program
The information processing device accelerates the decoding of polygon meshes by generating second mesh data through edge division, addressing the long decoding times in existing methods and enabling efficient progressive decoding.
Patent Information
- Application Number
- JP2023082299
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-05-18
- Publication Date
- 2024-12-16
- Estimated Expiration
- 2039-01-24
AI Technical Summary
Existing methods for decoding polygon meshes using a progressive encoding method require sequential tracing of a tree structure, leading to long decoding times, especially for large numbers of high-definition meshes.
An information processing device that includes an encoding unit to generate second mesh data by regularly dividing the edges of first mesh data, allowing for progressive decoding at multiple resolutions, reducing processing time.
The proposed method significantly reduces the amount of processing required for decoding polygon meshes, enabling faster decoding of meshes at various resolutions.
Smart Images

Figure 0007600308000001 
Figure 0007600308000002 
Figure 0007600308000003
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing device, an information processing method, a data structure, and a program. [Background technology]
[0002] Conventionally, a method of using a surface model (mesh model) using a polygon mesh is known as a method of expressing three-dimensional data. However, with this method, for example, when drawing a polygon mesh using a web browser, drawing resources may be limited.
[0003] Therefore, a progressive encoding method is applied, which can decode polygon meshes in stages from low to high resolution, and low-resolution mesh data is transferred and drawn first, and then additional detailed information is transferred later to draw the high-resolution mesh data.
[0004] Patent document 1 discloses a method in which a simplified mesh is generated by repeatedly combining two vertices of a mesh into one vertex during encoding, and a tree structure that manages the procedure is generated, and the original mesh is restored by tracing back through the tree structure from the simplified mesh during decoding. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] JP 2007-265459 A Summary of the Invention [Problem to be solved by the invention]
[0006] However, the method described in Patent Document 1 has a problem in that, in order to restore the original mesh, it is necessary to sequentially trace the tree structure and decode the vertices one by one, and the decoding process takes a long time. In particular, the decoding time is long when rendering a large number of high-resolution meshes.
[0007] The present invention has been made in consideration of the above-mentioned problems in the conventional art, and its purpose is to reduce the amount of processing required for decoding in a progressive encoding method that encodes a polygon mesh so that its resolution can be decoded in stages. [Means for solving the problem]
[0008] The information processing device according to the present invention comprises: From an external device, First mesh data representing the shape of an object, and second mesh data representing the shape of the object composition do Positions indicating the positions of the polygon vertices An acquisition means for acquiring information, and the information acquired by the acquisition means position information By regularly dividing the edges of the polygons constituting the first mesh data acquired by the acquisition means using the above and a generating means for generating the second mesh data. Effect of the Invention
[0009] According to the present invention, in a progressive encoding method that encodes a polygon mesh so that the resolution can be decoded in stages, it is possible to reduce the amount of processing involved in decoding. [Brief description of the drawings]
[0010] [Figure 1] FIG. 1 is a diagram showing mesh data described in an existing data description format. [Diagram 2] FIG. 2 is a diagram illustrating a functional configuration of a progressive encoding device. [Diagram 3] 4 is a flowchart showing an overview and procedure of a process executed in an encoding unit of a progressive encoding device. [Figure 4] FIG. 13 is a diagram showing mesh data described in a progressive format. [Diagram 5] FIG. 13 is a diagram showing how a mesh changes due to subdivision of a base mesh and fitting to an input mesh. [Figure 6]FIG. 13 is a diagram showing changes in mesh data described in a progressive format before and after subdivision. [Figure 7] FIG. 13 is a diagram showing the change in the number of elements before and after subdivision. [Figure 8] 11 is a diagram showing the structure of a file output from a mesh output unit of the encoding unit of the progressive encoding device. FIG. [Figure 9] 4 is a flowchart showing an overview and procedure of a process executed in a decoding section of a progressive encoding device. [Figure 10] FIG. 2 is a diagram illustrating a hardware configuration of an encoding device. [Figure 11] FIG. 13 is a diagram showing how a mesh changes due to subdivision of a base mesh and fitting to an input mesh. [Figure 12] FIG. 2 is a diagram illustrating a functional configuration of a progressive encoding device. [Figure 13] FIG. 2 illustrates subdivision of a triangular mesh and a quadrilateral mesh. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. Note that the following embodiment does not limit the present invention, and not all of the combinations of features described in the present embodiment are necessarily essential to the solution of the present invention. In addition, various forms within the scope of the present invention are also included in the present invention, and some of the following embodiments can be appropriately combined. In addition, in the following embodiment, the device configuration will be described as having the functions of both an encoding unit and a decoding unit, but it may have the function of either one of the encoding unit and the decoding unit.
[0012] (Embodiment 1) First, before describing this embodiment, in order to compare with the mesh data description method (data description format) used in this embodiment, an existing mesh data description method will be described with reference to Fig. 1. Fig. 1 is a diagram showing mesh data described in the existing data description format.
[0013] Figure 1(A) shows a mesh consisting of triangle T0 consisting of vertices V0, V2, and V3, and triangle T1 consisting of vertices V0, V3, and V1. Such a mesh is defined by describing the vertex coordinates of each vertex shown in Figure 1(B) and the references of the vertices that make up each triangle shown in Figure 1(C).
[0014] Note that although a vertex reference indicates (describes) the rank (index) of a vertex in data, the connection relationship between each element may be represented by a means that allows access to the vertex coordinates, and may also be described by an address in memory, etc. Furthermore, information expressing a position in a three-dimensional space as shown in Fig. 1(B) is called geometry, and information expressing a connection relationship between each element as shown in Fig. 1(C) is called topology. In addition, hereinafter, the above-mentioned data description format will be referred to as an existing data description format.
[0015] Next, as an information processing device (encoding device) according to this embodiment, a progressive encoding device capable of decoding meshes at high speed and a data description format of meshes generated by the progressive encoding device will be described.
[0016] FIG. 2 is a diagram showing the functional configuration of a progressive encoding device. In FIG. 2, FIG. 2(A) shows an encoding unit, and FIG. 2(B) shows a decoding unit. The following will explain in order. The encoding unit shown in FIG. 2(A) progressively encodes a mesh expressed in the existing data description format shown in FIG. 1 so that the resolution can be controlled in stages. The progressive encoding in this embodiment is an encoding method that encodes a 3D mesh model of a polygon mesh so that it can be decoded at multiple resolutions (definition) (so that any one of the multiple resolutions (each resolution) can be selected and decoded). That is, the encoding device in this embodiment functions as an information processing device that outputs encoded data (progressive mesh data) that allows a polygon mesh to be decoded at multiple resolutions.
[0017] 2(A), the encoding unit includes a mesh input unit 201, a mesh simplification unit 202, a topology conversion unit 203, a mesh subdivision unit 204, and a mesh output unit 207. Furthermore, the mesh subdivision unit 204 has a topology subdivision unit 205 and a geometry calculation unit 206.
[0018] The mesh input unit 201 receives (acquires) mesh data representing a polygon mesh described in an existing data description format (specifically, the data description format shown in Fig. 1(B) and Fig. 1(C)) and inputs the mesh data into the progressive encoding device. The mesh simplification unit 202 simplifies the mesh of the input mesh data. In the following, this simplified mesh is referred to as a base mesh.
[0019] The topology conversion unit 203 converts the base mesh into a progressive representation. The progressive representation will be described later with reference to FIG. 4. The mesh subdivision unit 204 repeatedly executes subdivision of the topology of the base mesh converted into the progressive representation, and fitting to a mesh (hereinafter referred to as an input mesh) into which vertex coordinates have been input. In this way, the mesh subdivision unit 204 generates a mesh of the final hierarchy (hereinafter referred to as a full mesh). The mesh output unit 207 outputs the topology of the base mesh in the progressive representation generated by the topology conversion unit 203, and the geometry of the full mesh generated by the mesh subdivision unit 204, as a progressively represented mesh. In the following, the progressively represented mesh data output by the mesh output unit 207 will be referred to as progressive mesh data.
[0020] Next, the outline and procedure of the process executed in the encoding unit of the progressive encoding device shown in Fig. 2(A) will be explained using the flowchart in Fig. 3(A). Note that the symbol "S" in the explanation of the flowchart represents a step. This also applies to the explanation of the following flowcharts.
[0021] In S301, the mesh input unit 201 inputs mesh data into the progressive encoding device. In S302, the mesh simplification unit 202 simplifies the meshes in the input mesh data to approximately express the meshes in the input mesh data with a mesh having a smaller number of faces (i.e., a base mesh). Note that, regarding the simplification of the meshes, the method disclosed in the above-mentioned Patent Document 1 is used in this embodiment, but is not necessarily limited to this method, and any method that can reduce the number of faces while maintaining the shape structure may be used.
[0022] In S303, the topology conversion unit 203 converts the base mesh into a progressive representation. The number of resolution stages when converting into a progressive representation is defined as PD (Progressive Depth). For example, when PD=3, the base mesh is subdivided twice, resulting in a base mesh in the first layer, a full mesh in the third layer, and an intermediate mesh in the second layer between them. The intermediate mesh has a higher resolution than the base mesh, and the full mesh has a higher resolution than the intermediate mesh.
[0023] In S304, the topology subdivision unit 205 executes regular division of the mesh. The regular division of the mesh will be described later with reference to FIG. 5. In addition, in regular division, the number of faces and vertices increases but the shape does not change, so in S305, the geometry calculation unit 206 executes alignment so that the vertex coordinates approach the input mesh. Here, a vertex of the input mesh that is closer to the vertex to be aligned is searched for, and the coordinates of the vertex to be aligned are made to match the coordinates of the searched vertex. Alternatively, the alignment may be executed as an energy minimization problem that minimizes the difference with the input mesh, and the method is arbitrary.
[0024] Here, as a supplementary explanation, the manner in which the mesh changes through a series of processes from S302 to S305 will be described with reference to FIG. 5. FIG. 5(A) shows an input mesh, which is an ideal shape to be expressed and is formed by a large number of tiny triangles (not shown). Using the mesh shown in FIG. 5(A) as the input mesh, the mesh is simplified in S302 to be approximately expressed by two triangles as shown in FIG. 5(B). Then, regular division of the mesh is performed in S304, and each triangle is divided into four as shown in FIG. 5(C). Finally, vertex alignment is performed in S305 to bring the shape of the mesh closer to the input mesh as shown in FIG. 5(D).
[0025] In S306, the mesh subdivision unit 204 judges whether the above-mentioned processes of S304 and S305 have been repeatedly executed PD-1 times. The mesh subdivision unit 204 repeats the above-mentioned processes of S304 and S305 PD-1 times (S306 Yes), thereby generating a progressively expressed mesh (i.e., a full mesh) with a resolution level of PD. In S307, the progressive mesh data output by the mesh output unit 207 includes at least topology data related to the topology of the base mesh and geometry data related to the geometry of the full mesh.
[0026] Next, the data description format of a progressively expressed mesh will be explained with reference to Fig. 4. Fig. 4(A) shows an outline of the data description format of a mesh, and the mesh data is configured to include vertices indicated by V (V0, V1, V2, V3), edges indicated by E (E0, E1, E2, E3, E4), and triangles indicated by T (T0, T1). Fig. 4(B) describes the vertex coordinates, and is similar to Fig. 1(B).
[0027] Fig. 4(C) describes edges that indicate the connection relationships between vertices on a mesh, and here, references to the vertices at both ends of the edge are described. Also, in Fig. 4(C), the references to the vertices are described in order of the vertices' ranks (numbers) shown in Fig. 4(B) from lowest to highest (i.e., the vertices with the lowest ranks are described first). Note that the references to the vertices may also be described in order of highest to lowest (largest) rank.
[0028] FIG. 4(D) describes a triangular mesh, which is a constituent unit of the mesh, and here, references to three edges that make up the triangle are described. The edge references are described in the order of the right edge, the left edge, and the opposite edge, starting from the vertex with the lowest rank among the vertices that make up the triangle. As a supplement, this order only needs to be such that the front direction of the triangle can be uniquely expressed by the order of describing the edges, and may be described in other orders, such as reverse order or offset. Hereinafter, this data description format is referred to as a progressive format.
[0029] Next, the structure of the file output by the mesh output unit 207 of the encoding unit of the progressive encoding device will be explained with reference to Fig. 8. The output file includes a header region, a base mesh region, and a subband mesh region, as shown in Fig. 8. The header region describes the number of resolution stages (progressive_depth), the number of vertices (num_vertices), the number of edges (num_edges), and the number of triangles (num_triangles) of the mesh in each layer.
[0030] The base mesh region describes the edges, triangles, and vertex coordinates (coords) of the base mesh. The subband mesh region describes additional detailed information required for layers with higher resolution than the base mesh, and describes the vertex coordinates (coords) of vertices newly generated in the subdivision process from layers with lower resolution at each layer. In other words, note that the number of vertices described in the header region differs from the number of vertices described in the subband mesh region at the same layer.
[0031] Next, the regular division process of the above-mentioned progressive mesh will be described with reference to the flowchart of FIG. 3(B). Here, the number of vertices of the mesh before division is NV, the number of edges is NE, and the number of triangles is NT, and hereinafter, the reference number of each element is indicated by (n). Note that, for vertices, the reference numbers are maintained before and after division because the vertices after division also use the vertices before division, but for edges and triangles, independent (unique) reference numbers are assigned before and after division. FIG. 6 shows the change in mesh data described in the progressive format before and after subdivision (i.e., the relationship between the reference numbers of vertices V, edges E, and triangles T), and FIG. 7 shows the change in the number of elements before and after subdivision.
[0032] In S308, the topology subdivision unit 205, for example, assumes that the edge of interest is Ed and divides the two vertices (V a , V b ) is the average coordinate of the new vertex V NV+d In S309, the topology subdivision unit 205 generates edges E 2d , E 2d+1 As a new edge, in S310, the topology subdivision unit 205 determines whether or not the division process has been executed for all edges.
[0033] In this way, in S308 to S310, the topology subdivision unit 205 performs the division process by focusing on each edge before division in order. In addition, referring to FIG. 13, the relationship between FIG. 13(A) and FIG. 13(B) is shown. That is, the new vertex V NV+0 , V NV+1 , V NV+2 and generate a new edge E 20 and E 20+1 , New Edge E 21 and E 21+1 , New Edge E 22 and E 22+1 Generate.
[0034] In S311, the topology subdivision unit 205 divides the edges Ed, Ee, and Ef that constitute the triangle Tg to generate three new vertices V NV+d , V NV+e , V NV+f Thus, the topology subdivision unit 205 creates three new edges E 2NE+3g , E 2NE+3g+1 , E2 NE+3g+2 In S312, the nine new edges E 2d , E 2d+1 , E 2e , E 2e+1 , E 2f , E 2f+1 , E 2NE+3g ~E 2NE+3g+2 The four new triangles T 4g ~T 4g+3 In S313, the topology subdivision unit 205 determines whether or not the subdivision process has been performed on all triangles.
[0035] In this way, in steps S311 to S313, a new edge is generated, and furthermore, a new triangle is defined (generated). In addition, referring to FIG. 13, as shown in the relationship between FIG. 13(B) and FIG. 13(C), the new vertex V NV+0 , V NV+1 , V NV+2By connecting these elements, four new triangles are generated (defined) as shown in Fig. 13(C). This creates a topology (i.e., information expressing the connection relationships between each element).
[0036] In addition, Fig. 7 shows the change in the number of vertices, edges, and triangle elements before and after subdivision. In Fig. 7, the new vertices generated in S308 are described in the area indicated by reference numeral 701, the new edges generated in S309 in the area indicated by reference numeral 702, the new edges generated in S311 in the area indicated by reference numeral 703, and the new triangles generated in S312 in the area indicated by reference numeral 704.
[0037] Next, the decoding unit shown in Fig. 2(B) will be described. The decoding unit decodes the progressive mesh data generated by the encoding unit in Fig. 2(A) to obtain a mesh of a desired resolution (a mesh of a set hierarchy). For example, when a mesh of a second hierarchy is specified as the number of resolution stages for progressive mesh data generated with PD (number of resolution stages) = 3, the decoding unit obtains a mesh with four times the number of faces as the base mesh. Note that, although this embodiment is designed to output only the mesh of the hierarchy set at the time of decoding, it may be arranged to output the topologies of all the hierarchies obtained in the process of decoding.
[0038] As shown in FIG. 2B, the decoding unit includes a mesh input unit 208, a topology storage unit 209, a topology subdivision unit 210, a geometry storage unit 211, a geometry acquisition unit 212, a mesh restoration unit 213, and a mesh output unit 214.
[0039] A mesh input unit 208 inputs progressive mesh data into the progressive encoding device, stores (sets) the topology in a topology storage unit 209 , and stores vertex coordinate information in a geometry storage unit 211 .
[0040] The topology subdivision unit 210 subdivides the topology stored in the topology storage unit 209 and generates a topology of a mesh of a set hierarchy. The geometry acquisition unit 212 acquires, from among the vertex coordinates stored in the geometry storage unit 211, a portion (vertex coordinate data) necessary for the set hierarchy.
[0041] The mesh restoration unit 213 converts the topology of the subdivided mesh to acquire a topology in an existing data description format, and acquires a representation of the mesh in the set hierarchy together with the vertex coordinate data acquired from the geometry acquisition unit 212. The mesh output unit 214 outputs the generated mesh.
[0042] Next, the outline and procedure of the process executed in the decoding unit of the progressive encoding device shown in Fig. 2B will be described with reference to the flow chart of Fig. 9A. In S901, the mesh input unit 208 inputs progressive mesh data into the progressive encoding device.
[0043] In S902, the topology subdivision unit 210 performs regular division of the topology of the base mesh. In S903, when acquiring a mesh with N levels of resolution, the topology subdivision unit 210 determines whether or not the regular division in S902 has been performed N-1 times.
[0044] In S904, the mesh restoration unit 213 converts the progressively expressed triangle into mesh data of an existing mesh expression (i.e., mesh data in an existing data description format). In this case, by following the data description format of FIG. 4 (i.e., the description order of edge references in the triangle, and the description order of vertex references in the edge), it is possible to obtain vertices without mistaking the front and back of the mesh faces. Specifically, for example, of the three edges constituting the triangle, the first vertex described in the first position of the edge described in the first position, the second vertex described in the first position of the edge described in the first position, and the second vertex described in the second position of the edge described in the second position may be extracted. In S905, the mesh output unit 214 outputs the generated mesh.
[0045] Next, the regular division process of the base mesh topology executed in S902 will be described with reference to the flowchart in Fig. 9(B). Note that Fig. 9(B) is different from Fig. 3(B) in that S308 in Fig. 3(B) is not executed (i.e., in Fig. 9(B), vertex coordinates are not calculated, and input vertex coordinate information is used).
[0046] With the above-mentioned configuration, the topology of the mesh is managed by the edge, so that the generation rules of the topology generated in the upper layer are simplified, and it is possible to realize the progressive coding of the three-dimensional mesh that can be decoded at high speed. Note that the contents described in this embodiment can be similarly applied to the two-dimensional mesh.
[0047] 10 is a diagram showing the hardware configuration of an encoding device according to this embodiment. The encoding device according to this embodiment includes a CPU 1001, a RAM 1002, a ROM 1003, a keyboard 1004, a mouse 1005, a display device 1006, an external storage device 1007, a storage medium drive 1008, and an I / F 1009.
[0048] A CPU (Central Processing Unit) 1001 controls the entire computer using computer programs or data stored in a RAM 1002 or a ROM 1003. The CPU 1001 also executes the above-mentioned processes described as being executed by the encoding device. A RAM (Random Access Memory) 1002 is an example of a computer-readable storage medium. The RAM 1002 has a storage area for temporarily storing computer programs and data loaded from an external storage device 1007, a storage medium drive 1008, or a network I / F (interface) 1009. The RAM 1002 also has a work area used when the CPU 1001 executes various processes. That is, the RAM 1002 can provide various areas as appropriate. A ROM (Read Only Memory) 1003 is an example of a computer-readable storage medium, and stores, for example, computer setting data, a boot program, etc.
[0049] The CPU 1001 of the encoding device according to this embodiment realizes some of the functions of the blocks shown in Fig. 2. That is, the CPU 1001 realizes the functions of the mesh simplification unit 202, the topology conversion unit 203, the mesh subdivision unit 204, the topology subdivision unit 210, the geometry acquisition unit 212, and the mesh restoration unit 213 as some of the blocks shown in Fig. 2. In addition, some of the blocks shown in Fig. 2 can be implemented as software (computer program) executed by the CPU 1001 by the CPU 1001 executing a program loaded in the RAM 1002. In this case, this software is installed in the RAM 1002 of a computer such as a PC (Personal Computer). Then, the CPU 1001 of this computer executes the installed software, and this computer realizes the functions of the encoding device described above.
[0050] Note that one or more dedicated hardware or GPUs (Graphics Processing Units) different from the CPU 1001 may be provided, and at least a part of the processing by the CPU 1001 may be performed by the dedicated hardware or GPU. Examples of the dedicated hardware include ASICs (Application Specific Integrated Circuits), FPGAs (Field-Programmable Gate Arrays), and DSPs (Digital Signal Processors). As a supplement, the topology storage unit 209 and the geometry storage unit 211 in Fig. 2 correspond to, for example, the RAM 1002, the external storage device 1007, etc.
[0051] The keyboard 1004 and mouse 1005 are operated by a computer operator, and can be used to input various instructions and data to the CPU 1001. The display device 1006 is composed of a CRT, a liquid crystal screen, or the like, and can display the results of processing by the CPU 1001 as images, characters, etc.
[0052] The external storage device 1007 is an example of a computer-readable storage medium, and is a large-capacity information storage device such as a hard disk drive. The external storage device 1007 stores, for example, an OS (operating system), computer programs and data for causing the CPU 1001 to execute the processes shown in Figures 3(A) and (B), the above-mentioned various tables, databases, etc. The computer programs and data stored in the external storage device 1007 are loaded into the RAM 1002 as appropriate under the control of the CPU 1001.
[0053] The storage medium drive 1008 reads out computer programs and data stored in a storage medium such as a CD-ROM or DVD-ROM, and outputs the read computer programs and data to the RAM 1002 or the external storage device 1007. Note that a part or all of the information described as being stored in the external storage device 1007 may be stored in advance in the above-mentioned storage medium such as a CD-ROM or DVD-ROM, and read by the storage medium drive 1008.
[0054] The network I / F 1009 is an interface for inputting vertex indices and the like from an external device and outputting coded data to an external device, and is, for example, a Universal Serial Bus (USB). The bus 1010 is a bus for connecting each unit in the progressive coding device.
[0055] In the above hardware configuration, when the computer is powered on, the CPU 1001 loads the OS from the external storage device 1007 into the RAM 1002 in accordance with a boot program stored in the ROM 1003. As a result, input operations can be performed via the keyboard 1004 and the mouse 1005, and a GUI (Graphical User Interface) can be displayed on the display device 1006. Furthermore, when a user operates the mouse 1005 or the like to instruct the start of a texture mapping application stored in the external storage device 1007, the CPU 1001 loads the texture mapping application into the RAM 1002 and executes various processes. In this way, the above-mentioned computer functions as an encoding device.
[0056] The progressive encoding application program executed by the CPU 1001 includes functions corresponding to the mesh simplification unit 202, mesh subdivision unit 204, topology subdivision unit 210, and mesh restoration unit 213. The processing results here are stored in the external storage device 1007. As described above, the above-mentioned computer can be applied to the encoding device according to this embodiment.
[0057] (Embodiment 2) In the above-mentioned embodiment 1, an example has been described in which edge data is embedded in a data structure for high-speed decoding. However, in the embodiment 1, while meshes can be decoded at high speed, the number of edges is about three times the number of vertices, and the number of elements is large, so that the amount of data tends to be large.
[0058] Therefore, in this embodiment, a method for realizing progressive encoding without embedding edge data in the data structure of the output data for the purpose of reducing the amount of data will be described. Note that, with respect to the encoding device according to this embodiment, the functions of each block described below may be realized by a program consisting of a group of functions having the functions of each block, as with the encoding device shown in FIG. 2 above. Also, in the above-mentioned first embodiment, a triangular mesh was used as an example of a constituent unit of the mesh, but in this embodiment, a quadrilateral mesh will be used as an example.
[0059] Fig. 12 is a diagram showing the functional configuration of a progressive encoding device. In Fig. 12, Fig. 12(A) shows an encoding unit, and Fig. 12(B) shows a decoding unit. As shown in Fig. 12(A), the encoding unit includes a mesh input unit 1201, a mesh simplification unit 1202, a topology conversion unit 1203, a mesh subdivision unit 1204, and a mesh output unit 1207. Furthermore, the mesh subdivision unit 1204 includes a topology subdivision unit 1205 and a geometry calculation unit 1206. As shown in Fig. 12(B), the decoding unit includes the following. That is, it includes a mesh input unit 1208, a topology storage unit 1209, a topology conversion unit 1210, a topology subdivision unit 1211, a geometry storage unit 1212, a geometry acquisition unit 1213, a mesh restoration unit 1214, and a mesh output unit 1215.
[0060] Hereinafter, the description will be mainly omitted for the contents common to the first embodiment, and the description will focus on the parts different from the first embodiment. As in the first embodiment, the mesh simplification unit 1202 of the encoding unit simplifies the mesh of the input mesh data, and outputs the topology of the base mesh in the existing data description format obtained by the above to the mesh output unit 1207. The mesh output unit 1207 outputs the topology of the base mesh in the general data description format, not the topology of the mesh represented progressively.
[0061] The mesh input unit 1208 of the decoding unit receives a base mesh in an existing data description format from the mesh output unit 1207 of the encoding unit. The mesh input unit 1208 stores the topology of the received base mesh in the topology storage unit 1209, and stores the geometry of the base mesh in the geometry storage unit 1212.
[0062] The topology converter 1210 converts the topology of the base mesh into a progressive representation. Here, the input and output of the topology conversion unit 1210 is assumed to be the same as the input and output of the topology conversion unit 1203. That is, in this way, the decoding unit converts the base mesh into a progressive representation. After that, the topology subdivision unit 1211 subdivides the topology of the base mesh converted into a progressive representation by the topology conversion unit 1210, and generates the topology of the mesh of the set hierarchy.
[0063] In addition, in this embodiment, as described above, quadrilateral meshes are treated as constituent units of meshes, so the process of mesh subdivision (division) is basically the same as in Fig. 5, but the topology differs from that in Fig. 5, as shown in Fig. 11. Specifically, in contrast to a triangular mesh, in edge division of a quadrilateral mesh, the edge in Fig. 13(D) is divided as in Fig. 13(E), which is the same as in embodiment 1, but differs in that a new vertex is generated inside the quadrilateral, as shown in Fig. 13(F).
[0064] In the above, in this embodiment, the configuration of outputting the topology of the base mesh in the existing data description format and realizing progressive encoding has been described. With this configuration, the encoding device according to this embodiment can reduce the amount of data required for topology compared with the encoding device according to the first embodiment. <Other embodiments> The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions. [Explanation of symbols]
[0065] 203 Topology Conversion Unit 204 Mesh refinement section 207 Mesh output section
Claims
1. An acquisition means for acquiring from an external device first mesh data representing a shape of an object and position information indicating positions of vertices of polygons constituting second mesh data representing the shape of the object; a generating means for generating the second mesh data by regularly dividing edges of polygons constituting the first mesh data obtained by the obtaining means, using the position information obtained by the obtaining means; 13. An information processing device comprising:
2. The acquiring means acquires information on the number of positions of vertices of polygons constituting the second mesh data.
2. The information processing apparatus according to claim 1,
3. The number of polygons constituting the second mesh data is greater than the number of polygons constituting the first mesh data.
3. The information processing device according to claim 1 or 2.
4. An acquisition step of acquiring from an external device first mesh data representing a shape of an object and position information indicating positions of vertices of polygons constituting second mesh data representing the shape of the object; a generating step of generating the second mesh data by regularly dividing edges of polygons constituting the first mesh data obtained in the obtaining step, using the position information obtained in the obtaining step; 13. An information processing method comprising:
5. A program for causing a computer to function as each of the means of the information processing device according to any one of claims 1 to 3.
Citation Information
Patent Citations
Progressive coding / decoding method for three- dimensional mesh information and its system
JP2000092487A
Method and apparatus for generating three-dimensional graphic data, generating texture image, and coding and decoding multi-dimensional data, and program therefor
JP2005332028A
Method and device for adaptive refinement of progressive mesh
JP2007265459A
