Mesh data encoding apparatus, mesh data encoding method, mesh data decoding apparatus, and mesh data decoding method

The method addresses the inefficiencies in transmitting and receiving point cloud data by employing a mesh data encoding and decoding process within a point cloud data transmission device, resulting in reduced latency and improved service quality.

WO2025121764A1PCT designated stage expired Publication Date: 2025-06-12LG ELECTRONICS INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2024/018883
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-08
Filing Date
2024-11-26
Publication Date
2025-06-12

AI Technical Summary

Technical Problem

The existing technologies face challenges in efficiently transmitting and receiving point cloud data due to the large number of points in 3D space, requiring significant processing and leading to latency and encoding/decoding complexity.

Method used

The proposed solution involves a method for encoding and decoding mesh data, which includes receiving a file containing a bitstream with mesh data, decapsulating the file, and decoding the mesh data for transmission, and vice versa for reception, using a point cloud data transmission device and a reception device.

Benefits of technology

This approach enables efficient transmission and reception of point cloud data, reducing latency and complexity in encoding and decoding processes, thereby providing a high-quality point cloud service.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024018883_12062025_PF_FP_ABST
    Figure KR2024018883_12062025_PF_FP_ABST
Patent Text Reader

Abstract

A decoding method according to embodiments may comprise the steps of: receiving a file including a bitstream including mesh data; decapsulating the file; and decoding the mesh data. An encoding method according to embodiments may comprise the steps of: encoding mesh data; encapsulating a file including a bitstream including the mesh data; and transmitting the file.
Need to check novelty before this filing date? Find Prior Art

Description

