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

The V-Mesh compression method addresses the inefficiencies in point cloud data transmission by simplifying encoding and decoding processes, enhancing the quality and speed of services in VR, AR, and autonomous driving.

WO2025155060A1PCT designated stage expired Publication Date: 2025-07-24LG ELECTRONICS INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2025/000785
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-16
Filing Date
2025-01-14
Publication Date
2025-07-24

AI Technical Summary

Technical Problem

The challenge lies in efficiently transmitting and receiving point cloud data due to its large volume and the complexity of encoding and decoding processes, which leads to latency issues.

Method used

A method and device for encoding and decoding point cloud data using Video-based Dynamic Mesh (V-Mesh) compression, incorporating preprocessing, intra-frame and inter-frame encoding, and decoding processes to simplify and transmit mesh data effectively.

Benefits of technology

This approach reduces latency and improves the efficiency of point cloud data transmission and reception, enabling high-quality services in applications like VR, AR, and autonomous driving.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025000785_24072025_PF_FP_ABST
    Figure KR2025000785_24072025_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 purpose and other advantages, a point cloud data transmission method according to embodiments may include a step of encoding point cloud data; and a step of transmitting point cloud data. A method for receiving point cloud data according to embodiments may include a step of receiving point cloud data; a step of decoding point cloud data; and a step of rendering point cloud data. 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. Fig. 20 illustrates a mesh data receiving device according to embodiments. Figure 21 shows an encoding method according to embodiments. Figure 22 shows a decryption method 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 vertices 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 a mesh video can be used interchangeably with a mesh image / frame / picture. A mesh video encoder can perform a Video-based Dynamic Mesh (V-Mesh) Compression procedure. A mesh video encoder can perform a series of procedures such as prediction, transformation, quantization, and entropy coding for compression and coding efficiency. 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 bitstream of the received mesh 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 method / device according to the embodiments includes a transmitting device (100) of Fig. 1, an acquiring unit (101), an encoder (102), an encapsulator (103), a transmitter (104), Figs. 2, 3, 5, 7 pre-processing, an encoder, Fig. 13 an encoder, a multiplexing unit, a transmitting unit, Fig. 17 an acquiring unit, pre-processing, encoding, encapsulating, Fig. 21 an encoding method, etc. The decryption method / device according to the embodiments includes a receiving device (110) of Fig. 1, a receiving unit (111), a decapsulator (112), a decoder (113), a renderer (114), Fig. 11, Fig. 12 decoding, Fig. 14 receiving unit, a demultiplexer, a renderer, Fig. 17 decapsulating, decoding, rendering, Fig. 20 file receiver, file parser, bitstream packager, decoder, Fig. 22 decryption method, etc. The method and device according to the embodiments can generate and transmit / receive information regarding scalable coding of a dynamic mesh coding bitstream (Carriage Scalable Coding Information of Dynamic Mesh Coding Bitstream). Embodiments include a signaling scheme for generating and transmitting a dynamic mesh coding bitstream encoded with scalable coding in a file format. Embodiments include a transmitter (encoder) or receiver (decoder) for providing mesh content services that handle file storage techniques to enable efficient access to V-DMC bitstreams stored in files. Although the embodiments are described in terms of a video-based dynamic mesh coding scheme, they can be applied not only to the video-based dynamic mesh coding scheme but also to bitstreams using other mesh codings constructed in the same manner or in a similar bitstream format. Embodiments include signaling for file format and transmission of scalable coding information of a dynamic mesh bitstream. 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. In addition, for the performance and processing of a receiver (decoder) for attribute and / or displacement data encoded with scalable coding, the embodiments include syntax and semantics for a scalable coding information structure and / or a scalable coding information box for file level transmission of scalable coding information. 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. 21, 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. 22 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 may be implemented independently and specific to V-DMC or V3C codecs. 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, we describe the semantics of the syntax described above. 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 indicates the values of the variables Log2MaxMeshFrmOrderCntLsb and MaxMeshFrmOrderCntLsb used in the decoding process for 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 in 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)} Raw byte sequence payload, trailing bits, 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; 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, we describe the semantics of the Arthmetic Coded Displacement sub-bitstream. 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_plus1The 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 a 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 is in the range 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 Ceil(Log2(dsps_num_ref_displ_frame_lists_in_dsps)) bits. 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 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. 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 of the list of displ_ref_list_struct(rlsIdx) syntax structures included in the active DSPS, and is the displ_ref_list_struct(rlsIdx) syntax structure used to derive the reference displacement frame list of the current displacement frame. The syntax element dh_ref_displ_frame_list_idx is expressed in bits as Ceil(Log2(dsps_num_ref_displ_frame_lists_in_dsps)). 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 0 to dsps_num_ref_displ_frame_lists_in_dsps - 1, inclusive.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 equal to tileID. If mdu_transform_method[tileID][patchIdx] is absent, its value is inferred to be equal to afve_transform_method. The list of supported transformations and their relationship to mdu_transform_method[tileID][patchIdx] is described below. 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 equal to tileID, for the attribute signaled in the attribute video data unit with index i. It is expressed as a multiple of PatchPackingBlockSize. If mdu_attributes_2d_pos_x[tileID][patchIdx][i] is not present, 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 of the basemesh sequence parameter set. attr_name specifies a human-readable name for the type of the 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, the basemesh data, the atlas data, and the 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 within 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 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) The encoding method according to the embodiments can generate scalable coding information and transmit it by including it in a file. The decoding method according to the embodiments can receive a file and decode mesh data based on the scalable coding information in the file. When the properties (texture) and / or displacement data of a dynamic mesh bitstream are encoded in a scalable video coding format, the scalable coding information can be signaled as follows so that the receiver (decoder) can parse and obtain it at the file level. Scalable Coding Information: Syntax: aligned(8) class DMCScalableCodingInformation { unsigned int(1) attr_scalable_info_present_flag; unsigned int(1) disp_scalable_info_present_flag; unsigned int(6) reserved = 0; if (attr_scalable_info_present_flag) { unsigned int(8) num_max_attr_layers; for (i=0; i < num_max_attr_layers; i++) { unsigned int(8) attr_scalable_layer_id; unsigned int(8) attr_track_id; } } if (disp_scalable_info_present_flag) { unsigned int(8) num_max_disp_layers; for (i=0; i < num_max_disp_layers; i++) { unsigned int(8) disp_scalable_layer_id; unsigned int(8) disp_track_id; } } } Semantics: Attribute Scalable Information Present Flag (attr_scalable_info_present_flag): Indicates whether attribute scalable coding information exists. If this value is 0, it indicates that there is no attribute scalable coding information, and if this value is 1, it indicates that there is attribute scalable coding information. Displacement scalable information presence flag (disp_scalable_info_present_flag): Indicates whether displacement scalable coding information is present. If this value is 0, it indicates that there is no displacement scalable coding information, and if this value is 1, it indicates that there is displacement scalable coding information. Maximum number of attribute layers (num_max_attr_layers): Indicates the total number of attribute scalable layers of the track. This value can be used when attr_scalable_info_present_flag is 1. Attribute Scalable Layer ID (attr_scalable_layer_id): Indicates the identifier of each attribute scalable layer of the track. The value of attr_scalable_layer_id increases by 1. For example, if this value is 0, it indicates the base layer of scalable coding, and a value of +1 indicates an enhanced layer. Attribute Track ID (attr_track_id): Indicates the attribute track ID or track number of the specified scalable layer. Maximum number of displacement layers (num_max_disp_layers): Indicates the total number of attribute scalable layers of the track. This value can be used when disp_scalable_info_present_flag is 1. Displacement Scalable Layer ID (disp_scalable_layer_id): Indicates the identifier of each displaceable scalable layer of the track. The value of disp_scalable_layer_id increases by 1. For example, a value of 0 indicates the base layer of scalable coding, while a value of +1 indicates an enhanced layer. Displacement Track ID (disp_track_id): Indicates the displacement track ID or track number of the specified displacement scalable layer. num_max_disp_layers represents the total number of attribute scalable layers of the track. This value can be used when disp_scalable_info_present_flag is 1. Scalable Coding Information Box signaling: The scalable coding information box can be signaled, for example, by being included in a sample entry of a basemesh track, if the sample entry type of the track in the file is 'bmc1' or 'bmcg', or by being included in a sample entry of an atlas track, if the sample entry type is 'v3c1', 'v3cg', or 'v3cb'. Syntax: class DMCScalableCodingInformationBox extends FullBox('dmsc', version = 0, 0) { DMCScalableCodingInformation(); } Semantics: The definition of scalable coding information (DMCScalableCodingInformation) is as described above. Track reference signaling scheme related to scalable coding layer: In addition to the method of signaling the attribute track ID (attr_track_id) and / or the displaced track ID (disp_track_id) described above, a method of utilizing track references between video component tracks of a track containing each scalable coding layer can be used. aligned(8) class DMCScalableCodingInformation { unsigned int(1) attr_scalable_info_present_flag; unsigned int(1) disp_scalable_info_present_flag; unsigned int(6) reserved = 0; if (attr_scalable_info_present_flag) { unsigned int(8) num_max_attr_layers; unsigned int(8) attr_base_layer_track_id; for (i=0; i < num_max_attr_layers; i++) { unsigned int(8) attr_scalable_layer_id; } } if (disp_scalable_info_present_flag) { unsigned int(8) num_max_disp_layers; unsigned int(8) disp_base_layer_track_id; for (i=0; i < num_max_disp_layers; i++) { unsigned int(8) disp_scalable_layer_id; } } } Instead of using the attribute track ID (attr_track_id) and the displacement track ID (disp_track_id) as above, the attribute base layer track ID (attr_base_layer_track_id) and the displacement base layer track ID (disp_base_layer_track_id) corresponding to the base layer of the attribute and displacement video data can be specified. Based on this information, the receiver (decoder) can know the tracks corresponding to the base layer, and the tracks corresponding to other scalable layers, for example, the enhanced layer, can be signaled using the track_IDs field of the TrackReferenceTypeBox of the existing isobmff file format standard. Fig. 20 illustrates a mesh data receiving device according to embodiments. As shown in Fig. 20, the receiving device (decoder) can decode mesh data by parsing information about the file, the track within the file, and the decoder configuration within the track. File Receiver: The receiver (decoder) receives Dynamic Mesh content in the form of a file and can parse one or more tracks contained within the file. File Parser: The file parser of the receiver (decoder) can parse the sample entries of one or more tracks in the DynamicMesh content file to identify basemesh tracks whose sample entry types are 'bmc1' or 'bmcg'. For example, it can identify entry tracks. It can also parse the TrackReferenceTypeBox of the basemesh track sample entry to identify the associated tracks it references. Additionally, the file parser can parse the decoder configuration (DMCDecoderConfiguration) information included in the sample entry of each track to obtain 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. In addition, if scalable coding information (DMCScalableCodingInformation) is included in a sample entry of a basemesh track or an atlas track, it can be parsed to know attribute scalable coding information and / or displacement scalable coding information included in the corresponding track. As defined in the above-described scalable coding (DMCScalableCodingInformation) information, the receiver (decoder) can know whether the attribute and / or displacement are scalable coded through the attribute scalable information presence flag (attr_scalable_info_present_flag) value and / or the displacement scalable information presence flag (disp_scalable_info_present_flag) value. In addition, the receiver can know the number of scalable layers included in each video component through the maximum number of attribute layers (num_max_attr_layers) and / or the maximum number of displacement layers (num_max_disp_layers) values. In addition, the receiver can know the identification value corresponding to each scalable layer through the attribute scalable layer ID (attr_scalable_layer_id) and / or the displacement scalable layer ID (disp_scalable_layer_id) values, and the track ID (track id) or track number corresponding to each scalable layer can be known through the attribute track ID (attr_track_id) and / or the displacement track ID (disp_track_id) values. Through this, the receiver can select and parse tracks including the corresponding scalable layers depending on whether available resources related to scalable coding are supported. Bitstream Packager: The bitstream packager of the receiver can collect data by type parsed through the file parser process in frame units and / or specific section units and configure it in the form of a dynamic mesh bitstream that can be decodable. Additionally, the receiver may obtain attribute and / or displacement scalable coding information during the file parser process, and may parse samples of tracks including corresponding scalable layers to construct a dynamic mesh video bitstream corresponding to the corresponding scalable layer depending on whether the available resources of the receiver support it. Decoder (V-DMC Decoder): Can decode the dynamic mesh bitstream configured through the above bitstream packager process. Figure 21 shows an encoding method according to embodiments. The encoding method according to the embodiments may include a step of encoding mesh data (S2100); a step of encapsulating a file including a bitstream including mesh data (S2110); and / or a step of transmitting a file (S2120). The step of encoding mesh data (S2100), referring to FIG. 13, etc., may include a step of encoding atlas data of mesh data, a step of encoding base mesh data of mesh data, a step of encoding displacement data of mesh data, and a step of encoding attribute data of mesh data. The bitstream generated by the step of encoding mesh data (S2100) includes a header and a payload, and the payload may include at least one of decoder configuration information, a parameter set, atlas data, base mesh data, displacement data, or attribute data regarding the mesh data. The file generated by the encapsulating step (S2110) includes at least one of a base mesh track, a displacement track, an atlas track, or a video component track relating to mesh data, and at least one of the base mesh track or the atlas track may include track reference information within the file as an entry track. With respect to the information in the file generated by the encapsulating step (S2110), based on a bitstream including at least one of attribute data or displacement data encoded with scalable coding, at least one of a sample entry of a base mesh track of the file or a sample entry of an atlas track of the file includes scalable coding information, and the scalable coding information includes: at least one of information indicating whether the attribute data is scalable coded, or information indicating whether the displacement data is scalable coded, and based on the information indicating whether the attribute data is scalable coded, the scalable coding information may further include at least one of information indicating a maximum number of attribute layers, information indicating an attribute scalable layer ID, or information indicating an attribute track ID. Furthermore, based on the information indicating whether the displacement data is scalable coded, the scalable coding information may further include at least one of information indicating a maximum number of displacement layers, information indicating a displacement scalable layer ID, or information indicating a displacement track ID. With respect to information in a file generated by the encapsulating step (S2110), based on a bitstream including at least one of attribute data or displacement data encoded with scalable coding, at least one of a sample entry of a base mesh track of the file or a sample entry of an atlas track of the file includes scalable coding information, wherein the scalable coding information includes: at least one of information indicating whether the attribute data is scalable coded or information indicating whether the displacement data is scalable coded, and based on the information indicating whether the attribute data is scalable coded, the scalable coding information further includes at least one of information indicating a maximum number of attribute layers, information indicating an attribute base layer track ID, and information indicating an attribute scalable layer ID, and based on the information indicating whether the displacement data is scalable coded, the scalable coding information may further include at least one of information indicating a maximum number of displacement layers, information indicating a displacement base layer track ID, and information indicating a displacement scalable layer ID. Scalable coding information can be used to indicate which tracks within a file contain scalable layers. Embodiments may include a computer-readable storage medium storing a bitstream generated by the method according to FIG. 21. Embodiments may further include a method, comprising: obtaining a bitstream for mesh data, the bitstream being generated based on the steps of encoding atlas data of the mesh data, encoding base mesh data of the mesh data, encoding displacement data of the mesh data, encoding attribute data of the mesh data; and transmitting data including the bitstream. Figure 22 shows a decryption method according to embodiments. A decryption method according to embodiments may include a step of receiving a file including a bitstream including mesh data (S2200); a step of decapsulating the file (S2210); and / or a step of decoding the mesh data (S2220). The step of decoding mesh data (S2220) may include, with reference to FIG. 14, a step of decoding atlas data of mesh data, a step of decoding base mesh data of mesh data, a step of decoding displacement data of mesh data, and a step of decoding attribute data of mesh data. Referring together to FIG. 15, with respect to bitstream configuration, the bitstream includes a header and a payload, and the payload may include at least one of decoder configuration information regarding the mesh data, a parameter set, atlas data, base mesh data, displacement data, or attribute data. Referring to FIGS. 17 to 19 together, with respect to file and track references, a file includes at least one of a base mesh track, a displacement track, an atlas track, or a video component track relating to the mesh data, and at least one of the base mesh track or the atlas track may include track reference information within the file as an entry track. In relation to a method for signaling scalable coding information in a file, based on a bitstream including at least one of attribute data or displacement data encoded with scalable coding, at least one of a sample entry of a base mesh track of the file or a sample entry of an atlas track of the file includes scalable coding information, wherein the scalable coding information includes: at least one of information indicating whether the attribute data is scalable coded or information indicating whether the displacement data is scalable coded, and based on the information indicating whether the attribute data is scalable coded, the scalable coding information may further include at least one of information indicating a maximum number of attribute layers, information indicating an attribute scalable layer ID, or information indicating an attribute track ID. Furthermore, based on the information indicating whether the displacement data is scalable coded, the scalable coding information may further include at least one of information indicating a maximum number of displacement layers, information indicating a displacement scalable layer ID, or information indicating a displacement track ID. In relation to track reference signaling for a scalable coding layer, based on a bitstream including at least one of attribute data or displacement data encoded with scalable coding, at least one of a sample entry of a base mesh track of a file or a sample entry of an atlas track of the file includes scalable coding information, wherein the scalable coding information includes at least one of: information indicating whether the attribute data is scalable coded, or information indicating whether the displacement data is scalable coded, and based on the information indicating whether the attribute data is scalable coded, the scalable coding information further includes at least one of information indicating a maximum number of attribute layers, information indicating an attribute base layer track ID, and information indicating an attribute scalable layer ID, and based on the information indicating whether the displacement data is scalable coded, the scalable coding information may further include at least one of information indicating a maximum number of displacement layers, information indicating a displacement base layer track ID, and information indicating a displacement scalable layer ID. The decryption method can be performed by a decryption device, referring to FIG. 1, etc. together. The decryption device 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 method and device according to the embodiments provide the following technical effects: A transmitter (encoder) or receiver (decoder) for providing a mesh content service can configure a V-DMC bit stream and store a file as described above. A V-DMC bit stream can be effectively multiplexed. Metadata for data processing and rendering in the V-DMC bit stream can be transmitted in a file. A video-based dynamic mesh compression processing device, transmitter, receiver, mesh player, encoder or decoder according to embodiments provides the effects described above. In other words, the data representation method described above provides the effect of efficiently accessing a V-DMC bit stream. A transmitter or receiver according to embodiments of the present invention 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. Through the signaling of a file format related to scalable coding information according to embodiments, a receiver can efficiently decode and render a V-DMC bitstream, in which attribute and / or displacement data are encoded with scalable coding, depending on the receiver's available resources and support for scalable video. 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 bitstream includes a header and a payload, The payload comprises at least one of decoder configuration information, parameter set, atlas data, base mesh data, displacement data, or attribute data regarding the mesh data. How to decrypt.

