Mesh decoding device, mesh decoding method, and program

The mesh decoding device and method address the inconsistency in atlas decoding by using BMSPS, BMFPS, BMSH, and BMSDU control information, ensuring consistent and high-performance decoding of mesh bitstreams.

JP2026077256APending Publication Date: 2026-05-13KDDI CORP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
KDDI CORP
Filing Date
2024-10-25
Publication Date
2026-05-13

AI Technical Summary

Technical Problem

Existing mesh decoding technologies limit the degree of freedom and performance of atlas decoding due to differences in decryption methods and ranges for 'BMFPS ID' and 'AFPS ID', resulting in inconsistent utilization of atlas capabilities.

Method used

A mesh decoding device and method that includes an atlas data decoding unit and a basic mesh decoding unit, utilizing BMSPS, BMFPS, BMSH, and BMSDU control information to decode atlas and basic mesh bitstreams, ensuring consistency with FPS ID and maximizing performance without limitations.

Benefits of technology

The solution maintains consistency with the FPS ID of Atlas, maximizing the degree of freedom and performance without limiting atlas capabilities, enabling efficient and effective mesh decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026077256000001_ABST
    Figure 2026077256000001_ABST
Patent Text Reader

Abstract

This invention provides a mesh decoding device, mesh decoding method, and program that maximize the degree of freedom and performance of Atlas without limiting its capabilities. [Solution] The mesh decoding device 200 comprises an atlas data decoding unit that decodes an atlas bitstream and outputs control information, and a basic mesh decoding unit that decodes a basic mesh bitstream and outputs a basic mesh. The basic mesh bitstream includes a set of control information related to the decoding of the basic mesh, namely BMSPS (Basemesh Sequence Parameter Set), BMFPS (Basemesh Frame Parameter Set), BMSH (Basemesh Submesh Header), and BMSDU (Basemesh Submesh Data Unit).
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 Art

[0002] Non-Patent Document 4 discloses a technique that utilizes the framework of Non-Patent Document 5 to decode a mesh by dividing it into a rough basic mesh and a detailed displacement amount. For the basic mesh, information such as vertex coordinates, connectivity, and UV coordinates (a type of attribute) is decoded by a basic mesh decoding unit, and an atlas decoded by an atlas data decoding unit is added to reconstruct the mesh from the basic mesh and the displacement amount.

[0003] In addition, for the decoding of the above-mentioned basic mesh, any one of decoding by an intra-frame (I-frame), decoding by an inter-frame (P-frame), and decoding by a skip frame is used.

[0004] Note that Non-Patent Document 4 discloses that video data called texture is decoded as a type of attribute by a video decoding unit in addition to the mesh.

Prior Art Documents

Non-Patent Documents

[0005]

Non-Patent Document 1

Non-Patent Document 2

[0006] Here, Non-Patent Document 4 defines a control signal, "BMFPS ID," that indicates the FPS ID of the basic mesh.

[0007] On the other hand, Non-Patent Document 5 defines a control signal, "AFPS ID," that indicates the FPS ID of Atlas.

[0008] However, the decryption methods and ranges for "BMFPS ID" and "AFPS ID" are different; for example, the range for "BMFPS ID" is smaller than that for "AFPS ID". As a result, the degrees of freedom of the atlas are limited, and there was a problem in that it could not fully utilize its original capabilities.

[0009] Therefore, the present invention has been made in view of the above-mentioned problems, and aims to provide a mesh decoding device, mesh decoding method, and program that can maximize the degree of freedom and performance without maintaining consistency with the FPS ID of Atlas and without limiting the capabilities of Atlas. [Means for solving the problem]

[0010] The first feature of the present invention is a mesh decoding device comprising an atlas data decoding unit configured to decode an atlas bitstream and output control information, and a basic mesh decoding unit configured to decode a basic mesh bitstream and output a basic mesh, wherein the basic mesh bitstream includes a BMSPS (Basemesh Sequence Parameter Set), BMFPS (Basemesh Frame Parameter Set), BMSH (Basemesh Submesh Header), and BMSDU (Basemesh Submesh Data Unit), which are sets of control information relating to the decoding of the basic mesh.

[0011] A second feature of the present invention is a mesh decoding method comprising: step A, which decodes an atlas bitstream and outputs control information; and step B, which decodes a base mesh bitstream and outputs a base mesh, wherein the base mesh bitstream includes a collection of control information relating to the decoding of the base mesh, namely BMSPS (Basemesh Sequence Parameter Set), BMFPS (Basemesh Frame Parameter Set), BMSH (Basemesh Submesh Header), and BMSDU (Basemesh Submesh Data Unit).

[0012] 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 comprises an atlas data decoding unit configured to decode an atlas bitstream and output control information, and a basic mesh decoding unit configured to decode a basic mesh bitstream and output a basic mesh, wherein the basic mesh bitstream includes a collection of control information relating to the decoding of the basic mesh, namely BMSPS (Basemesh Sequence Parameter Set), BMFPS (Basemesh Frame Parameter Set), BMSH (Basemesh Submesh Header), and BMSDU (Basemesh Submesh Data Unit). [Effects of the Invention]

[0013] According to the present invention, it is possible to provide a mesh decoding device, mesh decoding method, and program that maintain consistency with the FPS ID of Atlas and maximize the degree of freedom and performance without limiting the capabilities of Atlas. [Brief explanation of the drawing]

