Mesh decoding device, mesh decoding method, and program

The mesh decoding device and method address redundancy in mesh decoding by correcting the sub-mesh number, thereby reducing coding requirements and preventing decoding failures.

JP2025161362APending Publication Date: 2025-10-24KDDI CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024064484
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-12
Publication Date
2025-10-24

AI Technical Summary

Technical Problem

Existing mesh decoding technologies allow for the encoding of a sub-mesh number of 0, leading to redundancy and inefficiency in coding.

Method used

A mesh decoding device and method that includes an SEI message decoding unit to generate a corrected sub-mesh number by adding a positive integer N to the control signal representing the corrected sub-mesh number, reducing the amount of code required.

Benefits of technology

This approach reduces the amount of code needed for mesh decoding by correcting the sub-mesh number and preventing abnormal decoding processes due to referencing issues.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025161362000001_ABST
    Figure 2025161362000001_ABST
Patent Text Reader

Abstract

To provide a mesh decoding device, a mesh decoding method, and a program which reduce the code amount.SOLUTION: A mesh decoding device 200 includes an SEI message decoding section 209 for generating the number of correction submeshes by adding a positive integer N to a control signal indicating the number of the correction submeshes, so as to output it.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a mesh decoding device, a mesh decoding method, and a program. [Background technology]

[0002] In Non-Patent Document 1, meshes are decoded by dividing them into basic meshes that represent rough information and displacements that represent detailed information, and the displacements are decoded using a video codec. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] Khaled Mammou, Jungsun Kim, Alexis Tourapis, Dimitri Podborski, Krasimir Kolarov, “[V-CG] Apple's Dynamic Mesh Coding CfP Response,” ISO / IEC JTC 1 / SC 29 / WG 7 m59281, April 2022. [Non-patent document 2] Google Draco, accessed May 26, 2022 [Online], https: / / google.github.io / draco Summary of the Invention [Problem to be solved by the invention]

[0004] However, although the number of sub-meshes to be corrected is always at least 1, the existing syntax allows for the encoding of 0, which is a problem of redundancy. Therefore, the present invention has been made in view of the above-mentioned problems, and aims to provide a mesh decoding device, a mesh decoding method, and a program that can reduce the amount of coding. [Means for solving the problem]

[0005] A first feature of the present invention is that it is a mesh decoding device comprising an SEI message decoding unit configured to generate and output a corrected submesh number by adding a positive integer N to a control signal representing the corrected submesh number.

[0006] A second feature of the present invention is that it is a mesh decoding method comprising a step E of generating and outputting a corrected submesh number by adding a positive integer N to a control signal representing the corrected submesh number.

[0007] A third feature of the present invention is a program that causes a computer to function as a mesh decoding device, wherein the mesh decoding device includes an SEI message decoding unit that is configured to generate and output a corrected submesh number by adding a positive integer N to a control signal representing the corrected submesh number. [Effects of the Invention]

[0008] According to the present invention, it is possible to provide a mesh decoding device, a mesh decoding method and a program that can reduce the amount of code. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram showing an example of the configuration of a mesh processing system 1 according to an embodiment. [Figure 2] FIG. 2 is a diagram illustrating an example of functional blocks of a mesh decoding device 200 according to an embodiment. [Figure 3] FIG. 3 is a diagram showing an example of the syntax configuration of Zippering. [Figure 4] FIG. 4 is a diagram showing an example of a basic mesh. [Figure 5] FIG. 5 is a diagram for explaining an example of a method for decoding a subdivision mesh in the subdivision unit 203. In FIG. [Figure 6]FIG. 6 is a flowchart showing an example of processing performed by the boundary correction unit 208 to calculate boundary pairs of subdivision vertices. [Figure 7] FIG. 7 is a diagram showing a schematic diagram of a boundary correction method. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, embodiments of the present invention will be described with reference to the drawings. Note that the components in the following embodiments can be appropriately replaced with existing components, etc., and various variations, including combinations with other existing components, are possible. Therefore, the description of the following embodiments does not limit the content of the invention described in the claims.