Mesh data encoding device, mesh data encoding method, mesh data decoding device and mesh data decoding method The embodiments provide a method for providing Point Cloud content to provide various services to users, such as Virtual Reality (VR), Augmented Reality (AR), Mixed Reality (MR), and autonomous driving services. A point cloud is a collection of points in 3D space. There is a problem in that it is difficult to create point cloud data because there are a large number of points in 3D space. There is a problem that a lot of processing is required to transmit and receive point cloud data. The technical problem according to the embodiments is to provide a point cloud data transmission device, a transmission method, a point cloud data reception device, and a reception method for efficiently transmitting and receiving point clouds in order to solve the problems described above. Technical problems according to embodiments are directed to providing a point cloud data transmission device, a transmission method, a point cloud data reception device, and a reception method for resolving latency and encoding / decoding complexity. However, the scope of the embodiments is not limited to the technical tasks described above, and the scope of the embodiments may be expanded to other technical tasks that can be inferred by a person skilled in the art based on the entire contents of this document. To achieve the above-described object and other advantages, a decoding method according to embodiments may include a step of receiving a file including a bitstream including mesh data; a step of decapsulating the file; and a step of decoding the mesh data. An encoding method according to embodiments may include a step of encoding mesh data; a step of encapsulating a file including a bitstream including the mesh data; and a step of transmitting the file. The point cloud data transmission method, transmission device, point cloud data reception method, and reception device according to the embodiments can provide a quality point cloud service. The point cloud data transmission method, transmission device, point cloud data reception method, and reception device according to the embodiments can achieve various video codec methods. The point cloud data transmission method, transmission device, point cloud data reception method, and reception device according to the embodiments can provide general-purpose point cloud content such as autonomous driving services. The drawings are included to further understand the embodiments, and the drawings illustrate the embodiments together with the description related to the embodiments. For a better understanding of the various embodiments described below, reference should be made to the following description of the embodiments in conjunction with the following drawings, in which like reference numerals correspond to corresponding parts throughout the drawings. Figure 1 illustrates a system for providing dynamic mesh content according to embodiments. Figure 2 illustrates a V-MESH compression method according to embodiments. Figure 3 illustrates pre-processing of V-MESH compression according to embodiments. Figure 4 illustrates a mid-edge subdivision method according to embodiments. Figure 5 shows a displacement generation process according to embodiments. Figure 6 illustrates an intra-frame encoding process of a V-MESH compression method according to embodiments. Figure 7 illustrates an inter-frame encoding process of a V-MESH compression method according to embodiments. Figure 8 shows a lifting conversion process for displacement according to embodiments. Figure 9 shows a process of packing transformation coefficients according to embodiments into a 2D image. Figure 10 illustrates an attribute transfer process of a V-MESH compression method according to embodiments. Figure 11 illustrates an intra frame decoding process of a V-MESH compression method according to embodiments. Fig. 12 shows a V-MES and Fig. 13 shows a point cloud data transmission device according to embodiments. Fig. 13 shows a point cloud data transmission device according to embodiments. Fig. 14 shows a point cloud data receiving device according to embodiments. Figure 15 shows a V-DMC bitstream according to embodiments. Figure 16 illustrates a V3C unit according to embodiments. Figure 17 shows a mesh system according to embodiments. Figure 18 shows the tracks of a file according to embodiments. Figure 19 shows the tracks of a file according to embodiments. Figure 20 illustrates an atlas item as an entry point having a single atlas according to embodiments. Figures 21a and b illustrate atlas items as entry points having multiple atlases according to embodiments. Figures 22a, b, and c illustrate atlas items as entry points having multiple atlases with multiple atlas tiles according to embodiments. Figure 23 shows a basemesh item as an entry point having a single atlas according to embodiments. Figure 24 shows a basemesh item as an entry point having a single atlas according to embodiments. Fig. 25 shows a mesh data receiving device according to embodiments. Figures 26a, b illustrate a single atlas having multiple atlas tiles and multiple submeshes, with respect to the atlas as an entry point according to embodiments. Figure 27 illustrates the encoding of displacement and texture composed of multiple atlas tiles and multiple submeshes according to embodiments. Figure 28 shows a mesh data encoding method according to embodiments. Figure 29 shows a method for decrypting mesh data according to embodiments. The following detailed description of preferred embodiments of the embodiments is specifically described, examples of which are illustrated in the accompanying drawings. The following detailed description with reference to the accompanying drawings is intended to explain preferred embodiments of the embodiments rather than to illustrate only embodiments that can be implemented according to the embodiments of the embodiments. The following detailed description includes details to provide a thorough understanding of the embodiments. However, it will be apparent to one skilled in the art that the embodiments may be practiced without these details. Most of the terms used in the examples are selected from those commonly used in the field, but some terms are arbitrarily selected by the applicant and their meanings are described in detail in the following description as needed. Therefore, the examples should be understood based on the intended meaning of the terms and not on the simple names or meanings of the terms. Figure 1 illustrates a system for providing dynamic mesh content according to embodiments. The system of FIG. 1 includes a point cloud data transmission device (100) and a point cloud data reception device (110) according to embodiments. The point cloud data transmission device may include a dynamic mesh video acquisition unit (101), a dynamic mesh video encoder (102), a file / segment encapsulator (103), and a transmitter (104). The point cloud data reception device (110) may include a reception unit (111), a file / segment decapsulator (112), a dynamic mesh video decoder (113), and a renderer (114). Each component of FIG. 1 may correspond to hardware, software, a processor, and / or a combination thereof. Hereinafter, the point cloud data transmission device according to embodiments may be interpreted as a term referring to the transmission device (100) or a dynamic mesh video encoder (hereinafter, referred to as an encoder) (102). The point cloud data receiving device according to the embodiments may be interpreted as a term referring to a receiving device (110) or a dynamic mesh video decoder (hereinafter, decoder) (113). The system of Fig. 1 can perform video-based dynamic mesh compression and decompression. With the advancement of 3D capture, modeling, and rendering, users can use various forms of 3D content, such as AR, XR, metaverse, and holograms, on various platforms and devices. 3D contents express objects more precisely and realistically so that users can enjoy immersive experiences, and for this purpose, a large amount of data is required to create and use 3D models. Among various types of 3D content, 3D mesh is widely used for efficient data utilization and realistic object expression. Embodiments include a series of processing processes in a system that uses such mesh content. First, the method of compressing dynamic mesh data starts from the V-PCC (Video-based point cloud compression) standard technology. Point cloud data is data that has color information in the vertex coordinates (X, Y, Z). Mesh data refers to the vertex information to which connectivity information between vertices is added. When creating content, it can be created in the form of mesh data from the beginning. Connectivity information can be added to point cloud data and converted into mesh data for use. Currently, the MPEG standards body defines the data types of dynamic mesh data as the following two types. Category 1: Mesh data with texture maps as color information. Category 2: Mesh data with vertex colors as color information. Mesh coding standards for Category 1 data are in progress, and work on Category 2 data standards will also be carried out in the future. The entire process for providing a Mesh content service may include an acquisition process, an encoding process, a transmission process, a decoding process, a rendering process, and / or a feedback process, as shown in Fig. 1. In order to provide a mesh content service, 3D data acquired through multiple cameras or special cameras can be processed into a mesh data type through a series of processes and then generated as a video. The generated mesh video is transmitted through a series of processes, and the receiving end can process the received data again into a mesh video and render it. Through this, a mesh video is provided to the user, and the user can use the mesh content according to his / her intention through interaction. A mesh compression system may include a transmitting device and a receiving device. The transmitting device may encode mesh video to output a bitstream, which may be transmitted to a receiving device via a digital storage medium or a network in the form of a file or streaming (streaming segment). The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting device may roughly include a mesh video acquisition unit, a mesh video encoder, and a transmitting unit. The receiving device may roughly include a receiving unit, a mesh video decoder, and a renderer. The encoder may be called a mesh video / video / picture / frame encoding device, and the decoder may be called a mesh video / video / picture / frame decoding device. The transmitter may be included in the mesh video encoder. The receiver may be included in the mesh video decoder. The renderer may include a display unit, and the renderer and / or the display unit may be configured as separate devices or external components. The transmitting device and the receiving device may further include separate internal or external modules / units / components for a feedback process. Mesh data represents the surface of an object as a number of polygons. Each polygon is defined by a vertex in 3D space and connection information that describes how the vertices are connected. It can also include vertex properties such as vertex color, normal, etc. Mapping information that allows the surface of the mesh to be mapped to a 2D planar area can also be included as a mesh property. The mapping can be described as a set of parameter coordinates, commonly called UV coordinates or texture coordinates, associated with the mesh vertices. Meshes contain 2D attribute maps, which can be used to store high-resolution attribute information such as textures, normals, displacement, etc. The mesh video acquisition unit may include processing 3D object data acquired through a camera, etc. into a mesh data type having the properties described above through a series of processes and generating a video composed of such mesh data. The mesh video may have properties of the mesh, such as vertices, polygons, connection information between vertices, colors, normals, etc., that may change over time. A mesh video having properties and connection information that change over time in this way may be expressed as a dynamic mesh video. A mesh video encoder can encode an input mesh video into one or more video streams. A single video can include multiple frames, and a single frame can correspond to a still image / picture. In this document, a mesh video can include a mesh image / frame / picture, and the mesh video can be used interchangeably with the mesh image / frame / picture. The mesh video encoder can perform a Video-based Dynamic Mesh (V-Mesh) Compression procedure. The mesh video encoder can perform a series of procedures such as prediction, transformation, quantization, and entropy coding for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream. An encapsulation processing unit (file / segment encapsulation module) can encapsulate encoded mesh video data and / or mesh video related metadata in the form of a file, etc. Here, the mesh video related metadata may be received from a metadata processing unit, etc. The metadata processing unit may be included in the mesh video encoder, or may be configured as a separate component / module. The encapsulation processing unit may encapsulate the corresponding data in a file format such as ISOBMFF, or process it in the form of other DASH segments, etc. The encapsulation processing unit may include mesh video related metadata in the file format according to an embodiment. The mesh video metadata may be included in boxes at various levels in the ISOBMFF file format, for example, or may be included as data in a separate track within a file. According to an embodiment, the encapsulation processing unit may encapsulate mesh video related metadata itself in a file. The transmission processing unit can process encapsulated mesh video data for transmission according to a file format. The transmission processing unit can be included in the transmission unit, or can be configured as a separate component / module. The transmission processing unit can process mesh video data according to any transmission protocol. The processing for transmission can include processing for transmission through a broadcast network and processing for transmission through broadband. According to an embodiment, the transmission processing unit can receive not only mesh video data, but also mesh video-related metadata from the metadata processing unit, and process this for transmission. The transmission unit can transmit encoded video / image information or data output in the form of a bitstream to the reception unit of the receiving device through a digital storage medium or network in the form of a file or streaming. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit can include an element for generating a media file through a predetermined file format and can include an element for transmission through a broadcasting / communication network. The reception unit can extract the bitstream and transmit it to a decoding device. The receiver can receive mesh video data transmitted by the mesh video transmission device. Depending on the channel through which it is transmitted, the receiver can receive mesh video data through a broadcast network, through a broadband, or through a digital storage medium. The receiving processing unit can perform processing according to a transmission protocol on the received mesh video data. The receiving processing unit can be included in the receiving unit, or can be configured as a separate component / module. In order to correspond to the processing performed for transmission on the transmitting side, the receiving processing unit can perform the reverse process of the aforementioned transmitting processing unit. The receiving processing unit can transfer the acquired mesh video data to the decapsulation processing unit, and transfer the acquired mesh video-related metadata to the metadata parser. The mesh video-related metadata acquired by the receiving processing unit can be in the form of a signaling table. A decapsulation processing unit (file / segment decapsulation module) can decapsulate mesh video data in a file format received from a receiving processing unit. The decapsulation processing unit can decapsulate files according to ISOBMFF, etc., to obtain a mesh video bitstream or mesh video related metadata (metadata bitstream). The obtained mesh video bitstream can be transmitted to a mesh video decoder, and the obtained mesh video related metadata (metadata bitstream) can be transmitted to a metadata processing unit. The mesh video bitstream may include metadata (metadata bitstream). The metadata processing unit may be included in the mesh video decoder, or may be configured as a separate component / module. The mesh video related metadata obtained by the decapsulation processing unit may be in the form of a box or track within a file format. If necessary, the decapsulation processing unit may receive metadata required for decapsulation from the metadata processing unit. Mesh video related metadata can be passed to a Mesh video decoder for use in the Mesh video decoding process, or can be passed to a renderer for use in the Mesh video rendering process. The Mesh Video Decoder can receive a bitstream as input and perform operations corresponding to the operations of the Mesh Video Encoder to decode the video / image. The decoded Mesh Video can be displayed through the display unit. The user can view all or part of the rendered result through a VR / AR display or a general display. The feedback process may include a process of transmitting various feedback information that may be acquired during the rendering / display process to the transmitter or to the decoder of the receiver. Interactivity may be provided in mesh video consumption through the feedback process. According to an embodiment, head orientation information, viewport information indicating an area that the user is currently viewing, etc. may be transmitted during the feedback process. According to an embodiment, the user may interact with things implemented in the VR / AR / MR / autonomous driving environment, in which case information related to the interaction may be transmitted to the transmitter or the service provider during the feedback process. Depending on the embodiment, the feedback process may not be performed. Head orientation information can mean information about the user's head position, angle, movement, etc. Based on this information, information about the area the user is currently viewing within the mesh video, i.e. viewport information, can be calculated. Viewport information can be information about the area that the current user is viewing in the Mesh video. This can be used to perform gaze analysis to determine how the user consumes the Mesh video, which area of ​​the Mesh video they gaze at and for how long. The gaze analysis can be performed on the receiving side and transmitted to the transmitting side through a feedback channel. Devices such as VR / AR / MR displays can extract the viewport area based on the user's head position / orientation, the vertical or horizontal FOV supported by the device, etc. Depending on the embodiment, the aforementioned feedback information may be consumed by the receiver as well as transmitted to the transmitter. That is, the decoding and rendering processes of the receiver may be performed using the aforementioned feedback information. For example, only the mesh video for the area currently being viewed by the user may be preferentially decoded and rendered using head orientation information and / or viewport information. This document relates to dynamic mesh video compression as described above. The method / embodiment disclosed in this document can be applied to the Video-based Dynamic Mesh compression method (V-Mesh) standard of MPEG (Moving Picture Experts Group) or the next-generation video / image coding standard. Dynamic mesh video compression is a method for processing mesh connection information and properties that change over time, and it can perform lossy and lossless compression for various applications such as real-time communication, storage, free-viewpoint video, and AR / VR. The dynamic mesh video compression method described below is based on MPEG's V-Mesh method. In this document, picture / frame can generally mean a unit representing one video image of a specific time period. A pixel or pel can mean the smallest unit that constitutes a picture (or image). In addition, a 'sample' can be used as a term corresponding to a pixel. A sample can generally represent a pixel or a pixel value, and can represent only a pixel / pixel value of a luma component, only a pixel / pixel value of a chroma component, or only a pixel / pixel value of a depth component. A unit may represent a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. A unit may be used interchangeably with terms such as block or area, depending on the case. In general, an MxN block may include a set (or array) of samples (or sample array) or transform coefficients consisting of M columns and N rows. The encoding process of Fig. 1 is as follows. Video-based dynamic mesh compression (V-Mesh) compression method can provide a method of compressing dynamic mesh video data based on 2D video codecs such as HEVC and VVC. In the V-Mesh compression process, the following data is received as input and compression is performed. Input mesh: Contains the 3D coordinates (geometry) of the vertices that make up the mesh, normal information for each vertex, mapping information that maps the mesh surface to a 2D plane, connection information between the vertices that make up the surface, etc. The mesh surface can be expressed as triangles or more polygons, and connection information between the vertices that make up each surface is stored according to a set shape. The input mesh can be saved in the OBJ file format. Attribute map: (Hereinafter, texture map is also used with the same meaning): Contains information on the properties (color, normal, displacement, etc.) of the mesh, and stores data in the form of mapping the surface of the mesh onto a 2D image. Mapping which part (surface or vertex) of the mesh each data of this attribute map corresponds to is based on the mapping information included in the input mesh. Since the attribute map has data for each frame of the mesh video, it can also be expressed as an attribute map video (or attribute for short). The attribute map in the V-Mesh compression method mainly contains the color information of the mesh, and is stored in an image file format (PNG, BMP, etc.). Material Library File: Contains information about the material properties used in the mesh, and in particular, information that links the input mesh to its corresponding attribute map. It is saved in the Wavefront Material Template Library (MTL) file format. In the V-Mesh compression method, the following data and information can be generated through the compression process. Base mesh: The input mesh is simplified (decimated) through a preprocessing process to express the objects of the input mesh using the minimum number of vertices determined by the user's criteria. Displacement: This is displacement information used to express the input mesh as similarly as possible to the base mesh, and is expressed in the form of three-dimensional coordinates. Atlas information: This is metadata required to reconstruct the mesh using the base mesh, displacement, and attribute map information. This can be created and utilized as a sub-unit (sub-mesh, patch, etc.) that constitutes the mesh. Referring to FIGS. 2 to 7, a method for encoding mesh location information (vertex) is described, and referring to FIGS. 6-10, etc., a method for encoding attribute information (attribute map) by restoring mesh location information is described. Figure 2 illustrates a V-MESH compression method according to embodiments. Fig. 2 shows the encoding process of Fig. 1, and the encoding process may include a pre-processing and an encoding process. The encoder of Fig. 1 may include a pre-processor (200) and an encoder (201) as in Fig. 2. The transmitting device of Fig. 1 may be broadly referred to as an encoder, and the dynamic mesh video encoder of Fig. 1 may be referred to as an encoder. The V-Mesh compression method may include a pre-processing (200) and an encoding (201) process as in Fig. 2. The pre-processor of Fig. 2 may be located in front of the encoder of Fig. 2. The pre-processor and the encoder of Fig. 2 may be referred to as one encoder. The pre-processor can receive a static dynamic mesh and / or an attribute map. The pre-processor can generate a base mesh and / or a displacement through preprocessing. The pre-processor can receive feedback information from an encoder and generate the base mesh and / or the displacement based on the feedback information. An encoder can receive a base mesh, a displacement mesh, a static dynamic mesh, and / or an attribute map. The encoder can encode mesh-related data to generate a compressed bitstream. Figure 3 illustrates pre-processing of V-MESH compression according to embodiments. Figure 3 shows the configuration and operation of the pre-processor of Figure 2. Fig. 3 shows a process of performing preprocessing on an input mesh. The preprocessing process (200) can largely include four steps: 1) GoF (Group of Frame) generation, 2) Mesh Decimation, 3) UV parameterization, and 4) Fitting subdivision surface (300). The preprocessor (200) can receive an input mesh, generate a displacement and / or base mesh, and transmit the generated mesh to the encoder (201). The preprocessor (200) can transmit GoF information related to GoF generation to the encoder (201). Below, each step of Fig. 3 is described. GoF Generation: This is the process of generating a reference structure for mesh data. If the number of vertices, the number of texture coordinates, the vertex connection information, and the texture coordinate connection information of the mesh of the previous frame and the current mesh are all the same, the previous frame can be set as the reference frame. In other words, if only the vertex coordinate values ​​are different between the current input mesh and the reference input mesh, inter frame encoding can be performed. Otherwise, the frame performs intra frame encoding. Mesh Decimation: This is the process of simplifying the input mesh to create a simplified mesh, or base mesh. After selecting vertices to be removed from the original mesh based on criteria defined by the user, the selected vertices and triangles connected to the selected vertices can be removed. In the process of performing mesh simplification (Mesh decimation), the input mesh (voxelized), target triangle ratio (TTR), and minimum triangle component (CCCount) information are passed as input, and the simplified mesh (decimated mesh) can be obtained as output. In this process, connected triangle components smaller than the set minimum triangle component (CCCount) can be removed. UV parameterization: This is the process of mapping a 3D surface to a texture domain for a decimated mesh. Parameterization can be performed using the UVAtlas tool. Through this process, mapping information is generated that shows where each vertex of the decimated mesh can be mapped to on a 2D image. The mapping information is expressed and saved as texture coordinates, and the final base mesh is generated through this process. Fitting subdivision surface: This is the process of performing subdivision on a simplified mesh. A user-defined method, such as the mid-edge method, can be applied as the subdivision method. The fitting process is performed so that the input mesh and the mesh on which subdivision is performed are similar to each other. Figure 4 illustrates a mid-edge subdivision method according to embodiments. Figure 4 shows the mid-edge method of the fitting subdivision surface described in Figure 3. Referring to Figure 4, an original mesh including four vertices is subdivided to create a sub-mesh. A sub-mesh can be created by creating a new vertex in the middle of an edge between vertices. When a fitted subdivided mesh (hereinafter referred to as the fitted subdivided mesh) is generated, displacement is calculated using this result and a pre-compressed and decoded base mesh (hereinafter referred to as the reconstructed base mesh). That is, the reconstructed base mesh is subdivided in the same way as the fitting subdivision surface. The difference in position of each vertex between this result and the fitted subdivided mesh is the displacement for each vertex. Since the displacement represents the position difference in three-dimensional space, it is also expressed as a value in the (x, y, z) space of the Cartesian coordinate system. Depending on the user input parameters, the (x, y, z) coordinate values ​​can be converted to (normal, tangential, bi-tangential) coordinate values ​​in the local coordinate system. Figure 5 shows a displacement generation process according to embodiments. Fig. 5 illustrates in detail the displacement calculation method of the fitting subdivision surface (300) as described in Fig. 4. An encoder and / or pre-processor according to embodiments may include 1) a subdivision unit, 2) a local coordinate system calculation unit, and 3) a displacement calculation unit. The subdivision unit may receive a reconstructed base mesh and generate a subdivided reconstructed base mesh. The local coordinate system calculation unit may receive a fitted subdivision mesh and a subdivided reconstructed base mesh, and transform a coordinate system of the meshes into a local coordinate system. The local coordinate system calculation operation may be optional. The displacement calculation unit may calculate a positional difference between the fitted subdivision mesh and the subdivided reconstructed base mesh. For example, a positional difference value between vertices of two input meshes may be generated. The vertex positional difference value becomes a displacement. The method and device for transmitting point cloud data according to the embodiments can encode the point cloud as follows. The point cloud data (which may be referred to as point cloud for short) according to the embodiments can refer to data including vertex coordinates and color information. The point cloud is a term including mesh data, and in this document, the point cloud and mesh data can be used interchangeably. The V-Mesh compression (decompression) method according to the embodiments may include intra frame encoding (Fig. 6) and inter frame encoding (Fig. 7). Based on the result of the GoF generation described above, intra frame encoding or inter frame encoding is performed. In the case of intra encoding, the data to be compressed can be a base mesh, displacement, attribute map, etc. In the case of inter encoding, the data to be compressed can be a displacement, an attribute map, and a motion field between a reference base mesh and a current base mesh. Figure 6 illustrates an intra-frame encoding process of a V-MESH compression method according to embodiments. The encoding process of Fig. 6 details the encoding of Fig. 1. That is, it shows the configuration of an encoder when the encoding of Fig. 1 is an intra-frame method. The encoder of Fig. 6 may include a preprocessor (200) and / or an encoder (201). The preprocessor can receive an input mesh and perform the preprocessing described above. The preprocessing can generate a base mesh and / or a fitted subdivided mesh. The quantizer can quantize the base mesh and / or the fitted subdivided mesh. The static mesh encoder can encode the static mesh. The static mesh encoder can generate a bitstream including the encoded base mesh. The static mesh decoder can decode the encoded static mesh. The inverse quantizer can inversely quantize the quantized static mesh. The displacement calculation unit can receive the restored static mesh and generate displacement, which is a position difference, based on the fitted subdivided mesh. The forward linear lifting unit can receive the displacement and generate lifting coefficients. The quantizer can quantize the lifting coefficients. The image packing unit can pack an image based on the quantized lifting coefficients. A video encoder can encode a packed image. A video decoder decodes an encoded video. An image unpacker can unpack a packed image. An inverse quantizer can inversely quantize an image. An inverse linear lifting unit applies inverse lifting to an image to generate a reconstructed displacement. A mesh restoration unit restores a warped mesh using the reconstructed displacement and the reconstructed base mesh. An attribute transfer unit receives an input mesh and / or an input attribute map, and generates an attribute map based on the reconstructed warped mesh. A push-pull padding unit can pad data in an attribute map based on a push-pull method. A color space transformation unit can transform a space of a color component, which is an attribute. A video encoder can encode an attribute. A multiplexer can generate a bitstream by multiplexing a compressed base mesh, a compressed displacement, and a compressed attribute. Figure 7 illustrates an inter-frame encoding process of a V-MESH compression method according to embodiments. The encoding process of Fig. 7 illustrates the encoding of Fig. 1 in detail. That is, it illustrates the configuration of an encoder when the encoding of Fig. 1 is in an inter-frame manner. The encoder of Fig. 7 may include a preprocessor (200) and / or an encoder (201). Among the encoding operations of Fig. 7, the configuration corresponding to the encoding operation of Fig. 6 refers to the description of Fig. 7. For the inter-frame-based encoding of Fig. 7, the motion encoder can encode motion based on the restored quantized reference base mesh. The base mesh restoration unit can restore the base mesh based on the restored quantized reference base mesh. The encoder of Fig. 6 generates a bitstream by compressing the base mesh, displacement, and attributes within a frame, and the encoder of Fig. 7 generates a bitstream by compressing the motion, displacement, and attributes between the current frame and the reference frame. The encoding method according to the embodiments includes base mesh encoding (intra encoding). When performing intra frame encoding on a current input mesh frame, a base mesh generated in a preprocessing process can be encoded using a static mesh compression technique after going through a quantization process. In the V-Mesh compression method, for example, Draco technology is applied, and vertex position information, mapping information (texture coordinates), vertex connection information, etc. of the base mesh become compression targets. The encoding method according to the embodiments may include motion field encoding (inter encoding). Inter frame encoding may be performed when a reference mesh and a current input mesh have a one-to-one correspondence of vertices and only the position information of the vertices is different. When performing inter frame encoding, instead of compressing the base mesh, the difference between the vertices of the reference base mesh and the current base mesh, i.e., the motion field, may be calculated and this information may be encoded. The reference base mesh is the result of quantizing the already decoded base mesh data and is determined according to the reference frame index determined in the GoF generation. The motion field may be encoded as a value. Alternatively, the motion fields of the restored vertices among the vertices connected to the current vertex may be averaged to calculate the predicted motion field, and this predicted motion field The residual motion field, which is the difference between the value and the motion field value of the current vertex, can be encoded. This value can be encoded using entropy coding. The process of encoding the displacement and attribute map, excluding the motion field encoding process of the inter frame encoding, is the same as the remaining structure of the intra frame encoding method, excluding the base mesh encoding. Figure 8 shows a lifting conversion process for displacement according to embodiments. Figure 9 shows a process of packing transformation coefficients according to embodiments into a 2D image. Figures 8-9 illustrate the process of transforming the displacement of the encoding process of Figure 6-7 and the process of packing the transform coefficients, respectively. The encoding method according to the embodiments includes displacement encoding. After encoding the base mesh through base mesh encoding and / or motion field encoding, a reconstructed base mesh is generated through restoration and dequantization, and the displacement between the result of performing subdivision on the reconstructed base mesh and the fitted subdivided mesh generated through the fitting subdivision surface can be calculated. For effective encoding, a data transform process such as wavelet transform can be applied to the displacement information. Fig. 8 shows a process of transforming displacement information using a lifting transform in V-Mesh. The transform coefficients generated through the transform process are quantized and then packed into a 2D image as shown in Fig. 9. The transform coefficients are organized into one block for every 256 (=16×16) units, and each block can be packed in z-scan order. The horizontal number of blocks is fixed to 16, but the vertical number of blocks can be determined according to the number of vertices of the subdivided base mesh. The transform coefficients can be packed by sorting them with a Morton code within a block. The packed images generate a displacement video for every GoF unit, and the displacement video can be encoded using an existing video compression codec. Referring to FIG. 8, the base mesh (original) may include vertices and edges for LoD0. The first sub-division mesh generated by dividing the base mesh includes vertices generated by further dividing edges of the base mesh. The first sub-division mesh includes vertices for LoD0 and vertices for LoD1. LoD1 includes the sub-divided vertices and the vertices (LoD0) of the base mesh. The first sub-division mesh may be generated by dividing the first sub-division mesh. The second sub-division mesh includes LoD2. LoD2 includes the base mesh vertices (LoD0), LoD1 including vertices additionally generated from LoD0, and vertices additionally divided from LoD1. LoD is a level indicating the degree of detail (Level of Detail), and as the index of the level increases, the distance between vertices becomes closer and the level of detail increases. LoD N includes the vertices included in the previous LoDN-1 as they are. When a vertex is further divided through subdivision, considering the previous vertices v1, v2 and the subdivided vertex v, the mesh can be encoded based on a prediction and / or update method. Instead of still encoding information about the current LoD N, a residual value between the previous LoD N-1 can be generated, and the mesh can be encoded using the residual value to reduce the size of the bitstream. The prediction process means the operation of predicting the current vertex v through the previous vertices v1, v2. Since adjacent subdivision meshes have similar data, efficient encoding can be achieved by utilizing this property. The current vertex position information is predicted as the residual for the previous vertex position information, and the previous vertex position information is updated through the residual. Referring to Figure 9, the vertices have coefficients generated through lifting transformation. The coefficients of the vertices related to lifting transformation can be packed into an image and encoded. Figure 10 illustrates an attribute transfer process of a V-MESH compression method according to embodiments. Figure 10 shows the detailed operation of attribute transfer of encoding such as Figure 6-7. Encoding according to the embodiments includes attribute map encoding. Information about the input mesh is compressed through base mesh encoding, motion field encoding, and displacement encoding. In the encoding process, the compressed input mesh is restored through base mesh decoding (intra frame), motion field decoding (inter frame), and displacement video decoding, and the restored result, the reconstructed deformed mesh (hereinafter referred to as Recon. deformed mesh), is used to compress the input attribute map as shown in FIGS. 6 and 7. The reconstructed deformed mesh (Recon. deformed mesh) has position information of vertices, texture coordinates, and corresponding connection information, but does not have color information corresponding to the texture coordinates. Therefore, as shown in Fig. 10, in the V-Mesh compression method, a new attribute map having color information corresponding to the texture coordinates of the reconstructed deformed mesh is created through the attribute transfer process. Attribute transfer first checks whether each point P(u, v) in the 2D texture domain belongs to the texture triangle of the reconstructed deformed mesh, and if it exists in the texture triangle T, calculates the barycentric coordinate (α, β γ) of P(u, v) according to the triangle T. Then, using the 3D vertex position and (α, β γ) of triangle T, calculate the 3D coordinate M(x, y, z) of P(u, v). Find the vertex coordinate M'(x', y', z') that corresponds to the position most similar to the calculated M(x, y, z) in the input mesh domain and the triangle T' that contains this point. Then, the center of mass coordinates (α', β', γ') of M'(x', y', z') are calculated in this triangle T'. Using the texture coordinates and (α', β', γ') corresponding to the three vertices of triangle T', the texture coordinates (u', v') are calculated, and the color information corresponding to these coordinates is searched for in the input attribute map. The color information found in this way is immediately assigned to the (u, v) pixel location in the new attribute map. If P(u, v) does not belong to any triangle, the pixel at that location in the new attribute map can be filled with a color value using a padding algorithm such as the push-pull algorithm. The new attribute map generated through attribute transfer is grouped into GoF units to form an attribute map video, which is then compressed using a video codec. Referring to Figure 10, the reference relationship between the input mesh, input attribute map, restored mesh, and generated attribute map can be seen. The decoding process of Fig. 1 can perform the reverse process of the corresponding process of the encoding process of Fig. 1. The specific decoding process is as follows. Figure 11 illustrates an intra frame decoding process of a V-MESH compression method according to embodiments. Fig. 11 shows the configuration and operation of a decoder of a receiving device such as Fig. 1. Fig. 11 shows the intra decoding process of V-Mesh technology. First, the input bitstream can be separated into a mesh sub-stream, a displacement sub-stream, an attribute map sub-stream, and a sub-stream containing patch information of the mesh such as V3C / V-PCC. The mesh sub-stream is decoded by a decoder of a static mesh codec used in encoding, such as Google Draco, so that the connection information, vertex geometry information, and vertex texture coordinates of the base mesh can be restored. The displacement sub-stream is decoded into a displacement video by a decoder of a video compression codec used in encoding, and goes through image unpacking, inverse quantization, and inverse transform processes to restore displacement information for each vertex. Inverse quantization is applied to the restored base mesh, and this result is combined with the restored displacement information to generate the final decoded mesh. The attribute map sub-stream is decoded through the decoder of the video compression codec used in encoding, and then restored to the final attribute map through processes such as color format conversion. The restored decoded mesh and decoded attribute map can be utilized by the receiver as final mesh data that can be utilized by the user. Referring to FIG. 11, the bitstream includes patch information, a mesh substream, a displacement substream, and an attribute map substream. The substream is interpreted as a term referring to some bitstreams included in the bitstream. The bitstream includes patch information (data), mesh information (data), displacement information (data), and attribute cap information (data). The decoder performs the following decoding operations within a frame. The static mesh decoder decodes the mesh to generate a reconstructed quantized base mesh, and the inverse quantizer inversely applies the quantization parameters of the quantizer to generate the reconstructed base mesh. The video decoder decodes the displacement, the unpacker unpacks the decoded video image, and the inverse quantizer inversely quantizes the quantized image. The linear lifting inverse transform applies a lifting transform in the reverse process of the encoder to generate the reconstructed displacement. The mesh restoration unit generates a warped mesh based on the base mesh and the displacement. The video decoder decodes an attribute map, and the color transformation unit transforms a color format and / or space to generate a decoded attribute map. Figure 12 shows the inter-frame decoding process of the V-MESH compression method. Fig. 12 shows the configuration and operation of a decoder of a receiving device such as Fig. 1. Fig. 12 shows the inter decoding process of V-Mesh technology. First, the input bitstream can be separated into a motion sub-stream, a displacement sub-stream, an attribute sub-stream, and a sub-stream containing patch information of the mesh such as V3C / V-PCC. The motion sub-stream is decoded through the entropy decoding and inverse prediction processes, and the reconstructed motion information is combined with the already reconstructed reference base mesh to generate a reconstructed quantized base mesh for the current frame. The result of applying inverse quantization to this is combined with the displacement information reconstructed in the same way as the intra decoding described above to generate the final decoded mesh. The attribute map sub-stream is decoded in the same way as the intra decoding. The reconstructed decoded mesh and the decoded attribute map can be utilized by the receiver as the final mesh data that can be utilized by the user. Referring to Fig. 12, the bitstream includes motion, displacement, and attribute maps. Since inter-frame decoding is performed, a process of decoding inter-frame motion information is further included. The motion is decoded, and a restored quantized base mesh for the motion is generated based on the reference base mesh to generate the restored base mesh. For a description of the operation of Fig. 12, which is the same as Fig. 11, refer to the description of Fig. 11. Fig. 13 shows a point cloud data transmission device according to embodiments. Fig. 13 corresponds to the transmitting device (100), the dynamic mesh video encoder (102), the Fig. 2 encoder (pre-processor and encoder), and / or the transmitting encoding device corresponding thereto of Fig. 1. Each component of Fig. 13 corresponds to hardware, software, a processor, and / or a combination thereof. The operation process of a transmitter for compressing and transmitting dynamic mesh data using V-Mesh compression technology can be as shown in Fig. 13. The mesh preprocessor receives the original mesh as input and generates a simplified mesh (decimated mesh). Simplification can be performed based on the target number of vertices or the target number of polygons that constitute the mesh. Parameterization can be performed to generate texture coordinates and texture connection information per vertex for the simplified mesh. In addition, a task of quantizing floating-point type mesh information into fixed-point type can be performed. This result can be encoded as a base mesh through a static mesh encoding unit. The mesh preprocessor can perform mesh subdivision on the base mesh to generate additional vertices. Depending on the subdivision method, vertex connection information, texture coordinates, and texture coordinate connection information including the added vertices can be generated. The subdivided mesh can be fitted by adjusting the vertex positions to be similar to the original mesh, thereby generating a fitted subdivided mesh. When performing intra encoding for the corresponding mesh frame, the base mesh generated through the mesh preprocessing unit can be compressed through the static mesh encoding unit. In this case, encoding can be performed on the connection information, vertex geometry information, vertex texture information, normal information, etc. of the base mesh. The base mesh bitstream generated through encoding is transmitted to the multiplexing unit. When performing inter encoding for the corresponding mesh frame, a motion vector encoding unit is performed, which can calculate a motion vector between the two meshes using a base mesh and a reference restoration base mesh as inputs, and encode the value. The motion vector encoding unit can perform prediction based on connection information using a previously encoded / decoded motion vector as a predictor, and encode a residual motion vector obtained by subtracting the predicted motion vector from the current motion vector. The motion vector bitstream generated through encoding is transmitted to the multiplexing unit. The encoded base mesh and motion vectors can be used to generate a restored base mesh through the base mesh restoration unit. The displacement vector calculator can perform mesh refinement on the restored base mesh. The displacement vector can be calculated as the difference value of the vertex position between the refined restored base mesh and the fitted subdivision mesh generated in the preprocessing unit. As a result, the displacement vector can be calculated as many as the number of vertices of the refined mesh. The displacement vector calculation unit can convert the displacement vector calculated in the 3D Cartesian coordinate system into the local coordinate system based on the normal vector of each vertex. The displacement vector video generator can transform the displacement vector for effective encoding. The transform can be performed by a lifting transform, a wavelet transform, etc., depending on the embodiment. In addition, quantization can be performed on the transformed displacement vector value, that is, the transform coefficient. Different quantization parameters can be applied to each axis of the transform coefficient, and the quantization parameters can be derived by the promise of the encoder / decoder. The transformed and quantized displacement vector information can be packed into a 2D image. The packed 2D images can be bundled for each frame to generate a displacement vector video, and the displacement vector video can be generated for each GoF (Group of Frame) unit of the input mesh. A displacement vector video encoder can encode the generated displacement vector video using a video compression codec. The generated displacement vector video bitstream is transmitted to a multiplexer. The displacement vector restored through the displacement vector restorer and the base mesh restored through the base mesh restorer and refined are restored through the mesh restorer, and the restored mesh has restored vertices, connection information between vertices, texture coordinates, and connection information between texture coordinates. The texture map of the original mesh can be regenerated as a texture map for the restored mesh through the texture map video generation unit. The color information per vertex of the texture map of the original mesh can be assigned to the texture coordinates of the restored mesh. The regenerated texture maps for each frame can be grouped by GoF unit to generate a texture map video. The generated texture map video can be encoded using a video compression codec through a texture map video encoding unit. The texture map video bitstream generated through encoding is transmitted to a multiplexing unit. The generated motion vector bitstream, base mesh bitstream, displacement vector bitstream and texture map bitstream may be multiplexed into a single bitstream and transmitted to a receiver through a transmitter. Alternatively, the generated motion vector bitstream, base mesh bitstream, displacement vector bitstream and texture map bitstream may be generated into a file with one or more track data or encapsulated into segments and transmitted to a receiver through a transmitter. Referring to FIG. 13, a transmitting device (encoder) can encode a mesh in an intra-frame or inter-frame manner. A transmitting device according to intra-encoding can generate a base mesh, a displacement vector (displacement), and a texture map (attribute map). A transmitting device according to inter-encoding can generate a motion vector (motion), a base mesh, a displacement vector (displacement), and a texture map (attribute map). A texture map obtained from a data input unit is generated and encoded based on a restored mesh. Displacement is generated and encoded through a difference in vertex positions between the base mesh and the divided mesh. The base mesh is generated by preprocessing, simplifying, and encoding an original mesh. Motion is generated as a motion vector for a mesh of a current frame based on a reference base mesh of a previous frame. Fig. 14 shows a point cloud data receiving device according to embodiments. Fig. 14 corresponds to the receiving device (110) of Fig. 1, the dynamic mesh video decoder (113), the decoder of Figs. 11-12, and / or the receiving decoding device corresponding thereto. Each component of Fig. 14 corresponds to hardware, software, a processor, and / or a combination thereof. The receiving (decoding) operation of Fig. 14 can follow the reverse process of the corresponding process of the transmitting (encoding) operation of Fig. 13. The received Mesh bitstream is demultiplexed into a compressed motion vector bitstream or base mesh bitstream, displacement vector bitstream, and texture map bitstream after file / segment decapsulation. If the current mesh has inter-screen encoding applied according to the frame header information, the motion vector decoding unit can perform decoding on the motion vector bitstream. The final motion vector can be reconstructed by adding the previously decoded motion vector to the residual motion vector decoded from the bitstream using the previously decoded motion vector as a predictor. If the current mesh has in-screen encoding applied according to the frame header information, the base mesh bitstream can restore the connection information, vertex geometry information, texture coordinates, normal information, etc. of the base mesh through the static mesh encoding unit. In the base mesh restoration unit, if the current mesh has inter-screen encoding applied, the current base mesh can be restored by adding the decoded motion vector to the reference base mesh and then performing inverse quantization. If the current mesh has intra-screen encoding applied, the decoded mesh can be dequantized through the static mesh decoding unit to generate a restored base mesh. The displacement vector bitstream can be decoded as a video bitstream using a video codec in a displacement vector video decoder. In the displacement vector restoration unit, displacement vector transformation coefficients are extracted from the decoded displacement vector video, and the displacement vector is restored through the inverse quantization and inverse transformation processes. If the restored displacement vector is a value in the local coordinate system, a process of inverse transformation to the Cartesian coordinate system can be performed. In the mesh restoration section, additional vertices can be generated by performing subdivision on the restored base mesh. Through subdivision, vertex connection information including the added vertices, texture coordinates, and texture coordinate connection information can be generated. The subdivided restored base mesh can be combined with the restored displacement vector to generate the final restored mesh. The texture map bitstream can be decoded as a video bitstream using a video codec in a texture map video decoding unit. The restored texture map has color information for each vertex contained in the restored mesh, and the color value of each vertex can be obtained from the texture map using the texture coordinates of each vertex. The restored mesh and texture map are shown to the user through a rendering process using a mesh data renderer, etc. Referring to FIG. 14, a receiving device (decoder) can decode a mesh in an intra-frame or inter-frame manner. A receiving device according to intra-decoding can receive a base mesh, a displacement vector (displacement), and a texture map (attribute map), and can decode a restoration mesh and a restoration texture map to render mesh data. A receiving device according to inter-decoding can receive a motion vector (motion), a base mesh, a displacement vector (displacement), and a texture map (attribute map), and can decode a restoration mesh and a restoration texture map to render mesh data. The point cloud data transmission device and method according to the embodiments can encode mesh data and transmit a bitstream including the encoded mesh data. The point cloud data reception device and method according to the embodiments can receive a bitstream including mesh data and decode the mesh data. The point cloud data transmission and reception method / device according to the embodiments may be referred to as the method / device according to the embodiments. The point cloud data transmission and reception method / device according to the embodiments may also be referred to as the mesh data transmission and reception method / device according to the embodiments. The encoding / decoding method according to the embodiments includes a non-timed item signaling of dynamic mesh coding bitstream image file format transmission. The encoding / decoding method according to the embodiments includes a technique for storing a Video-based Dynamic Mesh Coding bitstream as multiple tracks within a file and a signaling method. The encoding / decoding method according to the embodiments includes a technique for storing a Video-based Dynamic Mesh Coding bitstream in an image format within a file and a signaling method. Embodiments include a transmitter or receiver for providing a mesh content service that efficiently stores and signalizes a V-DMC (video-based dynamic mesh coding) or mesh bitstream within multiple tracks within a file. Embodiments include a transmitter or receiver for providing mesh content services that handles file storage techniques to enable efficient access to V-DMC bitstreams stored in files. Although the embodiments describe operation with video-based dynamic mesh coding (V-DMC), the embodiments can be applied to bitstreams using other mesh codings that are structured in the same manner or in a similar bitstream format as V-DMC. Additionally, a V-DMC bitstream consisting of only one frame can be transmitted by signaling it in the non-timed item format of ISOBMFF, i.e., the image item format. Mesh content encoded with V-DMC (Video-based Dynamic Mesh Coding) can be encapsulated into multiple tracks based on ISOBMFF files to provide services such as streaming. The embodiments can generate and transmit / receive type and entry point signaling information of multiple tracks, syntax and semantics information of sample entries within multiple tracks, syntax and semantics information of sample formats within multiple tracks, and track reference signaling information between multiple tracks. In addition, the embodiments include the following operations for storing and transmitting mesh content consisting of a single frame encoded with V-DMC as a file: a non-timed image item and item property signaling scheme, a scheme for signaling a V-DMC bitstream consisting of multiple atlases as a non-timed image item, etc. Additionally, the encoding / decoding method according to the embodiments may include a submesh item file format signaling scheme for dynamic mesh coding bitstream. The encoding / decoding method according to the embodiments may include a method of storing and signaling a Video-based Dynamic Mesh Coding bitstream image as a submesh item. Even for a V-DMC bitstream consisting of a single frame, it can be composed of one or more atlas tiles and one or more submeshes, through which, even for images, embodiments can create an item file format for partial access. The encoding / decoding method according to the embodiments includes a definition of submesh items and submesh configuration properties and a signaling scheme for linking atlas tiles and submeshes. Figure 15 shows a V-DMC bitstream according to embodiments. The mesh encoding method according to the embodiments (Fig. 1, transmitting device (100), dynamic mesh video encoder (102), Fig. 2, pre-processing and encoding, Figs. 3 and 5, pre-processing, Figs. 6-7, pre-processing and encoding, Fig. 13, encoding and transmission, Fig. 17, pre-processing, encoding, file / segment encapsulation, Fig. 28, encoding method) can encode mesh data and generate a bitstream as shown in Fig. 15. The mesh decoding method according to the embodiments (Fig. 1 receiving device (110), dynamic mesh video decoder (113), Figs. 11-12 decoding, Fig. 14 receiving and decoding, Fig. 17 file / segment decapsulation, decoding, rendering, Fig. 29 decoding method) can receive a bitstream as in Fig. 15 and decode mesh data based on parameter information included in the bitstream. Referring to Fig. 15(a), the bitstream may include a sequence header, an encoded base mesh, an encoded displacement, an encoded attribute (texture or attribute), etc. The sequence header may include decoder configuration information. The encoded base mesh includes an input mesh file. The encoded displacement, which is difference information between vertices of a fitted and subdivided base mesh and a restored sub mesh, may be data packed as a 2D image and encoded in a video codec manner. The encoded attribute may be data encoded in a video codec such as HEVC, such as an attribute (e.g., color) generated by matching the coordinates of the property (texture (2D)) of the restored base mesh using an input attribute map (e.g., PNG image). In other words, FIG. 15(a) may be an example of a bitstream format resulting from video-based dynamic mesh encoding. The bitstream may include a sequence header, compressed basemesh data, compressed displacement data, and compressed texture data. Basemesh data can be compressed with Edgebreaker or Draco tool. Displacement data can be compressed using a video codec such as HEVC or VVC or arithmetic coding. Texture / Attribute data can be compressed with video codecs such as HEVC, VVC, etc. Referring to Fig. 15(b), as a result of video-based dynamic mesh encoding, a bitstream according to embodiments may be composed of sample stream units. For example, the bitstream may include a sample stream DMC header and at least one sample stream DMC unit. The sample stream DMC unit may include parameter information, mesh data, etc. VPS (V-DMC Parameter Set): Decoder configuration information and / or parameter set information related to mesh encoding / decoding may be included. AD (Atlas Data): Information related to 2D mapping or texture mapping for a 3D object may be included. BMD (Base Mesh Data): Encoded base mesh information for mesh encoding / decoding. DD (Displacements Data): Displacement information encoded with arithmetic coding. GVD (Displacements Video Data): Displacement information encoded with a video codec. Displacement information may be referred to as geometry information, etc. AVD (Attribute Video Data): Attribute or texture information encoded with a video codec. Figure 16 illustrates a V3C unit according to embodiments. Specifically, FIG. 16 represents the header syntax of a V3C unit, which is a sample stream DMC unit (which may be referred to as a sample stream unit or a V3C unit) included in the bitstream of FIG. 15. The V3C unit (v3c_unit(numBytesInV3CUnit)), which is a data unit of the bitstream, includes a header (FIG. 16, v3c_unit_header( )) and a payload (v3c_unit_payload( numBytesInV3CUnit - 4)). The unit type (vuh_unit_type) of the unit header can use values ​​from 0 to 6 to indicate unit types such as VPS, AD, OVD, GVD, AVD, PVD, PVD, CAD, etc. vuh_unit_typeIdentifierV3C unit typeDescription0V3C_VPSV3C parameter setV3C level parameters1V3C_ADAtlas dataAtlas information2V3C_OVDOccupancy video dataOccupancy information3V3C_GVDGeometry video dataGeometry information4V3C_AVDAttribute video dataAttribute information5V3C_PVDPacked video dataPacking information6V3C_CADCommon atlas dataInformation that is common for atlases in a CVS. Specified in ISO / IEC 23090-127...31V3C_RSVDReserved- vuh_unit_type: Indicates the specified V3C unit type, as above. Values ​​marked as reserved are reserved for future use in ISO / IEC. vuh_v3c_parameter_set_id: Indicates the value of vps_v3c_parameter_set_id for the active V3C VPS. The value of vuh_v3c_parameter_set_id is in the range of 0 to 15. vuh_atlas_id: Indicates the ID of the atlas corresponding to the current V3C unit. The value of vuh_atlas_id is in the range of 0 to 63. vuh_attribute_index: Indicates the index of the attribute data included in the attribute video data unit. The value of vuh_attribute_index is in the range of 0 to (ai_attribute_count[vuh_atlas_id] - 1). vuh_attribute_partition_index: Indicates the index of the attribute dimension group included in the attribute video data unit. The value of vuh_attribute_partition_index is in the range of 0 to ai_attribute_dimension_partitions_minus1[vuh_atlas_id][vuh_attribute_index]. vuh_map_index: Indicates the map index of the current geometry or attribute stream. If absent, the map index of the current geometry or attribute sub-bitstream is derived based on the type of the sub-bitstream and certain operations on the geometry and attribute video sub-bitstreams. The value of vuh_map_index, if present, is in the range of 0 to vps_map_count_minus1[vuh_atlas_id]. vuh_auxiliary_video_flag: If 1, indicates that the associated geometry or attribute video data unit is a RAW and / or EOM coded point video-only sub-bitstream. If vuh_auxiliary_video_flag is 0, indicates that the associated geometry or attribute video data unit may contain RAW and / or EOM coded points. If vuh_auxiliary_video_flag is absent, its value is inferred to be 0. vuh_reserved_zero_12bits: Equal to 0 in bitstreams that follow this version of this document. vuh_reserved_zero_17bits: Equal to 0 in bitstreams that follow this version of this document. vuh_reserved_zero_23bits: Equal to 0 in bitstreams that follow this version of this document. vuh_reserved_zero_27bits: Equal to 0 in bitstreams that follow this version of this document. The syntax of the sample stream DMC header and the sample stream DMC unit of the bitstream according to the embodiments can be defined as follows. Syntax of the sample stream DMC header: sample_stream_dmc_header() {Descriptorsdmh_unit_size_precision_bytes_minus1u(3)sdmh_reserved_zero_5bitsu(5)} sdmh_unit_size_precision_bytes_minus1: Adding 1 to this value indicates the precision (in bytes) of sdmu_dmc_unit_size elements in every sample stream DMC unit. sdmh_unit_size_precision_bytes_minus1 is in the range of 0 to 7. The syntax of a sample stream DMC unit is as follows. Each sample stream DMC unit contains one type of DMC unit among VPS, AD, BMD, DD, GVD, and AVD. The contents of each sample stream DMC unit are associated with the same access unit as the DMC unit contained in the sample stream DMC unit. sample_stream_dmc_unit() {Descriptorsdmu_dmc_unit_sizeu(v)dmc_unit(sdmu_dmc_unit_size )} sdmu_dmc_unit_size: Indicates the size (in bytes) of the subsequent dmc_unit. The number of bits used to express sdmu_dmc_unit_size is equal to (sdmh_unit_size_precision_bytes_minus1 + 1) * 8. A dmc_unit can consist of a unit header and a unit payload. Type information about the unit payload can be inserted into the unit header, and data of the corresponding type can be inserted into the unit payload. The dmc_unit data syntax and semantics may be in the format of v3c_unit used in the V3C codec specification, i.e., ISO / IEC 23090-5, which is referenced in the V-DMC standard, but may not be limited to that format. The contents according to the embodiments are specific to V-DMC or V3C codecs and may be implemented independently. A bitstream according to embodiments may be composed of a sample stream NAL (Network Abstraction Layer) unit. A sample stream NAL unit may include a sample stream NAL header and a sample stream NAL unit. Sample Stream NAL Header Syntax: sample_stream_nal_header() {Descriptorssnh_unit_size_precision_bytes_minus1u(3)ssnh_reserved_zero_5bitsu(5)} Sample Stream NAL Header Unit Syntax: sample_stream_nal_unit() {Descriptorssnu_nal_unit_sizeu(v)nal_unit (ssnu_nal_unit_size)} Semantics of the sample stream NAL header: The sample stream NAL header is always at the beginning of the NAL stream. ssnh_unit_size_precision_bytes_minus1: Adding 1 to this value indicates the precision (in bytes) of ssnu_nal_unit_size elements in every sample stream NAL unit. ssnh_unit_size_precision_bytes_minus1 is in the range of 0 to 7. ssnh_reserved_zero_5bits: is equal to 0 in bitstreams that follow this version of this document. Sample Stream NAL Unit Semantics: The order of sample stream NAL units in a sample stream follows the decoding order of the NAL units contained in the sample stream NAL units. A unit (nal_unit) included in a bitstream according to the embodiments may be basemesh data that may be included in a sample of a basemesh track to be described later. That is, a unit of the bitstream may be a basemesh NAL unit (bmesh_nal_unit) or / and displacement data (displ_nal_unit) encoded with arithmetic coding. Additionally, nal_unit may be submesh data that may be included in a sample of a submesh track described later. The submesh data may be defined in the form of bmesh_nal_unit. ssnu_nal_unit_size represents the size (in bytes) of the subsequent NAL_unit. The number of bits used to express ssnu_nal_unit_size is equal to (ssnh_unit_size_precision_bytes_minus1 + 1) * 8. A bitstream may contain a basemesh sub-bitstream. The NAL sample stream format can be constructed by arranging NAL units in decoding order and prefixing each NAL unit with a heading indicating the exact size (in bytes) of the NAL unit. The sample stream header is included at the beginning of the sample stream bitstream, which indicates the precision (in bytes) of the signaled NAL unit size. The NAL unit stream format can be extracted from the sample stream format by searching the sample stream format, reading the size information, and appropriately extracting each NAL unit. General NAL unit syntax: bmesh_nal_unit( NumBytesInNalUnit ) {Descriptorbmesh_nal_unit_header( )NumBytesInRbsp = 0for( i = 2; i < NumBytesInNalUnit; i++ )rbsp_byte[ NumBytesInRbsp++ ]b(8)} NAL unit header syntax: bmesh_nal_unit_header() {Descriptorbmesh_nal_forbidden_zero_bitf(1)bmesh_nal_unit_typeu(6)bmesh_nal_layer_idu(6)bmesh_nal_temporal_id_plus1u(3)} Low byte sequence payload, trailing bits, and byte alignment syntax Basemesh Sequence Parameter Set RBSP Syntax General Basemesh Sequence Parameter Set RBSP Syntax bmesh_sequence_parameter_set_rbsp( ) {Descriptorbmsps_sequence_parameter_set_idu(4)bmesh_profile_tier_level( )bmsps_intra_mesh_codec_idu(8)bmsps_inter_mesh_codec_idu(8)bmsps_inter_mesh_motion_group_size_minus1u(8)bmsps_inter_mesh_max_num_neighbours_minus1u(8)bmsps_geometry_3d_bit_depth_minus1u(5)bmsps_facegroup_segmentation_methodue(v)bmsps_mesh_attribute_countu(7)for( i = 0; i < bmsps_mesh_attribute_count; i++ ) {bmsps_mesh_attribute_type_id[ i ]u(4)bmsps_attribute_bit_depth_minus1[ i ]u(5)bmsps_attribute_msb_align_flag[ i ]u(1)}bmsps_log2_max_mesh_frame_order_cnt_lsb_minus4ue(v)bmsps_max_dec_mesh_frame_buffering_minus1ue(v)bmsps_long_term_ref_mesh_frames_flagu(1)bmsps_num_ref_mesh_frame_lists_in_bmspsue(v)for( i = 0; i < bmsps_num_ref_mesh_frame_lists_in_bmsps; i++ )bmesh_ref_list_struct( i )bmsps_extension_present_flagu(1)if( bmsps_extension_present_flag ) {bmsps_extension_countu(8)}if( bmsps_extension_count ){bmsps_extensions_length_minus1ue(v)for( i = 0; i < bmsps_extension_count;i++ ) {bmsps_extension_type[ i ]u(8)bmsps_extension_length[ i ]u(16)bmsps_extension( bmsps_extension_type[ i ], bmsps_extension_length[ i ] )}}rbsp_trailing_bits( )}; 베이스메쉬 SPS 확장 신택스: bmsps_extension( extension_type, extension_length ) {Descriptorfor( j = 0; j < extension_length; j++ )bmsps_extension_data_byteu(8)length_alignment( )} 베이스메쉬 프로파일, 티어 및 레벨 신택스: bmesh_profile_tier_level( ) {Descriptorbmptl_tier_flagu(1)bmptl_profile_codec_group_idcu(7)bmptl_reserved_zero_32bitsu(32)bmptl_level_idcu(8)bmptl_num_sub_profilesu(6)bmptl_extended_sub_profile_flagu(1)for( i = 0; I < bmptl_num_sub_profiles; i++ ) {bmptl_sub_profile_idc[ i ]u(v)}bmptl_toolset_constraints_present_flagu(1)if( bmptl_toolset_constraints_present_flag ) {bmesh_profile_toolset_constraints_information( )}} 프로파일 툴셋 제약 정보(Profile toolset constraints information) 신택스: bmesh_profile_toolset_constraints_information( ) {Descriptorbmptc_one_mesh_frame_only_flagu(1)bmptc_intra_frames_only_flagu(1)bmptc_reserved_zero_6bitsu(6)bmptc_num_reserved_constraint_bytesu(8)for( i = 0; i < bmptc_num_reserved_constraint_bytes; i++ )bmptc_reserved_constraint_byte[ i ]u(8)} 베이스메쉬 프레임 파라미터 세트 RBSP 신택스: 제너럴 베이스메쉬 프레임 파라미터 RBSP 신택스: bmesh_frame_parameter_set_rbsp( ) {Descriptorbfps_mesh_sequence_parameter_set_idu(4)bfps_mesh_frame_parameter_set_idu(4)bmesh_sub_mesh_information( ) bfps_output_flag_present_flagu(1)bfps_num_ref_idx_default_active_minus1ue(v)bfps_additional_lt_mfoc_lsb_lenue(v)bfps_extension_present_flagu(1)if( bfps_extension_present_flag )bfps_extension_8bitsu(8)if( bfps_extension_8bits )while( more_rbsp_data( ) )bfps_extension_data_flagu(1)rbsp_trailing_bits( )} 베이스메쉬 서브메쉬 정보: bmesh_sub_mesh_information( ) {Descriptorbmsi_use_single_mesh_flagu(1)if(!bmsi_use_single_mesh_flag){bmsi_num_submeshes_minus1u(8)}elsebmsi_num_submeshes_minus1 = 0bmsi_signalled_submesh_id_flagu(1)if( bmsi_signalled_submesh_id_flag ) {bmsi_signalled_submesh_id_length_minus1ue(v)for( i = 0; < bmsi_num_submeshes_minus1 + 1; i++ )bmsi_submesh_id[ i ]u(v)SubMeshIDToIndex[ bmsi_submesh_id[ i ] ] = iSubMeshIndexToID[ i ] = bmsi_submesh_id[ i ]}}elsefor( i = 0; i < bmsi_num_submeshes_minus1 + 1; i++ ) { bmsi_submesh_id[ i ] = iSubMeshIDToIndex[ i ] = iSubMeshIndexToID[ i ] = i}} Basemesh submesh layer RBSP 신태스 bmesh_submesh_layer_rbsp( ) {Descriptorsubmesh_header( )submesh_data_unit( mfh_submesh_type, SubMeshUnitSize )rbsp_trailing_bits( )} Basemesh Submesh Header Syntax: submesh_header( ) {Descriptorif( nal_unit_type >= NAL_BLA_W_LP && nal_unit_type <= NAL_RSV_IRAP_ACL_29 )smh_no_output_of_prior_mesh_frames_flagu(1)smh_basemesh_frame_parameter_set_idu(4)smh_idu(v)subMeshID = smh_idsmh_typeue(v)if( bfps_output_flag_present_flag )smh_mesh_output_flagu(1)smh_mesh_frm_order_cnt_lsbu(v)if( bmsps_num_ref_mesh_frame_lists_in_bmsps > 0 )smh_ref_mesh_frame_list_msps_flagu(1)if( smh_ref_basemesh_frame_list_msps_flag == 0 )basemesh_ref_list_struct( bmsps_num_ref_mesh_frame_lists_in_bmsps )else if( bmsps_num_ref_mesh_frame_lists_in_bmsps > 1 )smh_ref_mesh_frame_list_idxu(v)for( j = 0; j < NumLtrMeshFrmEntries[ RlsIdx ];j++ ) {smh_additional_mfoc_lsb_present_flag[ j ]u(1)if( smh_additional_mfoc_lsb_present_flag[ j ] )smh_additional_mfoc_lsb_val[ j ]u(v)}if( smh_type != SKIP_SUBMESH ) { if( smh_type == P_SUBMESH && num_ref_entries[ RlsIdx ] > 1 ) {smh_num_ref_idx_active_override_flagu(1)if( smh_num_ref_idx_active_override_flag )smh_num_ref_idx_active_minus1ue(v)}}byte_alignment( )}; 레퍼런스 리스트 구조 신택스: bmesh_ref_list_struct( rlsIdx ) {Descriptornum_ref_entries[ rlsIdx ]ue(v)for( i = 0; i < num_ref_entries[ rlsIdx ]; i++ ) {if( bmsps_long_term_ref_mesh_frames_flag )st_ref_mesh_frame_flag[ rlsIdx ][ i ]u(1)if( st_ref_mesh_frame_flag[ rlsIdx ][ i ] ) {abs_delta_mfoc_st[ rlsIdx ][ i ]ue(v)if( abs_delta_mfoc_st[ rlsIdx ][ i ] > 0 )straf_entry_sign_flag[ rlsIdx ][ i ]u(1)} elsemfoc_lsb_lt[ rlsIdx ][ i ]u(v)}} 베이스메쉬 서브메쉬 데이터 유닛 신택스: submesh_data_unit( subMeshID, unitSize ) {Descriptorif( smh_type == I_SUBMESH ) {sdu_intra_sub_mesh_unit( subMeshID, unitSize )}else if( smh_type == P_SUBMESH ) {sdu_inter_sub_mesh_unit( subMeshID )}else if( smh_type == SKIP_SUBMESH ) {sdu_skip_sub_mesh_unit( )}} Basemesh Intra Submesh Data Unit Syntax: sdu_intra_sub_mesh_unit( subMeshID, vertexCount ) {Descriptorsismu_intra_unit( subMeshID )length_alignment( )} sismu_intra_unit(subMeshID, sismu_intra_unit_size) contains a portion of mesh data of size sismu_intra_unit_size[subMeshID], which is an aligned string of bytes or bits that identifies the location of unit boundaries in a pattern of data. The format of this mesh data is identified by the bmptl_profile_codec_group_idc or component codec mapping SEI message. Basemesh inter-submesh data unit syntax: sdu_inter_sub_mesh_unit( subMeshID, vertexCount ) {Descriptorsismu_inter_vertex_count[ subMeshID ]ue(v)sismu_inter_unit( subMeshID , sismu_inter_vertex_count[ subMeshID ] )length_alignment( )} sismu_inter_unit(sismu_inter_unit_size, sismu_inter_vertex_count) contains a portion of motion data of size sismu_inter_unit_size, which is an ordered stream of bytes or bits that can identify the locations of unit boundaries in a pattern of data. The format of this mesh data is identified by the bmptl_profile_codec_group_idc or component codec mapping SEI message. Basemesh inter-submesh data unit syntax: sismu_inter_unit_default ( subMeshID, vertexCount ) {Descriptorif( vertexCount > 0 ) sismu_derived_mv_present_flag[ subMeshID ]ae(v)for( i = 0; i < vertexCount ; i++ ) {if(sismu_derived_mv_present_flag[ subMeshID ])sismu_mv_signalled_flag[ subMeshID ][ v ]ae(v)}groupSize = bmsps_inter_mesh_motion_group_size_minus1 + 1groupCount = ( vertexCount - 1) / groupSize + 1vStart = 0for( g = 0; g < groupCount: g++ ) {sismu_mv_pred_mode_group[ subMeshID ][ g ]ae(v)if ( g == (groupCount - 1) )groupSize = submeshMotionCount- groupSize * (groupCount - 1)for( v = vStart; v < (vStart+groupSize); v++ ) {if( sismu_mv_signalled_flag[ subMeshID ][ v ]) {for( k = 0; k < 3;k++ ) {sismu_mv_residual_abs_gt0[ subMeshID ][ v ][ k ]ae(v)if (sismu_mv_residual_abs_gt0[ subMeshID ][ v ][ k ]) {sismu_mv_residual_sign[ subMeshID ][ v ][ k ]ae(v)sismu_mv_residual_abs_gt1[ subMeshID ][ v ][ k ]ae(v)if (sismu_mv_residual_abs_gt1[ subMeshID ][ v ][ k ]) sismu_mv_residual_abs_rem[ subMeshID ][ v ][ k ]ae(v)}}}} / vvStart += groupSize}}; Basemesh Steep Submesh Data Unit Syntax: sdu_skip_sub_mesh_unit( ) {Descriptor} Below, the semantics of the aforementioned syntax are described. BaseMesh NAL Unit Semantics: General NAL unit semantics: NumBytesInNalUnit represents the size of a NAL unit in bytes. This value is required for decoding a NAL unit. To enable inference of NumBytesInNalUnit, a form delimiting NAL unit boundaries is required. rbsp_byte[ i ] is the i-th byte of the RBSP. An RBSP is specified as an ordered sequence of bytes as follows: An RBSP contains a string of data bits (SODBs), as follows: - If the SODB is empty (i.e., has length 0 bits), the RBSP is also empty. - Otherwise, the RBSP contains the SODB as follows: 1) The first byte of the RBSP contains the first (most significant, leftmost) 8 bits of the SODB. The next byte of the RBSP contains the next 8 bits of the SODB, and so on until there are fewer than 8 bits of the SODB left. 2) The rbsp_trailing_bits( ) syntax structure follows SODB as follows: i) The first (most significant, leftmost) bit of the last RBSP byte contains the remaining bits of the SODB (if any). ii) The next bit consists of a single bit equal to 1 (i.e. rbsp_stop_one_bit). iii) If rbsp_stop_one_bit is not the last bit of a byte that is aligned, byte alignment is achieved by having at least one bit that is equal to 0 (i.e., an instance of rbsp_alignment_zero_bit). Syntax constructs with these RBSP properties are indicated in the syntax table using the "_rbsp" suffix. These constructs are carried within a NAL unit as the contents of the rbsp_byte[ i ] data byte. NAL unit header semantics: As with the atlas, a similar NAL unit type is defined for the base mesh, allowing similar functionality for random access and partitioning of the mesh. Unlike the tile-partitioned atlas, it defines the concept of a sub-mesh and defines specific NAL units corresponding to the coded mesh data. It also defines NAL units that can contain metadata such as SEI messages. The supported basic mesh NAL unit types are: bmesh_nal_unit_typeName of bmesh_nal_unit_typeContent of base mesh NAL unit and RBSP syntax structureNAL unitype class01NAL_TRAIL_NNAL_TRAIL_RCoded sub-mesh of a non-TSA, non STSA trailing base mesh framesub_mesh_layer_rbsp( )BMCL23NAL_TSA_NNAL_TSA_RCoded sub-mesh of a TSA base mesh framesub_mesh_layer_rbsp( )BMCL45NAL_STSA_NNAL_STSA_RCoded sub-mesh of a STSA base mesh framesub_mesh_layer_rbsp( )BMCL67NAL_RADL_NNAL_RADL_RCoded sub-mesh of a RADL base mesh framesub_mesh_layer_rbsp( )BMCL89NAL_RASL_NNAL_RASL_RCoded sub-mesh of a RASL base mesh framesub_mesh_layer_rbsp( )BMCL1011NAL_SKIP_NNAL_SKIP_RCoded sub-mesh of a skipped base mesh framesub_mesh_layer_rbsp( )BMCL1214NAL_RSV_BMCL_N12NAL_RSV_BMCL_N14Reserved non-IRAP sub-layer non-reference BMCL mesh NAL unit typesBMCL1315NAL_RSV_BMCL_R13NAL_RSV_BMCL_R15Reserved non-IRAP sub-layer reference BMCL mesh NAL unit typesBMCL161718NAL_BLA_W_LPNAL_BLA_W_RADLNAL_BLA_N_LPCoded sub-mesh of a BLA base mesh framesub_mesh_layer_rbsp()BMCL1920NAL_IDR_W_RADLNAL_IDR_N_LPCoded sub-mesh of an IDR base mesh framesub_mesh_layer_rbsp( ) (BMCL)21NAL_CRACoded sub-mesh of a CRA base mesh framesub_mesh_layer_rbsp( )BMCL2223NAL_RSV_IRAP_BMCL_22NAL_RSV_IRAP_BMCL_23Reserved IRAP BMCL NAL unit typesBMCL24..29NAL_RSV_BMCL_24..NAL_RSV_BMCL_29Reserved non-IRAP BMCL NAL unit typesBMCL30NAL_BMSPSBase mesh sequence parameter setbmesh_sequence_parameter_set_rbsp( )non-BMCL31NAL_BMFPSBase mesh frame parameter setbmesh_frame_parameter_set_rbsp( )non-BMCL32NAL_AUDdelimiteraccess_unit_delimiter_rbsp( )non-BMCL33NAL_EOSEnd of sequenceend_of_sequence_rbsp( )non-BMCL34NAL_EOBEnd of bitstreamend_of_bmesh_sub_bitstream_rbsp( )non-BMCL35NAL_FDFillerfiller_data_rbsp( )non-BMCL3637NAL_PREFIX_NSEINAL_SUFFIX_NSEINon-essential supplemental enhancement informationsei_rbsp( )non-BMCL3839NAL_PREFIX_ESEINAL_SUFFIX_ESEIEssential supplemental enhancementinformationsei_rbsp( )non-BMCL40..4445..63NAL_RSV_NBMCL_40NAL_RSV_NBMCL_44NAL_UNSPEC_45NAL_UNSPEC_63Reserved non-BMCL NAL unit typesUnspecified non-BMCL NAL unit typesnon-BMCLnon-BMCL Basemesh Raw byte sequence payloads, trailing bits, and byte alignment semantics: Basemesh Sequence Parameter Set RBSP Semantics: General Basemesh Sequence Parameter Set RBSP Semantics: bmsps_sequence_parameter_set_id: An identifier for the basemesh sequence parameter set so that other syntax elements can reference it. bmsps_intra_mesh_codec_id: Indicates the identifier of the codec used to compress the static mesh. bmsps_intra_mesh_codec_id is in the range 0 to 255. The codec may be identified by a profile defined in ISO / IEC 23090-29, a component codec mapping SEI message, or by means external to this document. A specific mesh or motion mesh codec may be associated with a profile specified in that specification, or may be explicitly indicated in an SEI message, as is done in the V3C specification for video sub-bitstreams. bmsps_inter_mesh_codec_id: Indicates the identifier of the codec used to compress the motion data. bmsps_intr_mesh_codec_id is in the range 0 to 255. The codec may be identified by a profile defined in ISO / IEC 23090-29, a component codec mapping SEI message, or means external to this document. A specific mesh or motion mesh codec may be associated with a profile specified in that specification, or may be explicitly indicated in an SEI message, as is done in the V3C specification for video sub-bitstreams. bmsps_inter_mesh_motion_group_size_minus1: Adding 1 to this value indicates the size of vertex grouping in motion vector coding. bmsps_inter_mesh_motion_group_size_minus1 is in the range of 0 to 255. bmsps_inter_mesh_max_num_neighbours_minus1: Adding 1 to this value indicates the maximum number of vertex neighbors to use for computing the motion vector predictor. bmsps_inter_mesh_max_num_neighbours_minus1 is in the range of 0 to 255. bmsps_geometry_3d_bit_depth_minus1: Adding 1 to this value indicates the bit depth of the geometry coordinates of the reconstructed mesh. bmsps_geometry_3d_bit_depth_minus1 is in the range of 0 to 31. bmsps_facegroup_segmentation_method: Indicates the identifier of the method for deriving facegroup IDs from a mesh. bmsps_mesh_attribute_count: Indicates the number of attributes associated with the mesh. bmsps_mesh_attribute_count is in the range of 0 to 127. bmsps_mesh_attribute_type_id[ i ]: Indicates the attribute type of the attribute with index i for the mesh. The list of supported attributes and their relationship to bmsps_mesh_attribute_type_id[ i ] are as follows: bmsps_mesh_attribute_type_id[ i ]IdentifierAttribute type0ATTR_TEXTURE Texture1ATTR_MATERIAL_IDMaterial ID2ATTR_TRANSPARENCYTransparency3ATTR_REFLECTANCEReflectance4ATTR_NORMALNormals5ATTR_FACEGROUP_IDFacegroup ID6..14ATTR_RESERVEDReserved15ATTR_UNSPECIFIEDUnspecified bmsps_attribute_bit_depth_minus1[ i ]: Adding 1 to this value indicates the bit depth of the attribute with index i for the mesh. bmsps_attribute_bit_depth_minus1[ i ] is in the range of 0 to 31. bmsps_log2_max_mesh_frame_order_cnt_lsb_minus4: Adding 4 to this value gives the values ​​of the variables Log2MaxMeshFrmOrderCntLsb and MaxMeshFrmOrderCntLsb used in the decoding process for the atlas frame order count, as follows. Log2MaxMeshFrmOrderCntLsb = bmsps_log2_max_mesh_frame_order_cnt_lsb_minus4 + 4 MaxMeshFrmOrderCntLsb = 2Log2MaxMeshFrmOrderCntLsb The value of bmsps_log2_max_mesh_frame_order_cnt_lsb_minus4 is in the range of 0 to 12. bmsps_max_dec_mesh_frame_buffering_minus1: Adding 1 to this value indicates the maximum size of the decoded atlas frame buffer required for CAS in atlas frame storage buffer units. The value of bmps_max_dec_mesh_frame_buffering_minus1 is in the range of 0 to 15. bmsps_long_term_ref_mesh_frames_flag: If this value is 0, it indicates that long-term reference atlas frames are not used for inter prediction of coded atlas frames in CAS. If bmsps_long_term_ref_mesh_frames_flag is 1, it indicates that long-term reference atlas frames can be used for inter prediction of one or more coded atlas frames in CAS. bmsps_num_ref_mesh_frame_lists_in_bmsps: The number of bmesh_ref_list_struct(rlsIdx) syntax structures included in the atlas sequence parameter set. The value of bmsps_num_ref_mesh_frame_lists_in_bmsps is in the range of 0 to 64. NOTE: The decoder allocates memory for a total number of bmesh_ref_list_struct(rlsIdx) syntax structures, which is equal to (bmsps_num_ref_mesh_frame_lists_in_bmsps + 1), since there can be only one bmesh_ref_list_struct(rlsIdx) syntax structure directly signaled in the atlas tile header of the current atlas tile. bmsps_extension_present_flag: If this value is 1, it indicates that bmsps_extension_count_minus1 is in the basemesh sequence parameter set. bmsps_extension_count: The number of BMSPS extensions in the v3c_parameter_set( ) syntax structure. If not present, bmsps_extension_count is inferred to be equal to 0. If bmsps_extension_count is equal to 0, BmspsExtensionsLength, which specifies the cumulative length in bytes of all extensions that follow this syntax element, is equal to 0. If bmsps_extensions_length_minus1 is present, it indicates the cumulative length in bytes of all extensions following this syntax element: BmspsExtensionsLength. BmspsExtensionsLength is computed as follows: if( bmsps_extension_count == 0 ) BmspsExtensionsLength = 0 else BmspsExtensionsLength = bmsps_extensions_length_minus1 + 1 If bmsps_extension_count is not 0, BmspsExtensionsLength is equal to 3 * bmsps_extension_count plus the sum of all bmsps_extension_length[ i ]. bmsps_extension_type[ i ]: Indicates the BMSPS extension type for the extension with index i as specified in ISO / IEC 23090-29. bmsps_extension_length[ i ]: Indicates the number of bytes used to represent the payload size of the syntax structure of the associated extension with index i. If bmsps_extension_length[ i ] is 0, there is no extension payload for the extension with index i. Otherwise, the extension with index i has a payload size in bits in the range of 8 * ( bmsps_extension_length[ i ] - 1 ) + 1 to 8 * bmsps_extension_length[ i ], inclusive. BaseMesh SPS Extension Semantics: bmsps_extension_data_byte can have any value. Basemesh profile, hierarchy and level semantics: bmptl_tier_flag indicates the hierarchy context for interpreting bmptl_level_idc as specified in ISO / IEC 23090-29. bmptl_profile_codec_group_idc: Indicates the codec group profile component that the CVS complies with as specified in ISO / IEC 23090-29. bmptl_profile_toolset_idc: Represents a toolset combination profile component that CVS complies with as specified in ISO / IEC 23090-29. bmptl_profile_reconstruction_idc: Indicates the reconstruction profile component that CVS is recommended to adhere to as specified in ISO / IEC 23090-29. bmptl_reserved_zero_16bits: equal to 0 in the bitstream. bmptl_reserved_0xffff_16bits: Equivalent to 0xFFFF in the bitstream. bmptl_level_idc: Indicates the level to which the CVS complies as specified in ISO / IEC 23090-29. bmptl_num_sub_profiles represents the number of bmptl_sub_profile_idc[ i ] syntax elements. bmptl_extended_sub_profile_flag: If this value is 1, it indicates that the bmptl_sub_profile_idc[ i ] syntax element should be represented using 64 bits. If bmptl_extended_sub_profile_flag is 0, it indicates that the bmptl_sub_profile_idc[ i ] syntax element should be represented using 32 bits. bmptl_sub_profile_idc[ i ]: Indicates the ith interoperability metadata registered as specified in Rec. ITU-T T.35, the content of which is not specified in this document. The number of bits used to indicate bmptl_sub_profile_idc[ i ] is (bmptl_extended_sub_profile_flag == 0 ? 32 : 64). If bmptl_toolset_constraints_present_flag is 1, it indicates that the additional structure profile_toolset_constraints_information( ) is present in the bitstream. If bmptl_toolset_constraints_present_flag is 0, it indicates that the structure profile_toolset_constraints_information( ) is not present. BaseMeshProfileToolsetConstraintsInformationSemantics: If bmptc_one_mesh_frame_only_flag is present, it has the meaning specified in ISO / IEC 23090-29, and the profile indicated by bmptl_profile_toolset_idc is the profile specified in ISO / IEC 23090-29. If absent, ptc_one_mesh_frame_only_flag is inferred to be equal to 0. If bmptc_intra_frames_only_flag is 1, it indicates that the bitstream contains only sdu_intra_sub_mesh_unit( ). If absent, bmptc_intra_frames_only_flag is inferred to be equal to 0. bmptc_reserved_zero_6bits is equal to 0 in bitstreams that follow this version of this document. bmptc_num_reserved_constraint_bytes indicates the number of reserved constraint bytes. bmptc_reserved_constraint_byte[ i ] can have any value. Its presence and value do not affect the decoder's conformance to the profile specified in this version of this document. A decoder that conforms to this version of this document shall ignore the value of any bmptc_reserved_constraint_byte[ i ] syntax element. Basemesh Frame Parameter Set RBSP Semantics: General BaseMesh Frame Parameter Set RBSP Semantics: bfps_mesh_sequence_parameter_set_id: Indicates the value of bmsps_sequence_parameter_set_id for the active Basemesh sequence parameter set. bfps_mesh_parameter_set_id identifies the basemesh frame parameter set for reference by other syntax elements. If bfps_output_flag_present_flag is 1, it indicates that the smh_output_flag syntax element is present in the associated submesh header. If bfps_output_flag_present_flag is 0, it indicates that the smh_output_flag syntax element is not present in the associated submesh header. bfps_num_ref_idx_default_active_minus1 plus 1 represents the inferred value of the variable NumRefIdxActive for tiles where smh_num_ref_idx_active_override_flag is 0. The value of bfps_num_ref_idx_default_active_minus1 is in the range 0 to 14. bfps_additional_lt_mfoc_lsb_len represents the value of the variable MaxLtMeshFrmOrderCntLsb used in the decoding process of the reference atlas frame list. MaxLtMeshFrmOrderCntLsb = 2 * (Log2MaxMeshFrmOrderCntLsb + bfps_additional_lt_mfoc_lsb_len) The value of bfps_additional_lt_mfoc_lsb_len is in the range of 0 to 32 - Log2MaxAtlasFrmOrderCntLsb. If bmsps_long_term_ref_mesh_frames_flag is 0, the value of bfps_additional_lt_mfoc_lsb_len is equal to 0. If bfps_extension_present_flag is 1, it indicates that the syntax element bfps_extension_8bits is present in the basemesh frame parameter set. If bfps_extension_present_flag is 0, it indicates that the syntax element bfps_extension_8bits is not present. If bfps_extension_8bits is 0, it indicates that the AFPS RBSP syntax structure does not have a bfps_extension_data_flag syntax element. A non-zero value for bfps_extension_8bits is reserved for future use in ISO / IEC. bfps_extension_data_flag can have any value. Basemesh submesh information: If bmsi_use_single_mesh_flag is 1, it indicates that each mesh frame has only one submesh referencing the BFPS. If bmsi_use_single_mesh_flag is 0, it indicates that each mesh frame can have more than one submesh referencing the BFPS. bmsi_num_submeshes_minus1 plus 1 indicates the number of submeshes referencing BFPS in each mesh frame. The value of bmsi_num_submeshes_minus1 is in the range of 0 to 63. If it is not present and bmsi_use_single_mesh_flag is 1, the value is inferred to be 1. If bmsi_signalled_submesh_id_flag is 1, it indicates that the submesh ID of each mesh frame is signaled. If bmsi_signalled_tile_id_flag is 0, it indicates that the submesh ID is not signaled. bmsi_signalled_submesh_id_length_minus1 plus 1 indicates the number of bits used to represent the syntax element bmsi_tile_id[ i ], if present, and the syntax element submesh_id in the submesh header. The value of bmsi_signalled_tile_id_length_minus1 is in the range 0 to 15. If absent, its value is inferred to be equal to Ceil(Log2(bmsi_num_submeshes_minus1 + 1 )) - 1. bmsi_submesh_id[ i ] represents the tile ID of the ith submesh. The length of the bmsi_submesh_id[ i ] syntax element is bmsi_signalled_submesh_id_length_minus1 + 1 bits. If not present, the value of bmsi_submesh_id[ i ] is inferred to be equal to i for each i in the range 0 to bmsi_num_submeshes_minus1, inclusive. It is a bitstream conformance requirement that bmsi_submesh_id[ i ] is not equal to bmsi_submesh_id[ j ] for all i != j. The length of the bmsi_submesh_id[ i ] syntax element is bmsi_signalled_submesh_id_length_minus1 + 1 bits. The variable FirstSubmeshID is calculated as follows: FirstSubmeshID=bmsi_submesh_id

