Mesh decoding device, mesh decoding method, and program

The mesh decoding device and method address inefficiencies in existing technologies by allowing for flexible, efficient compression and local decoding of meshes through controlled parameterization at the submesh level, enhancing decoding flexibility and efficiency.

JP2025008072AActive Publication Date: 2025-01-20KDDI CORP

Patent Information

Application Number
JP2023109929
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-04
Publication Date
2025-01-20
Estimated Expiration
2043-07-04

AI Technical Summary

Technical Problem

Existing mesh decoding technologies do not allow for efficient compression and local decoding based on mesh characteristics, leading to uniform processing that lacks flexibility and efficiency.

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 meshes, and displacement amounts, allowing for efficient compression by controlling parameters for each submesh.

Benefits of technology

Enables efficient compression of mesh data by performing quantization and decoding operations at the submesh or patch level, improving overall decoding efficiency and flexibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025008072000001_ABST
    Figure 2025008072000001_ABST
Patent Text Reader

Abstract

To perform efficient compression.SOLUTION: A mesh decoding device 200 according to the present invention includes: an atlas data decoding unit 207 that decodes an atlas bit stream to generate and output first control information; a basic mesh decoding unit 202 that decodes a basic mesh bit stream 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 subdivision vertex normals as inputs.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, a mesh is decoded by dividing it into a basic mesh that represents rough information and a displacement amount that represents detailed information, and the displacement amount is decoded by 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, in Non-Patent Document 1, the function of decoding separately for a part of a mesh or the method of controlling the quality are not implemented, and the same processing is performed for the entire mesh, so there is 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. [Means for solving the problem]