[0011] First Embodiment Hereinafter, a mesh processing system 1 according to this embodiment will be described with reference to FIGS.

[0012] 1 is a diagram showing an example of the configuration of a mesh processing system 1 according to this embodiment. As shown in FIG. 1, the mesh processing system 1 includes a mesh encoding device 100 and a mesh decoding device 200.

[0013] FIG. 2 is a diagram showing an example of functional blocks of the mesh decoding device 200 according to this embodiment.

[0014] As shown in Figure 2, the mesh decoding device 200 includes a demultiplexing unit 201, a basic mesh decoding unit 202, a subdivision unit 203, a mesh decoding unit 204, a displacement amount decoding unit 205, a video decoding unit 206, an atlas data decoding unit 207, a boundary correction unit 208, and an SEI message decoding unit 209.

[0015] The demultiplexing unit 201 is configured to separate the multiplexed bit stream into an atlas bit stream, a base mesh bit stream, a displacement amount bit stream, a texture bit stream, and an SEI bit stream.

[0016] The base mesh decoding unit 202 is configured to decode the base mesh bitstream, generate and output a base mesh.

[0017] The base mesh is a mesh that has been simplified by reducing the number of faces compared to the mesh before encoding, and is used to represent the basic shape of the mesh.

[0018] Furthermore, the basic mesh is made up of one sub-mesh or multiple sub-meshes.

[0019] The subdivision unit 203 is configured to generate and output a subdivision mesh, subdivision vertex normals, and subdivision information from the basic mesh decoded by the basic mesh decoding unit 202 using the subdivision method indicated by the atlas control information.

[0020] Here, the basic mesh, the added subdivision vertices, and the connection information therebetween are collectively referred to as a "subdivision mesh."

[0021] The subdivision vertex normal is a normal defined for each subdivision vertex, and the subdivision information is information indicating which vertices are subdivided to generate which vertices.

[0022] The mesh decoding unit 204 is configured to generate and output a decoded mesh using the subdivision mesh and subdivision vertex normals generated by the subdivision unit 203 and the displacement amount decoded by the displacement amount decoding unit 205.

[0023] The displacement decoding unit 205 is configured to decode the displacement bitstream to generate and output a displacement.

[0024] The video decoding unit 206 is configured to decode the texture using a video codec and output the decoded texture.

[0025] The atlas data decoder 207 is configured to decode the atlas bitstream and output the atlas control information.

[0026] The boundary correction unit 208 is configured to correct the sub-mesh boundaries of the input decoded mesh and output the boundary-corrected decoded mesh.

[0027] The SEI message decoder 209 is configured to decode the SEI message bit stream and output the corrected submesh number, the corrected submesh boundary vertex number, and the boundary pair.

[0028] Here, the number of correction submeshes is the number of submeshes to be corrected, the number of correction submesh boundary vertices is the number of vertices to be corrected in the submesh, and the boundary pair is a list of vertices to be corrected.

[0029] (SEI message decoding unit 209) The SEI message decoder 209 is configured to decode the SEI bitstream and output the corrected submesh number, the corrected submesh boundary vertex number, and the boundary pair.

[0030] The control information decoded by SEI message decoding section 209 will be described with reference to FIG.

[0031] First, the SEI bitstream includes a correction syntax Zippering, which is a collection of control information related to submesh boundary correction.

[0032] Zippering may be defined for each mesh data, or may be defined at a finer granularity such as frame, patch, or tile.

[0033] Hereinafter, the structure of the syntax decoded by SEI message decoder 209 and the decoding method thereof will be described with reference to FIG.

[0034] 3 is a diagram showing an example of the syntax configuration of Zippering. Here, if the syntax functions are similar, syntax names different from those shown in FIG. 3 may be used.

[0035] In the Zippering syntax structure shown in Figure 3, the Description column indicates how each syntax is coded. Also, ue(v) indicates an unsigned zeroth-order exponential-Golomb code, and u(n) indicates a fixed code length of n bits.