[0000] for ( i = 1; i < bmsi_num_submeshes_minus1+ 1; i++ ) FirstSubmeshID = Min(FirstSubmeshID, bmsi_submesh_id[ i ]) Basemesh submesh header semantics: If present, the values ​​of the atlas tile header syntax elements smh_basemesh_frame_parameter_set_id, smh_mesh_output_flag, smh_no_output_of_prior_mesh_frames_flag, smh_mesh_frm_order_cnt_lsb are identical for all submesh headers of a coded mesh frame. smh_no_output_of_prior_mesh_frames_flag affects the output of previously decoded mesh frames in DAB after decoding an atlas from a CAS AU that is not the first AU in the bitstream. If smh_no_output_of_prior_mesh_frames_flag is absent, its value is inferred to be equal to 0. As a requirement for bitstream conformance, the value of smh_no_output_of_prior_mesh_frames_flag is the same for all mesh frames in an AU. The smh_no_output_of_prior_mesh_frames_flag value in the submesh header is the output_of_prior_mesh_frames_flag value of the AU. smh_basemesh_frame_parameter_set_id indicates the value of bfps_basemesh_frame_parameter_set_id for the active basemesh frame parameter set for the current submesh. smh_id indicates the submesh ID associated with the current submesh. If not present, the value of smh_id is inferred to be 0. The following applies: - The length of smh_id is bmsi_signalled_submesh_id_length_minus1 + 1 bit. - The value of smh_id must be in the range of values ​​specified in the SubMeshIndexToID [i] array, where i is in the range of 0 to bmsi_num_submeshes_minus1. The following constraints apply to the bitstream conformance requirements: - The value of smh_id is not equal to the smh_id value of another coded atlas tile unit in the same coded atlas frame. - Tiles in the atlas frame are sorted in increasing order of their smh_id values. smh_type indicates the coding type of the current submesh as follows. The value of smh_type is 0, 1, or 2 in bitstreams that follow this version of this document. smh_typeName of smh_type0P_SUBMESH1I_SUBMESH2SKIP_SUBMESH3..RESERVED smh_mesh_output_flag affects the decoded mesh output and removal process. If smh_mesh_output_flag is absent, it is inferred to be equal to 1. smh_mesh_frm_order_cnt_lsb represents the number of mesh frame orders modulo MaxMeshFrmOrderCntLsb for the current submesh. The length of the smh_mesh_frm_order_cnt_lsb syntax element is equal to Log2MaxMeshFrmOrderCntLsb bits. The value of smh_mesh_frm_order_cnt_lsb ranges from 0 to MaxMeshFrmOrderCntLsb - 1. If smh_ref_mesh_frame_list_bmsps_flag is 1, it indicates that the reference bmesh frame list of the current sub-mesh is derived based on one of the bmesh_ref_list_struct(rlsIdx) syntax structures of the active BMSPS. If smh_ref_mesh_frame_list_bmsps_flag is 0, it indicates that the reference bmesh frame list of the current sub-mesh is derived based on the bmesh_ref_list_struct(rlsIdx) syntax structure directly included in the sub-mesh header of the current sub-mesh. When bmsps_num_ref_mesh_frame_lists_in_bmsps is 0, the value of smh_ref_mesh_frame_list_bmsps_flag is inferred to be 0. smh_ref_mesh_frame_list_idx represents the index of the bmesh_ref_list_struct(rlsIdx) syntax structure used to derive the reference mesh frame list of the current submesh into the list of bmesh_ref_list_struct(rlsIdx) syntax structures contained in the active ASPS. The syntax element smh_ref_mesh_frame_list_idx is represented as Ceil(Log2(bmsps_num_ref_mesh_frame_lists_in_bmsps)) bits. If not present, the value of smh_ref_mesh_frame_list_idx is inferred to be equal to 0. The value of smh_ref_mesh_frame_list_idx ranges from 0 to bmsps_num_ref_mesh_frame_lists_in_bmsps - 1. If smh_ref_mesh_frame_list_bmsps_flag is 1 and bmsps_num_ref_mesh_frame_lists_in_bmsps is 1, the value of smh_ref_mesh_frame_list_idx is inferred to be equal to 0. The variable RlsIdx of the current atlas tile is derived as follows: RlsIdx = smh_ref_mesh_frame_list_bmsps_flag ? smh_ref_mesh_frame_list_idx : bmsps_num_ref_mesh_frame_lists_in_bmsps If smh_additional_mfoc_lsb_present_flag[ j ] is 1, it indicates that smh_additional_mfoc_lsb_val[ j ] exists in the current submesh. If smh_additional_mfoc_lsb_present_flag[ j ] is 0, it indicates that smh_additional_mfoc_lsb_val[ j ] does not exist. smh_additional_mfoc_lsb_val[ j ] represents the value of FullMeshFrmOrderCntLsbLt[ RlsIdx ][ j ] for the current atlas tile, as follows: FullMeshFrmOrderCntLsbLt[RlsIdx][j] = smh_additional_mfoc_lsb_val[ j ] * MaxMeshFrmOrderCntLsb+mfoc_lsb_lt[RlsIdx][j] The syntax element smh_additional_mfoc_lsb_val[ j ] is represented by bfps_additional_lt_mfoc_lsb_len bits. If it is not present, the value of smh_additional_mfoc_lsb_val[ j ] is inferred to be equal to 0. If smh_num_ref_idx_active_override_flag is 1, it indicates that syntax element smh_num_ref_idx_active_minus1 exists for the current submesh. If smh_num_ref_idx_active_override_flag is 0, it indicates that syntax element smh_num_ref_idx_active_minus1 does not exist. If smh_num_ref_idx_active_override_flag is absent, its value is inferred to be equal to 0. smh_num_ref_idx_active_minus1 is used to derive the variable NumRefIdxActive for the current submesh. The value of smh_num_ref_idx_active_minus1 is in the range 0 to 14. If the current submesh is a P_SUBMESH submesh and smh_num_ref_idx_active_override_flag is 1 and smh_num_ref_idx_active_minus1 is absent, smh_num_ref_idx_active_minus1 is inferred to be 0. The variable NumRefIdxActive is derived as follows: if( smh_type == P_SUBMESH || smh_type == SKIP_SUBMESH ) { if( smh_num_ref_idx_active_override_flag == 1 ) NumRefIdxActive = smh_num_ref_idx_active_minus1 + 1 else { if( num_ref_entries[ RlsIdx ] >= bfps_num_ref_idx_default_active_minus1 + 1 ) NumRefIdxActive = bfps_num_ref_idx_default_active_minus1 + 1 else NumRefIdxActive = num_ref_entries[RlsIdx] } } else NumRefIdxActive = 0 The value of NumRefIdxActive minus 1 represents the maximum number of atlas reference frame indices that can be used to decode the current atlas tile. Reference list structure semantics: num_ref_entries[rlsIdx] represents the number of entries in the bmesh_ref_list_struct(rlsIdx) syntax structure, where rlsIdx is the index into the mesh frame reference list. For P_SUBMESH and SKIP_SUBMESH, the value of num_ref_entries[rlsIdx] is in the range of 1 to bmsps_max_dec_mesh_frame_buffering_minus1 + 1. Otherwise, the value of num_ref_entries[rlsIdx] is in the range of 0 to bmsps_max_dec_mesh_frame_buffering_minus1 + 1. If st_ref_mesh_frame_flag[rlsIdx][i] is 1, it indicates that the ith entry in the bmesh_ref_list_struct(rlsIdx) syntax structure is a short-term reference mesh frame entry. If st_ref_mesh_frame_flag[rlsIdx][i] is 0, it indicates that the ith entry in the ref_list_struct(rlsIdx) syntax structure is a long-term reference mesh frame entry. If not present, the value of st_ref_mesh_frame_flag[rlsIdx][i] is inferred to be equal to 1. The variable NumLtrMeshFrmEntries[rlsIdx] is derived as follows: NumLtrMeshFrmEntries[rlsIdx] = 0 for( i = 0; i < num_ref_entries[rlsIdx]; i++) if(!st_ref_mesh_frame_flag[rlsIdx][i]) NumLtrMeshFrmEntries[rlsIdx]++ abs_delta_mfoc_st[rlsIdx][i] represents the absolute difference between the meshes if the ith entry is the first short-term reference mesh frame entry in the bmesh_ref_list_struct(rlsIdx) syntax structure; the frame order count value of the mesh frame referenced by the current mesh tile and the ith entry; or, if the ith entry is a short-term reference mesh frame entry but is not the first short-term reference mesh frame entry in the bmesh_ref_list_struct(rlsIdx) syntax structure, the absolute difference between the mesh frame order count value of the mesh frame referenced by the ith entry and the previous short-term reference mesh frame entry in the bmesh_ref_list_struct(rlsIdx) syntax structure. The value of abs_delta_mfoc_st[rlsIdx][i] is in the range of 0 to 215 - 1. If straf_entry_sign_flag[rlsIdx][i] is 1, it indicates that the ith entry in the syntax structure bmesh_ref_list_struct(rlsIdx) has a value greater than or equal to 0. If straf_entry_sign_flag[rlsIdx][i] is 0, it specifies that the ith entry in the syntax structure bmesh_ref_list_struct(rlsIdx) has a value less than 0. If absent, the value of straf_entry_sign_flag[rlsIdx][i] is inferred to be 1. The list DeltaMfocSt[rlsIdx][i] is derived as follows: for( i = 0; i < num_ref_entries[rlsIdx]; i++ ) if( st_ref_mesh_frame_flag[ rlsIdx ][ i ] ) DeltaMfocSt[ rlsIdx ][ i ] = ( 2 * straf_entry_sign_flag[ rlsIdx ][ i ] - 1 ) * abs_delta_mfoc_st[ rlsIdx ][ i ] else DeltaMfocSt[rlsIdx][i] = 0 mfoc_lsb_lt[ rlsIdx ][ i ] represents the mesh frame order count modulo MaxMeshFrmOrderCntLsb of the mesh frame referenced by the ith entry of the bmesh_ref_list_struct( rlsIdx ) syntax element. The length of the mfoc_lsb_lt[ rlsIdx ][ i ] syntax element is Log2MaxMeshFrmOrderCntLsb bits. Basemesh Submesh Data Unit Semantics: Basemesh inter-submesh data unit semantics: sismu_derived_mv_present_flag[ subMeshID ] indicates that sismu_mv_signalled_flag is present in the bitstream. If sismu_derived_mv_present_flag[ subMeshID ] is 0, sismu_mv_signalled_flag[ subMeshID ][ v ] is always inferred to be 1. sismu_mv_signalled_flag[ subMeshID ][ v ] indicates that the motion vector for the vertex with index v is present in the bitstream. If sismu_mv_signalled_flag[ subMeshID ][ v ] is not present in the bitstream, sismu_mv_signalled_flag[ subMeshID ][ v ] is inferred to be 1. sismu_mv_pred_mode_group[ subMeshID ][ g ] indicates the method used to predict motion vectors associated with vertices in the group with index g of the current submesh. The submesh ID is the same as subMeshID. sismu_mv_residual_abs_gt0[ subMeshID ][ v ][ k ] indicates whether the kth component of the motion vector prediction residual associated with the vertex with index v in the current submesh has an absolute value greater than 0 (if 1) or not (if 0). sismu_mv_residual_sign[ subMeshID ][ v ][ k ] indicates whether the kth component of the motion vector prediction residual associated with the vertex with index v in the current submesh has a positive sign (if 1) or not (if 0). If sismu_mv_residual_sign[ v ][ k ] is absent, it is inferred to be equal to 1. sismu_mv_residual_abs_gt1[ subMeshID ][ v ][ k ] indicates whether the kth component of the motion vector prediction residual associated with the vertex with index v in the current submesh has an absolute value greater than 1 (if 1) or not (if 0). If sismu_mv_residual_abs_gt1[ v ][ k ] is absent, it is inferred to be equal to 0. sismu_mv_residual_abs_rem[ subMeshID ][ v ][ k ] represents the absolute value of the kth component of the motion vector prediction residual associated with the vertex with index v in the current submesh, where the submesh ID is subMeshID minus 2. If sismu_mv_residual_abs_rem[ v ][ k ] is absent, it is inferred to be equal to 0. The kth component of the motion vector prediction residual VertexMotionVectorResiduals[ v ][ k ] associated with the vertex with index v in the current submesh is computed as follows: VertexMotionVectorResiduals[ v ][ k ] = sismu_mv_residual_sign[ v ][ k ] ? 1:-1)* (sismu_mv_ residual_sign_gt0[ v ][ k ] + sismu_mv_ residual_sign wk_gt1[ v ][ k ] + sismu_mv_ residual_sign _rem[ v ][ k ]) Arthmetic Coded Displacement Sub-Bitstream: A NAL sample stream format can be constructed from a NAL unit stream format by arranging NAL units in decoding order and prefixing each NAL unit with a header that specifies the exact size (in bytes) of the NAL unit. A sample stream header is included at the beginning of the sample stream bitstream that specifies the precision (in bytes) of the signaled NAL unit size. A NAL unit stream format can be extracted from a sample stream format by traversing the sample stream format, reading the size information, and appropriately extracting each NAL unit. Below, the syntax of the Arthmetic Coded Displacement sub-bitstream is described. NAL unit syntax: General NAL unit syntax: displ_nal_unit( NumBytesInNalUnit ) {Descriptordispl_nal_unit_header( )NumBytesInRbsp = 0for( i = 2; i < NumBytesInNalUnit; i++ )rbsp_byte[ NumBytesInRbsp++ ]b(8)} NAL unit header syntax: displ_nal_unit_header() {Descriptordispl_nal_forbidden_zero_bitf(1)displ_nal_unit_typeu(6)displ_nal_layer_idu(6)displ_nal_temporal_id_plus1u(3)} Low byte sequence payload, trailing bits, and byte alignment syntax: Displacement Sequence Parameter Set RBSP Syntax: General displacement sequence parameter set RBSP syntax: displ_sequence_parameter_set_rbsp() {Descriptordsps_sequence_parameter_set_idu(4)dsps_codec_idu(8)dsps_profile_tier_level( )dsps_range_log2_minus2u(3)dsps_single_dimension_flagu(1)dsps_msb_align_flagu(1)dsps_log2_max_displ_frame_order_cnt_lsb_minus4ue(v)d sps_max_dec_displ_frame_buffering_minus1ue(v)dsps_long_term_ref_displ_frames_flagu(1)dsps_num_ref_displ_frame_lists_in_dspsue(v)for( i = 0; i < dsps_num_ref_displ_frame_lists_in_dsps; ) displ_ref_list_struct( i )dsps_extension_present_flagu(1)if( dsps_extension_present_flag ) {dsps_extension_count_minus1u(7)dsps_extension_length_minus1ue(v)while( more_rbsp_data( ) )dsps_extension_data_byte u(1)}rbsp_trailing_bits( )} Displacement Profile, Tier, and Level Syntax: Dsps_profile_tier_level( ) {Descriptordptl_tier_flagu(1)dptl_profile_codec_group_idcu(7)dptl_profile_toolset_idcu(8)dptl_reserved_zero_32bitsu(32)dptl_level_idcu(8)dptl_num_sub_profilesu(6)dptl_extended_sub_profile_flagu(1)for( i = 0; i < dptl_num_sub_profiles; i++ ) {dptl_sub_profile_idc[ i ]u(v)}dptl_toolset_constraints_present_flag(1)if(dptl_toolset_constraints_present_flag) {dptl_profile_toolset_constraints_information()}} Profile toolset constraints information syntax: dptl_profile_toolset_constraints_information( ) {Descriptordptc_one_displacement_frame_only_flagu(1)dptc_reserved_zero_7bitsu(6)dptc_num_reserved_constraint_bytesu(8)for( i = 0; i < dptc_num_reserved_constraint_bytes; i++ )dptc_reserved_constraint_byte[ i ]u(8)} Displacement Frame Parameter Set RBSP Syntax: General Displacement Frame Parameter Set RBSP Syntax: displ_frame_parameter_set_rbsp( ) {Descriptordfps_displ_sequence_parameter_set_idu(4)dfps_displ_frame_parameter_set_idu(4)displ_information( ) dfps_output_flag_present_flagu(1)dfps_num_ref_idx_default_active_minus1ue(v)dfps_additional_lt_dfoc_lsb_lenue(v)dfps_extension_present_flagu(1)if( dfps_extension_present_flag )dfps_extension_8bitsu(8)if( dfps_extension_8bits )while( more_rbsp_data( ) )dfps_extension_data_flagu(1)rbsp_trailing_bits( )} 디스플레이스먼트 레퍼런스 리스트 구조 신택스: displ_ref_list_struct( rlsIdx ) {Descriptordrl_num_ref_entries[ rlsIdx ]ue(v)for( i = 0; i < drl_num_ref_entries[ rlsIdx ]; i++ ) {if( dsps_long_term_ref_displ_frames_flag )drl_st_ref_displ_frame_flag[ rlsIdx ][ i ]u(1)if( drl_st_ref_displ_frame_flag[ rlsIdx ][ i ] ) {drl_abs_delta_dfoc_st[ rlsIdx ][ i ]ue(v)if( drl_abs_delta_dfoc_st[ rlsIdx ][ i ] > 0 )drl_straf_entry_sign_flag[ rlsIdx ][ i ]u(1)} elsedrl_dfoc_lsb_lt[ rlsIdx ][ i ]u(v)}} 디스플레이스먼트 레이어 RBSP 신택스: displ_layer_rbsp() {Descriptordispl_header()displ_data_unit(displID)rbsp_trailing_bits()} Displacement header syntax: displ_header( ) {Descriptorif( nal_unit_type >= NAL_BLA_W_LP && nal_unit_type <= NAL_RSV_IRAP_DCL_29 )dh_no_output_of_prior_displ_frames_flagu(1)dh_frame_parameter_set_idu(4)dh_idu(v)displID = dh_iddh_typeue(v)if( dfps_output_flag_present_flag )dh_output_flagu(1)dh_frm_order_cnt_lsbu(v)if( dsps_num_ref_displ_frame_lists_in_dsps > 0 )dh_ref_displ_frame_list_dsps_flagu(1)if( dh_ref_displ_frame_list_dsps_flag == 0 )displ_ref_list_struct( dsps_num_ref_displ_frame_lists_in_dsps )else if( dsps_num_ref_displ_frame_lists_in_dsps > 1 )ref_displ_frame_list_idxu(v)for( j = 0; j < NumLtrDisplFrmEntries[ RlsIdx ]; j++ ) {dh_additional_dfoc_lsb_present_flag[ j ]u(1)if( additional_dfoc_lsb_present_flag[ j ] )dh_additional_dfoc_lsb_val[ j ]u(v)}if( dh_type == P_DISPLACEMENT && num_ref_entries[ RlsIdx ] > 1 ) {dh_num_ref_idx_active_override_flagu(1)if( num_ref_idx_active_override_flag )dh_num_ref_idx_active_minus1ue(v)}dh_log2_subblock_size_minus6u(4)byte_alignment( )} 디스플레이스먼트 데이터 유닛 신택스: displ_data_unit( displID ) {Descriptorif( dh_type == I_DISPLACEMENT ) {displ_intra_unit( displID )}else if( dh_type == P_DISPLACEMENT ) {displ_inter_unit( displID )}} Displacement Intra Data Unit Syntax: displ_intra_unit( displID ) {Descriptordiu_lod_count[ displID ]for( i = 0; i < displ_lod_count; i++ ) {diu_vertex_count_lod[ displID ][ i ]subblockSize = 1 << dh_log2_subblock_size_minus6for( k = 0; k < 3; k++ ) {diu_last_sig_coeff[ k ]ae(v)for( b = 0; b < lodCount; b++ ) {diu_coded_block_flag[ k ][ b ]u(v)if( diu_coded_block_flag[ k ][ b] ) {subblockCountPerLevel =Ceil( diu_vertex_count_lod[ displID ][ b ] / subblockSize )for( s = 0; s < subblockCountPerLevel; s++ ) {diu_coded_subblock_flag[ k ][ b ][ s ]u(v)if( diu_coded_subblock_flag[ k ][ b ][ s ] ) {for( v = vStart; v < subblock_size; v++ ) {diu_coeff_abs_level_gt0[ k ][ b ][ s ][ v ]u(v)if( diu_coeff_abs_level_gt0[ k ][ b ][ s ][ v ] ) {diu_coeff_abs_level_gt1[ k ][ b ][ s ][ v ]u(v)diu_coeff_sign[ k ][ b ][ s ][ v ]u(1)if( diu_coeff_abs_level_gt1[ k ][ b ][ s ][ v ] ) {diu_coeff_abs_level_rem[ k ][ b ][ s ][ v ]ue(v)}}}}}}}if ( dsps_single_dimension_flag ) {break;}}} Displacement Inter-Data Unit Syntax: The arithmetic decoding engine is a context-separated binary arithmetic decoder that performs binary renormalization and produces binary output. The displacement residual is derived from the arithmetic decoding. displ_inter_unit( dispID ) {Descriptor / * Can be the same as specified in 4.3.1.3.7 * / } Below, the semantics of the Arthmetic Coded Displacement sub-bitstream are described. NAL Unit Semantics: General NAL unit semantics: NumBytesInNalUnit represents the size of a NAL unit in bytes. This value is required for decoding a NAL unit. Some form of delimiting NAL unit boundaries is required to enable inference of NumBytesInNalUnit. Note: The displacement coding layer (DCL) is specified to efficiently represent the contents of displacement data. The NAL is specified to format that data and provide header information in a manner suitable for transmission over various communication channels or storage media. All data is contained in NAL units, each of which contains an integer number of bytes. The NAL unit represents a common format that can be used in both packet-oriented systems and bitstream systems. The format of the NAL unit for both packet-oriented transmission and sample streams is the same, but in the sample stream format, each NAL unit may be preceded by an additional element specifying the size of the NAL unit. rbsp_byte[ i ] is the i-th byte of the RBSP. An RBSP is specified as an ordered sequence of bytes as follows: An RBSP contains a string of data bits (SODBs), as follows: - If the SODB is empty (i.e., has length 0 bits), the RBSP is also empty. - Otherwise, the RBSP contains the SODB as follows: 3) The first byte of the RBSP contains the first (most significant, leftmost) 8 bits of the SODB. The next byte of the RBSP contains the next 8 bits of the SODB, and so on until there are fewer than 8 bits of the SODB left. 4) The rbsp_trailing_bits( ) syntax structure exists after SODB as follows. iv) The first (most significant, leftmost) bit of the last RBSP byte contains the remaining bits of the SODB (if any). v) The next bit consists of a single bit equal to 1 (i.e. rbsp_stop_one_bit). vi) If rbsp_stop_one_bit is not the last bit of a byte that is aligned, byte alignment is achieved by the presence of one or more bits that are equal to zero (i.e., instances of rbsp_alignment_zero_bit). Syntax structures with these RBSP properties are indicated in the syntax table using the suffix "_rbsp". These structures are carried in the NAL unit as the contents of the rbsp_byte[ i ] data byte. The association between RBSP syntax structures and NAL units is shown in the table below. NOTE: If the boundaries of an RBSP are known, a decoder can extract an SODB from an RBSP by concatenating the byte bits of the RBSP, discarding the rbsp_stop_one_bit whose last (least significant, rightmost) bit is 1, and discarding the following (less significant, farther right) bits that are 0. The data required for the decoding process is contained in the SODB portion of the RBSP. NAL unit header semantics: displ_nal_forbidden_zero_bit displ_nal_unit_type As in the atlas case, a similar NAL unit type is defined for displacement, and similar functionality for random access defines a specific NAL unit corresponding to the coded displacement data. Also defined is a NAL unit that can contain metadata such as SEI messages. In particular, the supported displacement NAL unit types are specified as follows: NAL Unit Type Codecs and NAL Unit Type Classes: displ_nal_unit_typeName of displ_nal_unit_typeContent of displacement NAL unit and RBSP syntax structureNAL unitype class01NAL_TRAIL_NNAL_TRAIL_RCoded displacement of a non-TSA, non STSA trailing displacement framedispl_layer_rbsp( )DCL23NAL_TSA_NNAL_TSA_RCoded displacement of a TSA displacement framedispl_layer_rbsp( )DCL45NAL_STSA_NNAL_STSA_RCoded displacement of a STSA displacement framedispl_layer_rbsp( )DCL67NAL_RADL_NNAL_RADL_RCoded displacement of a RADL displacement framedispl_layer_rbsp( )DCL89NAL_RASL_NNAL_RASL_RCoded displacement of a RASL displacement framedispl_layer_rbsp( )DCL1011NAL_SKIP_NNAL_SKIP_RCoded displacement of a skipped displacement framedispl_layer_rbsp( )DCL1214NAL_RSV_DCL_N12NAL_RSV_DCL_N14Reserved non-IRAP sub-layer non-reference DCL displacement NAL unit typesDCL1315NAL_RSV_DCL_R13NAL_RSV_DCL_R15Reserved non-IRAP sub-layer reference DCL displacement NAL unit typesDCL161718NAL_BLA_W_LPNAL_BLA_W_RADLNAL_BLA_N_LPCoded displacement of a BLA displacementframedispl_layer_rbsp( )DCL1920NAL_IDR_W_RADLNAL_IDR_N_LPCoded displacement of an IDR displacement framedispl_layer_rbsp( )DCL21NAL_CRACoded displacement of a CRA displacement framedispl_layer_rbsp( )DCL2223NAL_RSV_IRAP_DCL_22NAL_RSV_IRAP_DCL_23Reserved IRAP DCL NAL unit typesDCL24..29NAL_RSV_DCL_24..NAL_RSV_DCL_29Reserved non-IRAP DCL NAL unit typesDCL30NAL_DSPSDisplacement sequence parameter setdispl_sequence_parameter_set_rbsp( )non-DCL31NAL_DFPSDisplacement frame parameter setdispl_frame_parameter_set_rbsp( )non-DCL32NAL_DAUDAccess unit delimiteraccess_unit_delimiter_rbsp( )non-DCL33NAL_DEOSEnd of sequenceend_of_sequence_rbsp( )non-DCL34NAL_DEOBEnd of bitstreamend_of_displ_sub_bitstream_rbsp( )non-DCL35NAL_FDFillerfiller_data_rbsp( )non-DCL3637NAL_PREFIX_NSEINAL_SUFFIX_NSEINon-essential supplemental enhancement informationsei_rbsp( )non-DCL383940..4445..63NAL_PREFIX_ESEINAL_SUFFIX_ESEINAL_RSV_NDCL_40NAL_RSV_NDCL_44NAL_UNSPEC_45NAL_UNSPEC_63Essential supplemental enhancementinformationsei_rbsp( )Reserved non-DCL NAL unit typessnspecified non-DCL NAL unit typesnon-DCLnon-DCLnon-DCL displ_nal_layer_iddispl_nal_temporal_id_plus1 The order of NAL units and displacement frames, and their relationship to coded displacement frames, access units, and coded displacement sequences: Low byte sequence payload, trailing bits, byte alignment semantics: Displacement Sequence Parameter Set RBSP Semantics: General displacement sequence parameter set RBSP semantics: dsps_sequence_parameter_set_id: An identifier for the displacement sequence parameter set so that other syntax elements can reference it. dsps_codec_id: The identifier of the codec used to compress the displacement. dsps_codec_id is in the range 0 to 255. The codec may be identified by a profile defined in ISO / IEC 23090-29, by an SEI message mapping component codec, or by means external to this document. It may be associated with a particular displacement codec via a profile specified in that specification, or explicitly indicated in an SEI message as done in the V3C specification for video sub-bitstreams. dsps_range_log2_minus2: Adding 2 to this value gives the geometric displacement coordinate range of the displacement. dsps_range_log2_minus2 is in the range of 0 to 3. dsps_single_dimension_flag: Indicates the number of dimensions for the displacement associated with the displacement. If dsps_single_dimension_flag is 0, it indicates that three components for the displacement are used. If dsps_single_dimension_flag is 1, it indicates that only the normal component for the displacement is used. dsps_msb_align_flag: Indicates how decoded displacement samples are converted to samples of displacement range bit depth. dsps_log2_max_displ_frame_order_cnt_lsb_minus4: Adding 4 to this value gives the values ​​of the variables Log2MaxDisplFrmOrderCntLsb and MaxDisplFrmOrderCntLsb used in the decoding process for the disparity frame order count, as follows. Log2MaxDisplFrmOrderCntLsb = dsps_log2_max_displ_frame_order_cnt_lsb_minus4 + 4 MaxDisplFrmOrderCntLsb = 2Log2MaxDisplFrmOrderCntLsb The value of dsps_log2_max_displ_frame_order_cnt_lsb_minus4 is in the range of 0 to 12. dsps_max_dec_displ_frame_buffering_minus1 plus 1 indicates the maximum required size of the decoded disparity frame buffer for the CDS in disparity frame storage buffer units. The value of dsps_max_dec_displ_frame_buffering_minus1 is in the range of 0 to 15. If dsps_long_term_ref_displ_frames_flag is 0, it indicates that long-term reference displ ection is not used for inter prediction of any coded displ ection frames in the CDS. If dsps_long_term_ref_displ_frames_flag is 1, it indicates that long-term reference displ ection frames can be used for inter prediction of one or more coded displ ection frames in the CDS. dsps_num_ref_displ_frame_lists_in_dsps represents the number of displ_ref_list_struct(rlsIdx) syntax structures included in the displacement sequence parameter set. The value of dsps_num_ref_displ_frame_lists_in_dsps is in the range of 0 to 64. NOTE: The decoder allocates memory for a total number of displ_ref_list_struct(rlsIdx) syntax structures, which is equal to (dsps_num_ref_displ_frame_lists_in_dsps + 1), since there can be only one displ_ref_list_struct(rlsIdx) syntax structure directly signaled in the displacement header of the current displacement frame. If dsps_extension_present_flag is 1, it indicates that dsps_extension_count_minus1 and dsps_extension_length_minus1 are in the displacement sequence parameter set. Adding 1 to dsps_extension_count_minus1 indicates the number of extensions in the current displacement sequence parameter set. If none exist, dsps_extension_count_minus1 is inferred to be equal to -1. dsps_extension_length_minus1 plus 1 indicates the length of the dsps_extension_data_byte element following this syntax element. If not present, dsps_extension_length_minus1 is inferred to be equal to -1. dsps_extension_data_byte can have any value. Displacement Profile, Tier and Level Semantics: dptl_tier_flag indicates the tier context for interpreting dptl_level_idc as specified in ISO / IEC 23090-29. dptl_profile_codec_group_idc indicates the codec group profile component to which the CDS conforms as specified in ISO / IEC 23090-29. dptl_profile_toolset_idc represents a toolset combination profile component that CDS complies with as specified in ISO / IEC 23090-29. If dptl_reserved_zero_32bits is present, it is equal to 0 in a bitstream conforming to this version of this document. dptl_level_idc indicates the level to which the CDS complies as specified in ISO / IEC 23090-29. dptl_num_sub_profiles represents the number of dptl_sub_profile_idc[ i ] syntax elements. If dptl_extended_sub_profile_flag is 1, it indicates that the dptl_sub_profile_idc[ i ] syntax element should be represented using 64 bits, if present. If dptl_extended_sub_profile_flag is 0, it indicates that the dptl_sub_profile_idc[ i ] syntax element should be represented using 32 bits, if present. dptl_sub_profile_idc[ i ] represents the i-th registered interoperability metadata as specified in Rec. ITU-T T.35. The number of bits used to represent dptl_sub_profile_idc[ i ] is (dptl_extended_sub_profile_flag == 0 ? 32 : 64). If dptl_toolset_constraints_present_flag is 1, it indicates that the additional structure dptl_profile_toolset_constraints_information( ) is present in the bitstream. If dptl_toolset_constraints_present_flag is 0, it indicates that the structure dptl_profile_toolset_constraints_information( ) is not present. Displacement Profile Toolset Constraint Information Semantics: * If dptc_one_displacemnt_frame_only_flag is present, it has the meaning specified in ISO / IEC 23090-29, where the profile indicated by dptl_profile_toolset_idc is the profile specified in ISO / IEC 23090-29. If absent, dptc_one_displacement_frame_only_flag is inferred to be equal to 0. dptc_reserved_zero_7bits is equal to 0 in bitstreams that follow this version of this document. dptc_num_reserved_constraint_bytes indicates the number of reserved constraint bytes. dptc_reserved_constraint_byte[ i ] can have any value. Displacement Frame Parameter Set RBSP Semantics General displacement frame parameter set RBSP semantics dfps_displ_sequence_parameter_set_id specifies the value of dsps_sequence_parameter_set_id for the active displacement sequence parameter set. dfps_displ_parameter_set_id identifies the displacement frame parameter set so that other syntax elements can reference it. If dfps_output_flag_present_flag is 1, it indicates that the displ_output_flag syntax element is present in the associated displacement header. If dfps_output_flag_present_flag is 0, it indicates that the displ_output_flag syntax element is not present in the associated displacement header. dfps_num_ref_idx_default_active_minus1: This value plus 1 represents the inferred value of the variable NumRefIdxActive for tiles with displ_num_ref_idx_active_override_flag equal to 0. The value of dfps_num_ref_idx_default_active_minus1 is in the range of 0 to 14. dfps_additional_lt_dfoc_lsb_len indicates the value of the variable MaxLtDisplFrmOrderCntLsb used in the decoding process of the reference atlas frame list. MaxLtDisplFrmOrderCntLsb = 2 * (Log2MaxDisplFrmOrderCntLsb + dfps_additional_lt_dfoc_lsb_len) The value of dfps_additional_lt_dfoc_lsb_len is in the range of 0 to 32 - Log2MaxDisplFrmOrderCntLsb. If dsps_long_term_ref_displ_frames_flag is 0, the value of dfps_additional_lt_dfoc_lsb_len is equal to 0. If dfps_extension_present_flag is 1, it indicates that the syntax element dfps_extension_8bits is present in the displacement frame parameter set. If dfps_extension_present_flag is 0, it indicates that the syntax element dfps_extension_8bits is not present. In this version of this document, the value of dfps_extension_present_flag is 0. If dfps_extension_8bits is 0, it indicates that the DFPS RBSP syntax structure does not have a dfps_extension_data_flag syntax element. If dfps_extension_8bits is present, it is equal to 0 in bitstreams that follow this version of this document. dfps_extension_data_flag can have any value. displ_no_output_of_prior_displ_frames_flag affects the output of previously decoded displacement frames in the DDB after decoding a displacement frame in a CDS AU that is not the first AU in the bitstream as specified in ISO / IEC 23090-29. If no_output_of_prior_displ_frames_flag is absent, its value is inferred to be equal to 0. As a requirement for bitstream conformance, the value of no_output_of_prior_displ_frames_flag is the same for all displacement frames in an AU. The no_output_of_prior_displ_frames_flag value in the displacement header is the output_of_prior_displ_frames_flag value of the AU. displ_frame_parameter_set_id indicates the value of dfps_displ_frame_parameter_set_id for the active displacement frame parameter set for the current displacement frame. dislp_type indicates the coding type of the current displacement frame, according to the table below. The values ​​of smh_type are 0, 1, or 2 in bitstreams that follow this version of this document. Other values ​​of smh_type are reserved for future use in ISO / IEC. Relationship to dislp_type smh_typeName of smh_type0P_DISPLACEMENT1I_DISPLACEMENT2...RESERVED utput_flag: Affects the decoded displacement output and removal process as specified in ISO / IEC 23090-29. If displ_output_flag is absent, it is inferred to be equal to 1. displ_frm_order_cnt_lsb: Indicates the number of displacement frame orders modulo MaxDisplFrmOrderCntLsb for the current displacement frame. The length of the displ_frm_order_cnt_lsb syntax element is equal to Log2MaxDisplFrmOrderCntLsb bits. The value of displ_frm_order_cnt_lsb ranges from 0 to MaxDisplFrmOrderCntLsb - 1. If ref_displ_frame_list_dsps_flag is 1, it indicates that the reference displacement frame list of the current displacement frame is derived based on one of the displ_ref_list_struct(rlsIdx) syntax structures of the active DSPS. If ref_displ_frame_list_dsps_flag is 0, it indicates that the reference displacement frame list of the current displacement frame is derived based on the displ_ref_list_struct(rlsIdx) syntax structure directly included in the displacement frame header of the current displacement frame. When dsps_num_ref_displ_frame_lists_in_dsps is 0, the value of ref_displ_frame_list_dsps_flag is inferred to be 0. ref_displ_frame_list_idx indicates the index of the displ_ref_list_struct(rlsIdx) syntax structure used to derive the reference displacement frame list for the current displacement frame in the list of displ_ref_list_struct(rlsIdx) syntax structures contained in the active DSPS. The syntax element ref_displ_frame_list_idx is expressed in bits Ceil(Log2(dsps_num_ref_displ_frame_lists_in_dsps)) . If not present, the value of ref_displ_frame_list_idx is inferred to be equal to 0. The value of ref_displ_frame_list_idx is in the range 0 to dsps_num_ref_displ_frame_lists_in_dsps - 1. If ref_displ_frame_list_dsps_flag is 1 and dsps_num_ref_displ_frame_lists_in_dsps is 1, the value of ref_displ_frame_list_idx is inferred to be equal to 0. The variable RlsIdx of the current atlas tile is derived as follows: RlsIdx = ref_displ_frame_list_dsps_flag ? ref_displ_frame_list_idx : dsps_num_ref_displ_frame_lists_in_dsps If additional_dfoc_lsb_present_flag[ j ] is 1, it indicates that additional_dfoc_lsb_val[ j ] is present for the current displacement frame. If additional_dfoc_lsb_present_flag[ j ] is 0, it indicates that additional_dfoc_lsb_val[ j ] is not present. *additional_dfoc_lsb_val[ j ] represents the value of FullFrmOrderCntLsbLt[ RlsIdx ][ j ] for the current atlas tile, as follows. FullDisplFrmOrderCntLsbLt[RlsIdx][j] = additional_dfoc_lsb_val[ j ] * MaxDisplFrmOrderCntLsb +dfoc_lsb_lt[ RlsIdx ][ j ] The syntax element additional_dfoc_lsb_val[ j ] is represented by dfps_additional_lt_dfoc_lsb_len bits. If it is not present, the value of additional_dfoc_lsb_val[ j ] is inferred to be equal to 0. If num_ref_idx_active_override_flag is 1, it indicates that there is a syntax element num_ref_idx_active_minus1 for the current displacement frame. If num_ref_idx_active_override_flag is 0, it indicates that there is no syntax element num_ref_idx_active_minus1. If num_ref_idx_active_override_flag is absent, its value is inferred to be 0. num_ref_idx_active_minus1 is used to derive the variable NumRefIdxActive as specified in Equation 5 for the current displacement frame. The value of num_ref_idx_active_minus1 is in the range 0 to 14. If the current displacement frame is a P_DISPLACEMENT displacement frame, num_ref_idx_active_override_flag is 1, and num_ref_idx_active_minus1 is absent, then num_ref_idx_active_minus1 is inferred to be equal to 0. The variable NumRefIdxActive is derived as follows: if( displ_type == P_DISPLACEMENT ) { if( num_ref_idx_active_override_flag == 1 ) NumRefIdxActive = num_ref_idx_active_minus1 + 1 else { if( num_ref_entries[ RlsIdx ] >= dfps_num_ref_idx_default_active_minus1 + 1 ) NumRefIdxActive = dfps_num_ref_idx_default_active_minus1 + 1 else NumRefIdxActive = num_ref_entries[RlsIdx] } } else NumRefIdxActive = 0 The value of NumRefIdxActive minus 1 represents the maximum number of displacement reference frame indices that can be used to decode the current displacement frame. Displacement Reference List Structure Semantics: drl_num_ref_entries[rlsIdx] represents the number of entries in the displ_ref_list_struct(rlsIdx) syntax structure, where rlsIdx is the index of the displacement frame reference list. For P_DISPLACEMENT, the value of num_ref_entries[rlsIdx] is in the range of 1 to dsps_max_dec_displ_frame_buffering_minus1 + 1. Otherwise, the value of num_ref_entries[rlsIdx] is in the range of 0 to dsps_max_dec_displ_frame_buffering_minus1 + 1. If drl_st_ref_displ_frame_flag[rlsIdx][i] is 1, it indicates that the ith entry in the displ_ref_list_struct(rlsIdx) syntax structure is a short-term reference displacement frame entry. If st_ref_displ_frame_flag[rlsIdx][i] is 0, it indicates that the ith entry in the displ_ref_list_struct(rlsIdx) syntax structure is a long-term reference displacement frame entry. If not present, the value of drl_st_ref_displ_frame_flag[rlsIdx][i] is inferred to be equal to 1. The variable NumLtrDisplFrmEntries[rlsIdx] is derived as follows: NumLtrDisplFrmEntries[rlsIdx] = 0 for( i = 0; i < drl_num_ref_entries[rlsIdx]; i++) if(!drl_st_ref_displ_frame_flag[rlsIdx][i]) NumLtrDisplFrmEntries[rlsIdx]++ drl_abs_delta_dfoc_st[rlsIdx][i], if the i-th entry is the first short-term reference displacement frame entry in the displ_ref_list_struct(rlsIdx) syntax structure, specifies the absolute difference between the displacement frame order count values ​​of the current displacement frame referenced by the i-th entry, or if the i-th entry is a short-term reference displacement frame entry but is not the first short-term reference displacement frame entry in the displ_ref_list_struct(rlsIdx) syntax structure, specifies the absolute difference between the displacement frame order count values ​​of the displacement frames referenced by the i-th entry and the previous short-term reference displacement frame entry in the displ_ref_list_struct(rlsIdx) syntax structure. The value of drl_abs_delta_dfoc_st[rlsIdx][i] is in the range of 0 to 215-1. If drl_straf_entry_sign_flag[rlsIdx][i] is 1, it indicates that the ith entry in the syntax structure displ_ref_list_struct(rlsIdx) has a value greater than or equal to 0. If drl_straf_entry_sign_flag[rlsIdx][i] is 0, it indicates that the ith entry in the syntax structure displ_ref_list_struct(rlsIdx) has a value less than 0. If absent, the value of drl_straf_entry_sign_flag[rlsIdx][i] is inferred to be 1. The DeltaDfocSt[rlsIdx][i] list is derived as follows: for( i = 0; i < drl_num_ref_entries[rlsIdx]; i++ ) if( drl_st_ref_displ_frame_flag[rlsIdx][i]) DeltaDfocSt[rlsIdx][i] = ( 2 * drl_straf_entry_sign_flag[rlsIdx][i] - 1) * drl_abs_delta_dfoc_st[rlsIdx][i] else DeltaDfocSt[rlsIdx][i] = 0 drl_dfoc_lsb_lt[rlsIdx][i] represents the displacement frame order count value for MaxDisplFrmOrderCntLsb of the displacement frame referenced by the i-th item of the displ_ref_list_struct(rlsIdx) syntax structure. The length of the drl_dfoc_lsb_lt[ rlsIdx ][ i ] syntax element is Log2MaxDisplFrmOrderCntLsb bits. Displacement Layer RBSP Semantics: Displacement header semantics: dh_no_output_of_prior_displ_frames_flag affects the output of previously decoded displacement frames in the DDB after decoding displacement frames in a CDS AU that is not the first AU in the bitstream as specified in ISO / IEC 23090-29. If no_output_of_prior_displ_frames_flag is absent, its value is inferred to be 0. As a requirement for bitstream conformance, the value of no_output_of_prior_displ_frames_flag is the same for all displacement frames in an AU. The no_output_of_prior_displ_frames_flag value in the displacement header is the output_of_prior_displ_frames_flag value of the AU. dh_frame_parameter_set_id indicates the dfps_displ_frame_parameter_set_id value for the active displacement frame parameter set for the current displacement frame. dh_id: Indicates the displacement header ID. dh_type indicates the coding type of the current displacement frame, as shown in the table below. The value of dh_type is 0 or 1 in bitstreams that follow this version of this document. Other values ​​of dh_type are reserved for future use in ISO / IEC. dh_type relationship smh_typeName of smh_type0P_DISPLACEMENT1I_DISPLACEMENT2...RESERVED dh_frm_order_cnt_lsb: Indicates the number of displacement frame orders modulo MaxDisplFrmOrderCntLsb for the current displacement frame. The length of the dh_frm_order_cnt_lsb syntax element is equal to Log2MaxDisplFrmOrderCntLsb bits. The value of dh_frm_order_cnt_lsb ranges from 0 to MaxDisplFrmOrderCntLsb - 1. If dh_ref_displ_frame_list_dsps_flag is 1, it indicates that the reference displacement frame list of the current displacement frame is derived based on one of the displ_ref_list_struct(rlsIdx) syntax structures of the active DSPS. If dh_ref_displ_frame_list_dsps_flag is 0, it indicates that the reference displ frame list of the current displacement frame is derived based on the displ_ref_list_struct(rlsIdx) syntax structure directly included in the displacement frame header of the current displacement frame. If dsps_num_ref_displ_frame_lists_in_dsps is 0, the value of dh_ref_displ_frame_list_dsps_flag is inferred to be 0. dh_ref_displ_frame_list_idx specifies the index into the list of displ_ref_list_struct(rlsIdx) syntax structures contained in the active DSPS, which are used to derive the reference displ frame list of the current displ frame. The syntax element dh_ref_displ_frame_list_idx is expressed in Ceil(Log2(dsps_num_ref_displ_frame_lists_in_dsps)) bits. If not present, the value of dh_ref_displ_frame_list_idx is inferred to be equal to 0. The value of dh_ref_displ_frame_list_idx is in the range of 0 to dsps_num_ref_displ_frame_lists_in_dsps - 1. If dh_ref_displ_frame_list_dsps_flag is 1 and dsps_num_ref_displ_frame_lists_in_dsps is 1, the value of ref_displ_frame_list_idx is inferred to be 0. The variable RlsIdx of the current atlas tile is derived as follows: RlsIdx = dh_ref_displ_frame_list_dsps_flag ? ref_displ_frame_list_idx : dsps_num_ref_displ_frame_lists_in_dsps If dh_additional_dfoc_lsb_present_flag[ j ] is 1, it indicates that dh_additional_dfoc_lsb_val[ j ] is present in the current displacement frame. If dh_additional_dfoc_lsb_present_flag[ j ] is 0, it indicates that dh_additional_dfoc_lsb_val[ j ] is not present. dh_additional_dfoc_lsb_val[ j ] represents the value of FullFrmOrderCntLsbLt[ RlsIdx ][ j ] for the current atlas tile, as follows: FullDisplFrmOrderCntLsbLt[ RlsIdx ][ j ] = dh_additional_dfoc_lsb_val[ j ] * MaxDisplFrmOrderCntLsb +dfoc_lsb_lt[ RlsIdx ][ j ] The syntax element dh_additional_dfoc_lsb_val[ j ] is represented by dfps_additional_lt_dfoc_lsb_len bits. If it is not present, the value of dh_additional_dfoc_lsb_val[ j ] is inferred to be equal to 0. If dh_num_ref_idx_active_override_flag is 1, it indicates that there is a syntax element num_ref_idx_active_minus1 for the current displacement frame. If dh_num_ref_idx_active_override_flag is 0, it indicates that there is no syntax element num_ref_idx_active_minus1. If dh_num_ref_idx_active_override_flag is absent, its value is inferred to be equal to 0. dh_num_ref_idx_active_minus1 is used to derive the variable NumRefIdxActive for the current displacement frame. The value of dh_num_ref_idx_active_minus1 is in the range 0 to 14. If the current displacement frame is a P_DISPLACEMENT displacement frame, dh_num_ref_idx_active_override_flag is 1, and dh_num_ref_idx_active_minus1 is absent, then dh_num_ref_idx_active_minus1 is inferred to be equal to 0. The variable NumRefIdxActive is derived as follows: if( dh_type == P_DISPLACEMENT ) { if( dh_num_ref_idx_active_override_flag == 1 ) NumRefIdxActive = dh_num_ref_idx_active_minus1 + 1 else { if( num_ref_entries[ RlsIdx ] >= dfps_num_ref_idx_default_active_minus1 + 1 ) NumRefIdxActive = dfps_num_ref_idx_default_active_minus1 + 1 else NumRefIdxActive = num_ref_entries[RlsIdx] } } else NumRefIdxActive = 0 Subtracting 1 from NumRefIdxActive indicates the maximum number of displacement reference frame indices that can be used to decode the current displacement frame. Adding 6 to dh_log2_subblock_size_minus6 returns the value of the variable subblockSize as follows. subblockSize = 1 << ( log2_subblock_size_minus6 + 6 ) Displacement Data Unit Semantics: displ_intra_unit( displID ) contains a displacement unit stream as an aligned stream of bytes or bits, within which the locations of unit boundaries are identifiable from a pattern in the data. The format of this displacement unit stream is identified by the 4CC code defined by dptl_profile_codec_group_idc or by the component codec mapping SEI message. displ_inter_unit( displID ) contains a displacement unit stream, which is an aligned stream of bytes or bits, within which the locations of unit boundaries are identifiable by a pattern in the data. The format of this displacement unit stream is identified by a 4CC code or component codec mapping SEI message defined by dptl_profile_codec_group_idc. Displacement Intra Data Unit Semantics: The arithmetic decoding engine is a context-separated binary arithmetic decoder that performs binary renormalization and produces binary output. Displacement values ​​are derived from arithmetic decoding. diu_lod_count[ displID ] indicates the number of granularity levels used for signaled displacements in the data unit associated with displId displID. diu_vertex_count_lod[ displID ] [ i ] represents the displacement count for the i-th level of the wavelet transform for the data unit associated with displId displID. diu_last_sig_coeff[ k ] represents the index of the last position of a non-zero displacement coefficient level in the kth component. diu_coded_block_flag[ k ][ b ] indicates whether the block with index b has a non-zero displacement coefficient level in the kth component (if 1) or not (if 0). diu_coded_subblock_flag[ k ][ b ][ s ] indicates whether the subblock with index s of the block with index b has a non-zero displacement coefficient level in the kth component (if 1) or not (if 0). diu_coeff_abs_level_gt0[ k ][ b ][ s ][ v ] indicates whether the kth component of the displacement coefficient level associated with the vertex with index v in the subblock with index s of the block with index b has an absolute value greater than 0 (if 1) or not (if 0). diu_coeff_abs_level_gt1[ k ][ b ][ s ][ v ] indicates whether the kth component of the displacement coefficient level associated with the vertex with index v in the subblock with index s of the block with index b has an absolute value greater than 1 (if 1) or not (if 0). If diu_coeff_abs_level_gt1[ k ][ b ][ s ][ v ] is absent, it is inferred to be equal to 0. diu_coeff_sign[ k ][ b ][ s ][ v ] indicates whether the kth component of the displacement coefficient level associated with the vertex with index v in the subblock with index s of the block with index b has a positive sign (if 1) or not (if 0). If diu_coeff_sign[ k ][ b ][ s ][ v ] is absent, it is inferred to be equal to 1. diu_coeff_abs_level_rem[ k ][ b ][ s ][ v ] represents the absolute value of the kth component of the displacement coefficient level associated with the vertex with index v in the block with index b minus 2. If diu_coeff_abs_level_rem[ k ][ b ][ s ][ v ] is absent, it is inferred to be equal to 0. Displacement Inter-Data Unit Semantics: The arithmetic decoding engine is a context-separated binary arithmetic decoder that performs binary renormalization and produces binary output. The displacement residual is derived from arithmetic decoding. It can be the same as described above. A bitstream according to embodiments may include VDMC atlas tile data units. The atlas tile data unit syntax is defined as follows. General V-DMC Atlas Tile Data Unit Syntax: vmdc_atlas_tile_data_unit( tileID ) {Descriptorif( ath_type == SKIP_TILE ) {for( p = 0; p < RefAtduTotalNumMeshpatches[ tileID ]; p++ )skip_meshpatch_data_unit( )} else {p = 0do {atdu_meshpatch_mode[ tileID ][ p ]ue(v)isEnd = ( ath_type == P_TILE && atdu_meshpatch_mode[ tileID ][ p ] == P_END) || ( ath_type == I_TILE && atdu_meshpatch_mode[ tileID ][ p ] == I_END )if( !isEnd ) {meshpatch_information_data( tileID , p , atdu_meshpatch_mode[ tileID ][ p ] )p++}} while( !isEnd )}AtduTotalNumMeshpatches[ tileID ] = p| A bitstream according to embodiments may further include mesh patch information data syntax. meshpatch_information_data( tileID, patchIdx, meshpatchMode ) {Descriptorif( ath_type == P_TILE ) {if( meshpatchMode == P_SKIP )skip_meshpatch_data_unit( )else if( meshpatchMode == P_MERGE )merge_meshpatch_data_unit( tileID, patchIdx )else if( meshpatchMode == P_INTRA )meshpatch_data_unit( tileID, patchIdx )else if( meshpatchMode == P_INTER )inter_meshpatch_data_unit( tileID, patchIdx )}else if( ath_type == I_TILE ) {if( meshpatchMode == I_INTRA )meshpatch_data_unit( tileID, patchIdx )}} A bitstream according to embodiments may further include mesh patch data unit syntax. meshpatch_data_unit( tileID, patchIdx ) {Descriptormdu_submesh_id[ tileID ][ patchIdx ]u(v)mdu_vertex_count_minus1[ tileID ][ patchIdx ]ue(v)mdu_face_count_minus1[ tileID ][ patchIdx ]ue(v)mdu_2d_pos_x[ tileID ][ patchIdx ]ue(v)mdu_2d_pos_y[ tileID ][ patchIdx ]ue(v)mdu_2d_size_y_minus1[ tileID ][ patchIdx ]ue(v)mdu_parameters_override_flag[ tileID ][ patchIdx ]u(1)if( mdu_parameters_override_flag[ tileID ][ patchIdx ] ){mdu_subdivision_override_flag[ tileID ][ patchIdx ]u(1)mdu_quantization_override_flag[ tileID ][ patchIdx ]u(1)mdu_transform_method_override_flag[ tileID ][ patchIdx ]u(1)mdu_transform_parameters_override_flag[ tileID ][ patchIdx ]u(1)}if( mdu_subdivision_override_flag[ tileID ][ patchIdx ] ){mdu_subdivision_method[ tileID ][ patchIdx ]u(3)if( mdu_subdivision_method[ tileID ][ patchIdx ] != 0 ){mdu_subdivision_iteration_count[ tileID ][ patchIdx PatchSubdivisionCount[ tileID ][ patchIdx ] =mdu_subdivision_iteration_count[ tileID ][ patchIdx ]]u(3)} else {PatchSubdivisionCount[ tileID ][ patchIdx ] = 0}} else {PatchSubdivisionCount[ tileID ][ patchIdx ] = AfpsSubdivisonCount}if(mdu_quantization_override_flag[ tileID ][ patchIdx ])vdmc_quantization_parameters(2, PatchSubdivisionCount[ tileID ][ patchIdx ] )mdu_displacement_coordinate_system[ tileID ][ patchIdx ]u(1)if(mdu_transform_method_override_flag[ tileID ][ patchIdx ])mdu_transform_method[ tileID ][ patchIdx ]u(3)if(mdu_transform_method[ tileID ][ patchIdx ]== LINEAR_LIFTING &&mdu_transform_parameters_override_flag[ tileID ][ patchIdx ]) {vdmc_lifting_transform_parameters(2, PatchSubdivisionCount[ tileID ][ patchIdx ] )}for( i=0; i< asve_num_attribute_video; i++ ){if( asve_attribute_subtexture_enabled_flag[ i ] ){mdu_attributes_2d_pos_x[ tileID ][ patchIdx ][ i ]ue(v)mdu_attributes_2d_pos_y[ tileID ][ patchIdx ][ i ]ue(v)mdu_attributes_2d_size_x_minus1[ tileID ][ patchIdx ][ i ]ue(v)mdu_attributes_2d_size_y_minus1[ tileID ][ patchIdx ][ i ]ue(v)}}if( afve_projection_texcoord_present_flag[ smIdx ] )texture_projection_information( tileID, patchIdx )} The VDMC Atlas Tile Data Unit semantics are as follows: General VDMC Atlas Tile Data Unit Semantics: atdu_meshpatch_mode[tileID][p] represents the mesh patch mode for the mesh patch with patch index p in the current atlas tile with tile ID equal to tileID. The allowed values ​​for atdu_meshpatch_mode[tileID][p] are shown in Table 44 for atlas tiles whose ath_type is I_TILE, in Table 45 for atlas tiles whose ath_type is P_TILE, and in Table 46 for atlas tiles whose ath_type is SKIP_TILE. If not present, the value of atdu_meshpatch_mode[tileID][p] is inferred to be equal to P_SKIP. Table 44 shows the mesh patch mode for I_TILE type atlas tiles. atdu_meshpatch_mode[ tileID ][ p ]IdentifierDescription0I_INTRANon-predicted meshpatch mode1..13I_RESERVEDReserved modes for future use by ISO / IEC14I_ENDMeshpatch termination mode Table 45 shows the mesh patch mode for P_TILE type atlas tiles. atdu_meshpatch_mode[ tileID ][ p ]IdentifierDescription0P_SKIPMeshpatch Skip mode1P_MERGEMeshpatch Merge mode2P_INTERInter predicted Meshpatch mode3P_INTRANOn-predicted Meshpatch mode4..13P_RESERVEDReserved modes for future use by ISO / IEC14P_ENDPatch termination mode Table 46 shows the mesh patch mode for SKIP_TILE type atlas tiles. atdu_meshpatch_mode[ tileID ][ p ]IdentifierDescription0P_SKIPMeshpatch Skip mode Mesh Patch Information Data Syntax: Mesh Patch Data Unit Syntax: mdu_submesh_id[tileID][patchIdx] represents the associated submesh ID specified in the current meshpatch with index patchIdx in the current atlas tile, which has the same tile ID as tileID. The value of mdu_submesh_id[tileID][patchIdx] must be one of afmi_submesh_id[i], where i is in the range of 0 to ath_submesh_count - 1. mdu_vertex_count_minus1[tileID][patchIdx] represents the number of vertices associated with the current meshpatch with index patchIdx in the current atlas tile and having a tile ID equal to tileID. mdu_face_count_minus1[tileID][patchIdx] represents the number of faces associated with the current meshpatch with index patchIdx in the current atlas tile and having a tile ID equal to tileID. mdu_2d_pos_x[tileID][patchIdx] represents the x-coordinate of the upper-left corner of the mesh patch bounding box of the current mesh patch with index patchIdx in the current atlas tile. The tile ID is equal to tileID and is expressed as a multiple of PatchPackingBlockSize. mdu_2d_pos_y[tileID][patchIdx] represents the y-coordinate of the upper left corner of the mesh patch bounding box of the current mesh patch with index patchIdx in the current atlas tile. The tile ID is equal to tileID and is expressed as a multiple of PatchPackingBlockSize. mdu_2d_size_x_minus1[tileID][patchIdx] plus 1 represents the width value of the current mesh patch bounding box of the mesh patch with index patchIdx whose tile ID is equal to tileID in the current atlas tile. mdu_2d_size_y_minus1[tileID][patchIdx] plus 1 represents the height value of the bounding box of the current mesh patch for the mesh patch with index patchIdx in the current atlas tile. The tile ID is the same as tileID. If mdu_parameters_override_flag[tileID][patchIdx] is 1, it indicates that parameters mdu_subdivision_override_flag, mdu_quantization_override_flag, mdu_transform_method_override_flag, mdu_transform_parameters_override_flag are present in the mesh patch with index patchIdx in the current atlas tile and the tile ID is equal to tileID. If mdu_subdivision_override_flag[tileID][patchIdx] is 1, it indicates that mdu_subdivision_method and mdu_subdivision_iteration_count exist in the meshpatch with the index patchIdx of the current atlas tile, and the tile ID is equal to tileID. If mdu_subdivision_override_flag[tileID][patchIdx] is absent, its value is inferred to be 0. If mdu_quantization_override_flag[tileID][patchIdx] is 1, it indicates that the vdmc_quantization_parameters(qpIndex, subdivisionCount) syntax construct exists in the meshpatch with index patchIdx of the current atlas tile, and the tile ID is equal to tileID. If mdu_quantization_override_flag[tileID][patchIdx] is absent, its value is inferred to be 0. The variable QpIndex in the current patch is derived as follows: QpIndex = mdu_quantization_override_flag[ tileID ][ patchIdx ] ? 2: afve_quantization_parameters_enable_flag ? 1: 0 If mdu_transform_method_override_flag[tileID][patchIdx] is 1, it indicates that mdu_transform_method is present in the mesh patch with index patchIdx of the current atlas tile, and the tile ID is equal to tileID. If mdu_transform_method_override_flag[tileID][patchIdx] is absent, its value is inferred to be 0. If mdu_transform_parameters_override_flag[tileID][patchIdx] is 1, it indicates that the vdmc_lifting_transform_parameters(lptIndex, subdivisionCount) syntax construct exists in the mesh patch with index patchIdx of the current atlas tile, and the tile ID is equal to tileID. If mdu_transform_parameters_override_flag[tileID][patchIdx] is absent, its value is inferred to be 0. The variable LtpIndex in the current patch is derived as follows: LtpIndex = mdu_transform_parameters_override_flag[ tileID ][ patchIdx ] ? 2: afve_transform_parameters_enable_flag ? 1: 0 mdu_subdivision_method[tileID][patchIdx] represents the identifier of the method for subdividing a mesh associated with the meshpatch with index patchIdx in the current atlas tile, where tileID is equal to tileID. If mdu_subdivision_method[tileID][patchIdx] is absent, its value is inferred to be equal to afve_subdivision_method. A list of subdivision methods and their relationships to mdu_subdivision_method can be displayed. mdu_subdivision_iteration_count[tileID][patchIdx] represents the number of iterations used for subdivision in the mesh patch with index patchIdx whose tile ID is equal to tileID in the current atlas tile. If mdu_subdivision_iteration_count[tileID][patchIdx] is absent, its value is inferred to be 0 if mdu_subdivision_method[tileID][patchIdx] is 0, otherwise its value is inferred to be equal to afve_subdivision_iteration_count. mdu_displacement_coordinate_system[tileID][patchIdx] represents the coordinate system identifier of the subpart of the mesh associated with the mesh patch whose index patchIdx has the same tile ID as tileID in the current atlas tile. Table 47 describes the list of supported displacement coordinate systems and their relationship to mdu_displacement_coordinate_system[tileID][patchIdx]. Table 47 shows the displacement coordinate system types. mdu_displacement_coordinate_system[ tileID ][ patchIdx ]Name of displacement coordinate system0CANNONICAL1LOCAL mdu_transform_method[tileID][patchIdx] represents the identifier of the transformation applied to the displacement associated with the mesh patch with index patchIdx in the current atlas tile. The tile ID is the same as tileID. If mdu_transform_method[tileID][patchIdx] is absent, its value is inferred to be the same as afve_transform_method. The list of supported transformations and their relationship to mdu_transform_method[tileID][patchIdx] is described here. mdu_attributes_2d_pos_x[tileID][patchIdx][i] represents the x-coordinate of the upper-left corner of the attribute bounding box of the current mesh patch with index patchIdx in the current atlas tile whose tile ID is tileID, for the attribute signaled in the attribute video data unit with index i, expressed as a multiple of PatchPackingBlockSize. If mdu_attributes_2d_pos_x[tileID][patchIdx][i] is absent, its value is inferred to be 0. mdu_attributes_2d_pos_y[tileID][patchIdx][i] represents the y-coordinate of the upper-left corner of the attribute bounding box of the mesh patch for the current mesh patch with index patchIdx. This coordinate is expressed as a multiple of PatchPackingBlockSize for the attribute signaled in the attribute video data unit with index i and whose tile ID is equal to tileID in the current atlas tile. If mdu_attributes_2d_pos_y[tileID][patchIdx][i] is absent, its value is inferred to be 0. The value of mdu_attributes_2d_size_x_minus1[tileID][patchIdx][i] plus 1 represents the width value of the bounding box of the mesh patch attribute of the mesh patch with index patchIdx in the current atlas tile. The tile ID is equal to tileID and is the value for the attribute signaled in the attribute video data unit with index i. If mdu_attributes_2d_size_x_minus1[tileID][patchIdx][i] is absent, its value is inferred to be asve_attribute_frame_width[i] - 1. mdu_attributes_2d_size_y_minus1[tileID][patchIdx][i] plus 1 represents the height value of the attribute bounding box of the meshpatch for the meshpatch of the current atlas tile with index patchIdx. This value is specified for the attribute signaled in the attribute video data unit with tile ID equal to tileID and index i. If mdu_attributes_2d_size_y_minus1[tileID][patchIdx][i] is absent, its value is inferred to be equal to asve_attribute_frame_height[i] - 1. Figure 17 shows a mesh system according to embodiments. Referring to the overall structure of the mesh system of Fig. 17, scenes and / or objects acquired using multiple cameras, sensors, and / or virtual cameras in the real world are output in the form of a V-DMC bitstream after going through mesh data pre-processing and mesh data encoding processes. This mesh bitstream can be converted into a file format suitable for storage and / or transmission through a file encapsulation process. The dynamic mesh player can restore the files acquired and / or received through the above process into a mesh bitstream format through a file decapsulation process, and the restored mesh bitstream can be displayed on a display device, etc. through a mesh data decoding process and a mesh data processing / rendering process. The mesh data encapsulation / decapsulation method according to the embodiments includes a method related to file / segment encapsulation or encapsulator and file / segment decapsulation or encapsulator. A track of a file according to embodiments may contain a common data structure. Common Data Structure: DMC Decoder Configuration Record: This information represents decoder configuration information for mesh-based point cloud content. This record contains a version field. The specification for this version defines version 1 of this record. Incompatible changes to the record are indicated by a change in the version number. Syntax: aligned(8) class DMCDecoderConfigurationRecord { unsigned int(8) configurationVersion = 1; unsigned int(8) num_of_setup_units; for (i=0; I < num_of_setup_units; i++) { unsigned int(8) setup_unit_type; / VPS, SPS, FPS, GPS, APS… SetupUnit setup_unit; } / There may be additional fields. } Semantics: configurationVersion: This is the version field. Incompatible changes to a record are indicated by a change in the version number. num_of_setup_units: Indicates the number of DMC setup units in the decoder configuration record. setup_unit_type represents a set of parameters of DMC-related types. A SetupUnit is an instance of an encapsulation structure that carries a VPS (V-DMC Parameter Set), an SPS (Sequence Parameter Set), an FPS (Frame Parameter Set), a DPS (Displacement Parameter Set), a GPS (Geometry Parameter Set), and / or an APS (Attribute Parameter Set). These parameter sets may be based on parameter sets defined in the V-DMC specification. DMC decoder configuration box The DMC Decoder Configuration box contains a DMCDecoderConfigurationRecord. The version is 0. Syntax: class DMCConfigurationBox extends FullBox('dmcC', version = 0, 0) { DMCDecoderConfigurationRecord(); } Semantics: DMCDecoderConfigurationRecord follows the description above. DMC component information record: A DMC component information record represents DMC component information, including the type of DMC component (e.g., geometry or properties). Syntax: aligned(8) class DMCComponentInfoRecord(){ unsigned int(8) component_type; if(component_type == 4){ / property component unsigned int(8) attr_index; utf8string attr_name; } / Additional fields may exist. } Semantics: component_type: Identifies the type of DMC component as specified in the table below. In this version of this document, the value of this field is 1, 2, or 4. DMC Component Types component_type valueDescription1Displacement component2Geometry component3Reserved4Attribute component5..31Reserved attr_index is the type of the attribute, i.e. it can indicate its kind, and can be mapped to the bmsps_mesh_attribute_type_id value in the basemesh sequence parameter set. attr_name specifies a human-readable name for the type of DMC attribute component. DMC Component Information Box If this box is present in a sample entry for a track, it indicates the type of DMC component that is being carried by that track. If this box is present in a sample entry for a DMC Attribute track, it also provides the attribute name and optional attribute type information. Syntax: aligned(8) class DMCComponentInfoBox extends FullBox('dcin', 0, flags){ DMCComponentInfoRecord(); } Semantics: DMCComponentInfoRecord follows the description above. Multi-track encapsulation: When a mesh data encoding method according to embodiments encodes mesh data to generate a V-DMC bitstream and encapsulates the bitstream into one or more tracks, a track type can be configured according to a data type included in the bitstream. Each of these can process a basemesh track, an atlas track, a geometry track or a displacement track, and an attribute track. The geometry track corresponds to a case where displacement data is recorded with a video codec, and the displacement track corresponds to a case where arithmetic coding is used. In addition, when the displacement data is processed with arithmetic coding, basemesh data, atlas data, and displacement data can be configured as one track and encapsulated. 4.6.1 Basemesh track sample entry Sample Entry Type: 'bmc1', 'bmcg' Container: SampleDescriptionBox Mandatory: A 'bmc1' or 'bmcg' sample entry is mandatory Quantity: One or more The basemesh data of the V-DMC bitstream can be encpasulated into a basemesh track. The sample entry of the basemesh track can contain DMCConfigurationBox information. If the sample entry type is 'bmc1', all parameter sets related to the basemesh data can be included in the setup_unit of the DMCConfigurationBox. If the sample entry type is 'bmcg', all parameter sets related to the basemesh data can be included in the setup_unit of the DMCConfigurationBox, and / or can be included in the sample of the basemesh track. The receiver can recognize the track whose sample entry type is 'bmc1' or 'bmcg' as an entry point and operate. Syntax: aligned(8) class DMCBaseMeshSampleEntry() extends VolumetricVisualSampleEntry (type) { / type is 'bmc1' or 'bmcg' DMCConfigurationBox config; / as defined in section 4.5.2 } Semantics: config is the decoder configuration box mentioned above. If the basemesh track is an entry point, the config information may include a V-DMC or V3C parameter set (VPS) and / or parameter sets such as SPS, FPS, etc. associated with the basemesh bitstream. Basemesh track sample format As in ISO / IEC 23090-29, each sample in a basemesh track corresponds to a single coded basemesh access unit. Syntax aligned(8) class DMCBaseMeshSample { / sample_size size of sample from SampleSizeBox for (int i = 0; i < sample_size; ) { sample_stream_nal_unit ss_nal_unit; / See the sample stream NAL unit description above. i += ss_nal_unit.ssnu_nal_unit_size; / You can create a nal unit of the base mesh sample by increasing the count i by the sample stream nal unit size. } Semantics: A sample stream NAL unit (ss_nal_unit) contains a single NAL unit (bmesh_nal_unit) within the NAL unit sample stream format as defined in ISO / IEC 23090-29. NAL unit size (ssnu_nal_unit_size) Indicates the size in bytes of the sample stream NAL unit. Displacement track sample entry Sample Entry Type: 'dpc1', 'dpcg' Container: SampleDescriptionBox Mandatory: A 'dpc1' or 'dpcg' sample entry is mandatory Quantity: One or more If the displacement data of the DMC bitstream is encoded with arithmetic coding, it can be encapsulated into a displacement track. A sample entry of the displacement track can contain DMCConfigurationBox information. If the sample entry type is 'dpc1', all related parameter sets can be included in the setup unit of the DMCConfigurationBox. If the sample entry type is 'dpcg', all related parameter sets can be included in the setup unit (setup_unit) of the DMCConfigurationBox, and / or can be included in a sample of the displacement track. Syntax: aligned(8) class DMCDisplSampleEntry() extends VolumetricVisualSampleEntry (type) { / type is 'dpc1' or 'dpcg' DMCConfigurationBox config; / as defined in section 4.5.2 } Semantics: config is the decoder configuration box mentioned above. Displacement Track Sample Format: Syntax: aligned(8) class DMCDisplSample { / sample_size size of sample from SampleSizeBox for (int i = 0; i < sample_size; ) { sample_stream_nal_unit ss_nal_unit; / See the sample stream NAL unit description above. i += ss_nal_unit.ssnu_nal_unit_size; / You can create a nal unit of the base mesh sample by increasing the count i by the sample stream nal unit size.} } Semantics: A sample stream NAL unit (ss_nal_unit) contains a single NAL unit (displ_nal_unit) within the NAL unit sample stream format, as defined in ISO / IEC 23090-29. The sample stream NAL unit size (ssnu_nal_unit_size) indicates the size in bytes of the sample stream NAL unit. Atlas Track The V-DMC specification, i.e. ISO / IEC 23090-29, is currently being developed and standardized by MPEG regarding the utilization method of atlas data constituting dynamic mesh bitstream. If the atlas data is used for the same or similar purpose as in the V3C specification, i.e. ISO / IEC 23090-5, the file encapsulation method for the atlas data can follow the syntax and semantics of the atlas sample entry and sample format defined in the Carriage of V3C specification, i.e. ISO / IEC 23090-10. However, the sample entry type can be newly defined in V-DMC, such as 'dmc1' when the parameter set is the same and does not change within the stream, or 'dmcg' when the parameter set changes within the stream. The receiver can recognize and operate a track whose sample entry type is 'dmc1' or 'dmcg' as an entry point. If an atlas track is an entry point, the config information that can be included in the sample entry can include a V-DMC or V3C parameter set (VPS) and / or a parameter set such as SPS, FPS, etc. related to the atlas bitstream. DMC video component track Displacement data that composes a dynamic mesh bitstream can follow the Carriage of V3C specification, i.e. the file encapsulation method for 2D video of ISOBMFF referenced in ISO / IEC 23090-10, for geometry data and attribute data encoded by a video codec. The receiver can determine information about each data type included in the corresponding track through the V3CUnitHeaderBox information included in the SchemeInformationBox. The syntax and semantics of V3CunitHeaderBox can follow the V3C specification, i.e. ISO / IEC 23090-5, as described above. The V3C Video Component Track carries 2D video encoded data of a V3C Video Component. The storage of V3C Video Component Tracks leverages existing features of the ISO Base Media File Format and derived specifications. For example, ISO / IEC 14496-15 defines a mechanism for carrying V3C Video Component encoded in ISO / IEC 14496-10 and ISO / IEC 23008-2. The V3C video component track must be represented as a constrained video in the file, using the common constrained sample item 'resv' with additional requirements. SchemeTypeBox is in RestrictedSchemeInfoBox and scheme_type is set to 'vvvc' SchemeInformationBox is in RestrictedSchemeInfoBox and contains V3CUnitHeaderBox. In the track header, the track_in_movie flag is set to 0 to indicate that this track should not be displayed alone. Through the aforementioned DMCComponentInfoBox signaling, the receiver can determine the data component type contained in the corresponding track and information about each data. Submesh track sample entry Sample Entry Type: 'smc1' Container: SampleDescriptionBox Mandatory: Yes Quantity: One or more If the base mesh data consists of one or more submesh data, the submesh data can be encapsulated into submesh tracks, i.e., tracks whose sample entry type is 'smc1'. The sample entry of each submesh track can include information about the submesh data it contains. Syntax aligned(8) class DMCSubMeshSampleEntry() extends VolumetricVisualSampleEntry (type) { / type is 'smc1' DMCSubMeshConfigurationBox submesh_info } Semantics: Submesh_info is information about the submesh included in the track described later (see DMCSubMeshConfigurationBox). Submesh track sample format Each sample within a submesh track corresponds to a single coded submesh access unit, as defined in ISO / IEC 23090-29. Syntax: aligned(8) class DMCSubMeshSample { / sample_size size of sample from SampleSizeBox for (int i = 0; i < sample_size; ) { sample_stream_nal_unit ss_nal_unit; The sample stream NAL unit mentioned above. i += ss_nal_unit.ssnu_nal_unit_size; / You can create a nal unit of the base mesh sample by increasing the count i by the sample stream nal unit size. } } Semantics: A NAL unit (ss_nal_unit) contains a single NAL unit (bmesh_nal_unit) within the NAL unit sample stream format as defined in ISO / IEC 23090-29. The content for the base mesh sample and the content for the sub mesh sample can be identical. Figure 18 shows the tracks of a file according to embodiments. Track References If the basemesh track is an entry track: Among the tracks composed of each track type, the base mesh track can be set as the entry point where the file parser can start parsing for the first time. References between tracks can be made using the TrackReferenceBox of the TrackBox defined in the ISOBMFF specification (ISO / IEC 14496-12) within each track. The possible reference relationships between the tracks are as follows: Track Reference Method 1 Figure 18(a) is an example in which a basemesh track references an atlas track, and the atlas track references a geometry track and an attribute track. To connect different types of tracks, use the track reference tool from ISO / IEC 14496-12. Add a TrackReferenceTypeBox to the TrackReferenceBox in the TrackBox of the basemesh track. The TrackReferenceTypeBox contains an array of track_IDs that specify the tracks that the DMC track references. To associate a basemesh track with an atlas track, the reference type (reference_type) of the TrackReferenceTypeBox of the basemesh track identifies the associated atlas track, and the atlas track identifies the associated DMC track. The 4CCs for these track reference types are: 'bmct': the referenced atlas track(s). 'atcg': the referenced geometry track(s). 'atca': the referenced attribute track(s). Track Reference Method 2 Figure 18(b) is an example in which a base mesh track references an atlas track, a geometry track, and an attribute track. To associate a basemesh track with each track, the reference_type of the TrackReferenceTypeBox of the basemesh track identifies the associated DMC track. The 4CCs for these track reference types are: 'bmct': referenced atlas track(s) 'bmcg': Referenced geometry track(s) 'bmca': Referenced attribute track(s) Figure 19 shows the tracks of a file according to embodiments. If the Atlas track is an entry track: Among the tracks composed of each track type, an atlas track can be designated as the entry point where the file parser can start parsing for the first time. References between tracks can be made using the TrackReferenceBox of the TrackBox defined in the ISOBMFF specification (ISO / IEC 14496-12) within each track. The possible reference relationships between tracks are as shown in Fig. 19. To connect different types of tracks, use the track reference tool from ISO / IEC 14496-12. Add a TrackReferenceTypeBox to the TrackReferenceBox in the TrackBox of the basemesh track. The TrackReferenceTypeBox contains an array of track_IDs that specify the tracks that the V-DMC track references. To associate a basemesh track with an atlas track, the reference_type of the TrackReferenceTypeBox of the basemesh track identifies the associated atlas track, and the reference_type of the TrackReferenceTypeBox of the basemesh track identifies the associated V-DMC track that the atlas track is associated with. The 4CCs for these track reference types are: 'atcb': Referenced basemesh track(s) 'atcg': Referenced geometry track(s) 'atca': referenced attribute track(s) Figure 20 illustrates an atlas item as an entry point having a single atlas according to embodiments. The encoding method according to the embodiments can generate (encapsulate) non-timed image data in an item file format and transmit it in order to transmit a non-timed image. The decoding method according to the embodiments can decode the image by decapsulating an item file including a non-timed image. A Non-timed Image Item File according to embodiments may include an atlas item, an atlas tile item, a basemesh item, a displacement item, a V-DMC unit header item property, a basemesh configuration item property, etc. Atlas item: Atlas items and atlas item properties may be the same as defined in the ISO / IEC 23090-10 standard. A new item type 4CC code 'v3ci' may be defined to identify V3C items. A V3C atlas item may store V3C unit payload(s) of the atlas sub-bitstream. Atlas tile item: Atlas Tile Item and Atlas Tile Item Properties may be the same as defined in the ISO / IEC 23090-10 standard document. An Atlas Tile Item may be an item for encapsulating Atlas Tile Data when the V3C Atlas Data contains multiple Atlas Tiles. A new Item Type 4CC Code 'v3at' may be defined to identify an Atlas Tile Item. An Atlas Tile Item may store a portion of the V3C Unit Payload(s) of an Atlas Sub-bitstream. An Atlas Tile Item may be associated with a corresponding Atlas Tile Item Property. Basemesh item: A basemesh item may be an item for encapsulating a basemesh sub-bitstream. A new item type 4CC code 'dbmi' may be defined to identify a basemesh item. A basemesh item may be associated with a corresponding basemesh composition item property (described later). Basemesh data may be decoded alone, but displacement data may be applied and decoded together to become meaningful data. Displacement item: A displacement item may be an item for encapsulating a displacement sub-bitstream. A new item type 4CC code 'dbdi' may be defined to identify a displacement item. A displacement item may be associated with a corresponding displacement configuration item property (described later). If displacement data is encoded with arithmetic coding, it may include configuration item property information as described later. Displacement data is dependent on basemesh data and cannot be decoded alone. Submesh item: Basemesh data can be encoded into one or more submeshes. Submeshes are newly generated data, just like basemesh data, when encoded in the V-DMC method, and can be independently decoded by the receiver. This is a concept that did not exist in the existing V3C, and the linkage between atlas tiles and submesh data needs to be newly defined. A submesh item is an item of type 'smc1' that contains one or more BMCL NAL units belonging to the same basemesh. Each submesh entry is associated with a SubMeshConfigurationProperty, as described later in this document. The SubMeshConfigurationProperty represents the submesh ID of the submesh in the submesh entry. Item references with 4CC code 'bmcs' are used to indicate relationships between basemesh items and submesh items. These item references are defined from the basemesh item to the relevant submesh item. V-DMC unit header item property: V-DMC unit header item properties can be identical to the V3C unit header defined in ISO / IEC 23090-10. Basemesh configuration item property: Syntax: aligned(8) class BasemeshConfigurationProperty extends ItemProperty('bmiC',version=0, flags) { DMCDecoderConfigurationRecord config; } Semantics: config: Represents a decoder configuration record (DMCDecoderConfigurationRecord, described above). Displacement configuration item property: Syntax: aligned(8) class DisplacementConfigurationProperty extends ItemProperty('dpiC',version=0, flags) { DMCDecoderConfigurationRecord config; } Semantics: config: Represents a decoder configuration record (DMCDecoderConfigurationRecord, described above). Submesh configuration item property: Box Types: 'smcp' Property type: Descriptive item property Container: ItemPropertyContainerBox Mandatory (per item): Yes, for a submesh item of type 'smc1' Quantity (per item): One SubMeshConfigurationProperty is stored as a descriptive item property and is associated with a submesh item. Submesh item configuration item properties are required properties. The corresponding required flag in the ItemPropertyAssociationBox is set to 1 for the 'smcp' item property. Syntax: aligned(8) class SubMeshConfigurationProperty extends ItemFullProperty('smcp', version = 0, 0) { unsigned int(16) num_submeshes; for(int i=0; i < num_submeshes; i++){ unsigned int(16) submesh_id; } } Semantics: num_submeshes indicates the number of submeshes contained in this track. submesh_id is the identifier of the submesh in this track. The value of submesh_id is equal to the value of the corresponding bmsi_submesh_id syntax element of bmesh_sub_mesh_information() defined in ISO / IEC 23090-29. Non-timed image item references: Atlas item as an entry point with single atlas: When an atlas item is an entry point in the file parsing of an image item and contains a single atlas, a reference relationship between each item and item property can be configured as follows. The V-DMC configuration item property and / or configuration item property can contain configuration property information related to each item. Referring to FIG. 20, an encoding method according to embodiments may encode non-timed point cloud data (mesh data), generate it as an item, and transmit it. A decoding method according to embodiments may receive an item, and decode mesh data based on information included in the item. An item according to embodiments may be composed of a plurality of items. The items may include an item for atlas data (atlas item), an item for base mesh data (base mesh item), an item for displacement or geometry (displacement or geometry item), and an item for attribute data (attribute item). An item transmitting an atlas among the plurality of items may be an entry point of the items (files). An atlas item may include a configuration item property and a unit header item property. An atlas item may indicate a reference relationship between a base mesh item, a displacement or geometry item, and an attribute item based on item reference information. Basemesh items, displacement or geometry items, and attribute items can each contain configuration item properties and unit header item properties. Referring to Figure 20, atlas items can be referenced by basemesh items, displacement / geometry items, and attribute items, respectively, with item reference types 'dmcb', 'dmcd', and 'dmca'. Figures 21a and b illustrate atlas items as entry points having multiple atlases according to embodiments. The encoding method according to the embodiments can generate (encapsulate) non-timed image data in an item file format and transmit it in order to transmit a non-timed image. The decoding method according to the embodiments can decode the image by decapsulating an item file including a non-timed image. The encoding method according to the embodiments can generate an atlas item as an entry point having multiple atlases, as shown in Figs. 21a and b. Due to multiple atlases rather than a single atlas, the decoding method according to the embodiments can decode 3DoF+ partial access based mesh data. When an atlas item is an entry point for file parsing of an image item and contains one or more atlases, i.e., multiple atlases, a reference relationship between each item and item property can be created as in Fig. 21a, b. The V-DMC configuration item property and / or configuration item property can include configuration property information related to each item. Multiple atlases can include an atlas base item and an atlas item. An atlas base item (an item that carries an atlas base) can include a constituent item constituent item property and a unit header item property. An atlas base item can represent a relationship with an atlas item based on item reference information. There can be multiple atlases associated with an atlas base. A first atlas item can include a constituent item property and a unit header item property. The first atlas item can represent a relationship among a basemesh item, a displacement or geometry item, and an attribute item based on item reference information. A second atlas item can include a constituent item property and a unit header item property. The second atlas item can represent a relationship among a basemesh item, a displacement or geometry item, and an attribute item based on item reference information. The first atlas item and the second atlas item can represent multiple atlas data and mesh data (base mesh, displacement or geometry, attributes, etc.) associated with the atlas according to the user's viewport. Here, the first and the second are examples, and multiple atlas data can be included in the items based on inclusion and / or reference relationships such as in FIGS. 21a, b. Referring to FIGS. 21a and b, an atlas base item can reference one or more atlas items with item reference type 'dmas', and each atlas item can reference a basemesh item, a displacement / geometry item, and an attribute item with item reference types 'dmcb', 'dmcd', and 'dmca', respectively. If the mesh data contains multiple atlases, the atlas item with 'v3cb' can be the entry point. The atlas base according to embodiments can contain common parameter sets for multiple atlases. Figures 21a, b show an association where an atlas item (or atlas base item) of item type 'v3cb' references atlas items of item type 'v3ci'. Item type 'v3ci' can be referred to as 'v3c1'. Figures 22a, b, and c illustrate atlas items as entry points having multiple atlases with multiple atlas tiles according to embodiments. The encoding method according to the embodiments can generate and transmit a file structure (item) including an atlas base item, atlas items, basemesh items associated with the atlas items, displacement / geometry items, and attribute items, as shown in FIGS. 22a, b, and c. The decoding method according to the embodiments can receive an item as shown in FIGS. 22a, b, and c, and partially decode the associated basemesh, attribute, displacement, or geometry based on the atlas base item and the atlas item. If there are more atlas tiles associated with the atlas, the item according to the embodiments can further include a tile item, as shown in FIGS. 22a, b, and c. The tile item can be a container that transmits atlas tile data associated with atlas data. The atlas item can indicate a relationship to the tile item based on item reference information. An atlas item referenced by an atlas base tile can reference an atlas tile item. Atlas tile items can reference basemesh items, displacement / geometry items, and attribute items associated with the tile. FIGS. 22a, b, and c illustrate, in addition to FIGS. 21a and b, an association relationship in which each atlas item of item type 'v3ci' references atlas tile items of item type 'v3at' when mesh data according to embodiments includes multiple atlas and multi-nipple atlas tiles. 'v3at' may be referred to as 'v3t1'. Figure 23 shows a basemesh item as an entry point having a single atlas according to embodiments. The encoding method according to the embodiments can generate a file (item) structure with a basemesh item as an entry point. When a basemesh item is an entry point of file parsing of an image item and includes a single atlas, a reference relationship between each item and item property can be generated as in Fig. 23. A basemesh item can reference an atlas item, a displacement item, and an attribute item. Figure 24 shows a basemesh item as an entry point having a single atlas according to embodiments. The encoding method according to the embodiments can generate a file (item) structure with a basemesh item as an entry point. When a basemesh item is an entry point of file parsing of an image item and includes a single atlas, a reference relationship between each item and item property can be generated as in Fig. 24. A basemesh item can reference an atlas item, and an atlas item can reference a displacement item and an attribute item. Fig. 25 shows a mesh data receiving device according to embodiments. As shown in Fig. 25, the receiving device (decoder) can decode mesh data by parsing submesh tracks and submesh information. File Receiver: The receiver can receive dynamic mesh content consisting of submesh data in file form, and can parse one or more tracks contained within the file. Additionally, if the file receiver transmits a non-timed item, i.e. an image item format, the receiver can parse one or more items contained within the file. In addition, the file receiver can, if the atlas data is composed of one or more atlas tiles, each atlas tile can include one or more submesh data. Since the submesh data, like the basemesh data, is newly created data in the V-DMC encoding method that did not exist in the existing V3C, the receiver can identify new linkage information with the existing atlas tiles. File Parser: The file parser of the receiver (decoding device) can parse the sample entries of one or more tracks in the Dynamic Mesh content file to find BaseMesh tracks with sample entry types of 'bmc1' or 'bmcg'. The receiver can obtain decoder configuration information by parsing the DMCConfigurationBox included in the sample entry of the basemesh track. In addition, if the content supports partial access, the sample entry can include a DMC spatial region information box (DMCSpatialRegionInfoBox). A receiver (decoding device) supporting partial access can obtain information about each spatial region and one or more submeshes included in the spatial region and / or one or more atlas tiles by parsing the DMC spatial region information box (DMCSpatialRegionInfoBox). Additionally, the receiver can find an atlas track whose sample entry type is v3c1 or v3cg. The receiver can obtain information about decoder configuration included in the sample entry of the atlas track and information about V-DMC component tracks referenced. In case of content supporting partial access, the sample entry of the atlas track can include a DMC spatial region information box (DMCSpatialRegionInfoBox). A receiver supporting partial access can parse this DMC spatial region information box (DMCSpatialRegionInfoBox) to obtain information about each spatial region and atlas tile included in the spatial region, and information about one or more submesh associated with each atlas tile. The receiver's file parser can parse the sample entries of one or more tracks in the dynamic mesh content file to identify base mesh tracks, i.e. entry tracks, whose sample entry type is 'bmc1' or 'bmcg'. In addition, the track reference type box (TrackReferenceTypeBox) of the base mesh track sample entry can be parsed to identify the referenced, i.e. associated tracks. Additionally, the file parser can parse the decoder configuration (DMCDecoderConfiguration) information included in the sample entry of each track to find out information such as codec information through the parameter sets included in each track. Afterwards, the file parser can parse the type-specific data included in the samples of each track. When a non-timed item, i.e. a file in image item format, is received, the receiver's file parser may parse one or more items and parse an item whose item type is 'v3ci' or 'dbmi', depending on how the entry point is defined. In addition, the receiver may know during the parsing process that the file contains multiple atlas data if the item type is 'v3cb'. If an item contains multiple atlas items, the item type may be 'v3cb'. An atlas item (or atlas base item) of item type 'v3cb' has an association that references atlas items of item type 'v3ci'. The parameter set and data related information can be obtained by parsing the configuration item property and / or the V3C unit header item property contained in each item. In addition, the receiver can parse each item referenced by the entry point in the item reference box, i.e., the basemesh item, the displacement item, and the attribute item, to parse the configuration item property and / or the V3C unit header item property contained in each item. Additionally, since the file parser can parse only items that contain submesh data corresponding to each atlas tile, since the atlas data consists of one or more atlas tiles and each atlas tile is connected to one or more submesh data using item references, the receiver can parse only items that contain submesh data corresponding to each atlas tile. Bistream packager: The bitstream packager of the receiver can collect submesh-specific and / or atlas tile-specific data corresponding to each spatial region through the aforementioned file parsing to generate a decodable dynamic mesh basemesh bitstream. The receiver's bitstream packager can collect parsed type-specific data by frame unit and / or specific section unit through file parser operation and organize it into the form of a decodable dynamic mesh bitstream. Non-timed items, that is, files in the image item format, can be parsed to collect information for configuring a dynamic mesh content bitstream and configured in the form of a decodable bitstream. In addition, since the bitstream packager can reconstruct a bitstream composed of submesh data corresponding to each atlas tile, since each atlas tile is connected to one or more submesh data using an item reference when the atlas data is composed of one or more atlas tiles. V-DMC Decoder: Capable of decoding dynamic mesh bitstreams constructed via bitstream packager operations. Figures 26a, b illustrate a single atlas having multiple atlas tiles and multiple submeshes, with respect to the atlas as an entry point according to embodiments. The encoding method according to the embodiments can encode non-timed mesh data as shown in Figs. 26a and 26b, and generate an item structure including encoded mesh data and parameter information. The decoding method according to the embodiments can receive an item, and decode mesh data based on parameter information included in the item. An atlas tile item can reference one or more submesh items using the item reference type 'dmcs'. This is an item reference that did not exist in the existing V3C, and is a signaling method for linking newly generated submesh data in the V-DMC bitstream with existing atlas tile data. An atlas item can reference one or more atlas tile items with item reference type 'dmat', and each atlas tile item can reference one or more submesh items with item reference type 'dmcs'. In addition, each atlas tile item can reference displacement / geometry items and attribute items with item reference types 'dmcd' and 'dmca', respectively. Figures 26a and b are examples of image formats composed of two atlas tiles and three submeshes. An atlas item can reference a first atlas tile item (atlas tile 1) and a second atlas tile item (atlas tile 2). If a first submesh and a second submesh are associated with atlas tile 1, and a third submesh is associated with atlas tile 2, the first atlas tile item can reference the first submesh item and the second submesh item, and the second atlas tile item can reference the third submesh item. Figure 27 illustrates the encoding of displacement and texture composed of multiple atlas tiles and multiple submeshes according to embodiments. Fig. 27 is an example showing the connectivity between atlas tiles and submeshes when a V-DMC image of one frame consists of two atlas tiles and three submeshes. The receiver can have partial access to the image at the atlas tile level. The encoding method according to the embodiments can encode displacement and texture video data consisting of two atlas tiles and three submeshes based on a video codec. The displacement (geometry) video can be encoded with a second submesh associated with the first tile, a zeroth submesh associated with the zeroth tile, and a first submesh. The sub-texture video can be encoded with a 0th submesh and a 2nd submesh associated with the 0th tile, and a 1st submesh associated with the 1st tile. Figure 28 shows a mesh data encoding method according to embodiments. A mesh data encoding method according to embodiments may include a step (S2800) of encoding mesh data. The mesh data encoding method according to the embodiments may further include a step (S2810) of encapsulating a file including a bitstream including mesh data. The mesh data encoding method according to the embodiments may further include a step of transmitting a file (S2820). The encoding step (S2800) can encode an image, which is non-timed data of mesh data, as described above. The encapsulating step (S2810) can encapsulate image data encoded with the aforementioned item structures. Each item can include mesh data and parameter information about the mesh data. Each item can represent a reference relationship based on reference information. An atlas item can be defined as an entry point of an item file structure. A decoder can receive an item file, parse an atlas item which is an entry point, and decode required mesh data based on the reference relationship. The transmitting step (S2820) can transmit the item structure to the decoder. Figure 29 shows a method for decrypting mesh data according to embodiments. A method for decrypting mesh data according to embodiments may include a step (S2900) of receiving a file including a bitstream including mesh data. The method for decrypting mesh data according to embodiments may further include a step of decapsulating a file (S2910). The method for decrypting mesh data according to embodiments may further include a step (S2920) of decoding mesh data. The decryption method of Fig. 29 can follow the reverse process of the encoding method of Fig. 28. In the step of receiving a file (S2900), the mesh data includes a non-timed image, the file includes an item for transmitting the non-timed image, and the item may include at least one of an atlas item, an atlas tile item, a basemesh item, a displacement item, a unit header item property, a basemesh configuration item property, or a displacement configuration item property. If the mesh data is an image that is non-timed data, an item structure is required to transmit the image, and a reference relationship between items is used. Referring to FIG. 20 together, when an atlas item is an entry point of an item, basemesh items, displacement or geometry items, and attribute items contained in the item can be referenced based on the atlas item and item reference information. Referring to FIGS. 21a and 21b together, when an atlas item is an entry point of an item and mesh data includes multiple atlases, the item includes an atlas base item, and the atlas base item references a first atlas item and a second atlas item based on item reference information, and each of the first atlas item and the second atlas item can reference at least one of a base mesh item, a displacement or geometry item, and an attribute item based on the item reference information. Referring to FIGS. 22a, b, and c together, when an atlas item is an entry point of an item and mesh data includes multiple tiles and multiple atlases, the item includes an atlas base item, and the atlas base item references a first atlas item and a second atlas item based on item reference information, the first atlas item references a first atlas tile item based on the item reference information, and the second atlas item references a second atlas tile item based on the item reference information. Referring to FIGS. 26a and b together, an atlas item is an entry point of an item, the atlas item references an atlas tile item based on item reference information, the atlas tile item references at least one of a submesh item, a displacement or geometry item, or an attribute item based on the item reference information, the submesh item includes a submesh configuration item property, and the submesh configuration item property can include information on the number of submeshes and an ID of the submesh. Referring to FIG. 27 together, when the atlas data of the mesh data includes atlas tiles, at least one atlas tile includes at least one submesh, and the mesh data can be decoded based on a bitstream including the atlas tile and the submesh. The decryption method can be performed by a decryption device (decoder) such as FIG. 1. The decoder includes: a memory; and at least one processor connected to the memory; and the at least one processor can be configured to: receive a file including a bitstream including mesh data; decapsulate the file; and decode the mesh data. The decryption device can receive an item, which is a file format including an image that is non-timed data, and parse the item to partially decode the image data by using relationships such as atlas tiles and submeshes based on the item structure described above. The encoding / decoding method and device according to the embodiments provide the following technical effects. Embodiments of the present invention provide a transmitter or receiver for providing a mesh content service, which can configure a V-DMC bit stream and store a file as described above. It can effectively multiplex a V-DMC bit stream. It can transmit metadata for data processing and rendering in the V-DMC bit stream within a file. A video-based dynamic mesh compression processing device, transmitter, receiver, mesh player, encoder or decoder provides the effects described above. The file / item data representation method according to the embodiments provides the effect of efficiently accessing a V-DMC bitstream. A transmitter or receiver according to the embodiments can efficiently store and transmit a file of a V-DMC bitstream through a storage technique and signaling of a V-DMC bitstream as multiple tracks in a file. Embodiments can construct a non-timed V-DMC bitstream related to a transmitter or receiver for providing a mesh content service and store the file. In addition, when the non-timed V-DMC bitstream is encoded into one or more atlases, i.e., multiple atlases, and / or is composed of multiple atlas tiles, it provides the effect of effectively encapsulating it into an image file format for transmission and storage. Methods and devices according to embodiments provide effects that enable a decoder to access image portions based on atlas tiles through signaling associations with submesh items, submesh item properties, and existing atlas tile items. In addition, for V-DMC bitstreams consisting of a single frame without time information, there is no need to encapsulate with moov or track boxes, and efficient encapsulation and decapsulation are possible using the image file format. The embodiments have been described in terms of methods and / or devices, and the descriptions of methods and devices may be applied complementarily. For the convenience of explanation, each drawing has been described separately, but it is also possible to design a new embodiment by combining the embodiments described in each drawing. In addition, designing a computer-readable recording medium in which a program for executing the previously described embodiments is recorded according to the needs of a person skilled in the art also falls within the scope of the embodiments. The devices and methods according to the embodiments are not limited to the configurations and methods of the embodiments described above, but the embodiments may be configured by selectively combining all or part of the embodiments so that various modifications can be made. Although the preferred embodiments of the embodiments have been illustrated and described, the embodiments are not limited to the specific embodiments described above, and various modifications can be made by a person skilled in the art without departing from the gist of the embodiments claimed in the claims, and such modifications should not be individually understood from the technical idea or prospect of the embodiments. The various components of the device of the embodiments may be performed by hardware, software, firmware, or a combination thereof. The various components of the embodiments may be implemented as one chip, for example, one hardware circuit. According to embodiments, the components according to the embodiments may be implemented as separate chips, respectively. According to embodiments, at least one of the components of the device of the embodiments may be configured with one or more processors capable of executing one or more programs, and the one or more programs may perform, or include instructions for performing, one or more of the operations / methods according to the embodiments. The executable instructions for performing the methods / operations of the device of the embodiments may be stored in non-transitory CRMs or other computer program products configured to be executed by one or more processors, or may be stored in temporary CRMs or other computer program products configured to be executed by one or more processors. In addition, the memory according to the embodiments may be used as a concept including not only volatile memory (e.g., RAM, etc.), but also non-volatile memory, flash memory, PROM, etc. Additionally, it may include implementations in the form of carrier waves, such as transmission over the Internet. Additionally, the processor-readable recording medium may be distributed across network-connected computer systems, so that the processor-readable code may be stored and executed in a distributed manner. In this document, “ / ” and “,” are interpreted as “and / or”. For example, “A / B” is interpreted as “A and / or B”, and “A, B” is interpreted as “A and / or B”. Additionally, “A / B / C” means “at least one of A, B, and / or C”. Also, “A, B, C” means “at least one of A, B, and / or C”. Additionally, “or” in this document is interpreted as “and / or”. For example, “A or B” can mean 1) “A” only, 2) “B” only, or 3) “A and B”. In other words, “or” in this document can mean “additionally or alternatively”. Terms such as first, second, etc. may be used to describe various components of the embodiments. However, the various components according to the embodiments should not be limited in their interpretation by the above terms. These terms are merely used to distinguish one component from another. For example, a first user input signal may be referred to as a second user input signal. Similarly, a second user input signal may be referred to as a first user input signal. The use of these terms should be interpreted as not departing from the scope of the various embodiments. Although the first user input signal and the second user input signal are both user input signals, they do not mean the same user input signals unless the context clearly indicates otherwise. The terminology used to describe the embodiments is used for the purpose of describing particular embodiments and is not intended to be limiting of the embodiments. As used in the description of the embodiments and in the claims, the singular is intended to include the plural unless the context clearly dictates otherwise. The expressions “and” and “or” are used to mean including all possible combinations of the terms. The expression “includes” describes the presence of features, numbers, steps, elements, and / or components, and does not mean that additional features, numbers, steps, elements, and / or components are not included. Conditional expressions such as “if,” “when,” etc., used to describe the embodiments are not intended to be limited to only optional cases. When a particular condition is satisfied, a related action is performed in response to a particular condition, or a related definition is intended to be interpreted. In addition, the operations according to the embodiments described in this document may be performed by a transceiver device including a memory and / or a processor according to the embodiments. The memory may store programs for processing / controlling the operations according to the embodiments, and the processor may control various operations described in this document. The processor may be referred to as a controller, etc. The operations according to the embodiments may be performed by firmware, software, and / or a combination thereof, and the firmware, software, and / or a combination thereof may be stored in the processor or in the memory. Meanwhile, the operations according to the embodiments described above may be performed by a transmitting device and / or a receiving device according to the embodiments. The transmitting / receiving device may include a transmitting / receiving unit for transmitting and receiving media data, a memory for storing instructions (program codes, algorithms, flowcharts, and / or data) for a process according to the embodiments, and a processor for controlling operations of the transmitting / receiving device. The processor may be referred to as a controller, etc., and may correspond to, for example, hardware, software, and / or a combination thereof. The operations according to the embodiments described above may be performed by the processor. In addition, the processor may be implemented as an encoder / decoder, etc. for the operations of the embodiments described above. As described above, the relevant contents have been described in the best form for carrying out the embodiments. As described above, the embodiments can be applied in whole or in part to a point cloud data transmission and reception device and system. Those skilled in the art may make various changes or modifications to the embodiments within the scope of the embodiments. Embodiments may include modifications / changes, which do not depart from the scope of the claims and their equivalents.