3. In paragraph 1, The file includes at least one of a base mesh track, a displacement track, an atlas track, or a video component track relating to the mesh data, At least one of the base mesh track or the atlas track contains track reference information within the file as an entry track, How to decrypt.

4. In paragraph 1, Based on a bitstream including at least one of attribute data or displacement data encoded with scalable coding, at least one of a sample entry of a base mesh track of the file or a sample entry of an atlas track of the file includes scalable coding information, The above scalable coding information is: Contains at least one of information indicating whether the attribute data is scalable coded or information indicating whether the displacement data is scalable coded; Based on information indicating whether the above attribute data is scalable coded, the scalable coding information further includes at least one of information indicating a maximum number of attribute layers, information indicating an attribute scalable layer ID, or information indicating an attribute track ID. Based on the information indicating whether the displacement data is scalable coded, the scalable coding information further includes at least one of information indicating a maximum number of displacement layers, information indicating a displacement scalable layer ID, or information indicating a displacement track ID. How to decrypt.

5. In paragraph 1, Based on a bitstream including at least one of attribute data or displacement data encoded with scalable coding, at least one of a sample entry of a base mesh track of the file or a sample entry of an atlas track of the file includes scalable coding information, The above scalable coding information is: Contains at least one of information indicating whether the attribute data is scalable coded or information indicating whether the displacement data is scalable coded; Based on information indicating whether the above attribute data is scalable coded, the scalable coding information further includes at least one of information indicating a maximum number of attribute layers, information indicating an attribute base layer track ID, and information indicating an attribute scalable layer ID. Based on information indicating whether the displacement data is scalable coded, the scalable coding information further includes at least one of information indicating a maximum number of displacement layers, information indicating a displacement base layer track ID, and information indicating a displacement scalable layer ID. How to decrypt.