[0036] Description is merely an example, and coding methods other than Description of diagrams, such as u(n), ue(v), and ae(v), may be selected.

[0037] Zippering includes a control signal zp_persistence_flag that indicates whether to use the correction syntax of the previous frame as is.

[0038] Zippering includes a control signal zp_number_of_submeshes_minus1 that indicates the number of corrected submeshes.

[0039] The corrected number of submeshes, numSubmeshes, can be decoded by adding 1 to zp_number_of_submeshes_minus1.

[0040] As described above, the SEI message decoding unit 209 is configured to decode the SEI bit stream and add 1 to the control signal representing the corrected submesh number, thereby generating and outputting the corrected submesh number.

[0041] By using this configuration, the absolute value of the value to be decoded can be reduced, and when the value is encoded using exponential-Golomb coding, the amount of code can be reduced compared to when 1 is not added.

[0042] When parallelization is performed on a submesh basis, the number of corrected submeshes is often set to a small value due to hardware limitations.

[0043] When encoding small values ​​using exponential-Golomb coding, there is a high possibility that the amount of bits will change by just changing the value by 1, so there is a high possibility that the amount of code can be reduced.

[0044] The corrected submesh number may be configured to be decoded by adding a natural number N to the control signal representing the corrected submesh number.

[0045] By using this configuration, the absolute value of the value to be decoded can be reduced depending on the value of the natural number N, and when the value is encoded using exponential-Golomb coding, the amount of code can be reduced compared to when N is not added.

[0046] The number of corrected sub-meshes may be defined to be equal to or less than the number of sub-meshes decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, the subdivision unit 203, and the like.

[0047] For example, the number of corrected sub-meshes may be defined to be the same value as the number of sub-meshes decoded by the atlas decoding unit 207 , the basic mesh decoding unit 202 , or the subdivision unit 203 .

[0048] Furthermore, if the number of sub-meshes decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, and the subdivision unit 203 is different, the corrected number of sub-meshes may be defined so that it is less than or equal to the average value, maximum value, or minimum value.

[0049] Furthermore, the value of zp_number_of_submeshes_minus1 may be defined to take an integer value ranging from 0 to the value of "the number of submeshes decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, the subdivision unit 203, etc."

[0050] Furthermore, the maximum number of correction sub-meshes may be defined to be equal to or less than the number of sub-meshes decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, the subdivision unit 203, and the like.

[0051] As described above, the number of corrected sub-meshes decoded by the SEI message decoding unit 209 is configured to be the same as or less than the number of sub-meshes decoded by the atlas decoding unit, basic mesh decoding unit, and subdivision unit.

[0052] By adopting such a configuration, it is possible to prevent the decoding process from terminating abnormally due to the inability to refer to the submesh to be corrected.

[0053] If the corrected number of submeshes exceeds the number of submeshes decoded by other decoding units such as the atlas decoding unit 207, the basic mesh decoding unit 202, or the subdivision unit 203, the corrected number of submeshes may be corrected so that it is the same as or less than the number of submeshes decoded by the other decoding units.

[0054] For example, the corrected number of sub-meshes may be corrected so that it becomes the same value as the number of sub-meshes decoded by the atlas decoding unit 207 , the basic mesh decoding unit 202 , or the subdivision unit 203 .

[0055] In addition, the corrected number of sub-meshes may be corrected so that the corrected number of sub-meshes becomes equal to the maximum, minimum and average values ​​of the number of sub-meshes decoded by the atlas decoding unit 207, the basic mesh decoding unit 202 and the subdivision unit 203.

[0056] The value of zp_number_of_submeshes_minus1 may be corrected to take an integer value ranging from 0 to the value of "the number of submeshes decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, the subdivision unit 203, etc."

[0057] The maximum value of the corrected number of sub-meshes may be corrected so that it is equal to or less than the number of sub-meshes decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, the subdivision unit 203, and the like.