[0014] [Figure 1] Figure 1 shows an example of the configuration of a mesh processing system 1 according to one embodiment. [Figure 2] FIG. 2 is a diagram showing an example of functional blocks of a mesh decoding apparatus 200 according to an embodiment. [Figure 3] FIG. 3 is a diagram showing an example of a basic mesh and a subdivided mesh. [Figure 4] FIG. 4 is a diagram showing an example of functional blocks of a basic mesh decoding unit 202 of a mesh decoding apparatus 200 according to an embodiment. [Figure 5A] FIG. 5A is a diagram for explaining an example of processing of a separating unit 202A of a basic mesh decoding unit 202 of a mesh decoding apparatus 200 according to an embodiment. [Figure 5B] FIG. 5B is a diagram for explaining an example of processing of a separating unit 202A of a basic mesh decoding unit 202 of a mesh decoding apparatus 200 according to an embodiment. [Figure 6] FIG. 6 is a diagram showing an example of the configuration of the syntax of "rbsp_trailing_bits()". [Figure 7] FIG. 7 is a diagram showing an example of functional blocks of an intra decoding unit 202B of a basic mesh decoding unit 202 of a mesh decoding apparatus 200 according to an embodiment. [Figure 8] FIG. 8 is a diagram showing an example of the correspondence between vertices of a basic mesh of a P frame and vertices of a basic mesh of an I frame. [Figure 9] FIG. 9 is a diagram showing an example of ASPS. [Figure 10] FIG. 10 is a diagram showing an example of AFPS. [Figure 11] FIG. 11 is a diagram showing an example of ATH. [Figure 12] FIG. 12 is a diagram showing an example of the configuration of a basic mesh bit stream. [Figure 13] FIG. 13 is a diagram showing an example of BMSPS. [Figure 14] FIG. 14 is a diagram showing an example of BMFPS. [Figure 15] FIG. 15 is a diagram showing an example of BMSH. [Figure 16] FIG. 16 is a diagram showing an example of DSPS. [Figure 17] Figure 17 shows an example of DFPS. [Figure 18] Figure 17 shows an example of a DH. [Figure 19] Figure 19 shows an example of attribute-related control signals for the basic mesh. [Figure 20] Figure 20 shows an example of the functional block of the inter-decoding unit 202E. [Figure 21] Figure 21 is a diagram illustrating an example of how the motion vector prediction unit 202E3 of the inter-decoding unit 202E of the basic mesh decoding unit 202 of a mesh decoding device 200 according to one embodiment calculates the MVP of the vertices to be decoded. [Figure 22] Figure 22 is a diagram illustrating the mesh buffer section 202C of the basic mesh decoding section 202 of a mesh decoding device 200 according to one embodiment. [Figure 23] Figure 23 shows an example of BMSPS. [Figure 24] Figure 24 shows an example of a NAL header. [Modes for carrying out the invention]

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

[0016] <First Embodiment> The mesh processing system according to this embodiment will be described below with reference to Figures 1 to 24.

[0017] Figure 1 shows an example of the configuration of the mesh processing system 1 according to this embodiment. As shown in Figure 1, the mesh processing system 1 includes a mesh encoding device 100 and a mesh decoding device 200.

[0018] Figure 2 shows an example of the functional block of the mesh decoding device 200 according to this embodiment.

[0019] As shown in Figure 2, the mesh decoding device 200 includes a multiplexing unit 201, a basic mesh decoding unit 202, a subdivision unit 203, a mesh decoding unit 204, a patch integration unit 205, a displacement decoding unit 206, a video decoding unit 207, and an atlas data decoding unit 208.

[0020] Here, the basic mesh decoding unit 202, the subdivision unit 203, the mesh decoding unit 204, and the displacement decoding unit 206 are configured to process the mesh in patch units, and the results of these processes may then be integrated in the patch integration unit 205.

[0021] In the example shown in Figure 3, the mesh is divided into patch 1, which consists of base surfaces 1 and 2, and patch 2, which consists of base surfaces 3 and 4.

[0022] The multiplexing unit 201 is configured to separate the multiplexed bitstream into a basic mesh bitstream, a displacement bitstream, a texture bitstream, and an atlas bitstream.

[0023] The subdivision unit 203 is configured to generate and output subdivided vertices and their connection information from the basic mesh decoded by the basic mesh decoding unit 202 using a subdivision method indicated by the control information (first control information and second control information). The basic mesh consists of one or more submeshes.

[0024] Here, the base mesh, the added subdivided vertices, and their connection information are collectively referred to as the "subdivided mesh." Similarly, the submesh, the added subdivided vertices, and their connection information are collectively referred to as the "subdivided submesh."

[0025] The mesh decoding unit 204 is configured to generate and output a decoded mesh using control information, a subdivided mesh, subdivided vertex normals, and displacement amounts.

[0026] The displacement amount decoding unit 206 is configured to decode the displacement amount bitstream based on control information, generate a displacement amount, and output it.

[0027] The video decoding unit 207 is configured to decode and output textures using a video codec.

[0028] The Atlas data decoding unit 208 is configured to decode the Atlas bitstream and output control information. This control signal may be used as metadata by the basic mesh decoding unit 202, the subdivision unit 203, the mesh decoding unit 204, the displacement decoding unit 206, and the video decoding unit 207.

[0029] <Basic Mesh Decoding Unit 202> The basic mesh decoding unit 202 is configured to decode the basic mesh bitstream, generate a basic mesh, and output it.

[0030] Here, the basic mesh consists of multiple vertices in three-dimensional space and edges that connect these multiple vertices.

[0031] The basic mesh decoding unit 202 may be configured to decode the basic mesh bitstream using, for example, the Draco described in Non-Patent Document 2 or the technology described in Non-Patent Document 3.

[0032] As shown in Figure 4, the basic mesh decoding unit 202 comprises a separation unit 202A, an intra decoding unit 202B, a mesh buffer unit 202C, a connection information decoding unit 202D, and an inter-decoding unit 202E.

[0033] (Separation part 202A) The separation unit 202A is configured to classify the basic mesh bitstream into I-frame bitstreams and P-frame bitstreams, and to extract data from sub-mesh data units.

[0034] Specifically, as shown in Figure 5A, the separation unit 202A extracts submesh data for decoding from bmesh_submesh_unit(submeshID), which is a submesh data unit of the basic mesh having a submesh ID "submeshID", by calling the following extraction process.

[0035] [Extraction Process] The extraction process for submesh data units that have a submesh ID "submeshID" is performed as follows: - If "more_rbsp_data()" exists, the submesh data, which is the output data of the extraction process, is extracted by concatenating the "embedded_external_data_bit" in "bmesh_submesh_unit(submeshID)". This process continues until "more_rbsp_data()" returns FALSE. - If "more_rbsp_data()" does not exist, the extracted submesh data will be empty (i.e., its length will be zero bits).

[0036] Furthermore, "more_rbsp_data()" is defined as follows: - If there is no data remaining in the raw byte sequence payload (RBSP, for example, "bmesh_submesh_layer_rbsp()" in Figure 5A), the return value of "more_rbsp_data()" will be FALSE. - Otherwise, the rightmost 1 bit (least significant bit) in the RBSP data is searched for. The position of this bit is the first bit (rbsp_stop_one_bit) of "rbsp_trailing_bits()" shown in Figure 6. Based on "rbsp_trailing_bits()", the following applies: - If there is data remaining in the RBSP before "rbsp_trailing_bits()", the return value of "more_rbsp_data()" will be TRUE. - Otherwise, the return value of "more_rbsp_data()" will be FALSE.

[0037] If the bmesh_submesh_unit() submesh data unit of the base mesh does not have a submesh ID "submeshID", the submesh data unit of the base mesh targeted in the extraction process may be that of the current submesh in the current frame.

[0038] Specifically, as shown in Figure 5B, the separation unit 202A extracts the submesh data for decoding by calling the following extraction process from bmesh_submesh_unit(), which is the submesh data unit of the submesh.