6. 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.

7. Step of encoding mesh data; and 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.

8. In paragraph 7, The steps for encoding the above mesh data are: A step of encoding atlas data of the above mesh data, A step of encoding base mesh data of the above mesh data, A step of encoding displacement data of the above mesh data, A step of encoding attribute data of the above mesh data, comprising: Encoding method.

9. In paragraph 8, The above bitstream includes a header and a payload, The payload comprises at least one of decoder configuration information, parameter set, atlas data, base mesh data, displacement data, or attribute data regarding the mesh data. Encoding method.

10. In paragraph 9, The file includes at least one of a base mesh track, a displacement track, an atlas track, or a video component track relating to the mesh data, At least one of the base mesh track or the atlas track contains track reference information within the file as an entry track, Encoding method.

11. In paragraph 8, Based on a bitstream including at least one of attribute data or displacement data encoded with scalable coding, at least one of a sample entry of a base mesh track of the file or a sample entry of an atlas track of the file includes scalable coding information, The above scalable coding information is: Contains at least one of information indicating whether the attribute data is scalable coded or information indicating whether the displacement data is scalable coded; Based on information indicating whether the above attribute data is scalable coded, the scalable coding information further includes at least one of information indicating a maximum number of attribute layers, information indicating an attribute scalable layer ID, or information indicating an attribute track ID. Based on the information indicating whether the displacement data is scalable coded, the scalable coding information further includes at least one of information indicating a maximum number of displacement layers, information indicating a displacement scalable layer ID, or information indicating a displacement track ID. Encoding method.