[0058] As described above, the SEI message decoding unit 209 is configured to correct the corrected number of submeshes decoded by the SEI message decoding unit 209 so that it is the same as or less than the number of submeshes decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, or the subdivision unit 203.

[0059] With this configuration, even if the number of correction submeshes is greater than the number of submeshes, it is possible to prevent the decoding process from terminating abnormally because the submeshes to be corrected cannot be referenced.

[0060] Zippering includes a control signal zp_number_of_border_points_minus1 that represents the corrected submesh boundary vertex number.

[0061] The corrected submesh boundary vertex number numBorderPoints can be decoded by adding 1 to zp_number_of_border_points_minus1.

[0062] As described above, the SEI message decoding unit 209 is configured to generate and output the corrected submesh boundary vertex number by decoding the SEI bit stream and adding 1 to the control signal representing the corrected submesh boundary vertex number.

[0063] By using this configuration, the absolute value of the value to be decoded can be reduced, and when the value is encoded using exponential-Golomb coding, the amount of code can be reduced compared to when 1 is not added.

[0064] The corrected submesh boundary vertex number may be configured to be decoded by adding a natural number N to the control signal representing the corrected submesh boundary vertex number.

[0065] By using this configuration, the absolute value of the value to be decoded can be reduced depending on the value of the natural number N, and when the value is encoded using exponential-Golomb coding, the amount of code can be reduced compared to when N is not added.

[0066] The number of corrected submesh boundary vertices may be defined to be equal to or less than the number of vertices of the submesh decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, the subdivision unit 203, or the like.

[0067] For example, the number of corrected submesh boundary vertices may be defined to be the same as the number of vertices of a submesh decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, or the subdivision unit 203.

[0068] In addition, if the number of vertices of the submeshes of the atlas decoding unit 207, the basic mesh decoding unit 202, and the subdivision unit 203 are different, the SEI message decoding unit 209 may define the corrected number of submesh boundary vertices so that it is less than or equal to the average value, maximum value, or minimum value.

[0069] In addition, the value of zp_number_of_border_points_minus1 may be defined to take an integer value ranging from 0 to the value of "the number of vertices of the submesh decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, the subdivision unit 203, etc."

[0070] In addition, the SEI message decoding unit 209 may define the maximum number of corrected submesh boundary vertices to be less than or equal to the number of vertices of the submesh decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, the subdivision unit 203, etc.

[0071] As described above, the number of corrected submesh boundary vertices decoded by the SEI message decoding unit 209 is configured to be the same as or less than the number of vertices of the submesh decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, or the subdivision unit 203.

[0072] With this configuration, it is possible to prevent the decoding process from terminating abnormally due to the inability to refer to the vertex to be corrected.

[0073] If the number of corrected submesh boundary vertices exceeds the number of submeshes decoded by other decoding units such as the atlas decoding unit 207, the basic mesh decoding unit 202, or the subdivision unit 203, the SEI message decoding unit 209 may correct the number of corrected submesh boundary vertices so that it is the same as or less than the number of vertices of the submeshes decoded by the other decoding units.

[0074] For example, the SEI message decoding unit 209 may correct the number of corrected submesh boundary vertices so that it becomes the same value as the number of vertices of the submesh decoded by either the atlas decoding unit 207, the basic mesh decoding unit 202, or the subdivision unit 203.

[0075] In addition, the SEI message decoding unit 209 may correct the number of corrected submesh boundary vertices so that it becomes the same as either the maximum, minimum, or average value of the number of vertices of the submeshes decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, or the subdivision unit 203.

[0076] In addition, the value of zp_number_of_border_points_minus1 may be corrected to take an integer value between 0 and the value of "the number of vertices of the submesh decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, the subdivision unit 203, etc."

[0077] In addition, the SEI message decoding unit 209 may correct the maximum number of corrected submesh boundary vertices so that it is less than or equal to the number of vertices of the submesh decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, the subdivision unit 203, etc.