[0039] [Extraction Process] The extraction process for the submesh data unit of this submesh is performed as follows: - If "more_rbsp_data()" exists, the submesh data is extracted by concatenating the "embedded_external_data_bit" in "bmesh_submesh_unit()". This process continues until "more_rbsp_data()" returns FALSE. - If "more_rbsp_data()" does not exist, the extracted submesh data will be empty (i.e., its length will be zero bits).

[0040] (Example of change) If there is a method to determine whether to invoke the extraction process based on the frame type of the basic mesh, the extraction process described in Non-Patent Document 4 may be left as is.

[0041] Specifically, if the frame type is an I-frame or a P-frame, the extraction process described in Non-Patent Document 4 is invoked; otherwise (i.e., if the frame type is a skip frame), the extraction process described in Non-Patent Document 4 is not invoked, and the extracted submesh data is left empty (i.e., the length of the submesh data is zero bits).

[0042] In short, if the frame type of the base mesh is I-frame or P-frame, the submesh data is extracted by concatenating the "embedded_external_data_bit" in "bmesh_submesh_unit()". This process continues until "more_rbsp_data()" returns FALSE. Also, if the frame type of the base mesh is skip frame, the extracted submesh data is left empty (i.e., its length is zero bits).

[0043] The present invention provides a method for appropriately extracting bits from a basic mesh subbitstream, and by performing appropriate branching and processing according to the above-mentioned conditions, it is expected to be able to handle special cases such as skipped frames and correctly extract bits.

[0044] (Intra-decoding unit 202B) The intra-decoding unit 202B is configured to decode the coordinates of the I-frame vertices and connection information from the I-frame bitstream, for example, using Draco as shown in Non-Patent Document 2 or the technology described in Non-Patent Document 3.

[0045] Figure 7 shows an example of the functional block of the intra-decoding unit 202B.

[0046] As shown in Figure 7, the intra-decoding unit 202B includes an arbitrary intra-decoding unit 202B1 and an alignment unit 202B2.

[0047] The arbitrary intra decoding unit 202B1 is configured to decode the coordinates and connection information of the unordered vertices of the I-frame from the bitstream of the I-frame using any scheme including Draco as shown in Non-Patent Document 2 or the technology described in Non-Patent Document 3.

[0048] The alignment unit 202B2 is configured to output vertices by rearranging unordered vertices into a predetermined order.

[0049] The predetermined order may be, for example, Morton code order or raster scan order.

[0050] Furthermore, the alignment unit 202B2 may group duplicate vertices, which are multiple vertices with the same coordinates in the decoded basic mesh, into a single vertex, and then rearrange them in a predetermined order.

[0051] (Mesh buffer section 202C) The mesh buffer unit 202C is configured to store the coordinates and connection information of the vertices of the I-frame decoded by the intra-decoder unit 202B. A specific buffer may be provided here to store pairs of vertex indices A(k) and B(k) of duplicate vertices in a predetermined order.

[0052] (Connection information decoding unit 202D) The connection information decoding unit 202D is configured to convert the connection information of the I-frame or reference frame extracted from the mesh buffer unit 202C into the connection information of the P-frame.

[0053] (Inter-decoding unit 202E) The inter-decoding unit 202E is configured to decode the vertex coordinates of the P-frame by adding the vertex coordinates of the reference frame extracted from the mesh buffer unit 202C with the motion vector decoded from the bitstream of the P-frame.

[0054] Furthermore, the inter-decoding unit 202E can adjust the vertex indices of the P-frame using pairs of vertex indices A(k) and B(k) of vertices that exist as duplicate vertices stored in the specific buffer.

[0055] In this embodiment, as shown in Figure 8, a correspondence exists between the vertices of the basic mesh of the P frame and the vertices of the basic mesh of the reference frame (I frame or P frame). Here, the motion vector decoded by the inter-decoding unit 202E is the difference vector between the coordinates of the vertices of the basic mesh of the P frame and the coordinates of the vertices of the basic mesh of the I frame.

[0056] (Configuration of Atlas Bitstream) The Atlas bitstream may include ASPS (Atlas Sequence Parameter Set), AFPS (Atlas Frame Parameter Set), and ATS (Atlas Tile Header), which are sets of control information related to Atlas decoding.

[0057] The following describes an example of the configuration of an Atlas bitstream, referring to Figures 9 to 11.

[0058] In Figures 9 to 11, u(n) represents an n-bit code, and ue(v) represents an unsigned variable-length zero-order exponential Golomb code.

[0059] As shown in Figure 9, an ASPS may include a control signal, asps_atlas_sequence_parameter_set_id, that indicates its own ASPS ID.

[0060] The control signal asps_atlas_sequence_parameter_set_id is a type of APSP ID and is decoded with ue(v). However, the range of the control signal asps_atlas_sequence_parameter_set_id is limited to 0 to 15.

[0061] Furthermore, as shown in Figure 10, the AFPS may include a control signal afps_atlas_sequence_parameter_set_id that indicates the ASPS ID it references, and a control signal afps_atlas_frame_parameter_set_id that indicates its own AFPS ID.

[0062] Here, the control signal afps_atlas_sequence_parameter_set_id is a type of ASPS ID and is decoded with ue(v). However, the range of the control signal afps_atlas_sequence_parameter_set_id is limited to 0 to 15.

[0063] Furthermore, the control signal afps_atlas_frame_parameter_set_id is a type of AFPS ID and is decoded with ue(v). However, the range of the control signal afps_atlas_frame_parameter_set_id is limited to 0 to 63.

[0064] Furthermore, as shown in Figure 11, ATH may include a control signal ath_atlas_frame_parameter_set_id that indicates the AFPS ID it is referencing.

[0065] Here, the control signal ath_atlas_frame_parameter_set_id is a type of AFPS ID and is decoded by ue(v). However, the range of the control signal ath_atlas_frame_parameter_set_id is limited to 0 to 63.

[0066] (Basic Mesh Bitstream Configuration) The following describes an example of the configuration of a basic mesh bitstream, referring to Figures 12 to 15.

[0067] Figure 12 shows an example of the configuration of a basic mesh bitstream.

[0068] As shown in Figure 12, the base mesh bitstream may include BMSPS (Basemesh Sequence Parameter Set), BMFPS (Basemesh Frame Parameter Set), BMSH (Basemesh Submesh Header), and BMSDU (Basemesh Submesh Data Unit), which are sets of control information related to the decoding of the base mesh.

[0069] Furthermore, as shown in Figure 13, the BMSPS may include a control signal bmsps_sequence_parameter_set_id (fourth control signal) that indicates its own BMSPS ID.

[0070] Here, the control signal bmsps_sequence_parameter_set_id is a type of BMSPS ID.

[0071] As shown in Non-Patent Document 4, when the control signal bmsps_sequence_parameter_set_id is decoded by u(4), it does not match the corresponding control signal asps_atlas_sequence_parameter_set_id of Atlas.