Claims

1. A step of receiving a file including a bitstream containing mesh data; a step of decapsulating the above file; and A step of decoding the above mesh data; comprising: How to decrypt.

2. In paragraph 1, The above mesh data includes non-timed images, The above file contains an item for conveying the above non-timed image, The above item contains at least one of an atlas item, an atlas tile item, a basemesh item, a displacement item, a unit header item property, a basemesh composition item property, or a displacement composition item property, How to decrypt.

3. In paragraph 2, If the above atlas item is the entry point of the above item, Basemesh items, displacement or geometry items, and attribute items included in the above items are referenced based on the atlas items and item reference information. How to decrypt.

4. In paragraph 2, If the above atlas item is an entry point of the above item and the mesh data contains multiple atlases, The above items include the Atlas Base Items, The above atlas base item refers to the first atlas item and the second atlas item based on the item reference information, Each of the first atlas item and the second atlas item references at least one of a base mesh item, a displacement or geometry item, and an attribute item based on item reference information. How to decrypt.

5. In paragraph 2, If the above atlas item is an entry point of the above item and the mesh data contains multiple tiles and multiple atlases, The above items include the Atlas Base Items, The above atlas base item refers to the first atlas item and the second atlas item based on the item reference information, The above first atlas item refers to the first atlas tile item based on the item reference information, The above second atlas item refers to the second atlas tile item based on the item reference information. How to decrypt.