[0078] As described above, the number of corrected submesh boundary vertices decoded by the SEI message decoding unit 209 is configured to be corrected to be equal to or less than the number of vertices of the submesh decoded by the atlas decoding unit 207, the basic mesh decoding unit 202, and the subdivision unit 203.

[0079] By adopting such a configuration, even if the number of correction submesh boundary vertices is greater than the number of vertices of the submesh, it is possible to prevent the decoding process from terminating abnormally due to the inability to reference the vertices of the submesh to be corrected.

[0080] Zippering includes a control signal zp_subdivision_vertex_border_calculation_flag that indicates whether the border pairs of subdivision vertices are calculated based on the subdivision information.

[0081] Zippering includes the submesh index of the boundary pair zp_border_point_match_submesh_index[k][p][b].

[0082] Zippering includes the border vertex indices zp_border_point_match_border_point_index[k][p][b] of the border pair.

[0083] Here, when zp_border_point_match_submesh_index[k][p][b]=q and zp_border_point_match_border_point_index[k][p][b]=c, it indicates that vertex v(p,b) and vertex v(q,c) are a boundary pair.

[0084] In this case, v(i,j) represents the vertex with boundary vertex index j on submesh i, where i and j are integers equal to or greater than 0.

[0085] (Basic mesh decoding unit 202) The base mesh decoding unit 202 is configured to decode the base mesh bitstream, generate and output a base mesh.

[0086] Here, the basic mesh is composed of one sub-mesh or multiple sub-meshes.

[0087] A submesh is made up of a number of vertices in three-dimensional space and edges connecting these vertices.

[0088] As shown in FIG. 4, the basic mesh is formed by combining basic faces each represented by three vertices.

[0089] The base mesh decoder 202 may be configured to decode the base mesh bitstream using, for example, Draco as described in Non-Patent Document 2 or other known mesh decoding techniques.

[0090] Multiple sub-meshes may be configured to be independently decoded using Draco or other known mesh decoding techniques.

[0091] (Subdivision section 203) A method for decoding a subdivision mesh in the subdivision unit 203 will be described with reference to FIG.

[0092] The subdivision unit 203 is configured to output a subdivision mesh, subdivision vertex normals, and subdivision information based on the base mesh.

[0093] Figure 5 shows an example of a subdivision mesh that has been subdivided once using the mid-edge division method. The mid-edge division method generates a subdivision mesh by dividing the midpoints of the edges that make up the mesh.

[0094] By repeating the above process, a finer subdivision mesh can be generated.

[0095] The subdivision unit 203 is configured to store, at the time of generation of a subdivision vertex, which vertex the subdivision vertex is located between, and to output this information to the boundary correction unit 208 as subdivision information.

[0096] The subdivision unit 203 may be configured not to record the above information when zp_subdivision_vertex_border_calculation_flag is 1. The subdivision unit 203 may be configured to perform decoding independently for each submesh.

[0097] (Displacement amount decoding unit 205) The displacement decoding unit 205 is configured to decode the displacement bitstream to generate and output a displacement.

[0098] The displacement may be defined so that it can be decoded independently for each sub-mesh.

[0099] (Mesh decoding unit 204) The mesh decoding unit 204 is configured to output a decoded mesh based on the input atlas control information, subdivision mesh, and displacement amount.

[0100] The mesh decoding unit 204 adds the displacement amounts to the vertices of the input subdivision mesh, and decodes the decoded mesh.

[0101] At this time, the mesh decoding unit 204 may output a plurality of decoded meshes for each submesh based on the displacement amount corresponding to the submesh and the subdivision mesh.

[0102] In addition, the mesh decoding unit 204 may be configured to set a coordinate system for the displacement amount based on a control signal representing a coordinate system for the displacement amount defined for each submesh, and calculate and output the decoded mesh by adding the displacement amount to the subdivision vertex on the set coordinate system.

[0103] (Boundary correction unit 208) A method for decoding a boundary-corrected decoded mesh in the boundary correction unit 208 will be described with reference to FIGS.