[0072] In this embodiment, the control signal bmsps_sequence_parameter_set_id is decoded using ue(v) or u(4). Furthermore, the range of the control signal bmsps_sequence_parameter_set_id is limited to 0 to 15.

[0073] Furthermore, as shown in Figure 14, the BMFPS may include a control signal bmfps_sequence_parameter_set_id (5th control signal) that indicates the BMFPS ID it references, and a control signal bmfps_frame_parameter_set_id (6th control signal) that indicates its own BMFPS ID.

[0074] Here, the control signal bmfps_sequence_parameter_set_id is a type of BMSPS ID.

[0075] As shown in Non-Patent Document 4, when the control signal bmfps_sequence_parameter_set_id is decoded by u(4), it does not match the corresponding control signal afps_atlas_sequence_parameter_set_id of Atlas.

[0076] In this embodiment, the control signal bmfps_sequence_parameter_set_id is decoded using ue(v) or u(4). Furthermore, the range of the control signal bmfps_sequence_parameter_set_id is limited to 0 to 15.

[0077] Note that the control signal bmfps_frame_parameter_set_id is a type of BMFPS ID.

[0078] As shown in Non-Patent Document 4, when the control signal bmfps_frame_parameter_set_id is decoded by u(4) and the range limit of the control signal bmfps_frame_parameter_set_id is 0 to 15, the control signal bmfps_frame_parameter_set_id does not match the corresponding control signal afps_atlas_frame_parameter_set_id of Atlas.

[0079] In this embodiment, the control signal bmfps_frame_parameter_set_id is decoded using ue(v) or u(6). Furthermore, the range of the control signal bmfps_frame_parameter_set_id is limited to 0 to 63.

[0080] Furthermore, as shown in Figure 15, BMSH may include a control signal bmsh_basemesh_frame_parameter_set_id (the 7th control signal) that indicates the BMFPS ID it is referencing.

[0081] Here, the control signal bmsh_basemesh_frame_parameter_set_id is a type of BMFPS ID.

[0082] As shown in Non-Patent Document 4, when the control signal bmsh_basemesh_frame_parameter_set_id is decoded by u(4) and the range limit of the control signal bmsh_basemesh_frame_parameter_set_id is 0 to 15, the control signal bmsh_basemesh_frame_parameter_set_id does not match the corresponding control signal ath_atlas_frame_parameter_set_id of Atlas.

[0083] In this embodiment, the control signal bmsh_basemesh_frame_parameter_set_id is decoded using ue(v) or u(6). Furthermore, the range of the control signal bmsh_basemesh_frame_parameter_set_id is limited to 0 to 63.

[0084] According to this embodiment, by matching the decoding method and range of the control signals of the basic mesh with those of the atlas, consistency with the number of FPS IDs in the atlas is maintained, and it is expected that the degree of freedom and performance will be maximized without limiting the capabilities of the atlas.

[0085] (Construction of the bitstream for arithmetic coding) Non-patent document 4 states that the displacement decoding unit 206 has two methods for decoding the displacement: one using video coding and the other using arithmetic coding.

[0086] The following describes an example of the configuration of a displacement bitstream for arithmetic coding, referring to Figures 16 to 18.

[0087] The arithmetic coding displacement bitstream may include a set of control information related to the decoding of the displacement, such as a DSPS (Displacement Sequence Parameter Set), a DFPS (Displacement Frame Parameter Set), or a DH (Displacement Header).

[0088] Furthermore, as shown in Figure 16, the DSPS may include a control signal dsps_sequence_parameter_set_id that indicates its own DSPS ID.

[0089] Here, the control signal dsps_sequence_parameter_set_id is a type of DSPS ID.

[0090] As shown in Non-Patent Document 4, when the control signal dsps_sequence_parameter_set_id is decoded by u(4), it does not match the corresponding control signal asps_atlas_sequence_parameter_set_id of Atlas.

[0091] In this embodiment, the control signal dsps_sequence_parameter_set_id is decoded using ue(v) or u(4). Furthermore, the range of the control signal dsps_sequence_parameter_set_id is limited to 0 to 15.

[0092] Furthermore, as shown in Figure 17, the DFPS may include a control signal dfps_displ_sequence_parameter_set_id that indicates the DSPS ID it references, and a control signal dfps_displ_frame_parameter_set_id that indicates its own DFPS ID.

[0093] Here, the control signal dfps_displ_sequence_parameter_set_id is a type of DSPS ID.

[0094] As shown in Non-Patent Document 4, when the control signal dfps_displ_sequence_parameter_set_id is decoded by u(4), it does not match the corresponding control signal afps_atlas_sequence_parameter_set_id of Atlas.

[0095] In this embodiment, the control signal dfps_displ_sequence_parameter_set_id is decoded using ue(v) or u(4). Furthermore, the range of the control signal dfps_displ_sequence_parameter_set_id is limited to 0 to 15.

[0096] Note that the control signal dfps_displ_frame_parameter_set_id is a type of DFPS ID.

[0097] As shown in Non-Patent Document 4, when the control signal dfps_displ_frame_parameter_set_id is decoded by u(4) and the range limit of the control signal dfps_displ_frame_parameter_set_id is 0 to 15, the control signal dfps_displ_frame_parameter_set_id does not match the corresponding control signal afps_atlas_frame_parameter_set_id of Atlas.

[0098] In this embodiment, the control signal dfps_displ_frame_parameter_set_id is decoded using ue(v) or u(6). Furthermore, the range of the control signal dfps_displ_frame_parameter_set_id is limited to 0 to 63.

[0099] Furthermore, as shown in Figure 18, DH may include a control signal dh_frame_parameter_set_id that indicates the DFPS ID it is referencing.

[0100] Here, the control signal dh_frame_parameter_set_id is a type of DFPS ID.

[0101] As shown in Non-Patent Document 4, when the control signal dh_frame_parameter_set_id is decoded by u(4) and the range limit of the control signal dh_frame_parameter_set_id is 0 to 15, the control signal dh_frame_parameter_set_id does not match the corresponding control signal ath_atlas_frame_parameter_set_id of Atlas.

[0102] In this embodiment, the control signal dh_frame_parameter_set_id is decoded using ue(v) or u(6). Furthermore, the range of the control signal dh_frame_parameter_set_id is limited to 0 to 63.

[0103] According to this embodiment, by matching the decoding method and range of the displacement control signal using arithmetic coding with that of Atlas, consistency with the number of FPS IDs in Atlas is maintained, and it is expected that the degree of freedom and performance will be maximized without limiting the capabilities of Atlas.

[0104] (Attribute count / index related information) The following describes an example of attribute-related control signals for the basic mesh in the atlas bitstream and basic mesh bitstream, with reference to Figure 19.

[0105] The atlas bitstream may include a first control signal vps_ext_bmesh_data_attribute_count indicating the number of attributes of the basic mesh, as shown in Figure 19.

