Mesh decoding device, mesh decoding method, and program

The mesh decoding device and method address the inefficiency in existing mesh decoding by using an atlas data decoding unit and subdivision unit to generate control information and subdivision mesh, resulting in efficient compression and improved video communication quality.

WO2025009217A1PCT designated stage expired Publication Date: 2025-01-09KDDI CORP

Patent Information

Application Number
PCT/JP2024/007922
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-07-04
Filing Date
2024-03-03
Publication Date
2025-01-09

AI Technical Summary

Technical Problem

Existing mesh decoding methods lack the ability to efficiently compress mesh data by not allowing separate decoding of mesh parts or controlling quality, leading to uniform processing that does not account for characteristics, resulting in inefficient compression.

Method used

A mesh decoding device and method that includes an atlas data decoding unit, basic mesh decoding unit, subdivision unit, and mesh decoding unit to generate and output control information, subdivision mesh, and subdivision vertex normals, enabling efficient compression by decoding an atlas bitstream and basic mesh bitstream to produce a decoded mesh.

Benefits of technology

Enables efficient compression of mesh data by allowing separate decoding of mesh parts and controlling quality, improving compression efficiency and service quality in video communication.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024007922_09012025_PF_FP_ABST
    Figure JP2024007922_09012025_PF_FP_ABST
Patent Text Reader

Abstract

A mesh decoding device 200 according to the present invention is provided with: an atlas data decoding unit 207 that decodes an atlas bitstream to generate and output first control information; a basic mesh decoding unit 202 that decodes a basic mesh bitstream to generate and output second control information and a basic mesh; a subdivision unit 203 that decodes the first control information, the second control information, and the basic mesh to output a subdivided mesh and subdivision vertex normals; and a mesh decoding unit 204 that generates a decoded mesh using the first control information, displacement amounts, the subdivided mesh, and the subdivision vertex normals as inputs.
Need to check novelty before this filing date? Find Prior Art

Description

Mesh decoding device, mesh decoding method and program

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