[0104] The boundary correction unit 208 is configured to correct the sub-mesh boundaries of the input decoded mesh and output the boundary-corrected decoded mesh.

[0105] When zp_persistence_flag is 1, the boundary correction unit 208 uses the sub-mesh boundary information of the reference frame as it is as the sub-mesh boundary information.

[0106] The boundary correction unit 208 may be configured to skip boundary correction when the frame to be corrected is not an interframe.

[0107] The boundary correction unit 208 may be configured to skip boundary correction and output the decoded mesh as is when the sub-mesh index or vertex index included in the boundary information does not exist.

[0108] Furthermore, the boundary correction unit 208 may be configured to skip correction of only the boundary pair of sub-mesh indexes or vertex indexes when these indexes are not included in the boundary information.

[0109] When zp_subdivision_vertex_border_calculation_flag is 0, the SEI message decoder 209 only finds boundary pairs of submesh vertices, so that it is necessary to find boundary pairs of subdivision vertices in order to perform corrections on the subdivision vertices as well.

[0110] However, when zp_subdivision_vertex_border_calculation_flag is 0, the boundary correction unit 208 may perform the correction process only on the boundary pairs calculated by the SEI message decoding unit 209 .

[0111] 6 is a flowchart showing the process of calculating boundary pairs of subdivision vertices in the boundary correction unit 208. A method of calculating boundary pairs of subdivision vertices will be described below with reference to FIG.

[0112] In step S208A-1, the boundary correction unit 208 substitutes 0 for variables i and j respectively, and proceeds to step S208A-2.

[0113] In step S208A-2, the boundary correction unit 208 determines whether the variable i satisfies i < numSubmeshes.

[0114] When the condition is satisfied, the boundary correction unit 208 proceeds to step S208A-3; when the condition is not satisfied, the process ends.

[0115] In step S208A-3, the boundary correction unit 208 determines whether the variable j satisfies j < numBorderPoints.

[0116] When the condition is satisfied, the boundary correction unit 208 proceeds to step S208A-4; when the condition is not satisfied, it proceeds to step S208A-9.

[0117] In step S208A-4, the boundary correction unit 208 determines which edge the vertex v(i, j) is generated by subdividing, and proceeds to step S208A-5.

[0118] When the vertex v(i,j) is a vertex generated by subdividing the edge e(v(i0,j0),v(i0,j1)), the vertices to be determined are v(i0,j0) and v(i0,j1).

[0119] Here, the edge e(v(i0,j0),v(i0,j1)) represents an edge whose endpoints are v(i0,j0) and v(i0,j1).

[0120] In step S208A-5, the boundary correction unit 208 determines the vertices that are vertex pairs with the vertices constituting the calculated edge, and proceeds to step S208A-6.

[0121] Assume that the vertices calculated in step S208A-4 are v(i0,j0) and v(i0,j1). Furthermore, if v(i0,j0) and v(i1,j0) are a vertex pair and v(i0,j1) and v(i1,j1) are a vertex pair, the vertices to be found are v(i1,j0) and v(i1,j1).

[0122] In step S208A-6, boundary correction unit 208 finds vertices to be generated by subdividing the side whose endpoints are vertices v(i1, j0) and v(i1, j1) calculated in step S208A-5, and proceeds to step S208A-7.

[0123] When subdividing the edge e(v(i1,j0),v(i1,j1)) to generate the vertex v(i2,j2), the vertex obtained is v(i2,j2).

[0124] In step S208A-7, boundary correction unit 208 adds the vertex found in step S208A-4 and the vertex found in step S208A-6 to the boundary pair, and proceeds to step S208A-8.

[0125] In step S208A-8, boundary correction unit 208 adds 1 to variable j, and proceeds to step S208A-4.

[0126] In step S208A-9, boundary correction unit 208 adds 1 to variable i and proceeds to step S208A-2.

[0127] 7 is a diagram showing a schematic diagram of the boundary correction method, which will be described below with reference to FIG.

[0128] In FIG. 7, arrows indicate that vertices are boundary pairs, and in boundary correction, correction processing is applied to the coordinates of the vertices that have boundary pairs.