[0106] Furthermore, the BMSPS of the basic mesh bitstream may include a second control signal bmsps_mesh_attribute_count indicating the number of attributes of the basic mesh, as shown in Figure 19.

[0107] Furthermore, the BMSPS of the basic mesh bitstream may include bmsps_mesh_attribute_count third control signals, bmsps_mesh_attribute_index, which indicate the index of the corresponding attribute in the I-frame.

[0108] Here, the third control signal bmsps_mesh_attribute_index may indicate the index of the corresponding attribute in any submesh of any I-frame, or it may indicate the index of the corresponding attribute in the first submesh of the first I-frame. In the former case, the value of the corresponding attribute index is the same in all submeshes of all I-frames.

[0109] Additionally, each I-frame in the basic mesh bitstream may include a fourth control signal, mesh_attribute_count, which indicates the number of its own attributes.

[0110] Non-patent document 4 imposes a constraint that the value of the first control signal vps_ext_bmesh_data_attribute_count must be less than or equal to the number of attributes in the basic mesh bitstream (i.e., the value of the second control signal bmsps_mesh_attribute_count).

[0111] However, the above constraints do not apply to the value of the second control signal bmsps_mesh_attribute_count.

[0112] In this embodiment, the value of the second control signal bmsps_mesh_attribute_count is constrained to be less than or equal to the number of attributes in any submesh of any I-frame in the basic mesh bitstream (i.e., any value of mesh_attribute_count).

[0113] Alternatively, there is a constraint that the value of the second control signal bmsps_mesh_attribute_count must be less than or equal to the minimum number of attributes in all submeshes of all I-frames.

[0114] According to this embodiment, it is ensured that the control signal bmsps_mesh_attribute_count, which indicates the number of attributes of the basic mesh, is less than or equal to the number of attributes in any submesh of any I-frame in the basic mesh bitstream (i.e., any value of mesh_attribute_count), thereby preventing inconsistencies regarding the number of attributes of the basic mesh and enabling correct decoding of the basic mesh.

[0115] (Inter-decoding unit 202E) Figure 20 shows an example of the functional block of the inter-decoding unit 202E.

[0116] As shown in Figure 20, the inter-decoding unit 202E includes a motion vector residual decoding unit 202E1, a motion vector buffer unit 202E2, a motion vector prediction unit 202E3, a motion vector calculation unit 202E4, and an adder 202E5.

[0117] The motion vector residual decoding unit 202E1 is configured to generate an MVR (Motion Vector Residual) from the bitstream of the P frame.

[0118] Here, MVR is the motion vector residual that shows the difference between MV (Motion Vector) and MVP (Motion Vector Prediction). MV is the difference vector (motion vector) between the coordinates of the vertex in the corresponding I-frame and the vertex in the P-frame. MVP is the predicted value of the MV of the target vertex (predicted value of the motion vector) using MV.

[0119] The motion vector buffer unit 202E2 is configured to sequentially save the MV output by the motion vector calculation unit 202E4.

[0120] The motion vector prediction unit 202E3 is configured to obtain decoded MVs from the motion vector buffer unit 202E2 for vertices connected to the vertex to be decoded, and to output the MVP of the vertex to be decoded using all or part of the obtained decoded MVs, as shown in Figure 21.

[0121] The motion vector calculation unit 202E4 is configured to add the MVR generated by the motion vector residual decoding unit 202E1 and the MVP output from the motion vector prediction unit 202E3, and output the MV of the vertex to be decoded.

[0122] The adder 202E5 is configured to add the coordinates of the vertices to be decoded, obtained from the decoded base mesh of the corresponding reference frame (I-frame or P-frame), to the motion vector MV output from the motion vector calculation unit 202E3, and output the coordinates of the vertices to be decoded.

[0123] (Mesh buffer section 202C) The mesh buffer unit 202C is configured to store one or more reference decoding base meshes in a predetermined order.

[0124] Furthermore, such a basic mesh contains metadata such as frame numbers and sub-mesh numbers, as well as at least the coordinates of each vertex and the index of that vertex, and is stored in the mesh buffer unit 202C in a predetermined order determined by the reference frame list.

[0125] Here, as shown in Figure 22, the reference frame list (ref_list0) is a list of information that identifies all the reference decoded base meshes stored in the mesh buffer unit 202C.

[0126] The reference frame list may be determined by the control signals decoded from the bitstream, as shown in Figure 22, or it may be naturally calculated from the decoding order of the frames.

[0127] The control signal decoded from the bitstream may be expressed as a relative distance to the frame being decoded, or as an absolute value of the frame index.

[0128] Furthermore, control signals may be used to utilize short-term or long-term reference frames.