[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 by a video codec.

[0003] 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. Google Draco, accessed May 26, 2022 [Online], https: / / google.github.io / draco

[0004] However, in Non-Patent Document 1, the function of decoding separately for parts of a mesh or a method of controlling quality is not implemented, and the same processing is performed on the entire mesh, which causes a problem that encoding according to the local characteristics of the mesh data cannot be performed. Therefore, the present invention has been made in consideration of the above-mentioned problems, and an object of the present invention is to provide a mesh decoding device, a mesh decoding method, and a program that can perform efficient compression.

[0005] A first feature of the present invention is summarized as a mesh decoding device comprising: an atlas data decoding unit configured to decode an atlas bitstream to generate and output first control information; a base mesh decoding unit configured to decode a base mesh bitstream to generate and output second control information and a base mesh; a subdivision unit configured to output a subdivision mesh and subdivision vertex normals using the first control information, the second control information, and the base mesh as inputs; and a mesh decoding unit configured to generate a decoded mesh using the first control information, the displacement amount, the subdivision mesh, and the subdivision vertex normals as inputs.

[0006] A second feature of the present invention is summarized as a mesh decoding method comprising the steps of: decoding an atlas bitstream to generate and output first control information; decoding a base mesh bitstream to generate and output second control information and a base mesh; decoding the first control information, the second control information, and the base mesh to output a subdivision mesh and subdivision vertex normals; and generating a decoded mesh using the first control information, the displacement amount, the subdivision mesh, and the subdivision vertex normals as input.

[0007] A third feature of the present invention is summarized as a program that causes a computer to function as a mesh decoding device, the mesh decoding device comprising: an atlas data decoding unit configured to decode an atlas bitstream to generate and output first control information; a base mesh decoding unit configured to decode a base mesh bitstream to generate and output second control information and a base mesh; a subdivision unit configured to decode the first control information, the second control information, and the base mesh to output a subdivision mesh and subdivision vertex normals; and a mesh decoding unit configured to generate a decoded mesh using the first control information, the displacement amount, the subdivision mesh, and the subdivision vertex normals as input.

[0008] According to the present invention, it is possible to provide a mesh decoding device, a mesh decoding method and a program that can perform efficient compression.

[0009] FIG. 1 is a diagram showing an example of the configuration of a mesh processing system 1 according to an embodiment. FIG. 2 is a diagram showing an example of functional blocks of a mesh decoding device 200 according to an embodiment. FIG. 3 is a diagram showing an example of the syntax structure of an atlas bitstream. FIG. 4A is a diagram showing an example of the syntax structure of a PDU. FIG. 4B is a diagram showing an example of the syntax structure of an SDU. FIG. 4C is a diagram showing an example of the syntax structure of vdmc_lifting_transform_parameters. FIG. 5A is a diagram showing an example of a basic mesh. FIG. 5B is a diagram showing an example of a subdivision mesh. FIG. 6 is a diagram showing an example of functional blocks of a subdivision unit 203 of a mesh decoding device 200 according to an embodiment. FIG. 7 is a flowchart showing an example of the processing of a basic mesh subdivision unit 203A of the subdivision unit 203 of the mesh decoding device 200 according to an embodiment. FIG. 8 is a diagram showing an example of functional blocks of a displacement amount decoding unit 205 of a mesh decoding device 200 according to an embodiment.

[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 A mesh processing system 1 according to this embodiment will be described below 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 a mesh decoding device 200 according to this embodiment.

[0014] As shown in Figure 2, the mesh decoding device 200 has 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, and an atlas data decoding unit 207.

[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, and a texture bit stream.

[0016] The atlas data decoding unit 207 is configured to decode the atlas bitstream and output control information (first control information).

[0017] The basic mesh decoding unit 202 is configured to decode the basic mesh bit stream to generate and output control information (second control information) and basic meshes.

[0018] The subdivision unit 203 is configured to decode the control information output from the atlas data decoding unit 207 and the control information and basic mesh output from the basic mesh decoding unit 202, and output a subdivision mesh and subdivision vertex normals.

[0019] Specifically, the subdivision unit 203 is configured to generate and output the added subdivision vertices and their connection information from the basic mesh decoded by the basic mesh decoding unit 202 using the subdivision method indicated by the above-mentioned 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 mesh decoding unit 204 is configured to generate a decoded mesh using the control information, displacement amount, subdivision mesh, and subdivision vertex normals output from the atlas data decoding unit 207 as input.

[0022] Specifically, 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 amount decoding unit 205 is configured to decode the displacement amount bitstream to generate and output the displacement amount.

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

[0025] (Atlas Data Decoding Unit 207) Hereinafter, the control information decoded by the atlas data decoding unit 207 will be described with reference to FIGS.

[0026] FIG. 3 is a diagram showing an example of the syntax structure of an atlas bitstream.

[0027] As shown in FIG. 3, first, the atlas bitstream may include a submesh data header (SDH), which is a collection of header information for the submesh.

[0028] Second, the atlas bitstream may include SDUs (Submesh data units) that represent data for control information related to the submeshes.

[0029] Third, the atlas bitstream may include a patch data header (PDH), which is a collection of header information for the patches.

[0030] Fourth, the atlas bitstream may include patch data units (PDUs) that represent data for control information related to the patch.

[0031] Here, a submesh is a unit of mesh that can be encoded / decoded as a single unit. The base mesh and displacement are defined independently for each submesh. A patch is defined as one area included in a submesh.

[0032] An example of the syntax structure of an SDU will be described below with reference to Fig. 4B. Fig. 4B is a diagram showing an example of the syntax structure of an SDU. Here, syntax names different from those shown in Fig. 4B may be used as long as the syntax functions are similar.

[0033] In the syntax structure of the SDU shown in Figure 4B, the Description column indicates how each syntax is coded. Also, ue(v) indicates an unsigned zeroth-order exponential-Golomb code, and u(n) indicates an n-bit flag.

[0034] The SDU includes a control signal sdu_parameters_enable_flag that indicates whether sdu_subdivision_enable_flag, sdu_displacement_coordinate_system_enable_flag, sdu_transform_method_enable_flag, sdu_transform_parameters_enable_flag, and sdu_attribute_parameter_overwrite_flag are defined for each submesh.

[0035] sdu_subdivision_enable_flag is a control signal that indicates whether or not subdivision is to be performed for each submesh.

[0036] sdu_displacement_coordinate_system_enable_flag is a control signal indicating whether to set a coordinate system that defines the displacement amount for each submesh. For example, when the value of sdu_displacement_coordinate_system_enable_flag is "1", a coordinate system for the displacement amount may be defined for each submesh, or when the value of sdu_displacement_coordinate_system_enable_flag is "0", a default coordinate system may be used to define the displacement amount. The default coordinate system may be a known coordinate system such as a Cartesian coordinate system.

[0037] sdu_transform_method_enable_flag is a control signal indicating whether to set a displacement encoding method for each submesh. For example, when the value of sdu_transform_method_enable_flag is "1," a displacement encoding method may be defined for each submesh. Alternatively, when the value of sdu_transform_method_enable_flag is "0," a default displacement encoding method may be used. The default displacement encoding method may be a known displacement encoding method such as linear wavelet transform.

[0038] sdu_transform_parameters_enable_flag is a control signal indicating whether to define coding parameters for displacements for each submesh. For example, when the value of sdu_transform_parameters_enable_flag is "1", a control signal for coding parameters for displacements may be defined for each submesh, or when the value of sdu_transform_parameters_enable_flag is "0", default coding parameters for displacements may be used.

[0039] The SDU includes a control signal sdu_attribute_parameter_overwrite_flag that indicates whether or not sdu_attribute_transform_method_enable_flag, sdu_attribute_transform_parameters_enable_flag, and sdu_attribute_transform_method are defined for each submesh.

[0040] The SDU includes sdu_subdivision_method, which is a control signal indicating a subdivision method for each submesh. For example, when the value of sdu_subdivision_method is "1", it may be defined that each submesh is divided by the mid-edge division method, or when the value of sdu_subdivision_method is "0", it may be configured to define another known subdivision method.

[0041] The SDU includes a control signal sdu_subdivision_iteration_count that indicates the number of subdivisions for each submesh.

[0042] The SDU includes a control signal sdu_transform_method that indicates a displacement encoding method for each submesh. For example, when the value of sdu_transform_method is "1," the SDU may be configured to encode the displacement using a linear wavelet transform for each submesh, or when the value of sdu_transform_method is "0," the SDU may be configured to define another known displacement encoding method.

[0043] The SDU includes an sdu_attribute_transform_method_enable_flag that is a control signal indicating whether to set an encoding method for attribute information for each submesh. For example, when the value of the sdu_attribute_transform_method_enable_flag is “1”, the SDU may be configured to define the displacement of attribute information for each submesh using a linear wavelet transform, or when the value of the sdu_attribute_transform_method_enable_flag is “0”, the SDU may be configured to use a default encoding method.

[0044] The SDU includes an sdu_attribute_transform_parameters_enable_flag, which is a control signal indicating whether to set a control signal related to a coding method of a displacement amount in attribute information for each sub-mesh. For example, when the value of the sdu_attribute_transform_parameters_enable_flag is "1", a control signal related to coding of a displacement amount in attribute information may be defined for each sub-mesh, or when the value of the sdu_attribute_transform_parameters_enable_flag is "0", a control signal related to coding of a default displacement amount may be defined.

[0045] The SDU includes a control signal sdu_attribute_transform_method that indicates a coding method for the displacement amount in the attribute information for each submesh. For example, when the value of sdu_attribute_transform_method is "1," the SDU may be configured to code the displacement amount for each submesh using a linear wavelet transform, or when the value of sdu_attribute_transform_method is "0," the SDU may be configured to define another known coding method.

[0046] The SDU includes a control signal vdmc_ext_ld_displacement_flag that indicates whether one-dimensional displacement encoding is to be performed for each submesh. For example, when the value of vdmc_ext_ld_displacement_flag is “1”, one-dimensional displacement encoding may be performed.

[0047] The SDU includes vdmc_transform_lifting_quantization_parameters, which is a control signal that indicates the quantized value of the displacement amount at the vertices of subdivision level 0 for each submesh.

[0048] The SDU includes a control signal vdmc_transform_log2_lifting_lod_inverse_scale that indicates the quantization scale value of the displacement between subdivision levels for each submesh.

[0049] In this case, the vdmc_transform_lifting_quantization_parameters and vdmc_transform_log2_lifting_lod_inverse_scale may change the number of dimensions of the parameters based on a control signal indicating whether one-dimensional displacement encoding is performed. For example, if the displacement is encoded by one-dimensional displacement encoding, the number of dimensions of the above parameters may be set to 1, and if not, the number of dimensions of the above parameters may be set to 3.

[0050] The SDU includes a control signal vdmc_transform_lod_quantization that represents the quantization value for each subdivision level for each submesh.

[0051] In this case, vdmc_transform_lod_quantization may change the number of dimensions of the parameter based on a control signal indicating whether one-dimensional displacement encoding is to be performed. For example, when the displacement is encoded by one-dimensional displacement encoding, the number of dimensions of the parameter vdmc_transform_lod_quantization may be set to 1, and otherwise, the number of dimensions of vdmc_transform_lod_quantization may be set to 3.

[0052] Referring to Fig. 4A, a description will be given of control information related to patches decoded by the atlas data decoder 207. Fig. 4A is a diagram showing an example of the structure of a PDU, which is patch-related syntax of an atlas bitstream.

[0053] The PDU includes vdmc_transform_lifting_quantization_parameters, which is a control signal that indicates the quantized value of the displacement amount at the vertices of subdivision level 0 for each patch.

[0054] The PDU includes a control signal vdmc_transform_log2_lifting_lod_inverse_scale that indicates the quantization scale value of the displacement between subdivision levels for each patch.

[0055] In this case, the vdmc_transform_lifting_quantization_parameters and vdmc_transform_log2_lifting_lod_inverse_scale may change the number of dimensions of the parameters based on a control signal indicating whether one-dimensional displacement encoding is performed. For example, if the displacement is encoded by one-dimensional displacement encoding, the number of dimensions of the above parameters may be set to 1, and if not, the number of dimensions of the above parameters may be set to 3.

[0056] The PDU includes a control signal vdmc_transform_lod_quantization that indicates the quantization value for each subdivision level for each submesh.

[0057] The number of dimensions of the parameter vdmc_transform_lod_quantization may be changed based on a control signal indicating whether one-dimensional displacement encoding is to be performed. For example, when one-dimensional displacement encoding is to be performed, the number of dimensions of the parameter vdmc_transform_lod_quantization may be set to 1, and otherwise, the number of dimensions of vdmc_transform_lod_quantization may be set to 3.

[0058] vdmc_transform_lod_quantization may be configured to be calculated by difference or multiplication based on a subdivision level smaller than the current level.

[0059] (Basic Mesh Decoding Unit 202) As described above, the basic mesh decoding unit 202 is configured to decode the basic mesh bitstream, generate and output a basic mesh.

[0060] Here, the basic mesh is made up of a plurality of vertices in a three-dimensional space and edges connecting these vertices. In this case, there may be one or more basic meshes.

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

[0062] 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.

[0063] In the case where there are multiple base meshes, the base mesh decoding unit 202 may be configured to use Draco to independently decode the multiple base meshes.

[0064] (Subdivision Unit 203) A method for decoding a subdivision mesh in the subdivision unit 203 will be described with reference to FIGS.

[0065] The subdivision unit 203 is configured to calculate and output a subdivision mesh and subdivision vertex normals based on the basic mesh.

[0066] FIG. 6 is a diagram showing an example of functional blocks of the subdivision unit 203.

[0067] As shown in FIG. 6, the subdivision unit 203 has a basic mesh subdivision unit 203A and a subdivision vertex normal calculation unit 203B.

[0068] (Basic mesh subdivision unit 203A) The basic mesh subdivision unit 203A is configured to subdivide the basic mesh based on the control information and the basic mesh input from the basic mesh decoding unit 202, and output a subdivision mesh.

[0069] When there are multiple basic meshes, the basic mesh subdivision unit 203A may be configured to subdivide each basic mesh independently.

[0070] 7 is a flowchart showing an example of the processing of the basic mesh subdivision unit 203 A. Hereinafter, an example of the processing of the basic mesh subdivision unit 203 A will be described with reference to FIG.

[0071] As shown in FIG. 7, in step S203A-1, the basic mesh subdivision unit 203A sets the variable i to i=0, and then the process proceeds to step S203A-2.

[0072] In step S203A-2, the basic mesh subdivision unit 203A determines whether the variable i satisfies the inequality i≦bsmi_num_submeshes_minus1. If the answer is Yes, the process proceeds to step S203A-3, and if the answer is No, the process ends. Here, bsmi_num_submeshes_minus1 is the number of submeshes that make up the mesh minus 1.

[0073] In step S203A-3, the basic mesh subdivision unit 203A adds 1 to the variable i.

[0074] In step S203A-4, the basic mesh subdivision unit 203A determines whether sdu_subdivision_enable_flag, which is a control signal indicating whether or not subdivision is to be performed, satisfies sdu_subdivision_enable_flag = 1. If Yes, the process proceeds to step S203A-5, and if No, the process proceeds to step S203A-2.

[0075] In step S203A-5, the basic mesh subdivision unit 203A selects an unprocessed submesh, which is a mesh that has not yet been subjected to subdivision processing.

[0076] In step S203A-6, the basic mesh subdivision unit 203A sets the variable j to j=0 and proceeds to step S203A-7.

[0077] In step S203A-7, the basic mesh subdivision unit 203A determines whether or not j<sdu_subdivision_iteration_count is satisfied, where j is the variable j and the number of subdivisions sdu_subdivision_iteration_count. If Yes, the process proceeds to step S203A-2, and if No, the process proceeds to step S203A-8.

[0078] In step S203A-8, the basic mesh subdivision unit 203A adds 1 to the variable j, and the process proceeds to step S203A-9.

[0079] In step S203A-9, the basic mesh subdivision unit 203A determines whether subdivision of all faces in the submesh has been completed. If the result is Yes, the process proceeds to step S203A-7; if the result is No, the process proceeds to step S203A-10.

[0080] In step S203A-10, the basic mesh subdivision unit 203A selects an unsubdivided surface and subdivides the surface, after which the process proceeds to step S203A-9.

[0081] At this time, the basic mesh subdivision unit 203A may perform subdivision using the mid-edge subdivision method, or may perform subdivision of the surface using other known subdivision methods.

[0082] Here, the basic mesh subdivision unit 203A may determine the subdivision method for the sub-mesh based on the value of sdu_subdivision_method.

[0083] 5B shows an example of subdivision using the mid-edge division method, in which a subdivision mesh is generated by dividing the midpoints of the edges that make up the mesh.

[0084] (Subdivision vertex normal calculation unit 203B) The subdivision vertex normal calculation unit 203B is configured to output normals (subdivision vertex normals) defined for each subdivision vertex that constitutes the input subdivision mesh.

[0085] There may be multiple subdivision meshes input, and in such a case, the subdivision vertex normal calculation unit 203B may be configured to calculate and output the subdivision vertex normals for each of the multiple subdivision meshes independently.

[0086] When the value of sdu_subdivision_enable_flag, which is a control signal indicating whether or not to perform subdivision for each submesh, is "0", the subdivision vertex normal calculation unit 203B may be configured not to calculate the subdivision vertex normal for the corresponding submesh.

[0087] (Displacement Decoding Unit 205) As shown in FIG. 8, the displacement decoding unit 205 includes an arithmetic decoding unit 205A, an inverse quantization unit 205B, and an inverse coefficient conversion unit 205C.

[0088] Here, the displacement amount may be defined so as to be calculated independently for each sub-mesh.

[0089] (Arithmetic Decoding Unit 205A) The arithmetic decoding unit 205A is configured to decode the input displacement amount bit stream using an existing arithmetic coding technique and output quantized displacement amount coefficients.

[0090] When there are multiple sub-meshes, the arithmetic decoding unit 205A may be configured to decode the amount of displacement independently for each sub-mesh.

[0091] The displacement bitstream may also be configured to be decoded using an existing video codec.

[0092] (Inverse Quantization Unit 205B) The inverse quantization unit 205B is configured to decode the input quantized displacement coefficients and output the displacement coefficients.

[0093] When the displacement amount encoding method is one-dimensional displacement amount encoding, the inverse quantization unit 205B may skip the inverse quantization process for the two displacement amount components that are perpendicular to the normal direction, and perform the inverse quantization process only on the displacement amount normal direction component.

[0094] When a quantized value of the displacement amount is set for each LoD for a submesh, the inverse quantization unit 205B may inverse quantize the displacement amount based on the quantized value of the displacement amount for each LoD set in vdmc_transform_lod_quantization, which is the displacement amount quantization value defined for each submesh.

[0095] Furthermore, the inverse quantization unit 205B performs LoD 0 The displacement may be dequantized.

[0096] In addition, the inverse quantization unit 205Bi The displacement amount defined for each submesh is multiplied by vdmc_transform_log2_lifting_lod_inverse_scale and vdmc_transform_lifting_quantization_parameters to calculate a quantization value, and the LoD i The displacement may be dequantized.

[0097] When setting a quantized value of the displacement amount for each LoD for a patch, the displacement amount for each LoD may be inversely quantized based on the quantized value of the displacement amount for each LoD set in vdmc_transform_lod_quantization defined for each patch.

[0098] Furthermore, the inverse quantization unit 205B performs LoD 0 The displacement may be dequantized.

[0099] In addition, the quantization value is calculated by multiplying vdmc_transform_log2_lifting_lod_inverse_scale and vdmc_transform_lifting_quantization_parameters defined for each patch, and the LoD i The displacement may be dequantized.

[0100] At this time, the inverse quantization unit 205B may perform inverse quantization using the uniform quantization of the reference document (Jinhua Yu, “Advantages of uniform scalar dead-zone quantization in image coding system,” in 2004 International Conference on Communications, Circuits and Systems (IEEE Cat. No. 04EX914). IEEE, 2004, vol. 2, pp. 805-808.), or may perform inverse quantization using other existing inverse quantization methods.

[0101] (Inverse Coefficient Transformation Unit 205C) The inverse coefficient transformation unit 205C is configured to perform inverse coefficient transformation on the displacement coefficients output by the inverse quantization unit 205B, and output a decoded displacement.

[0102] At this time, the coefficient transformation method may be determined based on sdu_transform_method, which is a control signal that indicates the coding method for the amount of displacement for each submesh.

[0103] When performing inverse coefficient transformation, the inverse coefficient transformation unit 205C may skip the inverse coefficient transformation process for the two displacement components orthogonal to the normal direction, and perform inverse coefficient transformation only on the displacement normal direction component.

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

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

[0106] 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.

[0107] 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.

[0108] (Texture Decoding Unit 206) The texture decoding unit 206 is configured to decode the input texture bitstream and output a decoded texture.

[0109] The texture decoding unit 206 may be configured to independently decode the texture bitstreams corresponding to the sub-meshes using a known video codec to generate multiple decoded textures.

[0110] The texture decoding unit 206 may be configured to be able to independently decode a part of the decoded texture based on input control information.

[0111] According to this embodiment, efficient compression can be achieved by controlling parameters for each sub-mesh.

[0112] Furthermore, according to this embodiment, the amount of displacement can be efficiently compressed by performing quantization for each LoD in units of sub-meshes or patches.

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

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

[0115] 1...Mesh processing system 100...Mesh encoding device 200...Mesh decoding device 201...Demultiplexing unit 202...Basic mesh decoding unit 203...Subdivision unit 203A...Basic mesh subdivision unit 203B...Subdivision vertex normal calculation unit 204...Mesh decoding unit 205...Displacement amount decoding unit 205A...Arithmetic decoding unit 205B...Inverse quantization unit 205C...Inverse coefficient conversion unit 206...Video decoding unit 207...Atlas data decoding unit

Claims

1. A mesh decoding device comprising: an atlas data decoding unit configured to decode an atlas bitstream to generate and output first control information; a base mesh decoding unit configured to decode a base mesh bitstream to generate and output second control information and a base mesh; a subdivision unit configured to output a subdivision mesh and subdivision vertex normals using the first control information, the second control information, and the base mesh as inputs; and a mesh decoding unit configured to generate a decoded mesh using the first control information, the displacement amount, the subdivision mesh, and the subdivision vertex normals as inputs.

2. The mesh decoding device according to claim 1, characterized in that the atlas data decoding unit decodes, as the first control information, a control signal indicating whether or not processing for each submesh is defined.

3. The mesh decoding device according to claim 1, wherein said atlas data decoding unit decodes, as said first control information, a control signal indicating whether or not to perform subdivision for each submesh.

4. The mesh device according to claim 3, wherein the subdivision unit determines whether or not to perform subdivision for each submesh based on the control signal.

5. The mesh decoding device according to claim 1, characterized in that the atlas data decoding unit decodes, as the first control information, a control signal indicating whether or not to set a coordinate system that defines the amount of displacement for each submesh.

6. The mesh decoding device according to claim 1, characterized in that the atlas data decoding unit decodes, as the first control information, a control signal representing a coordinate system of the displacement amount defined for each submesh.

7. The mesh decoding device according to claim 6, wherein the mesh decoding unit is configured to set a coordinate system of the displacement amount based on the control signal, and to calculate and output a decoded mesh by adding the displacement amount in the set coordinate system to the subdivision vertices.

8. The mesh decoding device according to claim 1, characterized in that the atlas data decoding unit decodes, as the first control information, a control signal indicating whether or not to set a displacement amount encoding method for each submesh.

9. The mesh decoding device according to claim 1, characterized in that the atlas data decoding unit decodes, as the first control information, a control signal indicating whether or not to set a displacement amount encoding parameter for each submesh.

10. The mesh decoding device according to claim 1, wherein the atlas data decoding unit decodes, as the first control information, a control signal that indicates a subdivision method for each submesh.

11. The mesh decoding device according to claim 10, wherein the subdivision unit subdivides the sub-meshes based on the control signal.

12. The mesh decoding device according to claim 1, characterized in that the atlas data decoding unit decodes, as the first control information, a control signal that indicates the number of subdivisions for each submesh.

13. A mesh decoding device according to claim 12, characterized in that said subdivision unit subdivides the base mesh a number of times equal to the number of subdivisions of said control signal.

14. The mesh decoding device according to claim 1, characterized in that the atlas data decoding unit decodes, as the first control information, a control signal that indicates a coding method for the amount of displacement for each submesh.

15. The mesh decoding device according to claim 14, wherein the displacement amount decoding unit performs an inverse coefficient transform on the displacement amount based on the control signal.

16. A mesh decoding method comprising the steps of: decoding an atlas bitstream to generate and output first control information; decoding a base mesh bitstream to generate and output second control information and a base mesh; decoding the first control information, the second control information, and the base mesh to output a subdivision mesh and subdivision vertex normals; and generating a decoded mesh using the first control information, the displacement amount, the subdivision mesh, and the subdivision vertex normals as input.

17. A program that causes a computer to function as a mesh decoding device, the mesh decoding device comprising: an atlas data decoding unit configured to decode an atlas bitstream to generate and output first control information; a base mesh decoding unit configured to decode a base mesh bitstream to generate and output second control information and a base mesh; a subdivision unit configured to decode the first control information, the second control information, and the base mesh to output a subdivision mesh and subdivision vertex normals; and a mesh decoding unit configured to generate a decoded mesh using the first control information, the displacement amount, the subdivision mesh, and the subdivision vertex normals as input.

Citation Information

Patent Citations

  • Device or method for calculating surface normal vector

    JP2010191991A

  • Compression of point clouds via a novel hybrid coder

    US20190325614A1

Cited By

  • Mesh decoding device, mesh decoding method, and program

    WO2026088616A1