6. In paragraph 2, The above atlas item is the entry point of the above item, The above atlas item references an atlas tile item based on the item reference information, The above atlas tile item references at least one of a submesh item, a displacement or geometry item, or an attribute item based on item reference information, The above submesh item contains the submesh configuration item properties, The above submesh configuration item property includes information on the number of submesh and the ID of the submesh. How to decrypt.

7. In paragraph 1, If the atlas data of the above mesh data contains atlas tiles, At least one atlas tile contains at least one submesh, The above mesh data is decoded based on a bitstream containing atlas tiles and submeshes. How to decrypt.

8. Memory; and At least one processor coupled to said memory; wherein said at least one processor comprises: Receive a file containing a bitstream containing mesh data; Decapsulating the above file; and configured to decode the above mesh data; Decryption device.

9. In paragraph 8, The above mesh data includes non-timed images, The above file contains an item for conveying the above non-timed image, The above item contains at least one of an atlas item, an atlas tile item, a basemesh item, a displacement item, a unit header item property, a basemesh composition item property, or a displacement composition item property, Decryption device.

10. In paragraph 9, If the above atlas item is the entry point of the above item, Basemesh items, displacement or geometry items, and attribute items included in the above items are referenced based on the atlas items and item reference information. Decryption device.

11. In paragraph 9, If the above atlas item is an entry point of the above item and the mesh data contains multiple atlases, The above items include the Atlas Base Items, The above atlas base item refers to the first atlas item and the second atlas item based on the item reference information, Each of the first atlas item and the second atlas item references at least one of a base mesh item, a displacement or geometry item, and an attribute item based on item reference information. Decryption device.