[0129] For example, using a short-term reference frame, the absolute value (abs_delta_mfoc_st) and its sign (sign_flag) of the difference in display order between the current frame (cur) and the reference frame (ref) can be decoded from the bitstream, and the display order of the reference frame can be specified by the following formula. If(sign_flag){ Display Order(ref)=Display Order(cur)+abs_delta_mfoc_st else{ Display Order(ref)=Display Order(cur)-abs_delta_mfoc_st } Furthermore, if a method is used that naturally calculates the order of frame decoding, for example, in the reference frame list, when no control signals are present, the frames may be arranged sequentially in fixed numbers starting from the most recently decoded frame. In other words, the reference frame list may be {0, -1, -2, ..., -(N-1)}.

[0130] Basically, the reference frame list does not change from frame to frame except in special circumstances (for example, when a re-ordering instruction is received).

[0131] The mesh buffer section 202C may be updated as follows.

[0132] When the basic mesh is decoded, the mesh buffer unit 202C, in the case of I-frames and P-frames, deletes one or more existing reference frames in a predetermined order determined by the reference frame list, inserts one or more basic meshes including the basic mesh of the decoded frame, or creates and inserts one basic mesh from multiple basic meshes, thereby adjusting the order of the reference frames.

[0133] Such deletion operations may be performed only when the mesh buffer unit 202C is full. The number of basic meshes that can be stored in the mesh buffer unit 202C is predetermined. In this embodiment, the mesh buffer unit 202C is defined as being full when the number of such basic meshes is reached.

[0134] In the creation process described above, the coordinates of the vertices corresponding to the decoded frame's base mesh and the existing base mesh stored in the mesh buffer section 202C may be weighted and averaged to create a single base mesh.

[0135] The weights used in such a weighted average may be predetermined, calculated using frame indices, or decoded from control signals.

[0136] Furthermore, when the mesh buffer unit 202C receives a control signal indicating a re-ordering instruction via a control signal decoded from the bitstream, it updates the reference frame list as shown in Figure 14 and adjusts the order of the reference frames according to a predetermined order determined by the updated reference frame list (ref_list0).

[0137] Furthermore, when a submesh exists as defined in Non-Patent Document 4 above, all submeshes will either be given the same control signal (smh_mesh_frm_order_cnt_lsb) or the control signal (smh_mesh_frm_order_cnt_lsb) will be applied to all submeshes.

[0138] The value indicated by such a control signal (smh_mesh_frm_order_cnt_lsb) may be the difference from the display order of the frames to be decoded, or it may be the order within a predetermined frame set MaxMeshFrmOrderCntLsb.

[0139] Furthermore, if the Decode Order and Display Order are different, and the decoded basic meshes are arranged in the Decode Order, the basic mesh decoding unit 202 may rearrange the decoded basic meshes to the Display Order.

[0140] To achieve temporal scalability, control signals are defined for each frame to indicate whether to decode the base mesh, displacement, and texture, and these are decoded from the bitstream accordingly.

[0141] Furthermore, the Temporal_IDs of the atlas and the base mesh may be matched within the same frame. Similarly, the Temporal_IDs of the atlas and the texture may be matched within the same frame. Finally, the Temporal_IDs of the atlas and the displacement may be matched within the same frame.

[0142] This configuration is expected to have the effect of avoiding frame decoding failures and unnecessary data.

[0143] Furthermore, it is desirable that the interval between adjacent frames with the same Temporal_ID remains constant.

[0144] Adjacent frames with the same Temporal_ID are closest to the POC.

[0145] As mentioned above, by keeping the frame interval constant, it is expected that a constant frame rate can be maintained when displaying the decoded frames.

[0146] Furthermore, the decoding order of atlases and base meshes with the same display order may be matched. The decoding order of atlases and displacement values ​​with the same display order may also be matched. Additionally, the decoding order of atlases and textures with the same display order may be matched.

[0147] Alternatively, the random access points of atlases and base meshes with the same display order may be matched. Furthermore, the random access points of atlases and displacement amounts with the same display order may be matched. Also, the random access points of atlases and textures with the same display order may be matched. Note that random access points are defined in Non-Patent Document 4 or Non-Patent Document 5.

[0148] With this configuration, it is expected that the mesh can be reconstructed without waiting for the decoding of the basic mesh, displacement, and texture to be completed.

[0149] Furthermore, frames with a Temporal_ID higher than the control signal Temporal_ID of the frame to be decoded will not be used as reference frames for that frame.

[0150] This is expected to have the effect of eliminating the possibility of reference frames being discarded.

[0151] The following describes an example of achieving temporal scalability using the aforementioned Temporal_ID.

[0152] The atlas, base mesh, displacement, and texture bitstreams are encapsulated by a Network Abstraction Layer (NAL) unit. The NAL unit may have a NAL header as shown in Figure 22.

[0153] The TID, defined as the last 3 bits in the NAL header, is Temporal_ID plus 1. The TID ranges from 1 to 7, and zero is prohibited.

[0154] The LayerID / R6, defined as the six bits immediately preceding the TID in the NAL header, specifies the identifier of the layer to which the NAL unit belongs.

[0155] The LayerID / R6 value must be within the range of 0 to 62. The value 63 may be specified by ISO / IEC in the future.

[0156] Aside from determining the amount of data in the bitstream's decode unit, the mesh decoder 200 ignores all data following the value 63 in the NAL unit, and a mesh decoder 200 conforming to a specified profile ignores (i.e., removes and discards) all NAL units where the LayerID-R6 value is not 0.

[0157] The LayerID / R6 value of 63 can be used in future extensions to indicate an extended layer identifier.

[0158] Furthermore, if a submesh exists as defined in Non-Patent Document 4, all submeshes will be assigned the same TID, or the TID will be applied to all submeshes.

[0159] Regarding the atlas, Non-Patent Document 5 can be used, and for displacement and texture, HEVC and VVC video encoding schemes can be used, so the basic mesh will be described below.

[0160] As shown in Figure 23, the BMSPS of the basic mesh bitstream may include a control signal bmsps_max_sub_layers_minus1 in u(3) that indicates the maximum number of temporal sublayers.

[0161] Additionally, the BMSPS of the basic mesh bitstream may include the bmsps_temporal_id_nesting_flag in u(1).

[0162] The control signal bmsps_temporal_id_nesting_flag indicates whether interpretation is further restricted if bmsps_max_sub_layers_minus1 is greater than 0. Here, if bmsps_max_sub_layers_minus1 is equal to 0, then bmsps_temporal_id_nesting_flag must be 1.

[0163] Furthermore, each Temporal sublayer may include a control signal bmsps_max_dec_mesh_frame_buffering_minus1 indicating the buffer size of the largest basic mesh, and a control signal bmsps_max_num_reorder_frames indicating the difference from the display order of the largest decoded frame.

[0164] The LayerID / R6 values ​​of all BMCL NAL units in the encoded base mesh frame must be the same. The LayerID / R6 value of the encoded base mesh frame is the LayerID / R6 value of the BMCL NAL unit in the encoded base mesh frame.

[0165] If NALType is equal to NAL_EOB, the value of LayerID / R6 must be equal to 0.

[0166] If the NALType falls within the range of NAL_BLA_W_LP to NAL_RSV_BMCL_29 as defined in Non-Patent Document 4, that is, if it belongs to an IRAP-encoded basic mesh frame, then the Temporal_ID must be 0.

[0167] If NALType is equal to NAL_TSA_R or NAL_TSA_N, Temporal_ID must not be equal to 0.

[0168] If NALType is equal to 0, and NALType is equal to NAL_STSA_R or NAL_STSA_N, then Temporal_ID must not be equal to 0.

[0169] The value of Temporal_ID must be the same for all BMCL NAL units within the access unit.

[0170] The Temporal_ID value of the coded base mesh frame or access unit is the Temporal_ID value of the BMCL NAL unit of the coded base mesh frame or access unit.

[0171] The Temporal_ID value of a sublayer representation is the maximum value of the Temporal_IDs of all BMCL NAL units within that sublayer representation.

[0172] The Temporal_ID value for non-BMCL NAL units is restricted as follows: - If NALType is equal to NAL_BMSPS, then Temporal_ID must be 0, and the Temporal_ID of the access unit containing the NAL unit must be 0. - Otherwise, if NALType is equal to NAL_EOS or NAL_EOB, Temporal_ID must be 0. - Otherwise, if NALType is equal to NAL_AUD or NALLFDD, Temporal_ID must be equal to the Temporal_ID of the access unit containing the NALL unit. - Otherwise, the Temporal_ID must be greater than or equal to the Temporal_ID of the access unit containing the NAL unit.

[0173] If the NAL unit is not a BMCL, the Temporal_ID value will be equal to the minimum Temporal_ID value of all access units to which the non-BMCL NAL unit applies.

[0174] If NALType is equal to NAL_BMFPS, then Temporal_ID can be greater than or equal to the Temporal_ID of the included access unit, since the entire set of basic mesh frame parameters (BMFPS) is included at the beginning of the bitstream where the Temporal_ID of the first encoded basic mesh frame is 0.

[0175] Furthermore, the skip decoding unit 202F will refer to the specified tIDTarget and discard any NAL units whose Temporal_ID is higher than tIDTarget without decoding them.

[0176] Here, tIDTarget may be specified by a predetermined value, or it may be specified by the network conditions or the terminal capabilities of the mesh decoding device 200.

[0177] For example, a lower tIDTarget is specified for wireless connections than for wired connections. Also, a lower tIDTarget is specified when the network conditions are poor. Furthermore, a lower tIDTarget is specified when decoding is performed by a low-spec mesh decoder 200.

[0178] However, a requirement for bitstream conformance is that the bitstream must contain at least one NAL unit whose Temporal_ID is not higher than tIDTarget.

[0179] The following describes an example of a change that achieves temporal scalability using the aforementioned Temporal_ID.

[0180] The atlas, base mesh, displacement, and texture bitstreams are encapsulated by a Network Abstraction Layer (NAL) unit. The NAL unit may have a NAL header as shown in Figure 24.

[0181] The TID, defined as the last 3 bits in the NAL header, is Temporal_ID plus 1. The TID ranges from 1 to 7, and zero is prohibited.

[0182] The LayerID / R6, defined as the six bits immediately preceding the TID in the NAL header, specifies the identifier of the layer to which the NAL unit belongs.

[0183] The LayerID / R6 value must be within the range of 0 to 62. The value 63 may be specified by ISO / IEC in the future.

[0184] Aside from determining the amount of data in the bitstream's decode unit, the mesh decoder 200 ignores all data following the value 63 in the NAL unit, and a mesh decoder 200 conforming to a specified profile ignores (i.e., removes and discards) all NAL units where the LayerID-R6 value is not 0.

[0185] The LayerID / R6 value of 63 can be used in future extensions to indicate an extended layer identifier.

[0186] Furthermore, if there are submeshes of the basic mesh as defined in Non-Patent Document 4, all submeshes shall be given the same TID, or the TID shall be applied to all submeshes.

[0187] The bitstreams for the atlas, base mesh, displacement, and texture may each have their own independently set TID. For example, the TID for the atlas is fixed to zero according to Annex A of Non-Patent Document 5. Thus, the base mesh, displacement, and texture each have their own independently set TID.

[0188] In other words, depending on the content, at least one of the base mesh, displacement, and texture may have its Temporal_ID fixed to zero. In that case, LD settings can also be used. An example is shown in Table 3.

[0189] [Table 1] Even if each bitstream is set independently, the displacement amount and texture will utilize the HEVC or VVC video encoding scheme, while the basic mesh will utilize the embodiment described above.

[0190] If set independently for each bitstream, the system will refer to the tIDTarget specified for each bitstream and discard any NAL units whose TID is higher than tIDTarget without decoding them.

[0191] Here, tIDTarget may be specified by a predetermined value, or it may be specified by the network conditions or the terminal capabilities of the mesh decoding device 200.

[0192] For example, a lower tIDTarget is specified for wireless connections than for wired connections. Also, a lower tIDTarget is specified when the network conditions are poor. Furthermore, a lower tIDTarget is specified when decoding is performed by a low-spec mesh decoder 200.

[0193] However, a requirement for bitstream conformance is that at least one NAL unit must exist in the bitstream whose TID is not greater than tIDTarget.

[0194] On the other hand, if each bitstream is set independently, then if even one element—the base mesh, displacement, or texture—is discarded in a particular frame, the others will also be discarded.

[0195] Alternatively, if each bitstream is configured independently, if the base mesh is discarded in a particular frame, the displacement values ​​and textures will also be discarded, and the reconstruction process will not be performed. However, if the displacement values ​​are discarded, all displacement values ​​will be set to zero, and the reconstruction process will be performed. Similarly, if the textures are discarded, all texture values ​​will be set to zero, and the reconstruction process will be performed.

[0196] Note that the number of submeshes may differ in each frame (intra frame, interframe, and skip frame).

[0197] In such cases, the intra-decoding unit 202B, the inter-decoding unit 202E, and the skip-decoding unit 202F assign a unique sub-mesh ID to each sub-mesh in each frame.

[0198] Furthermore, the intra-decoding unit 202B and the inter-decoding unit 202E may assign different SubmeshIDs to corresponding submeshes between frames.

[0199] However, the inter-decoding unit 202E is limited to referencing only submeshes that have the same SubmeshID within the reference frame.

[0200] Alternatively, the inter-decoding unit 202E may only reference submeshes that have the same number of vertices within the reference frame.

[0201] Alternatively, the intra-decoding unit 202B and the inter-decoding unit 202E may refer to a submesh specified in the reference frame.

[0202] In such cases, if there are multiple submeshes in the reference frame, the inter-decoding unit 202E may decode a control signal from the bitstream of the current submesh that specifies the SubmeshID of the referenceable submesh.

[0203] On the other hand, if there is only one submesh in the reference frame, the inter-decoding unit 202E may treat that submesh as a referenceable submesh.

[0204] However, if the above-mentioned control signals are not present, the inter-decoding unit 202E or the skip decoding unit 202F will set the SubmeshID of the accessible submesh to the same SubmeshID as the submesh in the current frame.

[0205] Furthermore, the inter-decoding unit 202E may decode a control signal from the bitstream indicating whether the above-mentioned control signal exists.

[0206] The inter-decoding unit 202E may also decode a control signal that selects the method for determining the above-mentioned referable submesh.

[0207] The subdivision section 203 and the displacement decoding section 206 may conform to Non-Patent Document 4.

[0208] Non-patent document 4 uses the getPatchIdzInAtlas() and getSubmeshIdxInBaseMesh() functions, but does not define a specific calculation method. This embodiment defines a specific calculation method for these functions.

[0209] The function "p=getPatchIdzInAtlas(submeshIdx,lodIdx)" returns the patch index "p" of the patch in the atlas that describes a submesh whose submesh index is "submeshIdx" and whose level of detail index is "lodIdx".

[0210] The variable "AtlasTotalNumMeshpatches" and the arrays "SubmeshIndexToID", "AtlasMeshpatchSubmeshID", and "AtlasMeshpatchLoDIdx" are referenced in the function "getPatchIdzInAtlas()" as part of the input to Clause 11 of Non-Patent Document 4.

[0211] The specific calculation method is as follows: getPatchIdxInAtlas( submeshIdx, lodIdx) { submeshId = SubmeshIndexToID[ submeshIdx ] for( p = 0; p < AtlasTotalNumMeshpatches; p++ ) { if( AtlasMeshpatchSubmeshID[ p ] == submeshId && AtlasMeshpatchLoDIdx[ p ] == lodIdx ) { return p } } return 0 } The function "s=getSubmeshIdxInBaseMesh(submeshId)" returns the submesh index "s" within the base mesh that describes the submesh whose submesh ID is "submeshId".

[0212] The variable "compTimeIdx" and the arrays "submeshesPerFrameCountNF" and "basemeshFramesNF" are referenced in the function "getSubmeshIdxInBaseMesh()" as part of the input to Clause 11 of Non-Patent Document 4.

[0213] The specific calculation method is as follows: getSubmeshIdxInBaseMesh( submeshId ) { for( i =0; i < submeshesPerFrameCountNF[ compTimeIdx ]; i++ ){ if( basemeshFramesNF[ compTimeIdx ][ i ].submeshId == submeshId ){ return i } } return 0 }

[0214] Alternatively, the calculation method for creating a branch based on the probability of success is as follows: getSubmeshIdxInBaseMesh( submeshId, atlasSubmeshIdx ) { if( basemeshFramesNF[ compTimeIdx ][ atlasSubmeshIdx ].submeshId == submeshId ){ return atlasSubmeshIdx } else if( basemeshFramesNF[ compTimeIdx ][ atlasSubmeshIdx ].submeshId < submeshId ){ for( i = atlasSubmeshIdx + 1 ; i < submeshesPerFrameCountNF[ compTimeIdx ]; i++ ){ if( basemeshFramesNF[ compTimeIdx ][ i ].submeshId == submeshId ){ return i } } else if( basemeshFramesNF[ compTimeIdx ][ atlasSubmeshIdx ].submeshId > submeshId ){ for( i = atlasSubmeshIdx - 1 ; i >= 0; i-- ){ if( basemeshFramesNF[ compTimeIdx ][ i ].submeshId == submeshId ){ return i } } return 0 }

[0215] According to this embodiment, by defining specific calculation methods in the getPatchIdxInAtlas() and getSubmeshIdxInBaseMesh() functions, it is expected that the mesh can be decoded accurately.

[0216] Furthermore, according to this embodiment, it is ensured that the control signal bmsps_mesh_attribute_count, which indicates the number of attributes of the basic mesh, is less than or equal to the number of attributes in any submesh of any I frame in the basic mesh bitstream (i.e., any value of mesh_attribute_count), thereby preventing inconsistencies regarding the number of attributes of the basic mesh and enabling the basic mesh to be decoded correctly.

[0217] Furthermore, according to this embodiment, in a method for appropriately extracting bits from a basic mesh subbitstream, by performing appropriate branching and processing according to the conditions, it becomes possible to handle special cases such as skipped frames and correctly extract bits.

[0218] Furthermore, according to this embodiment, by matching the decoding method and range of the "BMFPS ID" with the "AFPS ID," consistency with Atlas's FPS ID is maintained, and it becomes possible to maximize the degree of freedom and performance without limiting Atlas's capabilities.

[0219] The mesh coding device 100 and mesh decoding device 200 described above may be implemented as programs that cause a computer to execute each function (each process). [Industrial applicability]

[0220] Furthermore, according to this embodiment, for example, it is possible to achieve an overall improvement in service quality in video communication, thereby contributing to Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), "Build resilient infrastructure, promote sustainable industrialization and foster innovation." [Explanation of Symbols]

[0221] 1…Mesh processing system 100... Mesh coding device 200... Mesh Decoder 201…Demultiplexer 202...Basic Mesh Decoding Unit 202A…Separation part 202B...Intra Decoding Unit 202B1... Optional intra-decoding unit 202B2…Alignment section 202C...Mesh buffer section 202D...Connection Information Decoding Unit 202E...Inter-decoding section 202E1... Motion vector residual decoding unit 202E2... Motion vector buffer section 202E3... Motion vector prediction unit 202E4... Motion vector calculation unit 202E5…Adder 203…Subdivision part 204...Mesh decoding section 205... Patch Integration Department 206...Displacement Decoding Unit 207...Video Decoding Unit 208... Atlas Data Decoding Unit

Claims

1. A mesh decoding device, An Atlas data decoding unit configured to decode the Atlas bitstream and output control information, It comprises a basic mesh decoding unit configured to decode a basic mesh bitstream and output a basic mesh, A mesh decoding device characterized in that the basic mesh bitstream includes a set of control information relating to the decoding of the basic mesh, namely BMSPS (Basemesh Sequence Parameter Set), BMFPS (Basemesh Frame Parameter Set), BMSH (Basemesh Submesh Header), and BMSDU (Basemesh Submesh Data Unit).

2. The BMSPS includes a fourth control signal indicating the BMSPS ID of the mesh decoding device, The fourth control signal is decoded by ue(v) or u(4), The mesh decoding device according to claim 1, characterized in that the range limit of the fourth control signal is from 0 to 15.

3. The BMFPS includes a fifth control signal indicating a BMSPS ID referenced by the mesh decoding device, The fifth control signal is decoded by ue(v) or u(4), The mesh decoding device according to claim 1, characterized in that the range limit of the fifth control signal is from 0 to 15.

4. The BMFPS includes a sixth control signal indicating the BMFPS ID of the mesh decoder, The sixth control signal is decoded by ue(v) or u(6), The mesh decoding device according to claim 1, characterized in that the range limit of the sixth control signal is from 0 to 63.

5. The BMSH includes a seventh control signal indicating the BMFPS ID referenced by the mesh decoding device, The seventh control signal is decoded by ue(v) or u(6), The mesh decoding device according to claim 1, characterized in that the range limit of the seventh control signal is from 0 to 63.

6. A mesh decoding method, Step A involves decoding the Atlas bitstream and outputting control information. The process includes step B, which involves decoding the basic mesh bitstream and outputting the basic mesh, A mesh decoding method characterized in that the basic mesh bitstream includes a set of control information relating to the decoding of the basic mesh, namely BMSPS (Basemesh Sequence Parameter Set), BMFPS (Basemesh Frame Parameter Set), BMSH (Basemesh Submesh Header), and BMSDU (Basemesh Submesh Data Unit).

7. A program that makes a computer function as a mesh decoding device, The mesh decoding device is An Atlas data decoding unit configured to decode the Atlas bitstream and output control information, It comprises a basic mesh decoding unit configured to decode a basic mesh bitstream and output a basic mesh, The program is characterized in that the basic mesh bitstream includes a set of control information relating to the decoding of the basic mesh, namely BMSPS (Basemesh Sequence Parameter Set), BMFPS (Basemesh Frame Parameter Set), BMSH (Basemesh Submesh Header), and BMSDU (Basemesh Submesh Data Unit).