12. In paragraph 8, Based on a bitstream including at least one of attribute data or displacement data encoded with scalable coding, at least one of a sample entry of a base mesh track of the file or a sample entry of an atlas track of the file includes scalable coding information, The above scalable coding information is: Contains at least one of information indicating whether the attribute data is scalable coded or information indicating whether the displacement data is scalable coded; Based on information indicating whether the above attribute data is scalable coded, the scalable coding information further includes at least one of information indicating a maximum number of attribute layers, information indicating an attribute base layer track ID, and information indicating an attribute scalable layer ID. Based on information indicating whether the displacement data is scalable coded, the scalable coding information further includes at least one of information indicating a maximum number of displacement layers, information indicating a displacement base layer track ID, and information indicating a displacement scalable layer ID. Encoding method.

13. In paragraph 11, The above scalable coding information is used to indicate a track containing a scalable layer within the above file. Encoding method.

14. A computer-readable storage medium storing a bitstream generated by the method according to Article 7.

15. Step of obtaining bitstream for mesh data; The bitstream is generated based on the steps of encoding atlas data of the mesh data, encoding base mesh data of the mesh data, encoding displacement data of the mesh data, encoding attribute data of the mesh data; and A method comprising the step of transmitting data including the bitstream.

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

  • Transmission device of point cloud data and method performed by transmission device, and reception device of point cloud data and method performed by reception device

    WO2023058995A1

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

    WO2023167430A1