12. In paragraph 9, If the above atlas item is an entry point of the above item and the mesh data contains multiple tiles and multiple atlases, The above items include the Atlas Base Items, The above atlas base item refers to the first atlas item and the second atlas item based on the item reference information, The above first atlas item refers to the first atlas tile item based on the item reference information, The above second atlas item refers to the second atlas tile item based on the item reference information. Decryption device.

13. In paragraph 9, The above atlas item is the entry point of the above item, The above atlas item references an atlas tile item based on the item reference information, The above atlas tile item references at least one of a submesh item, a displacement or geometry item, or an attribute item based on item reference information, The above submesh item contains the submesh configuration item properties, The above submesh configuration item property includes information on the number of submesh and the ID of the submesh. Decryption device.

14. Step of encoding mesh data; A step of encapsulating a file including a bitstream including the above mesh data; and comprising the step of transmitting the above file; Encoding method.

15. Memory; and At least one processor coupled to said memory; wherein said at least one processor comprises: Encode mesh data; and Encapsulating a file containing a bitstream including the above mesh data; and configured to transmit the above file; Encoding device.

Citation Information

Patent Citations

  • Method and electronic device to perform operation according to expansion direction in response to expansion

    KR1020230015025A

  • Apparatus, a method and a computer program for omnidirectional video

    US20230059516A1

  • Device for transmitting point cloud data, method for transmitting point cloud data, device for receiving point cloud data, and method for receiving point cloud data

    WO2021210837A1

  • Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method

    WO2021261865A1

  • Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method

    WO2023167430A1