[0129] Here, consider the case where correction processing is applied to the boundary pair of vertices v(i0,j0) and v(i1,j0).

[0130] First, the boundary correction unit 208 calculates the average value of the coordinates of v(i0, j0) and v(i1, j0), and sets the two vertices to the calculated average value.

[0131] The boundary correction unit 208 repeats the above process for the boundary vertices of all boundary pairs to correct the vertex coordinates.

[0132] This is expected to have the effect of filling holes even if they exist before the correction process.

[0133] Here, the boundary correction unit 208 may not perform boundary correction processing for the corresponding boundary pair when the submesh index exceeds the number of submeshes defined in other bitstreams such as the atlas bitstream or the base mesh bitstream.

[0134] For example, when the submesh index is less than or equal to the maximum, minimum, or average number of submeshes defined in other bitstreams such as the atlas bitstream or the basic mesh bitstream, boundary correction processing may not be performed for the corresponding boundary pair.

[0135] This makes it possible to prevent the boundary correction process from ending abnormally because the submesh to be corrected cannot be referenced, even if the submesh index is greater than the number of submeshes.

[0136] Furthermore, when the boundary vertex index exceeds the number of vertices of a submesh defined in another bitstream such as an atlas bitstream, the boundary correction unit 208 may not perform boundary correction processing on the corresponding boundary pair.

[0137] Alternatively, when the vertex indicated by the boundary vertex index does not exist on the mesh, the boundary correction unit 208 may not perform boundary correction processing on the corresponding boundary pair.

[0138] This prevents the boundary correction process from ending abnormally because the vertices of the submesh to be corrected cannot be referenced, even if the boundary pair index is greater than the number of vertices of the submesh.

[0139] According to this embodiment, the correction submesh number in the correction syntax is decoded by adding 1 to the control signal representing the correction submesh number in the correction syntax, so that the amount of code can be reduced.

[0140] Furthermore, according to this embodiment, the number of corrected submesh boundary vertices in the correction syntax is decoded by adding 1 to the control signal representing the number of corrected submesh boundary vertices in the correction syntax, thereby reducing the amount of code.

[0141] The mesh encoding device 100 and the mesh decoding device 200 described above may be realized as a program that causes a computer to execute each function (each step). [Industrial Applicability]

[0142] According to this embodiment, for example, it is possible to improve the overall service quality in video communication, which will contribute to the achievement of Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), which is to "Develop resilient infrastructure, promote sustainable industrialization and foster innovation." [Explanation of symbols]

[0143] 1...Mesh processing system 100...Mesh coding device 200...Mesh decoding device 201…Demultiplexer 202...Basic mesh decoding unit 203…Subdivision part 204...Mesh decoding unit 205...Displacement amount decoding unit 206...Video decoding unit 207...Atlas data decoding unit 208...Boundary correction section 209...SEI message decoding unit

Claims

1. A mesh decoding device, comprising: A mesh decoding device characterized by having an SEI message decoding unit configured to generate and output a corrected submesh number by adding a positive integer N to a control signal representing the corrected submesh number.

2. 2. The mesh decoding device according to claim 1, wherein the corrected number of sub-meshes is configured to be equal to or less than the number of sub-meshes decoded by the other decoding units.

3. The mesh decoding device described in claim 1, characterized in that the boundary correction unit is configured to correct the number of submeshes to be equal to or less than the number of submeshes decoded by the other decoding units if the number of submeshes exceeds the number of submeshes decoded by the other decoding units.

4. 4. The mesh decoding device according to claim 1, wherein the positive integer N is 1.

5. 1. A mesh decoding method, comprising: a step E of generating and outputting a corrected submesh number by adding a positive integer N to a control signal representing the corrected submesh number.

6. A program that causes a computer to function as a mesh decoding device, The mesh decoding device comprises: A program comprising an SEI message decoding unit configured to generate and output a corrected submesh number by adding a positive integer N to a control signal representing the corrected submesh number.