[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, a displacement amount, the subdivision mesh, and the subdivision vertex normals as inputs.

[0006] A second feature of the present invention is 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 for causing 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 a subdivision vertex normal; 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 normal as input. Effect 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 capable of performing efficient compression. [Brief description 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. [Diagram 2] FIG. 2 is a diagram illustrating an example of functional blocks of a mesh decoding device 200 according to an embodiment. [Diagram 3] FIG. 3 is a diagram showing an example of the syntax structure of an atlas bitstream. [Figure 4A] FIG. 4A is a diagram illustrating an example of a syntax configuration of a PDU. [Figure 4B] FIG. 4B is a diagram showing an example of a syntax configuration of an SDU. [Figure 4C] FIG. 4C is a diagram illustrating an example of the syntax configuration of vdmc_lifting_transform_parameters. [Figure 5A] FIG. 5A is a diagram showing an example of a basic mesh. [Figure 5B] FIG. 5B is a diagram showing an example of a subdivision mesh. [Figure 6] FIG. 6 is a diagram showing an example of functional blocks of the subdivision unit 203 of the mesh decoding device 200 according to an embodiment. [Figure 7] FIG. 7 is a flowchart showing an example of processing by the basic mesh subdivision unit 203A of the subdivision unit 203 of the mesh decoding device 200 according to an embodiment. [Figure 8] FIG. 8 is a diagram showing an example of functional blocks of the displacement amount decoding unit 205 of the mesh decoding device 200 according to an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, the 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, 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.

[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 FIG. 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, and an atlas data decoding unit 207.

[0015] The demultiplexing unit 201 is configured to demultiplex 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 base mesh decoding unit 202 is configured to decode the base mesh bit stream to generate and output control information (second control information) and a base mesh.

[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 base mesh output from the base mesh decoding unit 202, and output a subdivision mesh and a subdivision vertex normal.

[0019] Specifically, the subdivision unit 203 is configured to generate and output 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 their connection information are collectively referred to as a "subdivision mesh."

[0021] The mesh decoding unit 204 is configured to receive as input the control information, the displacement amount, the subdivision mesh, and the subdivision vertex normals output from the atlas data decoding unit 207, and generate a decoded mesh.

[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 of the submeshes.

[0028] Second, the atlas bitstream may include submesh data units (SDUs) 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 a patch.

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

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

[0032] An example of the syntax configuration of an SDU will be described below with reference to Fig. 4B. Fig. 4B is a diagram showing an example of the syntax configuration of an SDU. Here, if the function of the syntax is similar, a syntax name different from the syntax name shown in Fig. 4B may be used.

[0033] In the syntax configuration of the SDU shown in Fig. 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 indicating 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 indicating whether or not to perform subdivision for each submesh.

[0036] sdu_displacement_coordinate_system_enable_flag is a control signal indicating whether to set a coordinate system that defines the amount of displacement for each submesh. For example, when the value of sdu_displacement_coordinate_system_enable_flag is "1", the coordinate system of the amount of displacement may be defined for each submesh, and when the value of sdu_displacement_coordinate_system_enable_flag is "0", the amount of displacement may be defined in a default coordinate system. 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, or 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 the encoding parameters of the displacement for each submesh. For example, when the value of sdu_transform_parameters__enable_flag is "1", a control signal related to the encoding parameters of the displacement may be defined for each submesh, or when the value of sdu_transform_parameters__enable_flag is "0", a default encoding parameter of the displacement may be used.

[0039] The SDU includes a control signal sdu__attribute_parameter_overwrite__flag indicating 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 a control signal sdu_subdivision_method that indicates a subdivision method for each submesh. For example, when the value of sdu_subdivision_method is "1", it may be defined to divide each submesh using 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 coding method for each submesh. For example, when the value of sdu_transform_method is "1", the displacement may be coded using a linear wavelet transform for each submesh, or when the value of sdu_transform_method is "0", another known displacement coding method may be defined.

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

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

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

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

[0047] The SDU includes vdmc_transform_lifting_quantization_parameters, which is a control signal that indicates the quantization 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 represents a quantization scale value of the displacement between subdivision levels for each submesh.

[0049] At this time, 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 coding is performed. For example, when the displacement is coded by one-dimensional displacement coding, the number of dimensions of the above-mentioned parameters may be set to 1, and otherwise, the number of dimensions of the above-mentioned parameters may be set to 3.

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

[0051] At this time, 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 performed. For example, when the displacement is encoded by one-dimensional displacement encoding, the number of dimensions of the parameter of 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] The control information related to the patch decoded by the atlas data decoding unit 207 will be described with reference to Fig. 4A. Fig. 4A is a diagram showing an example of the configuration of a PDU, which is patch-related syntax of an atlas bitstream.

[0053] The PDU includes a control signal vdmc_transform_lifting_quantization_parameters that represents the quantization 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 represents the quantization scale value of the displacement between subdivision levels for each patch.

[0055] At this time, 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 coding is performed. For example, when the displacement is coded by one-dimensional displacement coding, the number of dimensions of the above-mentioned parameters may be set to 1, and otherwise, the number of dimensions of the above-mentioned 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] vdmc_transform_lod_quantization may change the number of dimensions of the parameters based on a control signal indicating whether one-dimensional displacement encoding is performed. For example, when the displacement is encoded by one-dimensional displacement encoding, the number of dimensions of the vdmc_transform_lod_quantization parameters 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 based on subdivision levels smaller than the current level, by difference or multiplication.

[0059] (Basic mesh decoding unit 202) As described above, the base mesh decoding unit 202 is configured to decode the base mesh bitstream to generate and output base meshes.

[0060] Here, the base mesh is composed of a plurality of vertices in a three-dimensional space and edges connecting the plurality of vertices. In this case, the number of base meshes may be one or more.

[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 section 203) A method for decoding a subdivision mesh in the subdivision section 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 base 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 section 203 has a basic mesh subdivision section 203A and a subdivision vertex normal calculation section 203B.

[0068] (Basic mesh refinement section 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 a plurality of basic meshes, the basic mesh subdivision unit 203A may be configured to independently subdivide each of the basic meshes.

[0070] 7 is a flowchart showing an example of the processing of the basic mesh subdivision unit 203A. Hereinafter, an example of the processing of the basic mesh subdivision unit 203A 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 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 Yes, the process proceeds to step S203A-3, and if No, the process ends. Here, bsmi_num_submeshes_minus1 is the number of submeshes that constitute 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 to perform subdivision, 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 section 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 j = 0 for the variable j and proceeds to step S203A-7.

[0077] In step S203A-7, the basic mesh subdivision unit 203A determines whether j < sdu_subdivision_iteration_count is satisfied for the variables j and the subdivision count sdu_subdivision_iteration_count. If Yes, this process proceeds to step S203A-2, and if No, it proceeds to step S203A-8.

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

[0079] In step S203A-9, the basic mesh subdivision unit 203A determines whether the subdivision of all the faces within the sub-mesh is completed. If Yes, this process proceeds to step S203A-7, and if No, this process proceeds to step S203A-10.

[0080] In step S203A-10, the basic mesh subdivision unit 203A selects an unsubdivided face and subdivides the face. Thereafter, this 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 subdivide the face 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] Figure 5B is an example of subdivision by the Mid-edge subdivision method. In the Mid-edge subdivision method, a subdivided mesh is generated by dividing the midpoints of the sides 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] A plurality of subdivision meshes may be 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 plurality of 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 amount decoding unit 205) As shown in FIG. 8, the displacement amount decoding unit 205 includes an arithmetic decoding unit 205A, an inverse quantization unit 205B, and an inverse coefficient conversion unit 205C.

[0088] Here, the amount of displacement may be defined so as to be calculated independently for each submesh.

[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] (Dequantization 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 coding method is one-dimensional displacement amount coding, the inverse quantization unit 205B may skip the inverse quantization process on the two displacement amount components perpendicular to the normal direction, and perform the inverse quantization process only on the displacement amount normal direction component.

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

[0095] Furthermore, the inverse quantization unit 205B may inverse quantize the LoD0 displacement amount based on the quantization value set in vdmc_transform_lifting_quantization_parameters.

[0096] In addition, the inverse quantization unit 205B is i The displacement defined for each submesh is multiplied by vdmc_transform_log2_lifting_lod_inverse_scale and vdmc_transform_lifting_quantization_parameters to calculate the quantization value, and the LoD is calculated based on the calculated quantization value. i The amount of displacement may be inversely quantized.

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

[0098] Furthermore, the inverse quantization unit 205B may inverse quantize the LoD0 displacement amount based on the quantization value set in vdmc_transform_lifting_quantization_parameters.

[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 is calculated based on the calculated quantization value. i The amount of displacement may be inversely quantized.

[0100] At this time, the inverse quantization unit 205B may perform inverse quantization using the uniform quantization described in the reference (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 conversion unit 205C) The inverse coefficient transformation unit 205C is configured to perform inverse coefficient transformation on the displacement amount coefficient output by the inverse quantization unit 205B, and output a decoded displacement amount.

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

[0103] When performing inverse coefficient conversion, the inverse coefficient conversion unit 205C may skip the inverse coefficient conversion process for the two displacement amount components perpendicular to the normal direction, and perform inverse coefficient conversion only on the displacement amount 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, the subdivision mesh, and the amount of displacement.

[0105] The mesh decoding unit 204 adds the amount of displacement 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 of the displacement amount based on a control signal representing a coordinate system of the displacement amount defined for each submesh, and calculate and output the decoded mesh by adding the displacement amount to the subdivision vertices in 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 decoder 206 may be configured to independently decode the texture bitstreams corresponding to the sub-meshes using a known video codec to generate a number of decoded textures.

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

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

[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 above-mentioned mesh encoding device 100 and mesh decoding device 200 may be realized as a program that causes a computer to execute each function (each step). [Industrial Applicability]

[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 "build resilient infrastructure, promote sustainable industrialization and foster innovation." [Explanation of symbols]

[0115] 1. Mesh processing system 100...Mesh coding device 200…Mesh decoding device 201…Demultiplexer 202...Basic mesh decoding unit 203…Subdivision part 203A…Basic mesh refinement section 203B…Subdivision vertex normal calculation unit 204...Mesh decoding unit 205...Displacement amount decoding unit 205A...arithmetic decoding unit 205B...Inverse quantization section 205C…Inverse coefficient conversion section 206...Video decoding section 207...Atlas data decoding unit

Claims

1. A mesh decoding device, comprising: an atlas data decoder configured to decode the atlas bitstream to generate and output first control information; A basic mesh decoding unit configured to decode the basic mesh bit stream to generate and output second control information and a basic mesh; a subdivision unit configured to output a subdivision mesh and a subdivision vertex normal using the first control information, the second control information, and the base mesh as input; 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 , wherein the atlas data decoding unit decodes, as the first control information, a control signal indicating whether or not a process for each submesh is defined.

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

4. 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 a displacement amount for each submesh.

6. The mesh decoding device according to claim 1 , wherein the atlas data decoding unit decodes, as the first control information, a control signal representing a coordinate system of a 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 add the displacement amount of the set coordinate system to the subdivision vertices, thereby calculating and outputting a decoded mesh.

8. The mesh decoding device according to claim 1 , wherein 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 , wherein the atlas data decoding unit decodes, as the first control information, a control signal indicating whether or not to set an encoding parameter of a displacement amount 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 technique 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 , wherein the atlas data decoding unit decodes, as the first control information, a control signal that indicates a number of subdivisions for each submesh.

13. 13. The mesh decoding device according to claim 12, wherein the subdivision unit subdivides the base mesh a number of times equal to the number of subdivisions of the control signal.

14. 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 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: decoding the atlas bitstream to generate and output first control information; Decoding the basic mesh bit stream to generate and output second control information and a basic mesh; decoding the first control information, the second control information, and the base mesh to output a subdivision mesh and subdivision vertex normals; A mesh decoding method comprising the step of generating a decoded mesh using the first control information, the displacement amount, the subdivision mesh, and the subdivision vertex normals as inputs.

17. A program for causing a computer to function as a mesh decoding device, comprising: The mesh decoding device comprises: an atlas data decoder configured to decode the atlas bitstream to generate and output first control information; A basic mesh decoding unit configured to decode the basic mesh bit stream to generate and output second control information and a basic 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; 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.

Citation Information

Patent Citations

  • Method and apparatus of adaptive sampling for mesh compression by decoders

    US20230105452A1

Cited By

  • Mesh decoding device, mesh decoding method, and program

    WO2025197201A1

  • Mesh decoding device, mesh decoding method, and program

    WO2025197202A1