WO2026005485A1 - 메쉬 데이터 부호화 장치, 메쉬 데이터 부호화 방법, 메쉬 데이터 복호화 장치 및 메쉬 데이터 복호화 방법 - Google Patents

메쉬 데이터 부호화 장치, 메쉬 데이터 부호화 방법, 메쉬 데이터 복호화 장치 및 메쉬 데이터 복호화 방법

Info

Publication number
WO2026005485A1
WO2026005485A1 PCT/KR2025/008911 KR2025008911W WO2026005485A1 WO 2026005485 A1 WO2026005485 A1 WO 2026005485A1 KR 2025008911 W KR2025008911 W KR 2025008911W WO 2026005485 A1 WO2026005485 A1 WO 2026005485A1
Authority
WO
WIPO (PCT)
Prior art keywords
mesh
attribute
information
encoding
bitstream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/KR2025/008911
Other languages
English (en)
French (fr)
Inventor
박한제
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Publication of WO2026005485A1 publication Critical patent/WO2026005485A1/ko
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/04Texture mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • a point cloud is a collection of points in 3D space.
  • the sheer number of points in 3D space makes it difficult to generate point cloud data.
  • the technical problem according to the embodiments is to provide a point cloud data transmission device, transmission method, point cloud data reception device, and reception method for resolving latency and encoding/decoding complexity.
  • the point cloud data transmission method, transmission device, point cloud data reception method, and reception device can provide a high-quality point cloud service.
  • the point cloud data transmission method, transmission device, point cloud data reception method, and reception device can achieve various video codec methods.
  • Figure 3 shows a V-MESH compression method according to embodiments.
  • FIG. 4 illustrates pre-processing of V-MESH compression according to embodiments.
  • Figure 5 illustrates a mid-edge subdivision method according to embodiments.
  • Figure 6 shows a displacement generation process according to embodiments.
  • Figure 8 shows a lifting conversion process for displacement according to embodiments.
  • Fig. 10 shows an attribute transfer process of a V-MESH compression method according to embodiments.
  • Figure 11 illustrates a V-DMC decoding process according to embodiments.
  • Figure 12 illustrates a V-DMC encoding process according to embodiments.
  • Figure 14 is a drawing for explaining dynamic mesh data having multiple attribute information according to embodiments.
  • Figure 15 is a drawing for explaining dynamic mesh data having multiple attribute information according to embodiments.
  • FIG. 16 is a diagram for explaining a method for compressing attribute information of mesh data having a plurality of attribute information according to embodiments.
  • FIG. 17 is a diagram for explaining a method of selecting a representative texture map by calculating a block-by-block correlation between texture maps according to embodiments.
  • Figure 18 shows an encoding method according to embodiments.
  • Figure 19 shows a decryption method according to embodiments.
  • Figure 1 illustrates a V-DMC based encoder and decoder according to embodiments.
  • the basic structure of the currently in-progress V-DMC (v-mesh) is shown in Figure 1.
  • the encoder and decoder according to Figure 1 perform the encoding and decoding process of media representing dynamic meshes using V3C technology.
  • the preprocessor converts the input dynamic mesh representation into several V3C components: a base mesh, a set of displacements, a 2D representation of attributes, and an atlas.
  • the original mesh is simplified into a base mesh.
  • the base mesh can be encoded using any mesh codec.
  • Displacement vectors can be encoded into V3C geometric video components using any video codec, either indicated by a profile or using SEI messages. For example, depending on the profile, the displacement vectors (displacement data) can be encoded using arithmetic coding.
  • the attribute data can include additional attributes.
  • texture or material information can be included as additional attributes and can be encoded using any video codec.
  • the atlas data contains information on how to perform inverse reconstruction and is provided to the V3C decoding and/or rendering system.
  • atlas data may include how to perform subdivision of a base mesh, how to apply displacement vectors to subdivided mesh vertices, how to apply attributes to the reconstructed mesh, etc.
  • the encoder may comprise a memory and at least one processor connected to the memory.
  • the at least one processor may be configured to perform operations such as a preprocessor, an atlas encoder, a basemesh encoder, a displacement vector encoder, a video encoder, and a multiplexer.
  • the atlas encoding unit encodes the atlas of mesh data to generate an atlas bitstream.
  • the basemesh encoding unit encodes the basemesh of mesh data to generate a basemesh bitstream.
  • the displacement vector encoding unit encodes the displacement vector of mesh data to generate a displacement vector bitstream.
  • the video encoding unit encodes the properties (attributes) of mesh data to generate an attribute bitstream.
  • the encoder generates parameter information (which may be referred to as signaling information, metadata, etc.) related to each encoding.
  • the encoder may generate a bitstream including parameter information, atlas, basemesh, displacement vector, and/or attribute.
  • the decoder may be configured with a memory and at least one processor connected to the memory.
  • the at least one processor may be configured to perform operations such as a demultiplexing unit, an atlas decoding unit, a basemesh decoding unit, a displacement vector decoding unit, and a video decoding unit.
  • the atlas decoding unit decodes the atlas within the bitstream.
  • the basemesh decoding unit decodes the basemesh within the bitstream.
  • the displacement vector decoding unit decodes the displacement vector within the bitstream.
  • the video decoding unit decodes the attributes within the bitstream.
  • the decoder can perform each decoding operation based on parameter information within the bitstream.
  • the decoder can reconstruct dynamic mesh data based on the atlas, displacement vector, attributes, and base mesh.
  • Figure 2 illustrates a system for providing dynamic mesh content according to embodiments.
  • the system of FIG. 2 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.
  • the point cloud data transmission device 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. 2 can perform video-based dynamic mesh compression and decompression.
  • 3D content increasingly represents objects with greater precision and realism, enabling users to enjoy immersive experiences.
  • 3D meshes are widely used for efficient data utilization and realistic object representation. Embodiments include a series of processing steps in a system that utilizes such mesh content.
  • V-PCC Video-based point cloud compression
  • Point cloud data is data that contains color information at the vertex coordinates (X, Y, Z).
  • Mesh data refers to data in which connectivity information between vertices is added to this vertex information.
  • When creating content it can be created in the form of mesh data from the beginning.
  • connectivity information to point cloud data it can be converted into mesh data and used.
  • the MPEG standards body defines two types of dynamic mesh data: 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 currently under development, and work on Category 2 data standards is also planned for the future.
  • the overall process for providing mesh content services may include acquisition, encoding, transmission, decoding, rendering, and/or feedback, as shown in Figure 1.
  • 3D data acquired through multiple cameras or specialized cameras can be processed into mesh data types through a series of processes and then converted into video.
  • the generated mesh video is then transmitted through a series of processes, and the receiving end can then reprocess the received data into mesh video and render it. This allows mesh video to be presented to users, who can then interact with the mesh content according to their intended intent.
  • a mesh compression system may include a transmitting device and a receiving device.
  • the transmitting device can encode mesh video to output a bitstream, which can be delivered to the receiving device via digital storage media or a network in the form of a file or streaming segment.
  • the digital storage media may include various storage media, such as USB, SD, CD, DVD, Blu-ray, HDD, or SSD.
  • 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 referred to as a mesh video/video/picture/frame encoding device, and the decoder may be referred to as 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 its vertices in 3D space and connection information that describes how those vertices are connected. It can also contain vertex properties such as vertex color and normal. 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 is typically described as a set of parametric coordinates, 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, and displacement.
  • the mesh video acquisition unit may include processing 3D object data acquired through a camera, etc. into a mesh data type with 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 with properties and connection information that change over time can 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.
  • a mesh video can include a mesh image/frame/picture, and the mesh video can be used interchangeably with the mesh image/frame/picture.
  • a mesh video encoder can perform a Video-based Dynamic Mesh (V-Mesh) Compression procedure.
  • V-Mesh Video-based Dynamic Mesh
  • a mesh video encoder can perform a series of procedures such as prediction, transformation, quantization, and entropy coding for compression and coding efficiency.
  • the encoded data (encoded video/image information) can be output in the form of a bitstream.
  • the encapsulation processing unit can encapsulate encoded mesh video data and/or mesh video-related metadata in the form of a file, etc.
  • the mesh video-related metadata may be received from the 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 the file.
  • 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 the 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 or processing for transmission through broadband.
  • the transmission processing unit can receive not only mesh video data but also mesh video-related metadata from the metadata processing unit and process the same for transmission.
  • the transmission unit can transmit encoded video/image information or data output in the form of a bitstream to the receiving unit of a receiving device via 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 via a predetermined file format and can include an element for transmission via a broadcasting/communication network.
  • the receiving unit can extract the bitstream and transmit it to a decoding device.
  • the receiver can receive mesh video data transmitted by a mesh video transmission device. Depending on the transmission channel, the receiver can receive mesh video data via a broadcast network, via broadband, or via digital storage media.
  • the receiving processing unit can perform processing on the received mesh video data according to a transmission protocol.
  • the receiving processing unit can be included in the receiving unit, or can be configured as a separate component/module.
  • 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 a 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 can decapsulate mesh video data in 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 passed to a renderer for use in the Mesh video rendering process.
  • a mesh video decoder can receive a bitstream and perform operations corresponding to those of a mesh video encoder to decode video/images.
  • the decoded mesh video can be displayed via a display unit. Users can view all or part of the rendered result via 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 on the receiver. Interactivity may be provided in mesh video consumption through the feedback process. Depending on the embodiment, head orientation information, viewport information indicating the area that the user is currently viewing, etc. may be transmitted during the feedback process. Depending on the 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 refer to information about the user's head position, angle, and movement. 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 the user is currently 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 are gazing at, and for how long. 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.
  • the aforementioned feedback information may not only be transmitted to the transmitter but may also be consumed by the receiver. That is, the aforementioned feedback information may be utilized to perform decoding, rendering, and other processes on the receiver. For example, head orientation information and/or viewport information may be utilized to preferentially decode and render only the mesh video for the area currently being viewed by the user.
  • 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-view video, and AR/VR.
  • the dynamic mesh video compression method described below is based on MPEG's V-Mesh method.
  • picture/frame can generally mean a unit representing one video of a specific time period.
  • a pixel or pel can refer to the smallest unit that constitutes a picture (or image). Additionally, the term "sample" can be used as a counterpart to a pixel.
  • a sample can generally represent a pixel or a pixel value, and can represent only the pixel/pixel value of the luma component, only the pixel/pixel value of the chroma component, or only the pixel/pixel value of the 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.
  • the term “unit” may be used interchangeably with terms such as "block” or "area.”
  • an MxN block may include a set (or array) of samples (or sample array) or transform coefficients consisting of M columns and N rows.
  • V-Mesh Video-based dynamic mesh compression (V-Mesh) compression methods can provide a method for compressing dynamic mesh video data based on 2D video codecs such as HEVC and VVC.
  • the V-Mesh compression process receives the following data as input and performs compression.
  • 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, and connection information between the vertices that make up the surface.
  • 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 in the same meaning): Contains information about the properties (color, normal, displacement, etc.) of the mesh, and stores data in the form of a mapping of 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 contained 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 saved in an image file format (PNG, BMP, etc.).
  • Material Library File Contains information about the material properties used in a mesh, particularly information that links the input mesh to its corresponding attribute map. It is saved in the Wavefront Material Template Library (MTL) file format.
  • MTL Wavefront Material Template Library
  • 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 standards.
  • 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 3D coordinates.
  • Atlas information This is the metadata required to reconstruct a mesh using base mesh, displacement, and attribute map information. It can be created and utilized as sub-mesh units (such as patches) that make up the mesh.
  • FIGS. 3 to 7 a method for encoding mesh position information (vertex) is described, and referring to FIGS. 7-10, etc., a method for encoding attribute information (attribute map) by restoring mesh position information is described.
  • Figure 3 shows a V-MESH compression method according to embodiments.
  • Fig. 3 illustrates the encoding process of Fig. 2, and the encoding process may include a pre-processing process and an encoding process.
  • the encoder of Fig. 2 may include a pre-processor (200) and an encoder (201) as in Fig. 3.
  • the transmitting device of Fig. 2 may be broadly referred to as an encoder, and the dynamic mesh video encoder of Fig. 2 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. 3.
  • the pre-processor of Fig. 3 may be located in front of the encoder of Fig. 3.
  • the pre-processor and the encoder of Fig. 3 may be referred to as a single encoder.
  • the preprocessor can receive a static dynamic mesh and/or an attribute map.
  • the preprocessor can generate a base mesh and/or displacement through preprocessing.
  • the preprocessor can receive feedback information from the encoder and generate the base mesh and/or displacement based on the feedback information.
  • the encoder can receive a base mesh, displacement mesh, static dynamic mesh, and/or attribute map.
  • the encoder can encode mesh-related data to generate a compressed bitstream.
  • FIG. 4 illustrates pre-processing of V-MESH compression according to embodiments.
  • Figure 4 shows the configuration and operation of the pre-processor of Figure 3.
  • Fig. 3 shows a process of performing preprocessing on an input mesh.
  • the preprocessing process (200) can be broadly divided into four steps: 1) Group of Frame (GoF) 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 displacement and/or base mesh to the encoder (201).
  • the preprocessor (200) can transmit GoF information related to GoF generation to the encoder (201).
  • GoF Generation This is the process of generating a reference structure for mesh data. If the number of vertices, number of texture coordinates, vertex connection information, and 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.
  • 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.
  • the simplified mesh (decimated mesh) can be obtained as output.
  • 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 of a decimated mesh into a texture domain. Parameterization can be performed using the UVAtlas tool. This process generates mapping information, which indicates where each vertex of the decimated mesh can be mapped to on a 2D image. This mapping information is expressed and stored as texture coordinates, and through this process, the final base mesh is created.
  • OrthoAtlas technology generates texture coordinates using orthographic projection. OrthoAtlas technology sequentially generates patches and packs them. First, adjacent triangles are divided to generate Connected Components (CCs), and then the optimal CCs are merged using a cost function to generate patches. The cost function can measure the cost based on the degree of distortion that occurs when orthogonally projecting patches in each direction. By packing the patch that minimizes the cost function into the texture domain, the texture coordinates can be ultimately calculated. In the case of orthoAtlas technology, texture coordinates and texture connection information can be derived from the base mesh decoder without compressing them during the base mesh encoding process.
  • Fitting subdivision surface This is the process of performing subdivision on a simplified mesh.
  • the subdivision method can be a user-defined method, such as the mid-edge method.
  • the fitting process ensures that the input mesh and the subdivision mesh are similar to each other.
  • User-defined subdivision methods such as the mid-edge method ( Figure 5), the loop method, or the LS3 method, can be applied.
  • Figure 5 illustrates a mid-edge subdivision method according to embodiments.
  • Figure 5 illustrates the mid-edge method of the fitting subdivision surface described in Figure 4.
  • an original mesh containing four vertices is subdivided to create a sub-mesh.
  • a sub-mesh can be created by creating a new vertex midway between the edges between the vertices.
  • a fitted subdivided mesh (hereinafter referred to as a fitted subdivided mesh)
  • displacement is calculated using this result and a pre-compressed and decrypted base mesh (hereinafter referred to as a 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 displacement represents a position difference in three-dimensional space, it is also expressed as a value in the (x, y, z) space of a Cartesian coordinate system.
  • the (x, y, z) coordinate values can be converted to (normal, tangential, bi-tangential) coordinate values of the local coordinate system.
  • Figure 6 shows a displacement generation process according to embodiments.
  • FIG. 6 illustrates in detail the displacement calculation method of the fitting subdivision surface (300) as described in FIG. 5.
  • An encoder and/or pre-processor 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 mesh 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 can encode the point cloud as follows.
  • the point cloud data (which may be referred to as a point cloud for short) according to the embodiments can refer to data including vertex coordinates and color information.
  • the term "point cloud” includes mesh data, and in this document, point cloud and mesh data can be used interchangeably.
  • the V-Mesh compression (reconstruction) method may include intra frame encoding (Fig. 6) and inter frame encoding (Fig. 7).
  • intra-frame encoding or inter-frame encoding is performed.
  • the data to be compressed may be a base mesh, displacement, attribute map, etc.
  • the data to be compressed may be a displacement, attribute map, and a motion field between a reference base mesh and the current base mesh.
  • Figure 7 shows a V-DMC encoding process according to embodiments.
  • Fig. 7 details the encoding of Figs. 1 and 2.
  • 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 motion encoder can encode a motion vector for the base mesh based on inter-frame motion estimation and motion compensation for inter-prediction.
  • the atlas encoder can encode an atlas for the vertices of the base mesh.
  • the encoded base mesh can be reconstructed and inversely quantized through a dequantizer.
  • the displacement calculation unit can receive the reconstructed mesh and generate displacement, which is a position difference, based on the fitted subdivided mesh.
  • a lifting transform unit can receive displacement and generate lifting coefficients.
  • a quantizer can quantize the lifting coefficients.
  • an image packing unit can pack an image based on the quantized lifting coefficients.
  • a video encoder can encode the packed image.
  • inter-prediction can be applied to the quantized lifting coefficients, and the predicted lifting coefficients can be encoded according to an arithmetic encoding method.
  • a mesh restoration unit restores a warped mesh using the restored displacement and the restored base mesh.
  • Displacement data is restored, and the warped mesh is restored based on the restored displacement data and the restored base mesh, and provided to an attribute transfer unit.
  • the attribute transfer unit receives an input mesh and/or an input attribute map, and generates an attribute map based on the restored warped mesh.
  • a push-pull padding unit can pad data in the attribute map based on a push-pull method.
  • the color space transform unit can transform the space of the color component, which is an attribute.
  • the video encoder can encode the attribute.
  • the multiplexer can multiplex the compressed base mesh, compressed displacement, and compressed attribute to generate a bitstream.
  • the base mesh compression method can be divided into INTRA type, INTER type, and SKIP type depending on the base mesh type, and encoding can be performed in different ways for each. If the base mesh is INTRA type, it can be encoded using the static mesh encoding method. If the base mesh is INTER type, the motion field between the reference base mesh and the current base mesh can be encoded. If the current base mesh is SKIP type, the reference base mesh can be derived as the current base mesh.
  • the decoded base mesh can be subdivided into a subdivided mesh through a subdivision process.
  • Subdivision algorithms such as mid-point subdivision and loop subdivision can be used.
  • Static Basemesh Encoding When performing Intra encoding on the current basemesh, the base mesh generated in the preprocessing process can be encoded using static mesh compression technology after going through a quantization process. Static mesh compression applies MPEG EdgeBreaker (MEB) technology, and the vertex position information, mapping information (texture coordinates), vertex connection information, and normals of the base mesh are compressed.
  • MEB MPEG EdgeBreaker
  • the edgebreaker algorithm sequentially traverses triangles according to a rule, mapping symbols based on the characteristics of each triangle, and then encoding those symbols.
  • a technique for compressing vertex position information can encode the residual value, which is the difference between the current vertex and the predicted value, after obtaining the predicted value based on a prediction technique such as multiple parallelogram prediction.
  • a technique for compressing mapping information can encode the residual value, which is the difference between the current mapping information (texture coordinates) and the predicted value, after obtaining the predicted value based on a prediction technique such as stretch.
  • Techniques for compressing normals can encode residual values, which are the differences between the current normal and the predicted values, after obtaining predicted values based on prediction techniques such as delta coding, multiple parallelogram prediction, and cross product-based prediction.
  • Inter Basemesh Encoding can be performed when a one-to-one correspondence exists between the reference mesh and the current input mesh, and only the vertex position information differs.
  • the difference between the vertices of the reference base mesh and the current base mesh, i.e. the motion field can be calculated and this information can be encoded.
  • the reference base mesh is the result of quantizing the already decoded base mesh data and is determined by the reference frame index.
  • the motion field can be encoded as is, or the predicted motion field can be calculated by averaging the motion fields of the reconstructed vertices among the vertices connected to the current vertex, and the residual motion field, which is the difference between the predicted motion field value and the motion field value of the current vertex, can be encoded. This value can be encoded using entropy coding.
  • Displacement Encoding After encoding the base mesh, it is restored and dequantized to generate a Recon. The base mesh is then subdivided to calculate the displacement between the results and the fitted subdivided mesh.
  • a data transform process such as the Wavelet transform can be applied to the displacement information, and Figure 7 shows the process of transforming the displacement information using the Lifting transform in V-Mesh.
  • the transform coefficients generated through the transform process are quantized, and the quantized transform coefficients can be compressed using a video codec or through arithmetic encoding, depending on the compression method.
  • transform coefficients When compressed through a video codec, it is packed into a 2D image as shown in Figure 8.
  • the transform coefficients are organized into one block for each N ⁇ 2(N*N) unit, and each block can be packed in z-scan order.
  • the horizontal number of blocks is fixed to N, 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 Morton code.
  • the packed images generate a displacement video for each GoF unit, and this displacement video can be encoded using an existing video compression codec.
  • inter-frame prediction can be performed on the quantized displacement vector transform coefficients.
  • the residual value which is the difference between the current displacement vector transform coefficients and the reference displacement vector transform coefficients, can be encoded, and information about the reference target can be encoded.
  • the quantized displacement vector transform coefficients can be arithmetic-coded, and if it is an INTER type, the residual value can be arithmetic-coded.
  • Arithmetic coding can be performed based on Context Adaptive Binary Arithmetic Coding (CABAC).
  • the CABAC process can first binarize the displacement vector data and map it to a bin string.
  • the bin string can be a binarized output of 0 and 1, and each 0 or 1 can be a bin.
  • Each bin can be arithmetic-coded using context information selected from a context model, and a process of updating the probability can be performed.
  • Figure 8 shows a lifting conversion process for displacement according to embodiments.
  • Figure 9 illustrates a process of packing transformation coefficients according to embodiments into a 2D image.
  • Figures 8-9 show the process of converting the displacement of the encoding process of Figure 7 and the process of packing the conversion coefficients, respectively.
  • the encoding method according to the embodiments includes displacement 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.
  • a data transform process such as wavelet transform can be applied to the displacement information.
  • Figure 8 shows the process of transforming displacement information using 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 Figure 9.
  • 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 Morton code within a block.
  • the packed images generate a displacement video for each GoF unit, and this displacement video can be encoded using an existing video compression codec.
  • the base mesh (original) may include vertices and edges for LoD0.
  • the first subdivision mesh generated by dividing the base mesh includes vertices generated by further dividing the edges of the base mesh.
  • the first subdivision mesh includes vertices for LoD0 and vertices for LoD1.
  • LoD1 includes the subdivided vertices and the vertices (LoD0) of the base mesh.
  • the first subdivision mesh may be generated by dividing the second subdivision mesh.
  • the second subdivision mesh includes LoD2.
  • LoD2 includes the base mesh vertices (LoD0), LoD1 including the vertices additionally generated from LoD0, and the vertices additionally divided from LoD1.
  • LoD is a level indicating the degree of detail (Level of Detail), and as the level index 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.
  • 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 using 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 using the residual.
  • the vertices have coefficients generated through the lifting transformation.
  • the coefficients of the vertices related to the lifting transformation can be encoded by packing them into an image.
  • Fig. 10 shows an attribute transfer process of a V-MESH compression method according to embodiments.
  • Figure 10 shows the detailed operation of attribute transfer of the encoding of Figure 7.
  • Information about the input mesh is compressed through base mesh encoding, motion field encoding, and displacement encoding.
  • 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 vertex position information, 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 a texture triangle of the reconstructed deformed mesh, and if it is 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.
  • the center of mass coordinates ( ⁇ ', ⁇ ', ⁇ ') of M'(x', y', z') are calculated.
  • the texture coordinates (u', v') are calculated, and the color information corresponding to these coordinates is found in the input attribute map.
  • the color information found in this way is immediately assigned to the pixel location (u, v) of 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.
  • the decoding process of Fig. 1 can perform the reverse process of the corresponding encoding process of Fig. 1.
  • the specific decoding process is as follows.
  • Figure 11 illustrates a VV-DMC decoding process according to embodiments.
  • Fig. 11 shows the configuration and operation of a decoder of a receiving device such as Fig. 1.
  • the input bitstream can be separated into a basemesh sub-stream, a displacement sub-stream, an attribute map sub-stream, and an atlas sub-stream.
  • Atlas sub-streams can be decoded through Exp-Golomb coding, etc., and as a result, information necessary for decoding, such as tile information and patch information, can be obtained.
  • the Basemesh sub-stream is of INTRA type according to the Basemesh type, it can be decoded through a static mesh decoder based on MEB (MPEG EdgeBreaker) technology, and as a result, the connection information, vertex geometry information, and vertex mapping information (texture coordinates) of the Basemesh can be restored.
  • MEB MPEG EdgeBreaker
  • the decoder can derive mapping information (texture coordinates) and attribute information (texture) connection information using vertex coordinates.
  • the process of deriving mapping information (texture coordinates) and connection information can generate mapping information (texture coordinates) and attribute information (texture) connection information by calculating the homography transform of each face and then projecting the vertices based on this.
  • the Basemesh type is INTER
  • motion information can be decoded through entropy decoding and inverse prediction.
  • the reconstructed motion information is combined with the reference Basemesh, which has already been reconstructed and stored in the buffer, to create a Reconstructed Quantized Basemesh for the current frame.
  • the reconstructed Basemesh can then undergo an inverse quantization process.
  • the displacement sub-stream is compressed through a video codec according to the compression method used in encoding, it is decoded into displacement video through the decoder of the video compression codec, and then the image unpacking process is performed.
  • the displacement vector bitstream can decode the binarized syntax elements through arithmetic decoding, and a contextual probability model (CPM) can be adaptively determined according to each bin of the syntax elements, and the occurrence probability of the bin can be predicted through the CPM to perform arithmetic decoding.
  • the binarized syntax elements can be decoded through inverse binarization.
  • the quantized displacement vector transform coefficients can be derived from the decoded syntax elements. If the displacement information type is INTER, an inverse inter prediction process is performed using reference information for the quantized displacement coefficients (if inter prediction is performed).
  • the quantized displacement coefficient is restored as displacement information for each vertex through inverse quantization, inverse transform, and coordinate system transformation processes.
  • the restored base mesh and restored displacement information are combined 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.
  • the atlas decoder decodes the atlas data within the bitstream.
  • the motion decoder derives the motion field of the base mesh of the current frame through motion estimation and compensation based on the base mesh in the reference frame, if the mesh data in the bitstream is encoded based on inter prediction.
  • the spatial decoder decodes the base mesh, if the mesh data in the bitstream is encoded based on intra prediction.
  • the displacement data is decoded by applying arithmetic encoding decoding or video decoding.
  • the video decoder decodes the attribute data in the bitstream.
  • the decoding method of Fig. 11 can follow the reverse process of the encoding method according to the embodiments.
  • Figure 12 illustrates a V-DMC encoding process according to embodiments.
  • Fig. 12 illustrates the configuration and operation of the encoder of the transmitting device of Figs. 1 and 2.
  • Each component of Fig. 12 corresponds to hardware, software, a processor, and/or a combination thereof.
  • Figure 12 shows the encoding process of V-Mesh technology.
  • the mesh preprocessing unit 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 on the simplified mesh to generate mapping information (texture coordinates) and attribute information (texture) connection information per vertex. Additionally, quantization of floating-point mesh information into fixed-point information can be performed. This result can be encoded as a base mesh through a static mesh encoding unit.
  • the mesh preprocessing unit 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 resemble the original mesh, thereby generating a fitted subdivided mesh.
  • the base mesh generated through the mesh preprocessing unit can perform intra encoding or inter encoding depending on the base mesh type. If the base mesh frame performs intra encoding, it 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. If the base mesh frame performs inter encoding, a motion vector encoding unit is performed, which can use the base mesh and the reference reconstruction base mesh as input to calculate the motion vector between the two meshes and encode the value.
  • the motion vector encoding unit can perform connection information-based prediction using the previously encoded/decoded motion vector as a predictor, and can encode the residual motion vector obtained by subtracting the predicted motion vector from the current motion vector.
  • the base mesh bitstream generated through the base mesh encoding unit is transmitted to the multiplexing unit.
  • the encoded base mesh bitstream can generate a restored base mesh through a base mesh restoration unit.
  • the displacement vector calculation unit can perform mesh refinement on the restored base mesh.
  • the displacement vector can be calculated as the difference in vertex positions 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 times 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 a local coordinate system based on the normal vector of each vertex.
  • the displacement vector processing unit 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.
  • quantization can be performed on the transformed displacement vector value, i.e., the transform coefficient. Different quantization parameters can be applied to each axis of the transform coefficient, and the quantization parameters can be derived according to the agreement of the encoder/decoder.
  • the quantized displacement vector transform coefficients calculated by the displacement vector processing unit can be encoded through a displacement vector video encoding unit or a displacement vector arithmetic encoding unit depending on the compression method.
  • the displacement vector video encoding unit can pack displacement vector information that has undergone transformation and quantization 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.
  • the generated displacement vector video can be encoded using a video compression codec.
  • the generated displacement vector video bitstream is transmitted to the multiplexing unit.
  • the displacement vector arithmetic encoding unit can perform inter-screen prediction on the quantized displacement vector transform coefficients if the displacement vector type is INTER.
  • the inter-screen prediction process may be a process of obtaining a residual value, which is the difference between the current transform coefficient and the reference transform coefficient.
  • the displacement vector transform coefficient or the residual value can be encoded through an arithmetic encoding process.
  • the displacement vector restored through the displacement vector restoration unit and the base mesh restored through the base mesh restoration unit and refined are restored through the mesh restoration unit, and the restored mesh has restored vertices, connection information between vertices, texture coordinates, and connection information between texture coordinates.
  • the attribute information (texture map) of the original mesh can be regenerated as attribute information (texture map) for the restored mesh through the attribute information (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 bundled 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 atlas encoding unit can encode atlases, which are additional information required for mesh decoding and rendering.
  • the generated atlas bitstream is transmitted to the multiplexing unit.
  • the generated base mesh bitstream, displacement vector bitstream, texture map bitstream, and atlas bitstream can be multiplexed into a single bitstream and transmitted to a receiver via a transmitter.
  • the generated base mesh bitstream, displacement vector bitstream, texture map bitstream, and atlas bitstream can be generated into a file with one or more track data or encapsulated into segments and transmitted to a receiver (decoder) via a transmitter.
  • the data input unit can receive an original mesh and/or an original texture map ('attribute').
  • the mesh preprocessing unit can simplify the original mesh to generate a base mesh and fit it to generate a refined mesh.
  • the motion vector encoding unit can generate a motion vector (motion field) by referring to a reconstructed base mesh within a previously processed reference frame when the mesh encoding method is inter-prediction, and can encode it based on a motion estimation and compensation method.
  • the static mesh encoding unit can encode the base mesh within the frame when the mesh encoding method is intra-prediction.
  • the displacement vector calculation unit can calculate a displacement vector for a vertex from the fitted refined mesh based on the reconstructed base mesh.
  • the displacement vector processing unit can process the displacement vector into a form suitable for encoding.
  • the displacement vector can be encoded based on a video method or an arithmetic encoding method.
  • the displacement vector can be reconstructed and provided to the mesh restoration unit together with the reconstructed base mesh.
  • the attribute (texture map) video generation unit can generate a video for encoding the texture map using the original mesh and the texture map for the original mesh.
  • the attribute is encoded based on the video method.
  • the atlas is encoded by the atlas encoding unit.
  • Figure 13 illustrates a V-DMC decoding process according to embodiments.
  • Fig. 13 corresponds to the decoders of Figs. 1 to 3. Each component of Fig. 13 corresponds to hardware, software, a processor, and/or a combination thereof.
  • the bitstream of the received Mesh is demultiplexed into a compressed base mesh bitstream, a displacement vector bitstream, an attribute information (texture map) bitstream, and an atlas bitstream after file/segment decapsulation.
  • the motion vector decoding unit can perform decoding on the base mesh 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.
  • the current base mesh can be reconstructed by adding the decoded motion vector to the reference base mesh.
  • the base mesh bitstream can be used to restore the connection information, vertex geometry information, texture coordinates, normal information, etc. of the base mesh through the static mesh decoder.
  • the base mesh restoration unit can perform inverse quantization on the decoded base mesh to generate a restored base mesh.
  • the displacement vector bitstream may be decoded using a video codec and then subjected to a depacking process. If encoded using arithmetic coding, arithmetic decoding may be performed using a displacement vector arithmetic decoding unit. If inter-screen prediction is performed, the current displacement vector transform coefficient may be generated by adding a residual value to the reference displacement vector transform coefficient through inter-screen prediction.
  • the displacement vector restoration unit restores the displacement vector by performing inverse quantization and inverse transformation on the decoded displacement vector transform coefficients. 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.
  • the mesh restoration unit can generate additional vertices by performing subdivision on the restored base mesh.
  • Subdivision can generate vertex connection information, texture coordinates, and texture coordinate connection information, including the added vertices.
  • 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 contains 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 the corresponding vertex.
  • the atlas bitstream can be decrypted by the atlas decryptor.
  • the restored mesh and texture map are displayed to the user through a rendering process using a mesh data renderer, etc.
  • the decoder receives an encoded bitstream and decodes the base mesh, displacement vectors, attributes, and atlas within the bitstream based on parameter information (which may be referred to as signaling information, metadata, etc.) contained within the bitstream.
  • the decoding process may follow the reverse process of the encoding process.
  • a mesh is reconstructed from the reconstructed base mesh and the reconstructed displacement mesh.
  • the mesh can be rendered based on the reconstructed mesh and the reconstructed attributes.
  • a point cloud data encoding device and method can encode mesh data and transmit a bitstream including the encoded mesh data.
  • a point cloud data decoding device and method according to embodiments can receive a bitstream including mesh data and decode the mesh data.
  • the point cloud data encoding/decoding method/device according to embodiments may be referred to as the method/device according to embodiments.
  • the point cloud data encoding/decoding method/device according to embodiments may also be referred to as the mesh data encoding/decoding method/device according to embodiments.
  • the term encoding/decoding method/device may be used in this document for short.
  • V-Mesh video-based dynamic mesh compression
  • V-Mesh regenerates a texture map of an input original mesh into a texture map for a mesh restored during an encoding process, and then processes and compresses the regenerated texture map images as a video stream.
  • a related sequence has been added to the MPEG V-DMC standard. While previously, mesh data had one attribute information (texture map), newly added images have data with multiple attribute information.
  • FIG. 14 and FIG. 15 are drawings for explaining dynamic mesh data having multiple attribute information according to embodiments.
  • the encoding method and device can encode dynamic mesh data having a plurality of attribute information as shown in Figs. 14 and 15, and generate syntax elements (which can be referred to as parameters, metadata, signaling information, etc.) related to the plurality of attribute information according to the embodiments.
  • the decoding method and device can decode dynamic mesh data having a plurality of attribute information, as shown in FIGS. 14 and 15, based on syntax elements related to the plurality of attribute information.
  • the embodiments aim to solve the problems of low compression ratio, high complexity, and use of many codec instances that occur in existing methods when compressing dynamic mesh data having a larger number of attribute information than general point cloud/mesh data sets using V-DMC.
  • V-DMC V-mesh
  • V-mesh a method for compressing 3D dynamic mesh data based on existing 2D video codecs.
  • a method capable of achieving effective compression performance is provided when compressing data with multiple attribute information using V-DMC.
  • This relates to a method for generating attribute video streams within V-DMC, signaling for the video stream generation method, and a method for processing video streams at transmitters and receivers.
  • the embodiments propose a method of selecting representative attribute information among a plurality of attribute information, obtaining the corresponding image and residual, and compressing and utilizing the same, thereby proposing an efficient V-DMC utilization method.
  • dynamic mesh data may include multiple attribute information (texture maps) mapped to a single texture coordinate.
  • attribute information texture maps
  • T1 to T5 multiple attribute information
  • the multiple attribute information may simply be concatenated in a single row. In this case, the amount of data may be large and the compression ratio may be low.
  • a frame related to mesh data may include an object (e.g., a person or a building).
  • object e.g., a person or a building
  • attribute e.g., a texture map
  • the multiple textures may be referred to as texture 1, texture 2, texture 3, texture 4, texture 5, etc.
  • information regarding texture 1 to texture 5 may all be required.
  • FIG. 16 is a diagram for explaining a method for compressing attribute information of mesh data having a plurality of attribute information according to embodiments.
  • the encoding method and device can encode multi-attribute information, as in Fig. 16, based on the multi-attribute information of Figs. 14 and 15.
  • the decoding method and device can decode dynamic mesh data having the multi-attribute information of FIGS. 14 and 15, multi-attribute information encoded using the method of FIG. 16, and can decode based on syntax elements related to the multi-attribute information.
  • the embodiments first select a representative texture video to serve as a reference. This can be arbitrarily designated by the user. Once the representative texture video is selected, the remaining texture videos calculate the color difference per pixel with respect to the representative texture video to generate a residual texture video. As a result, one representative texture video having original texture information and N - 1 residual texture videos are generated from N texture videos, and each of these can be compressed and transmitted using a video codec, or can be concatenated and transmitted as a single data.
  • the original texture video may include multi-attribute information.
  • the multi-attribute information may be arranged in the order of texture video #1 to texture video #N.
  • a representative video may be set to encode the texture video.
  • the first texture video, texture video #1 may be set as the representative video.
  • a residual texture video #2 can be generated, which is a residual between texture video #1 and texture video #2. Then, a residual texture video #3 can be generated, which is a residual between texture video #1 and texture video #3, and a residual texture video #4 can be generated, which is a residual between texture video #1 and texture video #4. Then, a residual texture video #N can be generated, which is a residual between texture video #1 and texture video #N.
  • Texture video #1 set as a representative video can be encoded as texture video #1.
  • texture video #2 to texture video #N can be encoded by generating a residual texture video which is a residual with texture video #1.
  • the encoded multi-attribute information can include texture video #1 and residual texture video #2 to residual texture video #N.
  • each bitstream is decoded individually or combined, and then the residuals can be combined and restored as in Equation 1 below based on the representative texture video as a reference.
  • the reconstructed texture map (Recon_texture map[i]) may mean a reconstructed texture map having an index i.
  • the texture video #1 (texture video #1) may mean a texture video set as a representative texture video, and may be set as a texture video having a different index depending on the embodiment.
  • the residual data [i] (residual_data[i]) may mean residual data having an index i.
  • the residual data may include a pixel-to-pixel residual value between the texture map and the representative texture map.
  • the texture map and the texture video may be used interchangeably.
  • FIG. 17 is a diagram for explaining a method of selecting a representative texture map by calculating block-by-block correlations between texture maps according to embodiments.
  • the encoding method and device can encode multi-attribute information as in Fig. 16 based on the multi-attribute information of Figs. 14 to 15 and the representative texture map setting method of Fig. 17.
  • the decoding method and device can decode dynamic mesh data having multi-attribute information of FIGS. 14 and 15, multi-attribute information encoded according to FIG. 16 based on a representative texture map set according to FIG. 17, and can decode based on syntax elements related to the multi-attribute information.
  • a method for selecting a representative texture video (or map) to serve as a reference according to embodiments is described.
  • the first texture video (or map) can be selected.
  • the texture video can be reconstructed by combining the decoded residual images and the first image, without having to store and transmit information about a separate representative texture video (or map).
  • a representative texture video (or map) among N texture videos (or maps) can be selected through a separate process.
  • a block-level correlation between texture maps can be calculated to select a representative texture map.
  • matching and/or correlation between images can be calculated for each pixel unit or specific block size.
  • Information regarding the representative texture map determined through the calculation can be additionally signaled and utilized for restoration during the decoding process.
  • the data of the texture map can be created as a data array based on RGB values or YUV values, and the correlation between each texture map can be calculated as in Equation 2 below.
  • X and Y can mean all or part of the data of the texture map input for comparison, and x' and y' can mean the average of each data for normalization.
  • Equation 3 a cost function such as Equation 3 can be created to select a representative texture map that minimizes the value.
  • the multi-attribute information may include sequentially connected texture maps 1 to N.
  • the encoding/decoding method and device may set the first texture map among the multi-attribute information as a representative texture map.
  • information about the first texture map set as the representative texture map may be preset and thus may not require separate signaling.
  • the encoding/decoding method and device can determine one representative texture map from among a plurality of texture maps based on the correlation between each texture. For example, when calculating the correlation between texture 1 and texture 2 using Equation 2, X may mean texture 1 and Y may mean texture 2. And i may mean a block index of texture 1 or texture 2.
  • the encoding/decoding method and device may determine a representative texture map among a plurality of texture maps using a cost function.
  • the cost function may be an objective function of an optimization algorithm in a machine learning algorithm.
  • a texture map that minimizes the cost function value may be determined as a representative texture map.
  • Information about the determined representative texture map may be signaled as a dominant texture map (dominant_texture_map) value.
  • the encoding method and device can encode mesh data and generate related syntax elements as shown in Figs. 14 to 16.
  • the encoding method and device according to the embodiments can generate and transmit a bitstream including encoded mesh data and syntax elements.
  • the decoding method and device can decode mesh data in a bitstream based on syntax elements included in the bitstream, as in FIG. 17 and FIG. 19.
  • Signaling information (which may be referred to as parameters/metadata, etc.) according to the embodiments may be encoded by a metadata encoding unit (or, which may be referred to as a metadata encoder, etc.) in a point cloud data transmission device according to the embodiments and transmitted as included in a bitstream.
  • a metadata encoding unit or, which may be referred to as a metadata encoder, etc.
  • signaling information (which may be referred to as parameters/metadata, etc.) according to the embodiments may be decoded by a metadata decoding unit (or, which may be referred to as a metadata decoder, etc.) in a point cloud data receiving device according to the embodiments and provided to a decoding process of point cloud data.
  • a metadata decoding unit or, which may be referred to as a metadata decoder, etc.
  • a transmitter may encode point cloud data to generate a bitstream.
  • a bitstream according to embodiments may include a V3C unit.
  • a receiver can receive a bitstream transmitted by a transmitter, decode, and restore point cloud data.
  • v3c_unit ( numBytesInV3CUnit) ⁇ Descriptor v3c_unit_header( ) v3c_unit_payload(numBytesInV3CUnit - 4 ) ⁇
  • vuh_unit_type represents the V3C unit type specified as follows.
  • V3C_VPS V3C parameter set V3C level parameters 1 V3C_AD Atlas data Atlas information 2 V3C_OVD Occupancy video data Occupancy information 3 V3C_GVD Geometry video data Geometry information 4 V3C_AVD Attribute video data Attribute information 5...31 V3C_RSVD Reserved -
  • vuh_v3c_parameter_set_id represents the value of vps_v3c_parameter_set_id for the active V3C VPS.
  • the value of vuh_v3c_parameter_set_id ranges from 0 to 15.
  • vuh_atlas_id represents the ID of the atlas corresponding to the current V3C unit.
  • the value of vuh_atlas_id ranges from 0 to 63.
  • vuh_attribute_index represents the index of the attribute data stored in the Attribute Video Data unit.
  • the value of vuh_attribute_index ranges from 0 to (ai_attribute_count[vuh_atlas_id] - 1).
  • vuh_attribute_partition_index represents the index of an attribute dimension group contained in an Attribute Video Data unit.
  • the value of vuh_attribute_partition_index ranges from 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 not present, the map index of the current geometry or attribute stream is derived based on the stream type and the operations set for the geometry and attribute video streams, respectively. If vuh_map_index is present, its value ranges from 0 to vps_map_count_minus1[vuh_atlas_id].
  • vuh_auxiliary_video_flag If vuh_auxiliary_video_flag is equal to 1, it indicates that the associated geometry or attribute video data unit is RAW and/or EOM code point video. If vuh_auxiliary_video_flag is equal to 0, it indicates that the associated geometry or attribute video data unit may contain RAW and/or EOM code points. If vuh_auxiliary_video_flag is not present, its value is inferred to be equal to 0.
  • vuh_reserved_zero_12bit If vuh_reserved_zero_12bit is present, it is set to 0 in bitstreams conforming to this version of the document. Other values of vuh_reserved_zero_12bit are reserved for future use in ISO/IEC. Decoders should ignore the value of vuh_reserved_zero_12bit.
  • vuh_reserved_zero_17 bit If the vuh_reserved_zero_17 bit is present, it is set to 0 in bitstreams conforming to this version of the document. Other values of vuh_reserved_zero_17bit are reserved for future use in ISO/IEC. Decoders should ignore the value of vuh_reserved_zero_17bit.
  • vuh_reserved_zero_27bit If vuh_reserved_zero_27bit is present, it is set to 0 in bitstreams conforming to this version of the document. Other values of vuh_reserved_zero_27bit are reserved for future use in ISO/IEC. Decoders should ignore the value of vuh_reserved_zero_27bit.
  • attribute residual texture video flag (vuh_attribute_residual_texture_video_flag) value is 1, it indicates that the attribute video data unit is for residual texture video data. If the attribute residual texture video flag (vuh_attribute_residual_texture_video_flag) value is 0, it indicates that the attribute video data unit is for video with original attribute data.
  • the proposed attribute video type can be distinguished by using ai_attribute_type_id, which is signaled as attribute information syntax among the existing V3C parameter set syntax.
  • ai_attribute_type_id[ j ][ i ] indicates the attribute type of attribute video data having the ith index for the atlas with ID j, and the types that it can indicate are as shown in the table showing the V3C attribute types below.
  • the V3C unit header may include a unit type (vuh_unit_type), and when the unit type (vuh_unit_type) has a value of 4, the V3C unit type may indicate attribute information. And when the V3C unit type indicates attribute information, the V3C unit header (v3c_unit_header) may include an attribute index (vuh_attribute_index), an attribute partition index (vuh_attribute_partition_index), a map index (vuh_map_index, an auxiliary video flag (vuh_auxiliary_video_flag), and an attribute residual texture video flag (vuh_attribute_residual_texture_video_flag).
  • attribute residual texture video flag (vuh_attribute_residual_texture_video_flag) value is 1, it can indicate that the attribute video data unit is for residual texture video data.
  • ai_attribute_count[j] indicates the number of attributes associated with the atlas with ID j. ai_attribute_count[j] is between 0 and 127.
  • ai_attribute_type_id[ j ][ I ] represents the attribute type of the attribute video data unit with index i for the atlas with ID j.
  • the table below describes the list of supported attributes and their relationship to ai_attribute_type_id.
  • ATTR_TEXTURE represents an attribute that contains texture information for a volumetric frame. For example, it could represent an attribute that contains RGB (red, green, blue) color information.
  • ATTR_MATERIAL_ID represents an attribute containing supplementary information indicating the material type of a point in the volumetric frame.
  • the material type can be used as an indicator to identify the characteristics of an object or point within the volumetric frame. Interpreting the values of these attribute frame types is beyond the scope of this document.
  • ATTR_TRANSPARENCY represents an attribute that contains transparency information associated with each point in the volumetric frame.
  • ATTR_REFLECTANCE represents an attribute containing reflectance information associated with each point in the volumetric frame.
  • ATTR_NORMAL represents an attribute that contains unit vector information associated with each point in the volumetric frame.
  • the unit vector represents the normal direction to the surface at a point (i.e., the direction the point is facing).
  • Attribute frames with this attribute type must have ai_attribute_dimension_minus1 equal to 2.
  • Each channel of an attribute frame with this attribute type must contain one component of a unit vector (x, y, z), where the first component contains the x-coordinate, the second component contains the y-coordinate, and the third component contains the z-coordinate.
  • the attribute residual texture represents an attribute that contains residual texture video information, which is composed of pixel-by-pixel color difference information of two different texture videos.
  • the residual texture video information is composed of vectors (Red_diff, Green_diff, Blue_diff), where each value represents the difference in the red component value, the difference in the green component value, and the difference in the blue component value of the two texture videos, all of which have integer value types.
  • ATTR_UNSPECIFIED Indicates that an attribute has no specified meaning and contains a value whose meaning will not be made mandatory in the future as part of this document.
  • ai_attribute_codec_id[ j ][ i ] represents the identifier of the codec used to compress the attribute video data of the atlas with ID j.
  • ai_attribute_codec_id[ j ][ I ] is identifiable by the component codec mapping the SEI message or by a method outside of this document.
  • ai_auxiliary_attribute_codec_id[ j ][ i ] When ai_auxiliary_attribute_codec_id[ j ][ i ] is present, it indicates the identifier of the codec used to compress the attribute video data of attribute i, whose RAW and/or EOM code points are encoded in the auxiliary video stream of the atlas with ID j. ai_auxiliary_attribute_codec_id[ j ][ i ] is in the range 0 to 255. This codec may be identified by a component codec that maps SEI messages, or by means outside of this document.
  • ai_auxiliary_attribute_codec_id[ j ][ i ] If the value of ai_auxiliary_attribute_codec_id[ j ][ i ] is not present, it is inferred to be equal to ai_attribute_codec_id[ j ][ i ].
  • ai_attribute_map_absolute_coding_persistence_flag[ j ][ i ] is equal to 1, it indicates that all attribute maps corresponding to the atlas with ID j for the attribute with index i will be coded without any form of map prediction. If ai_attribute_map_absolute_coding_persistence_flag[ j ][ i ] is equal to 0, it indicates that the attribute map with index i will use the same map prediction method as that used for the geometries in the atlas with ID j. If ai_attribute_map_absolute_coding_persistence_flag[ j ][ i ] is not present, its value is inferred to be equal to 1.
  • ai_attribute_dimension_minus1[ j ][ i ] plus 1 represents the total number of dimensions (i.e., number of channels) of the attribute with index i in the atlas with ID j.
  • ai_attribute_dimension_minus1[ j ][ i ] is an integer ranging from 0 to 63.
  • ai_attribute_dimension_partitions_minus1[ j ][ i ] plus 1 represents the number of partition groups into which the attribute channel with index i in the atlas with ID j should be grouped.
  • ai_attribute_dimension_partitions_minus1[ j ][ i ] must be in the range 0 to 63, inclusive.
  • ai_attribute_partition_channels_minus1[ k ][ i ][ j ] plus 1 represents the number of channels assigned to the dimension partition group with attribute index j for the atlas with ID k.
  • ai_attribute_partition_channels_minus1[ k ][ i ][ j ] must be in the range of 0 to ai_attribute_dimension_minus1 [ k ][ i ] for all dimension partition groups.
  • ai_attribute_2d_bit_depth_minus1[ j ][ i ] plus 1 indicates the nominal 2D bit depth to which all attribute videos with attribute index i in the atlas with ID j will be converted.
  • ai_attribute_2d_bit_depth_minus1[ j ][ I ] must be in the range 0 to 31, inclusive.
  • ai_attribute_MSB_align_flag[ j ][ i ] indicates how the decoded attribute video samples associated with the atlas with ID j and index i are converted to samples of the nominal attribute bit depth.
  • a V3C parameter set (v3c_parameter_set) can contain attribute information (attribute_information), and the attribute information can contain an attribute type ID (ai_attribute_type_id[ j ][ i ]).
  • the attribute type ID can indicate whether the attribute type is Texture, Material ID, Transparency, Reflectance, Normals, or Residual texture, depending on its value.
  • the attribute residual texture indicates that the attribute contains residual texture video information, which is composed of pixel-by-pixel color difference information of two texture videos with different attributes.
  • the residual texture video information includes the difference in red component values, the difference in green component values, and the difference in blue component values of the two texture videos.
  • Fig. 18 shows an encoding method according to embodiments.
  • the encoding method according to the embodiments may include a step of encoding a base mesh of mesh data (S1810), and/or a step of encoding a displacement of mesh data (S1820), and/or a step of encoding an attribute of mesh data (S1830).
  • the step of encoding attributes of mesh data includes encoding attributes related to multi-attribute information, and the multi-attribute information may be data in which a plurality of attribute data related to a bounding box for one object is concatenated.
  • And encoding an attribute regarding the above multi-attribute information may include calculating a pixel-by-pixel color difference from representative attribute information among the multi-attribute information to calculate residual attribute information.
  • bitstream includes a flag indicating whether the attribute is related to multiple attribute information associated with one object of mesh data, and a first value of the flag may indicate that the attribute includes residual attribute information for the multiple attribute information. And a second value of the flag may indicate that the attribute does not include residual attribute information for the multiple attribute information.
  • bitstream includes parameter set information
  • the parameter set information includes information indicating a type of the attribute in the bitstream
  • a first value of the type of the attribute may indicate that the attribute includes a residual derived between the multiple attribute information.
  • the encoded multi-attribute information may include one representative attribute information and N-1 residual attribute information.
  • the residual attribute information may be generated by calculating the pixel-by-pixel color difference with the representative attribute information.
  • the residual attribute information may be referred to as residual attribute data, residual data, residual data, and residual attribute data.
  • the process of selecting representative attribute information can be performed by selecting the first attribute information among multiple attribute information as the representative attribute information, or by calculating the correlation between each of the multiple attribute information at the pixel or block level.
  • the representative attribute information can be selected using a cost function.
  • each attribute information can be divided into block or pixel units, the matching correlation of each attribute information can be calculated based on a specific pixel or block size, and the attribute information that allows for the most efficient compression can be selected as representative attribute information. At this time, information regarding the selected attribute information can be additionally signaled.
  • the encoding method can be performed by an encoding device, referring to FIG. 1 or FIG. 2 together.
  • the encoding device includes a memory; and at least one processor connected to the memory; and the at least one processor can be configured to: encode a base mesh of mesh data; encode a displacement of the mesh data; and encode an attribute of the mesh data.
  • Embodiments may include a computer-readable storage medium storing a bitstream generated by a method according to the encoding method of FIG. 18.
  • Figure 19 shows a decryption method according to embodiments.
  • the decoding method may include a step of decoding a base mesh within a bitstream (S1910), and/or a step of decoding a displacement within a bitstream (S1920), and/or a step of decoding an attribute within a bitstream (S1930).
  • the decryption method of Fig. 19 and the encoding method of Fig. 18 can be performed in reverse processes.
  • the step (S1930) of decoding an attribute in a bitstream includes decoding an attribute related to the multi-attribute information based on a flag indicating whether the attribute in the bitstream is related to multi-attribute information associated with one object of mesh data, wherein a first value of the flag may indicate that the attribute includes residual attribute information for the multi-attribute information. And a second value of the flag may indicate that the attribute does not include residual attribute information for the multi-attribute information.
  • multi-attribute information may be data in which multiple attribute data related to the bounding box of one object are concatenated.
  • the bitstream may include parameter set information
  • the parameter set information may include information indicating a type of the attribute within the bitstream.
  • a first value of the type of the attribute may indicate that the attribute includes residual attribute data derived between the multiple attribute information.
  • v3c_parameter_set may include information about an attribute type, and a first value of the information about the attribute type may indicate that the attribute includes residual attribute information.
  • Residual attribute information can represent attribute information composed of pixel-by-pixel color difference information of two different attribute information.
  • Residual attribute information information is composed of a vector (Red_diff, Green_diff, Blue_diff), and each value represents the difference in the red component value, the green component value difference, and the blue component value difference of the two attribute information, and all can have integer value types.
  • decoding an attribute regarding multi-attribute information may include restoring the attribute by adding representative attribute information among the multi-attribute information and residual attribute information with the representative attribute information.
  • And decoding an attribute regarding multi-attribute information may include receiving information representing a representative attribute among the multi-attribute information, and restoring the attribute based on the information representing the representative attribute.
  • the decryption method can be performed by a decryption device, referring to FIG. 1 or FIG. 2.
  • 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: decode a base mesh within a bitstream; decode a displacement within the bitstream; and decode an attribute within the bitstream.
  • the embodiments propose a method for improving the problem of a dynamic mesh data compression method having a plurality of attribute information and obtaining more efficient compression performance.
  • the embodiments do not compress the original data of a plurality of attribute information, i.e., the original color values, as they are, but select representative attribute information (texture map) and calculate the pixel-by-pixel color value difference with it to regenerate residual texture data containing residual signal data.
  • representative attribute information texture map
  • each drawing has been described separately, but it is also possible to design a new embodiment by combining the embodiments described in each drawing.
  • designing a computer-readable recording medium having a program recorded thereon for executing the previously described embodiments, as needed by 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.
  • the various components of the devices of the embodiments may be implemented by hardware, software, firmware, or a combination thereof.
  • the various components of the embodiments may be implemented by a single chip, for example, a single hardware circuit.
  • the components according to the embodiments may be implemented by separate chips.
  • at least one of the components of the devices 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 devices 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.
  • 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 transmissions via the Internet.
  • processor-readable recording media may be distributed across network-connected computer systems, allowing processor-readable code to be stored and executed in a distributed manner.
  • first first
  • second second
  • first user input signal
  • first user input signal second user input signal
  • first user input signal second user input signal
  • 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.
  • the transmitting/receiving device may include a transmitting/receiving unit for transmitting and receiving media data, a memory for storing instructions (program code, algorithm, flowchart, and/or data) for a process according to the embodiments, and a processor for controlling the operations of the transmitting/receiving device.
  • the processor may be referred to as a controller or the like, and may correspond to, for example, hardware, software, and/or a combination thereof.
  • the operations according to the above-described embodiments may be performed by the processor.
  • the processor may be implemented as an encoder/decoder or the like for the operations of the above-described embodiments.
  • the embodiments may be applied in whole or in part to a point cloud data transmission and reception device and system.
  • Embodiments may include modifications/changes, which do not depart from the scope of the claims and their equivalents.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

실시예들에 따른 복호화 방법은 비트스트림 내 베이스메쉬를 디코딩하는 단계; 비트스트림 내 변위를 디코딩하는 단계; 및 비트스트림 내 어트리뷰트를 디코딩하는 단계; 를 포함할 수 있다. 실시예들에 따른 부호화 방법은 메쉬 데이터의 베이스메쉬를 인코딩하는 단계; 메쉬 데이터의 변위를 인코딩하는 단계; 및 메쉬 데이터의 어트리뷰트를 인코딩하는 단계; 를 포함할 수 있다.

Description

메쉬 데이터 부호화 장치, 메쉬 데이터 부호화 방법, 메쉬 데이터 복호화 장치 및 메쉬 데이터 복호화 방법
실시예들은 사용자에게 VR (Virtual Reality, 가상현실), AR (Augmented Reality, 증강현실), MR (Mixed Reality, 혼합현실), 및 자율 주행 서비스 등의 다양한 서비스를 제공하기 위하여 Point Cloud 콘텐츠를 제공하는 방안을 제공한다.
포인트 클라우드는 3D공간 상의 포인트들의 집합이다. 3D공간 상의 포인트들의 양이 많아서 포인트 클라우드 데이터를 생성하기 어려운 문제점이 있다.
포인트 클라우드의 데이터를 전송하고 수신하기 위해서 많은 처리량이 요구되는 문제점이 있다.
실시예들에 따른 기술적 과제는, 전술한 문제점 등을 해결하기 위해서, 포인트 클라우드를 효율적으로 송수신하기 위한 포인트 클라우드 데이터 전송 장치, 전송 방법, 포인트 클라우드 데이터 수신 장치 및 수신 방법을 제공하는데 있다.
실시예들에 따른 기술적 과제는, 지연시간(latency) 및 인코딩/디코딩 복잡도를 해결하기 위한 포인트 클라우드 데이터 전송 장치, 전송 방법, 포인트 클라우드 데이터 수신 장치 및 수신 방법을 제공하는데 있다.
다만, 전술한 기술적 과제만으로 제한되는 것은 아니고, 본 문서 전체 내용에 기초하여 당업자가 유추할 수 있는 다른 기술적 과제로 실시예들의 권리범위가 확장될 수 있다.
상술한 목적 및 다른 이점을 달성하기 위해서 실시예들에 따른 복호화 방법은 비트스트림 내 베이스메쉬를 디코딩하는 단계; 비트스트림 내 변위를 디코딩하는 단계; 및 비트스트림 내 어트리뷰트를 디코딩하는 단계; 를 포함할 수 있다. 실시예들에 따른 부호화 방법은 메쉬 데이터의 베이스메쉬를 인코딩하는 단계; 메쉬 데이터의 변위를 인코딩하는 단계; 및 메쉬 데이터의 어트리뷰트를 인코딩하는 단계; 를 포함할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법, 송신 장치, 포인트 클라우드 데이터 수신 방법, 수신 장치는 퀄리티 있는 포인트 클라우드 서비스를 제공할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법, 송신 장치, 포인트 클라우드 데이터 수신 방법, 수신 장치는 다양한 비디오 코덱 방식을 달성할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법, 송신 장치, 포인트 클라우드 데이터 수신 방법, 수신 장치는 자율주행 서비스 등 범용적인 포인트 클라우드 콘텐츠를 제공할 수 있다.
도면은 실시예들을 더욱 이해하기 위해서 포함되며, 도면은 실시예들에 관련된 설명과 함께 실시예들을 나타낸다. 이하에서 설명하는 다양한 실시예들의 보다 나은 이해를 위하여, 하기 도면들에 걸쳐 유사한 참조 번호들이 대응하는 부분들을 포함하는 다음의 도면들과 관련하여 이하의 실시예들의 설명을 반드시 참조해야 한다.
도1은 실시예들에 따른 V-DMC 기반 인코더 및 디코더를 나타낸다.
도2는 실시예들에 따른 다이나믹 메쉬(Dynamic Mesh) 콘텐츠 제공을 위한 시스템을 나타낸다.
도3은 실시예들에 따른 V-MESH 압축 방법을 나타낸다.
도4는 실시예들에 따른 V-MESH 압축의 프리-프로세싱을 나타낸다.
도5는 실시예들에 따른 미드-엣지 서브디비전 방식을 나타낸다.
도6은 실시예들에 따른 디스플레이스먼트 생성 과정을 나타낸다.
도7은 실시예들에 따른 V-DMC 인코딩 과정을 나타낸다.
도8은 실시예들에 따른 디스플레이스먼트에 대한 리프팅 변환 과정을 나타낸다.
도9는 실시예들에 따른 변환 계수를 2D 이미지에 패킹하는 과정을 나타낸다.
도10은 실시예들에 따른 V-MESH 압축 방법의 어트리뷰트 트랜스퍼 과정을 나타낸다.
도11은 실시예들에 따른 V-DMC 디코딩 프로세스를 나타낸다.
도12는 실시예들에 따른 V-DMC 인코딩 프로세스를 나타낸다.
도13은 실시예들에 따른 V-DMC 디코딩 프로세스를 나타낸다.
도14는 실시예들에 따른 다수의 속성정보를 갖는 동적 메쉬 데이터를 설명하기 위한 도면이다.
도15는 실시예들에 따른 다수의 속성정보를 갖는 동적 메쉬 데이터를 설명하기 위한 도면이다.
도16은 실시예들에 따른 다수의 속성정보를 갖는 메쉬 데이터의 속성정보를 압축하는 방법을 설명하기 위한 도면이다.
도17은 실시예들에 따라 텍스쳐 맵 간의 블록 단위 상관관계를 연산하여 대표 텍스처 맵을 선정하는 방법을 설명하기 위한 도면이다.
도18은 실시예들에 따른 부호화 방법을 나타낸다.
도19는 실시예들에 따른 복호화 방법을 나타낸다.
실시예들의 바람직한 실시예에 대해 구체적으로 설명하며, 그 예는 첨부된 도면에 나타낸다. 첨부된 도면을 참조한 아래의 상세한 설명은 실시예들의 실시예에 따라 구현될 수 있는 실시예만을 나타내기보다는 실시예들의 바람직한 실시예를 설명하기 위한 것이다. 다음의 상세한 설명은 실시예들에 대한 철저한 이해를 제공하기 위해 세부 사항을 포함한다. 그러나 실시예들이 이러한 세부 사항 없이 실행될 수 있다는 것은 당업자에게 자명하다.
실시예들에서 사용되는 대부분의 용어는 해당 분야에서 널리 사용되는 일반적인 것들에서 선택되지만, 일부 용어는 출원인에 의해 임의로 선택되며 그 의미는 필요에 따라 다음 설명에서 자세히 서술한다. 따라서 실시예들은 용어의 단순한 명칭이나 의미가 아닌 용어의 의도된 의미에 근거하여 이해되어야 한다.
도1은 실시예들에 따른 V-DMC 기반 인코더 및 디코더를 나타낸다.
현재 진행중인 V-DMC (v-mesh) 에 대한 기본 구조는 도1과 같다. 도1에 따른 인코더 및 디코더는 V3C 기술을 이용하여 동적 메쉬를 표현하는 미디어의 인코딩 및 디코딩 과정을 수행한다. 전처리기는 입력 동적 메시 표현을 여러 V3C 구성 요소(베이스 메시, 변위 세트, 속성의 2D 표현 및 atlas)로 변환한다. 원본 메시는 베이스메시로 단순화된다. 베이스메시(basemesh)는 모든 메시 코덱을 사용하여 인코딩될 수 있다. 변위 벡터는 프로파일에 의해 표시되거나 SEI 메시지를 사용하여 임의의 비디오 코덱을 사용하여 V3C 기하학 비디오 구성요소로 인코딩 될 수 있다. 예를 들어, 프로파일에 따라 변위 벡터(변위 데이터)는 산술 코딩 (arithmetic coding)을 사용하여 인코딩될 수 있다. 속성 데이터는 추가 속성을 포함할 수 있다. 예를 들어, 추가 속성으로 텍스처 또는 재료 정보가 포함되고, 모든 비디오 코덱으로 인코딩될 수 있다. 아틀라스 데이터는 역 재구성을 수행하는 방법에 대한 정보를 포함하고, V3C 디코딩 및/또는 렌더링 시스템에 제공된다. 예를 들어, 아틀라스 데이터는 베이스 메시의 세분화를 수행하는 방법, 세분화된 메시 정점에 변위 벡터를 적용하는 방법, 재구성된 메시에 속성을 적용하는 방법 등을 포함할 수 있다.
인코더는 메모리 및 메모리에 연결된 적어도 하나의 프로세서로 구성될 수 있다. 적어도 하나의 프로세서는 전처리기, 아틀라스 부호화부, 베이스메쉬 부호화부, 변위 벡터 부호화부, 비디오 부호화부, 다중화부 등의 동작을 수행하로록 구성될 수 있다.
아틀라스 부호화부는 메쉬 데이터의 아틀라스를 부호화하여 아틀라스 비트스트림을 생성한다. 베이스메쉬 부호화부는 메쉬 데이터의 베이스메쉬를 부호화하여 베이스메쉬 비트스트림을 생성한다. 변위 벡터 부호화부는 메쉬 데이터의 변위 벡터를 부호화하여 변위 벡터 비트스트림을 생성한다. 비디오 부호화부는 메쉬 데이터의 속성(어트리뷰트)를 부호화하여 어트리뷰트 비트스트림을 생성한다. 인코더는 각 부호화에 관련된 파라미터 정보(시그널링 정보, 메타데이터 등으로 지칭 가능함)을 생성한다. 인코더는 파라미터 정보, 아틀라스, 베이스메쉬, 변위 벡터, 및/또는 어트리뷰트 등을 포함하는 비트스트림을 생성할 수 있다.
다코더는 메모리 및 메모리에 연결된 적어도 하나의 프로세서로 구성될 수 있다. 적어도 하나의 프로세서는 역다중화부, 아틀라스 복호화부, 베이스메쉬 복호화부, 변위 벡터 복호화부, 비디오 복호화부 등의 동작을 수행하로록 구성될 수 있다.
아틀라스 복호화부는 비트스트림 내 아틀라스를 복호화한다. 베이스메쉬 복호화부는 비트스트림 내 베이스메쉬를 복호화한다. 변위 벡터 복호화부는 비트스트림 내 변위 벡터를 복호화한다. 비디오 복호화부는 비트스트림 내 어트리뷰트를 복호화한다. 디코더는 비트스트림 내 파라미터 정보에 기반하여 각 복호화 동작을 수행할 수 있다. 디코더는 아틀라스, 변위 벡터, 어트리뷰트, 베이스 메쉬에 기반하여 동적 메쉬 데이터를 재구성할 수 있다.
이하에서, 도1의 V-DMC 인코더 및 디코더의 동작을 보다 상세히 설명한다.
도2는 실시예들에 따른 다이나믹 메쉬(Dynamic Mesh) 콘텐츠 제공을 위한 시스템을 나타낸다.
도2의 시스템은 실시예들에 따른 포인트 클라우드 데이터 송신 장치(100) 및 포인트 클라우드 데이터 수신 장치(110)를 포함한다. 포인트 클라우드 데이터 송신 장치는 다이나믹 메쉬 비디오 획득부(101), 다이나믹 메쉬 비디오 인코더(102), 파일/세그먼트 인캡슐레이터(103), 트랜스미터(104)를 포함할 수 있다. 포인트 클라우드 데이터 수신 장치(110)는 수신부(111), 파일/세그먼트 디캡슐레이터(112), 다이나믹 메쉬 비디오 디코더(113), 렌더러(114)를 포함할 수 있다. 도1의 각 구성요소는 하드웨어, 소프트웨어, 프로세서, 및/또는 그것들의 조합에 대응할 수 있다. 이하에서, 실시예들에 따른 포인트 클라우드 데이터 송신 장치는 송신 장치(100)를 지칭하거나, 다이나믹 메쉬 비디오 인코더(이하, 인코더)(102)를 지칭하는 용어로 해석될 수 있다. 실시예들에 따른 포인트 클라우드 데이터 수신 장치는 수신 장치(110)를 지칭하거나, 다이나믹 메쉬 비디오 디코더(이하, 디코더)(113)를 지칭하는 용어로 해석될 수 있다.
도2의 시스템은 비디오 기반 다이나믹 메쉬 컴프레션(Video-based Dynamic Mesh Compression) 및 디컴프레션을 수행할 수 있다.
3D 캡처, 모델링 및 렌더링의 발전으로, 사용자는 여러 플랫폼과 장치에서 AR, XR, 메타버스, 홀로그램과 같이 다양한 형태의 3D 콘텐츠를 사용할 수 있다. 3D 콘텐츠들은 사용자가 몰입형 경험을 즐길 수 있도록 보다 정교하고 리얼하게 대상을 표현하고 있으며, 이를 위해 3D 모델의 생성 및 사용에는 많은 양의 데이터가 필요하다. 여러가지 형태의 3D 콘텐츠 타입들 중 3D 메쉬(Mesh)는 효율적인 데이터 활용 및 실감 있는 객체 표현을 위해 널리 사용된다. 실시예들은 이러한 메쉬(Mesh) 콘텐츠를 사용하는 시스템에서의 일련의 처리 과정을 포함한다.
먼저, 다이나믹 메쉬(dynamic mesh) 데이터를 압축하는 방법은 V-PCC (Video-based point cloud compression) 표준 기술에서 시작된다. 포인트 클라우드(Point cloud) 데이터는 정점 (vertex) 좌표 (X, Y, Z)에 색상 정보를 가지고 있는 데이터들이다. 이 정점 정보에 정점들간의 연결성 정보가 추가되어 있는 것이 메쉬(mesh) 데이터를 의미한다. 콘텐츠를 생성할 때 처음부터 메쉬(mesh) 데이터 형태로 만들어질 수 있다. 포인트 클라우드(point cloud) 데이터에서 연결성 정보를 추가하여 메쉬(mesh) 데이터로 변환하여 사용될 수 있다.
현재 MPEG 표준 단체에서 다이나믹 메쉬(dynamic mesh) 데이터의 데이터 타입은 아래의 두 가지 타입으로 정의되어 있다. 카테고리1: 색상정보로 텍스처맵을 갖는 메쉬(mesh) 데이터. 카테고리2: 색상정보로 정점 색상을 갖는 메쉬(mesh) 데이터.
카테고리1 데이터에 대한 메쉬 코딩(Mesh coding) 표준이 진행되고 있고, 카테고리2 데이터 표준 작업도 추후 진행될 예정이다. 메쉬(Mesh) 콘텐츠 서비스를 제공하기 위한 전체의 과정은 도1에서 보이는 바와 같이 획득 과정, 인코딩 과정, 전송 과정, 디코딩 과정, 렌더링 과정 및/또는 피드백 과정을 포함할 수 있다.
메쉬(Mesh) 콘텐츠 서비스를 제공하기 위해, 다수의 카메라 혹은 특수 카메라를 통해 획득된 3차원 데이터는 일련의 과정을 통해 메쉬(Mesh) 데이터 타입으로 가공된 후 비디오로 생성될 수 있다. 생성된 메쉬(Mesh) 비디오는 일련의 과정을 거쳐 전송되고, 수신단에서는 수신된 데이터를 다시 메쉬(Mesh) 비디오로 가공하여 렌더링 할 수 있다. 이를 통해 메쉬(Mesh) 비디오가 사용자에게 제공되며 사용자는 상호작용을 통해 의도에 따라 메쉬(Mesh) 콘텐츠를 사용할 수 있다.
메쉬 컴프레션(Mesh compression) 시스템은 전송 디바이스 및 수신 디바이스를 포함할 수 있다. 전송 디바이스는 메쉬(Mesh) 비디오를 인코딩하여 비트스트림을 출력할 수 있으며, 이를 파일 또는 스트리밍 (스트리밍 세그먼트) 형태로 디지털 저장매체 또는 네트워크를 통해 수신 디바이스로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다.
전송 디바이스는 개략적으로 메쉬(Mesh) 비디오 획득부, 메쉬(Mesh) 비디오 인코더, 전송부를 포함할 수 있다. 상기 수신 디바이스는 개략적으로 수신부, 메쉬(Mesh) 비디오 디코더 및 렌더러를 포함할 수 있다. 상기 인코더는 메쉬(Mesh) 비디오/영상/픽처/프레임 인코딩 장치라고 불릴 수 있고, 상기 디코더는 메쉬(Mesh) 비디오/영상/픽처/프레임 디코딩 장치라고 불릴 수 있다. 송신기는 메쉬(Mesh) 비디오 인코더에 포함될 수 있다. 수신기는 메쉬(Mesh) 비디오 디코더에 포함될 수 있다. 렌더러는 디스플레이부를 포함할 수도 있고, 렌더러 및/또는 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다. 상기 전송 디바이스 및 상기 수신 디바이스는 피드백 과정을 위한 별도의 내부 또는 외부의 모듈/유닛/컴포넌트를 더 포함할 수도 있다.
메쉬(Mesh) 데이터는 객체의 표면을 다수의 다각형으로 표현한다. 각 다각형은 3차원 공간에서의 정점과, 그 정점들이 어떻게 연결되어 있는 지를 나타내는 연결 정보로 정의된다. 또한 정점의 컬러, 법선 등과 같은 정점 속성들도 포함할 수 있다. 메쉬(Mesh)의 표면을 2D 평면 영역에 매핑(mapping)할 수 있도록 하는 매핑 정보 역시 메쉬(Mesh)의 속성으로 포함될 수 있다. 매핑은 일반적으로 메쉬(Mesh) 정점과 관련된 UV 좌표 또는 텍스처 좌표라고 하는 매개변수 좌표 세트로 설명될 수 있다. 메쉬(Mesh) 는 2D 속성 맵을 포함하고 있는데, 이것은 텍스처, 법선, 변위 등과 같은 고해상도 속성 정보를 저장하는 데 사용될 수 있다.
메쉬(Mesh) 비디오 획득부에서는 카메라 등을 통해 획득된 3차원 객체 데이터를 일련의 과정을 통해 위에서 설명한 속성을 갖는 메쉬(Mesh) 데이터 타입으로 가공하고 이러한 메쉬(Mesh) 데이터로 구성된 비디오를 생성하는 것을 포함할 수 있다. 메쉬(Mesh) 비디오는 시간에 따라 메쉬(Mesh) 의 속성, 즉 정점, 다각형, 정점 간 연결 정보, 색상, 법선 등의 정보가 변할 수 있다. 이렇게 시간에 따라 변하는 속성 및 연결 정보를 갖는 메쉬(Mesh) 비디오를 동적 메쉬(Mesh) 비디오라고 표현할 수 있다.
메쉬(Mesh) 비디오 인코더는 입력 메쉬(Mesh) 비디오를 하나 이상의 비디오 스트림으로 인코딩할 수 있다. 하나의 비디오는 다수의 프레임을 포함할 수 있으며, 하나의 프레임은 정지 영상/픽처에 대응될 수 있다. 본 문서에서, 메쉬(Mesh) 비디오라 함은 메쉬(Mesh) 영상/프레임/픽처를 포함할 수 있으며, 메쉬(Mesh) 비디오는 메쉬(Mesh) 영상/프레임/픽처와 혼용되어 사용될 수 있다. 메쉬(Mesh) 비디오 인코더는 Video-based Dynamic Mesh (V-Mesh) Compression 절차를 수행할 수 있다. 메쉬(Mesh) 비디오 인코더는 압축 및 코딩 효율을 위하여 예측, 변환, 양자화, 엔트로피 코딩 등의 일련의 절차를 수행할 수 있다. 인코딩된 데이터 (인코딩된 비디오/영상 정보)는 비트스트림 (bitstream) 형태로 출력될 수 있다.
인캡슐레이션 처리부 (file/segment encapsulation module)는 인코딩된 메쉬(Mesh) 비디오 데이터 및/ 메쉬(Mesh) Mesh 비디오 관련 메타데이터를 파일 등의 형태로 인캡슐레이션할 수 있다. 여기서 메쉬(Mesh) 비디오 관련 메타데이터는 메타데이터 처리부 등으로부터 전달받은 것일 수 있다. 메타데이터 처리부는 메쉬(Mesh) 비디오 인코더에 포함될 수도 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 인캡슐레이션 처리부는 해당 데이터들을 ISOBMFF 등의 파일 포맷으로 인캡슐레이션하거나, 기타 DASH 세그먼트 등의 형태로 처리할 수 있다. 인캡슐레이션 처리부는 실시예에 따라 메쉬(Mesh) 비디오 관련 메타데이터를 파일 포맷 상에 포함시킬 수 있다. 메쉬(Mesh) 비디오 메타데이터는 예를 들어 ISOBMFF 파일 포맷 상의 다양한 레벨의 박스 (box)에 포함되거나 파일 내에서 별도의 트랙내의 데이터로 포함될 수 있다. 실시예에 따라, 인캡슐레이션 처리부는 메쉬(Mesh) 비디오 관련 메타데이터 자체를 파일로 인캡슐레이션할 수 있다.
전송 처리부는 파일 포맷에 따라 인캡슐레이션된 메쉬(Mesh) 비디오 데이터에 전송을 위한 처리를 가할 수 있다. 전송 처리부는 전송부에 포함될 수도 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 전송 처리부는 임의의 전송 프로토콜에 따라 메쉬(Mesh) 비디오 데이터를 처리할 수 있다. 전송을 위한 처리에는 방송망을 통한 전달을 위한 처리, 브로드밴드를 통한 전달을 위한 처리를 포함할 수 있다. 실시예에 따라 전송 처리부는 메쉬(Mesh) 비디오 데이터뿐 아니라, 메타데이터 처리부로부터 메쉬(Mesh) 비디오 관련 메타데이터를 전달받아, 이 것에 전송을 위한 처리를 가할 수도 있다.
전송부는 비트스트림 형태로 출력된 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘레멘트를 포함할 수 있다. 수신부는 상기 비트스트림을 추출하여 디코딩 장치로 전달할 수 있다.
수신부는 메쉬(Mesh) 비디오 전송 장치가 전송한 메쉬(Mesh) 비디오 데이터를 수신할 수 있다. 전송되는 채널에 따라 수신부는 방송망을 통하여 메쉬(Mesh) 비디오 데이터를 수신할 수도 있고, 브로드밴드를 통하여 메쉬(Mesh) 비디오 데이터를 수신할 수도 있다. 혹은 디지털 저장 매체를 통하여 메쉬(Mesh) 비디오 데이터를 수신할 수도 있다.
수신 처리부는 수신된 메쉬(Mesh) 비디오 데이터에 대해 전송 프로토콜에 따른 처리를 수행할 수 있다. 수신 처리부는 수신부에 포함될 수 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 전송측에서 전송을 위한 처리가 수행된 것에 대응되도록, 수신 처리부는 전술한 전송 처리부의 역과정을 수행할 수 있다. 수신 처리부는 획득한 메쉬(Mesh) 비디오 데이터는 디캡슐레이션 처리부로 전달하고, 획득한 메쉬(Mesh) 비디오 관련 메타데이터는 메타데이터 파서로 전달할 수 있다. 수신 처리부가 획득하는 메쉬(Mesh) 비디오 관련 메타데이터는 시그널링 테이블의 형태일 수 있다.
디캡슐레이션 처리부(file/segment decapsulation module)는 수신 처리부로부터 전달받은 파일 형태의 메쉬(Mesh) 비디오 데이터를 디캡슐레이션할 수 있다. 디캡슐레이션 처리부는 ISOBMFF 등에 따른 파일들을 디캡슐레이션하여, Mesh 비디오 비트스트림 내지 메쉬(Mesh) 비디오 관련 메타데이터 (메타데이터 비트스트림)를 획득할 수 있다. 획득된 메쉬(Mesh) 비디오 비트스트림은 메쉬(Mesh) 비디오 디코더로, 획득된 메쉬(Mesh) 비디오 관련 메타데이터 (메타데이터 비트스트림)는 메타데이터 처리부로 전달할 수 있다. 메쉬(Mesh) 비디오 비트스트림은 메타데이터(메타데이터 비트스트림)를 포함할 수도 있다. 메타데이터 처리부는 메쉬(Mesh) 비디오 디코더에 포함될 수도 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 디캡슐레이션 처리부가 획득하는 메쉬(Mesh) 비디오 관련 메타데이터는 파일 포맷 내의 박스 혹은 트랙 형태일 수 있다. 디캡슐레이션 처리부는 필요한 경우 메타데이터 처리부로부터 디캡슐레이션에 필요한 메타데이터를 전달받을 수도 있다. 메쉬(Mesh) 비디오 관련 메타데이터는 메쉬(Mesh) 비디오 디코더에 전달되어 메쉬(Mesh) 비디오 디코딩 절차에 사용될 수도 있고, 또는 렌더러에 전달되어 메쉬(Mesh) 비디오 렌더링 절차에 사용될 수도 있다.
메쉬(Mesh) 비디오 디코더는 비트스트림을 입력받아 메쉬(Mesh) 비디오 인코더의 동작에 대응하는 동작을 수행하여 비디오/영상을 디코딩할 수 있다. 디코딩된 메쉬(Mesh) 비디오는 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다. 사용자는 VR/AR 디스플레이 또는 일반 디스플레이 등을 통하여 렌더링 된 결과의 전부 또는 일부 영역을 볼 수 있다.
피드백 과정은 렌더링/디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신측으로 전달하거나 수신측의 디코더에 전달하는 과정을 포함할 수 있다. 피드백 과정을 통해 메쉬(Mesh) 비디오 소비에 있어 인터랙티비티 (interactivity) 가 제공될 수 있다. 실시예에 따라, 피드백 과정에서 헤드 오리엔테이션 (Head Orientation) 정보, 사용자가 현재 보고 있는 영역을 나타내는 뷰포트 (Viewport) 정보 등이 전달될 수 있다. 실시예에 따라, 사용자는 VR/AR/MR/자율주행 환경 상에 구현된 것들과 상호작용 할 수도 있는데, 이 경우 그 상호작용과 관련된 정보가 피드백 과정에서 송신측 내지 서비스 프로바이더 측으로 전달될 수도 있다. 실시예에 따라 피드백 과정은 수행되지 않을 수도 있다.
헤드 오리엔테이션 정보는 사용자의 머리 위치, 각도, 움직임 등에 대한 정보를 의미할 수 있다. 이 정보를 기반으로 사용자가 현재 메쉬(Mesh) 비디오 내에서 보고 있는 영역에 대한 정보, 즉 뷰포트 정보가 계산될 수 있다.
뷰포트 정보는 현재 사용자가 메쉬(Mesh) 메쉬(Mesh) 비디오에서 보고 있는 영역에 대한 정보일 수 있다. 이를 통해 게이즈 분석 (Gaze Analysis) 이 수행되어, 사용자가 어떠한 방식으로 메쉬(Mesh) 비디오를 소비하는지, 메쉬(Mesh) 비디오의 어느 영역을 얼마나 응시하는지 등을 확인할 수도 있다. 게이즈 분석은 수신측에서 수행되어 송신측으로 피드백 채널을 통해 전달될 수도 있다. VR/AR/MR 디스플레이 등의 장치는 사용자의 머리 위치/방향, 장치가 지원하는 수직 (vertical) 혹은 수평 (horizontal) FOV 등에 근거하여 뷰포트 영역을 추출할 수 있다.
실시예에 따라, 전술한 피드백 정보는 송신측으로 전달되는 것뿐 아니라, 수신측에서 소비될 수도 있다. 즉, 전술한 피드백 정보를 이용하여 수신측의 디코딩, 렌더링 과정 등이 수행될 수 있다. 예를 들어, 헤드 오리엔테이션 정보 및/또는 뷰포트 정보를 이용하여 현재 사용자가 보고 있는 영역에 대한 메쉬(Mesh) 비디오만 우선적으로 디코딩 및 렌더링 될 수도 있다.
이 문서는 상술한 바와 같이 동적 메쉬(Mesh) 비디오 압축에 관한 것이다. 이 문서에서 개시된 방법/실시예는 MPEG (Moving Picture Experts Group)의 Video-based Dynamic Mesh 압축 방법 (V-Mesh) 표준 또는 차세대 비디오/이미지 코딩 표준에 적용될 수 있다. 동적 메쉬(Mesh) 비디오 압축은 시간에 따라 변하는 Mesh 연결 정보 및 속성들을 처리하기 위한 방법이며, 이것은 실시간 통신, 저장, 자유 시점 비디오, AR/VR과 같은 다양한 어플리케이션을 위한 손실 및 무손실 압축을 수행할 수 있다.
이하에 기술된 동적 메쉬 비디오 압축 방법은 MPEG의 V-Mesh 방법에 기반한다.
이 문서에서 픽처(picture)/프레임(frame)은 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미할 수 있다.
픽셀(pixel) 또는 펠(pel)은 하나의 픽처(또는 영상)을 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 '샘플(sample)'이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 루마(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 크로마(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있고, 또는 뎁스(depth) 성분의 픽셀/픽셀값만을 나타낼 수도 있다.
유닛(unit)은 영상 처리의 기본 단위를 나타낼 수 있다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들(또는 샘플 어레이) 또는 변환 계수(transform coefficient)들의 집합(또는 어레이)을 포함할 수 있다.
도2의 인코딩 프로세스(Encoding Process)는 다음과 같다.
비디오 기반 다이나믹 메쉬 컴프레션(Video-based dynamic mesh compression)(V-Mesh) 압축 방법은 HEVC, VVC 등의 2D 비디오 코덱을 기반으로 동적 메쉬(Mesh) 비디오 데이터를 압축하는 방법을 제공할 수 있다. V-Mesh 압축 과정에서는 다음과 같은 데이터를 입력으로 받아 압축을 수행한다.
인풋 메쉬(Input mesh): 메쉬(Mesh)를 구성하는 정점들의 3차원 좌표(지오메트리), 각 정점의 법선 정보, 메쉬(Mesh) 표면을 2D 평면에 매핑하는 매핑 정보, 표면을 구성하는 정점들 간의 연결 정보 등을 포함하고 있다. 메쉬(Mesh)의 표면은 삼각형 또는 그 이상의 다각형으로 표현될 수 있으며 정해진 형태에 따라 각 표면을 구성하는 정점들 간 연결 정보가 저장되어 있다. 인풋 메쉬(Input mesh)는 OBJ 파일 포맷으로 저장될 수 있다.
어트리뷰트 맵(Attribute map): (이하 텍스쳐 맵(Texture map)도 같은 의미로 사용됨): 메쉬(Mesh)의 속성 (색상, 법선, 변위 등) 정보를 포함하고 있으며, 메쉬(Mesh)의 표면을 2D 이미지 상에 매핑한 형태로 데이터를 저장하고 있다. 이 어트리뷰트 맵(Attribute map)의 각 데이터가 메쉬(Mesh)의 어느 부분(표면 혹은 정점)에 해당되는지 매핑하는 것은 인풋 메쉬(Input mesh)에 포함되어 있는 매핑 정보를 바탕으로 한다. 어트리뷰트 맵(Attribute map)은 메쉬(Mesh) 비디오의 각 프레임에 대한 데이터를 갖고 있기 때문에 어트리뷰트 맵(Attribute map) 비디오(혹은 줄여서 어트리뷰트)라고도 표현할 수 있다. V-Mesh 압축 방법에서의 어트리뷰트 맵(Attribute map)은 메쉬(Mesh)의 색상 정보를 주로 갖고 있으며, 이미지 파일 포맷 (PNG, BMP 등)으로 저장된다.
머터리얼 라이브러리 파일(Material Library File): 메쉬(Mesh)에서 사용되는 머터리얼(Material) 속성 정보를 포함하고 있으며, 특히 입력 메쉬(Mesh)와 이에 대응하는 어트리뷰트 맵(Attribute map)을 연결해주는 정보를 포함한다. 이것은 웨이브프론트 머터리얼 템플릿 라이브러리(Wavefront Material Template Library) (MTL) 파일 포맷으로 저장된다.
V-Mesh 압축 방법에서 압축 과정을 통해 다음과 같은 데이터 및 정보들이 생성될 수 있다.
베이스 메쉬(Base mesh): 전처리 과정을 거쳐 인풋 메쉬(Input mesh)를 단순화 (Decimation)함으로써, 사용자의 기준에 따라 정해진 최소한의 정점을 이용하여 인풋 메쉬(Input mesh)의 객체를 표현한다.
디스플레이스먼트(Displacement): 베이스 메쉬(Base mesh)를 이용하여 인풋 매쉬(Input mesh)를 최대한 유사하게 하기 표현하기 위해 사용되는 변위 정보로, 3차원 좌표 형태로 표현된다.
아틀라스 정보(Atlas information): 베이스 메쉬(Base mesh), 디스플레이스먼트(Displacement) 및 어트리뷰트 맵(Attribute map) 정보를 이용하여 메쉬(Mesh)를 재구성하기 위해 필요한 메타데이터이다. 이것은 메쉬(Mesh)를 구성하는 서브 단위(sub-mesh, patch 등)로 생성되고 활용될 수 있다.
도3 내지 도7을 참조하여, 메쉬 위치 정보(버텍스)를 부호화하는 방법을 설명하고, 도7-10 등을 참조하여 메쉬 위치 정보를 복원하여 어트리뷰트 정보(어트리뷰트 맵)을 부호화하는 방법을 설명한다.
도3은 실시예들에 따른 V-MESH 압축 방법을 나타낸다.
도3은 도2의 인코딩 과정을 나타내며, 인코딩 과정은 프리-프로세싱 및 인코딩 과정을 포함할 수 있다. 도2의 인코더는 도3과 같이 프리-프로세서(200) 및 인코더(201)를 포함할 수 있다. 도2의 송신 장치가 넓게 인코더로 지칭될 수 있고, 도2의 다이나믹 메쉬 비디오 인코더가 인코더로 지칭될 수 있다. V-Mesh 압축 방법은 도3과 같이 전처리(Pre-processing, 200)와 인코딩(Encoding, 201) 과정을 포함할 수 있다. 도3의 프리-프로세서는 도3의 인코더 앞 단에 위치할 수 있다. 도3의 프리-프로세서 및 인코더를 포함하여 하나의 인코더로 지칭할 수 있다.
프리-프로세서는 스태틱 다이나믹 메쉬 및/또는 어트리뷰트 맵을 수신할 수 있다. 프리-프로세서는 전처리를 통해 베이스 메쉬 및/또는 디스플레이스먼트를 생성할 수 있다. 프리-프로세서는 인코더로부터 피드백 정보를 수신하여, 피드백 정보에 기초하여 베이스 메쉬 및/또는 디스플레이스먼트를 생성할 수 있다.
인코더는 베이스 메쉬, 디스플레이스먼트, 스태틱 다이나믹 메쉬, 및/또는 어트리뷰트 맵을 수신할 수 있다. 인코더는 메쉬 관련 데이터를 인코딩하여 압축된 비트스트림을 생성할 수 있다.
도4는 실시예들에 따른 V-MESH 압축의 프리-프로세싱을 나타낸다.
도4는 도3의 프리-프로세서의 구성 및 동작을 나타낸다.
도3은 입력 메쉬(mesh)에 대해 전처리를 수행하는 과정을 보여준다. 전처리 과정(200)은 크게 4단계로, 1) GoF (Group of Frame) 생성(generation), 2) 메쉬 단순화(Mesh Decimation), 3) UV 파라미터제이션(parameterization), 4) 피팅 서브디비전 서페이스(Fitting subdivision surface, 300)를 포함할 수 있다. 프리-프로세서(200)은 입력 메쉬를 수신하고 디스플레이스먼트 및/또는 베이스 메쉬를 생성하여, 인코더(201)로 전달할 수 있다. 프리-프로세서(200)는 GoF생성과 연관된 GoF정보를 인코더(201)로 전달할 수 있다.
이하에서, 도4의 각 단계를 설명한다.
GoF 제너레이션(Generation): 메쉬(Mesh) 데이터의 참조 구조를 생성하는 과정이다. 이전 프레임의 메쉬(mesh)와 현재 메쉬(mesh)의 정점 개수, 텍스처 좌표 개수, 정점 연결 정보, 텍스처 좌표 연결 정보가 모두 동일한 경우에는 이전 프레임을 참조 프레임으로 설정할 수 있다. 즉, 현재 입력 메쉬(Input mesh)와 참조 입력 메쉬(Input mesh)간 정점 좌표 값만 다른 경우에는 인터 프레임 인코딩(inter frame encoding)을 수행할 수 있다. 그렇지 않으면 해당 프레임은 인트라 프레임 인코딩(Intra frame encoding)을 수행한다.
메쉬 단순화(Mesh Decimation): 입력 메쉬(Input mesh)를 단순화시켜 간략화된 메쉬(mesh), 즉 베이스 메쉬(Base mesh)를 생성하는 과정이다. 원본 메쉬(mesh)에서 사용자가 정의한 기준에 따라 제거할 정점을 선택한 후, 선택된 정점 및 선택된 정점과 연결된 삼각형들을 제거할 수 있다.
메쉬 단순화(Mesh decimation)를 수행하는 과정에서 복셀화된 입력 메쉬(Input mesh (voxelized)), 타겟 트라이앵글 비율(Target triangle ratio (TTR)), 미니멈 트라이앵글 컴포넌트(Minimum triangle component (CCCount))정보가 입력으로 전달되고, 출력으로 단순화된 메쉬(Decimated mesh)를 구할 수 있다. 이 과정에서 설정된 미니멈 트라이앵글 컴포넌트(CCCount)보다 작은 연결된 트라이앵글 컴포넌트(connected triangle components)를 제거할 수 있다.
UV 파라미터제이션(parameterization): 단순화된 메쉬(Decimated mesh)에 대해 3D 곡면을 텍스쳐 도메인(Texture domain)으로 매핑하는 과정이다. UV아틀라스 툴(UVAtlas tool)을 사용하여 파라미터제이션(Parameterization)을 수행할 수 있다. 이 과정을 통해 단순화된 메쉬(Decimated mesh)의 각 정점들이 2D 이미지 상의 어느 위치로 매핑될 수 있는지 매핑 정보가 생성된다. 매핑 정보는 텍스처 좌표로 표현되어 저장되며, 이 과정을 통해 최종 베이스 메쉬(Base mesh)가 생성된다.
orthoAtlas 기술은 직교 투영 (orthographic projection)을 사용하여 텍스처 좌표를 생성하는 기술이다. orthoAtlas 기술은 패치를 생성하는 과정과 패치를 패킹하는 과정이 순차적으로 수행된다. 먼저 인접한 삼각형끼리 분할하여 Connected Component (CC)를 생성한 후, 비용 함수를 통해 최적의 CC를 병합하여 패치를 생성하는 과정이 수행된다. 비용 함수는 각 방향으로 패치를 직교 투영할 때 발생하는 왜곡 정도를 기준으로 비용을 측정할 수 있다. 비용 함수가 최소가 되는 패치를 텍스처 도메인에 패킹시킴으로써 최종적으로 텍스처 좌표를 계산할 수 있다. orthoAtlas 기술인 경우, 베이스 메쉬 부호화 과정에서 텍스처 좌표 및 텍스처 연결 정보를 압축하지 않고, 베이스 메쉬 복호화기에서 텍스처 좌표를 유도할 수 있다.
핏팅 서브디비전 서페이스(Fitting subdivision surface): 단순화된 메쉬(Decimated mesh)에 대해 세분화(Subdivision)를 수행하는 과정이다. 서브디비전(Subdivision) 방법으로 미드-엣지(Mid-edge) 방식 등 사용자가 정한 방법이 적용될 수 있다. 입력 메쉬(Input mesh)와 서브디비전(Subdivision)을 수행한 메쉬(mesh) 간 서로 유사해지도록 핏팅(fitting)을 하는 과정이 수행된다.
베이스메쉬에 세분화(Subdivision)를 수행한 메쉬(mesh)가 입력 메쉬의 표면과 서로 유사해지도록 핏팅(fitting)을 수행하는 과정이다. 세분화 방법으로는 미드-엣지(Mid-edge) 방식 (도5), Loop 방식, LS3 방식 등 사용자가 정한 방법이 적용될 수 있다.
도5는 실시예들에 따른 미드-엣지 서브디비전 방식을 나타낸다.
도5는 도4에서 설명한 핏팅 서브디비전 서페이스의 미드-엣지(Mid-edge) 방식을 나타낸다. 도5를 참조하면, 버텍스 4개를 포함하는 오리지널 메쉬가 서브디비전되어 서브-메쉬가 생성된다. 버텍스 간 엣지의 중간을 새로운 버텍스로 생성하여 서브 메쉬를 생성할 수 있다.
핏팅(Fitting)된 서브디비전된 메쉬(subdivided mesh) (이하, 핏팅 서브디비전된 메쉬(fitted subdivided mesh))가 생성되면 이 결과와 미리 압축 및 복호화된 베이스 메쉬(Base mesh) (이하, 복원된 베이스 메쉬(reconstructed base mesh))를 이용하여 디스플레이스먼트(Displacement)가 계산된다. 즉, 복원된 베이스 메쉬(Reconstructed base mesh)는 핏팅 서브디비전 서페이스(Fitting subdivision surface)의 방법과 동일하게 서브디비전(Subdivision)된다. 이 결과와 핏팅 서브디비전된 메쉬(Fitted subdivided mesh)의 각 정점 별 위치 차이는 곧 각 정점에 대한 디스플레이스먼트(Displacement)가 된다. 디스플레이스먼트(Displacement)는 3차원 공간 상의 위치 차이를 나타내기 때문에 역시 데카르트(Cartesian) 좌표계의 (x, y, z) 공간에서의 값으로 표현된다. 사용자 입력 파라미터에 따라 (x, y, z) 좌표값은 로컬 좌표 시스템(Local coordinate system)의 (노멀, 탄젠셜, 바이-탄젠셜((normal, tangential, bi-tangential)) 좌표값으로 변환될 수 있다.
도6은 실시예들에 따른 디스플레이스먼트 생성 과정을 나타낸다.
도6은 도5에서 설명한 바와 같이, 핏팅 서브디비전 서페이스(Fitting subdivision surface, 300)의 디스플레이스먼트 계산 방식을 상세히 나타낸다.
실시예들에 따른 인코더 및/또는 프리-프로세서는 1) 서브디비전부, 2) 로컬 좌표 시스템 계산부, 3) 디스플레이스먼트 계산부를 포함할 수 있다. 서브디비전부는 복원된 베이스 메쉬를 수신하고, 서브디비전된 복원된 베이스 메쉬를 생성할 수 있다. 로컬 좌표 시스템 계산부는 핏팅된 서브디비전된 메쉬 및 서브디비전된 복원된 베이스 메쉬를 수신하고, 메쉬에 관한 좌표 시스템을 로컬 좌표 시스템으로 변환할 수 있다. 로컬 좌표 시스템 계산 동작은 선택적일 수 있다. 디스플레이스먼트 계산부는 핏팅된 서브디비전 메쉬 및 서브디비전된 복원된 베이스 메쉬 간 위치 차이를 계산한다. 예를 들어, 입력한 두 가지 메쉬의 정점 간 위치 차이 값을 생성할 수 있다. 정점 위치 차이값이 디스플레이스먼트가 된다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법 및 장치는 포인트 클라우드를 다음과 같이 인코딩할 수 있다. 실시예들에 따른 포인트 클라우드 데이터(줄여서 포인트 클라우드로 지칭 가능함)는 정점 좌표 및 색상 정보를 포함하는 데이터를 지칭할 수 있다. 포인트 클라우드는 메쉬 데이터를 포함하는 용어이고, 본 문서에서 포인트 클라우드 및 메쉬 데이터는 서로 혼용되어 사용될 수 있다.
실시예들에 따른 V-Mesh 압축(복원) 방법은 인트라 프레임 인코딩(Intra frame encoding) (도6)과 인터 프레임 인코딩(Inter frame encoding) (도7)을 포함할 수 있다.
전술한 GoF 제너레이션의 결과를 바탕으로 인트라 프레임 인코딩(Intra frame encoding) 혹은 인터 프레임 인코딩(Inter frame encoding)이 수행된다. 인트라 인코딩(Intra encoding)인 경우 압축 대상 데이터는 베이스 메쉬(Base mesh), 디스플레이스먼트(Displacement), 어트리뷰트 맵(Attribute map) 등이 될 수 있다. 인터 인코딩(Inter encoding)인 경우 압축 대상 데이터는 디스플레이스먼트(Displacement), 어트리뷰트 맵(Attribute map), 그리고 참조 베이스 메쉬(base mesh)와 현재 베이스 메쉬(base mesh) 간의 모션 필드(motion field) 등이 될 수 있다.
도7은 실시예들에 따른 V-DMC 인코딩 과정을 나타낸다.
도7의 인코딩 프로세스는 도1내지 도2의 인코딩을 상세하게 나타낸다.
프리-프로세서는 입력 메쉬를 수신하고, 전술한 전처리를 수행할 수 있다. 전처리를 통해 베이스 메쉬 및/또는 핏팅된 서브디비전된 메쉬를 생성할 수 있다. 양자화기는 베이스 메쉬 및/또는 핏팅된 서브디비전된 메쉬를 양자화할 수 있다. 스태틱 메쉬 인코더는 스태틱 메쉬를 인코딩할 수 있다. 스태틱 메쉬 인코더는 부호화된 베이스 메쉬를 포함하는 비트스트림을 생성할 수 있다. 모션 인코더는 인터 프레딕션을 위해, 프레임 간 움직임 추정 및 움직임 보상에 기반하여 베이스 메쉬에 대한 움직임 벡터를 부호화할 수 있다. 아틀라스 인코더는 베이스 메쉬의 정점에 대한 아틀라스를 부호화할 수 있다. 부호화된 베이스메쉬를 복원하여, 역양자화기를 통해 역으로 양자화할 수 있다. 디스플레이스먼트 계산부는 복원된 메쉬를 수신하고, 핏팅된 서브디비전된 메쉬에 기초하여, 위치 차이인 디스플레이스먼트를 생성할 수 있다. 리프팅 변홥누는 디스플레이스먼트를 수신하여 리프팅 계수를 생성할 수 있다. 양자화기는 리프팅 계수를 양자화할 수 있다. 부호화 방식에 따라, 이미지 패킹부는 양자화된 리프팅 계수에 기초하여 이미지를 패킹할 수 있다. 비디오 인코더는 패킹된 이미지를 부호화할 수 있다. 부호화 방식에 따라, 양자화된 리프팅 계수에 대한 인터 프레딕션을 적용하고, 예측된 리프팅 계수를 산술 부호화 방식에 따라 부호화할 수 있다. 메쉬 복워부는 복원된 디스플레이스먼트를 및 복원된 베이스 메쉬를 통해 변형된 메쉬를 복원한다. 변위 데이터는 복원되고, 복원된 변위 데이터 및 복원된 베이스메쉬에 기초하여 변형된 메쉬를 복원하여 어트리뷰트 트랜스퍼에 제공된다. 어트리뷰트 트랜스퍼는 입력 메쉬 및/또는 입력 어트리뷰트 맵을 수신하고, 복원된 변형된 메쉬에 기초하여 어트리뷰트 맵을 생성한다. 푸쉬-풀 패딩은 푸쉬-풀 방식에 기초하여 어트리뷰트 맵에 데이터를 패딩할 수 있다. 컬러 스페이스 변환부는 어트리뷰트인 컬러 성분의 스페이스를 변환할 수 있다. 비디오 인코더는 어트리뷰트를 인코딩할 수 있다. 멀티플렉서는 압축된 베이스 메쉬, 압축된 디스플레이스먼트, 압축된 어트리뷰트를 멀티플렉싱하여 비트스트림을 생성할 수 있다.
베이스메쉬 인코딩: 베이스 메쉬 압축 방법은 베이스 메쉬 타입에 따라 INTRA type, INTER type, SKIP type으로 나누어 각각 다른 방식으로 부호화가 수행될 수 있다. 베이스 메쉬가 INTRA 타입인 경우, 정적 메쉬 부호화 방식을 통해 부호화될 수 있다. 베이스 메쉬가 INTER 타입인 경우, 참조 base mesh와 현재 base mesh 간의 motion field를 부호화할 수 있다. 현재 베이스 메쉬가 SKIP 타입인 경우, 참조 베이스 메쉬를 현재 베이스 메쉬로 유도할 수 있다.
부호화기에서 부호화된 후, 기복호화된 베이스 메쉬는 세분화 과정을 통해 세분화된 메쉬를 구할 수 있다. 세분화 알고리즘은 mid-point subdivision, loop subdivision 등의 알고리즘이 사용될 수 있다.
스태틱 베이스메쉬 인코딩(인트라 베이스메쉬 인코딩): 현재 basemesh에 대해 Intra encoding을 수행하는 경우, 전처리 과정에서 생성된 Base mesh는 양자화 과정을 거친 후 정적 Mesh 압축 기술을 사용하여 부호화될 수 있다. 정적 메쉬 압축은 MPEG EdgeBreaker (MEB) 기술이 적용되고, Base mesh의 정점 위치 정보, 매핑 정보(텍스처 좌표), 정점 연결 정보, normal (법선) 등이 압축 대상이 된다.
연결 정보를 압축하는 기술은 edgebreaker 알고리즘을 기반으로 부호화할 수 있다. edgebreaker 알고리즘은 규칙에 따라 삼각형을 순차적으로 순회하면서 각 삼각형의 특성에 따라 심볼을 매핑시킨 후, 해당 심볼을 부호화하는 기술이다.
정점 위치 정보를 압축하는 기술은 다중 평행사변형 예측 (multiple parallelogram)과 같은 예측 기술을 기반으로 예측 값을 구한 후, 현재 정점과 예측 값 간의 차이인 잔차 값이 부호화할 수 있다.
매핑 정보 (텍스처 좌표)를 압축하는 기술은 stretch와 같은 예측 기술을 기반으로 예측 값을 구한 후, 현재 매핑 정보 (텍스처 좌표)와 예측 값 간의 차이인 잔차 값을 부호화할 수 있다.
법선을 압축하는 기술은 델타 코딩 (delta coding), 다중 평행사변형 예측 (multiple parallelogram), cross product 기반 예측과 같은 예측 기술을 기반으로 예측 값을 구한 후, 현재 법선과 예측 값 간의 차이인 잔차 값을 부호화할 수 있다.
모션 필드 인코딩(인터 베이스메쉬 인코딩): Inter basemesh encoding은 참조 메쉬(Mesh)와 현재 입력 메쉬(Input mesh) 간 일대일 대응 관계가 성립되고, 정점의 위치 정보만 다를 경우에 수행될 수 있다. Inter encoding을 수행하는 경우에는, Base mesh를 압축하는 대신 참조 Base mesh와 현재 Base mesh의 정점 간 차이, 즉 모션 필드(motion field)를 계산하여 이 정보를 부호화할 수 있다. 참조 Base mesh는 이미 복호화 된 Base mesh 데이터를 양자화 한 결과이며 참조 프레임 인덱스에 따라 결정된다.
모션 필드(Motion field)는 값 그대로 부호화 될 수도 있고 또는, 현재 정점과 연결된 정점들 중 복원된 정점들의 Motion field를 평균하여 예측된 모션 필드(Predicted motion field)를 계산하고, 이 Predicted motion field 값과 현재 정점의 Motion field 값의 차이인 잔차 모션 필드(Residual motion field)가 부호화 될 수도 있다. 이 값은 Entropy coding을 이용하여 부호화될 수 있다.
변위 인코딩: Base mesh 부호화 후 복원 및 역양자화를 거쳐 Recon. base mesh가 생성되고 이에 대해 Subdivision을 수행한 결과와, Fitted subdivided mesh 간의 Displacement를 계산할 수 있다. 효과적인 부호화를 위해 Wavelet transform과 같은 Data transform 과정이 Displacement 정보에 적용될 수 있으며, Figure 7은 V-Mesh에서 Lifting transform을 사용하여 Displacement 정보를 변환하는 과정을 보여준다. 변환 과정을 거쳐 생성된 변환 계수들은 양자화를 수행한 후, 양자화된 변환 계수들은 압축 방법에 따라 비디오 코덱을 통해 압축될 수도 있고, 산술 부호화를 통해 압축될 수도 있다.
비디오 코덱을 통해 압축되는 경우, Figure 8에서와 같이 2D 이미지에 패킹 (Packing)된다. 변환 계수들은 N^2(N*N)개 단위마다 하나의 블록으로 구성되고, 각 블록은 z-scan order로 패킹 될 수 있다. 블록의 가로 개수는 N개로 고정하되, 블록의 세로 개수는 Subdivided base mesh의 정점 개수에 따라 결정될 수 있다. 하나의 블록 내에서는 Morton code로 정렬하여 변환 계수를 패킹 할 수 있다. 패킹 된 이미지들은 GoF 단위마다 Displacement video를 생성, 이 Displacement video는 기존의 비디오 압축 코덱을 이용하여 부호화 할 수 있다.
산술 부호화를 통해 압축되는 경우, 양자화된 변위 벡터 변환 계수에 대해 화면 간 예측이 수행될 수 있다. 현재 양자화된 변위 벡터 변환 계수에 화면 간 예측이 수행되는 경우, 현재 변위 벡터 변환 계수와 참조 변위 벡터 변환 계수 간 차이인 잔차 값을 부호화할 수 있고, 참조 대상에 대한 정보를 부호화할 수 있다. 변위 벡터 타입에 따라 INTRA 타입인 경우, 양자화된 변위 벡터 변환 계수를, INTER 타입인 경우, 잔차값을 산술 부호화할 수 있다. 산술 부호화 시, 문맥 적응형 이진 산술 부호화 (CABAC, Context Adaptive Binary Arithmetic Coding)를 기반으로 수행될 수 있다. CABAC 프로세스는 먼저 변위 벡터 데이터를 이진화하여 bin string에 매핑시킬 수 있다. Bin string은 0과 1로 이진화된 출력일 수 있고, 각 0 또는 1은 bin일 수 있다. 각 bin은 context model (문맥 모델)에서 선택된 context 정보를 이용하여 산술 부호화할 수 있고, 확률을 업데이트하는 과정이 수행될 수 있다
도8은 실시예들에 따른 디스플레이스먼트에 대한 리프팅 변환 과정을 나타낸다.
도9는 실시예들에 따른 변환 계수를 2D 이미지에 패킹하는 과정을 나타낸다.
도8-9는 도7의 인코딩 프로세스의 디스플레이스먼트를 변환하는 과정 및 변환 계수를 패킹하는 과정을 각각 나타낸다.
실시예들에 따른 인코딩 방법은 디스플레이스먼트 인코딩(Displacement encoding)을 포함한다.
베이스 메쉬 인코딩 및/또는 모션 필드 인코딩을 통해 베이스 메쉬(Base mesh) 부호화 후 복원 및 역양자화를 거쳐 복원된 베이스 메쉬(Recon. base mesh)가 생성되고 이에 대해 서브디비전(Subdivision)을 수행한 결과와, 핏팅 서브디비전 서페이스를 통해 생성된 핏팅된 서브디비전된 메쉬(Fitted subdivided mesh)간의 디스플레이스먼트(Displacement)를 계산할 수 있다. 효과적인 부호화를 위해 웨이브릿 변환(Wavelet transform)과 같은 데이터 변환(Data transform) 과정이 디스플레이스먼트(Displacement) 정보에 적용될 수 있다.
도8은 V-Mesh에서 리프팅 변환(Lifting transform)을 사용하여 디스플레이스먼트(Displacement) 정보를 변환하는 과정을 보여준다. 변환 과정을 거쳐 생성된 변환 계수들은 양자화 후, 도9에서와 같이 2D 이미지에 패킹 (Packing)된다. 변환 계수들은 256 (=16×16)개 단위마다 하나의 블록으로 구성되고, 각 블록은 z스캔 순서(z-scan order)로 패킹될 수 있다. 블록의 가로 개수는 16개로 고정하되, 블록의 세로 개수는 서브디비전된 베이스 메쉬(Subdivided base mesh)의 정점 개수에 따라 결정될 수 있다. 하나의 블록 내에서 몰톤 코드(Morton code)로 정렬하여 변환 계수를 패킹할 수 있다. 패킹 된 이미지들은 GoF 단위마다 디스플레이스먼트 비디오(Displacement video)를 생성하고, 이 디스플레이스먼트 비디오(Displacement video)를 기존의 비디오 압축 코덱을 이용하여 부호화할 수 있다.
도8을 참조하면, 베이스 메쉬(original)는 LoD0에 대한 버텍스 및 엣지를 포함할 수 있다. 베이스 메쉬를 분할하여 생성된 제1서브디비전 메쉬는 베이스 메쉬의 엣지를 추가분할하여 생성된 버텍스를 포함한다. 제1서브디비전 메쉬는 LoD0에 대한 버텍스 및 LoD1에 대한 버텍스를 포함한다. LoD1은 서브디비전된 버텍스 및 베이스 메쉬의 버텍스(LoD0)를 포함한다. 제1서브디비전 메쉬를 분할하여 제2서브디비전 메쉬를 생성할 수 있다 제2서브디비전 메쉬는 LoD2를 포함한다. LoD2는 베이스 메쉬 버텍스(LoD0), LoD0에서 추가로 생성된 버텍스를 포함하는 LoD1, LoD1에서 추가로 분할된 버텍스를 포함한다. LoD는 상세한 정도를 나타내는 레벨(Level of Detail)이고, 레벨의 인덱스가 커질수록 버텍스 간 거리는 가까워지고, 상세도 레벨은 증가한다. LoD N는 이전 LoDN-1에 포함된 버텍스를 그대로 포함한다. 서브디비전을 통해 버텍스가 추가로 분할되는 경우, 이전 버텍스v1, v2 및 서브디비전된 버텍스v를 고려하면, 메쉬를 예측 및/또는 업데이트 방식에 기초하여 인코딩할 수 있다. 현재 LoD N에 대한 정보를 그래도 부호화하는 대신에 이전 LoD N-1 간 잔차값(Residual)을 생성하여 잔차값을 통해 메쉬를 부호화하여 비트스트림의 사이즈를 줄일 수 있다. 프레딕션 프로세스는 이전 버텍스v1, v2를 통해서 현재 버텍스v를 예측하는 동작을 의미한다. 인접한 서브디비전 메쉬 간 서로 유사한 데이터를 가지기 때문에 이러한 속성을 이용하여 효율적인 부호화를 할 수 있다 현재 버텍스 위치 정보를 이전 버텍스 위치 정보에 대한 잔차로 예측하고, 잔차를 통해 이전 베텍 위치 정보를 업데이트한다.
도9를 참조하면, 버텍스는 리프팅 변환을 통해 생성된 계수를 가진다. 리프팅 변환 관련 버텍스의 계수를 이미지에 패킹하여 부호화할 수 있다.
도10은 실시예들에 따른 V-MESH 압축 방법의 어트리뷰트 트랜스퍼 과정을 나타낸다.
도10은 도7의 인코딩의 어트리뷰트 트랜스퍼의 상세 동작을 나타낸다.
실시예들에 따른 인코딩은 어트리뷰트 맵 인코딩(Attribute map encoding)을 포함한다.
베이스 메쉬 인코딩, 모션 필드 인코딩, 디스플레이스먼트 인코딩을 통해 입력 메쉬(Input mesh)에 대한 정보를 압축한다. 인코딩(Encoding) 과정에서 압축된 입력 메쉬(Input mesh)는 베이스 메쉬 디코딩(인트라 프레임)(Base mesh decoding (Intra frame)), 모션 필드 인코딩(인터 프레임))(Motion field decoding (Inter frame)), 디스플레이스먼트 비디오 디코딩(Displacement video decoding) 과정을 거쳐 복원되며, 그 복원된 결과인 복원된 변형된 메쉬(Reconstructed deformed mesh) (이하 Recon. deformed mesh로 표현)는 도6 및 도7과 같이 입력 어트리뷰트 맵(Input attribute map)을 압축하는 데에 사용된다. 복원된 변형된 메쉬(Recon. deformed mesh)는 정점의 위치 정보와 텍스처 좌표, 그에 대응하는 연결 정보는 갖고 있지만 텍스처 좌표에 대응하는 색상 정보는 갖고 있지 않은 상태이다. 따라서 도10과 같이, V-Mesh 압축 방법에서 어트리뷰트 트랜스퍼(Attribute transfer) 과정을 통해, 복원된 변형된 메쉬(Recon. deformed mesh)의 텍스처 좌표에 상응하는 색상 정보를 갖는 새로운 어트리뷰트 맵(Attribute map)을 생성한다.
어트리뷰트 트랜스퍼(Attribute transfer)는 먼저 2D 텍스쳐 도메인(Texture domain)의 모든 포인트 P(u, v) 에 대해 해당 점이 복원된 변형된 메쉬(Recon. deformed mesh)의 텍스쳐 트라이앵글(texture triangle) 안에 속해 있는지 확인하고, 텍스쳐 트라이앵글 T(texture triangle T) 안에 존재한다면 그 트라이앵글 T(triangle T)에 따른 P(u, v)의 질량중심 좌표 (barycentric coordinate) (α, β γ)를 계산한다. 그리고 트라이앵글 T(triangle T)의 3D 정점 위치와 (α, β γ)를 사용하여 P(u, v)의 3D 좌표 M(x, y, z)를 계산한다. 입력 메쉬 도메인(Input mesh domain)에서 계산된 M(x, y, z)와 가장 유사한 위치에 해당하는 정점 좌표 M'(x', y', z')과 이 점을 포함하는 triangle T' 을 찾는다. 그리고 이 triangle T' 에서 M'(x', y', z')의 질량중심 좌표 (α', β', γ')을 계산한다. Triangle T' 의 세 정점에 대응하는 텍스처 좌표들과 (α', β', γ') 을 이용하여 텍스처 좌표 (u', v')를 계산하고, 이 좌표에 해당하는 색상 정보를 입력 어트리뷰트 맵(Input attribute map)에서 찾는다. 이렇게 찾아진 색상 정보는 곧 새로운 어트리뷰트 맵(Input attribute map)의 (u, v) 픽셀 위치에 할당된다. 만약 P(u, v)가 어느 트라이앵글(triangle)에도 속하지 않는다면 새로운 어트리뷰트 맵(Input attribute map)에서 해당 위치 픽셀은 푸쉬-풀 알고리즘(Push-Pull algorithm)과 같이 패딩 알고리즘(padding algorithm)을 이용하여 색상 값이 채워질 수 있다.
어트리뷰트 트랜스퍼(Attribute transfer)를 통해 생성된 새로운 어트리뷰트 맵(Attribute map)은 GoF 단위로 묶여 어트리뷰트 맵 비디오(Attribute map video)를 구성하고, 이것은 비디오 코덱을 이용하여 압축된다.
아틀라스 인코딩: 전술한 과정에서 아틀라스(Atlas) 정보가 전송될 수 있다. Atlas는 mesh 디코딩 또는/그리고 렌더링 과정에서 필요한 정보들로 구성되어 있고, subdivision, displacement decoding, base mesh decoding 등을 수행하는 과정에서 필요한 정보, tile 정보, patch 정보 등의 정보를 포함할 수 있다. Atlas 데이터는 Exp-Golomb coding 등으로 부호화될 수 있다.
도10을 참조하면, 입력 메쉬, 입력 어트리뷰트 맵, 복원된 메쉬, 생성된 어트리뷰트 맵 간 참조 관계를 알 수 있다.
도1의 디코딩 프로세싱(Decoding process)은 도1의 인코딩 프로세스의 대응하는 과정의 역과정을 수행할 수 잇다. 구체적 디코딩 프로세스는 다음과 같다.
도11은 실시예들에 따른 VV-DMC 디코딩 프로세스를 나타낸다.
도11은 도1등의 수신 장치의 디코더의 구성 및 동작을 나타낸다.
입력 비트스트림은 베이스메쉬 서브비트스트림(Basemesh sub-stream), 변위 서브비트스트림(Displacement sub-stream), 어트리뷰트 맵 서브비트스트림(Attribute map sub-stream) 그리고 아트라스 서브비스트스트림(Atlas sub-stream) 등으로 분리될 수 있다.
Atlas sub-stream은 Exp-Golomb coding 등을 통해 복호화될 수 있고, 그 결과 디코딩을 수행하기 위해 필요한 정보, 타일(tile) 정보, 패치(patch) 정보 등을 구할 수 있다.
Basemesh sub-stream은 basemesh 타입에 따라 INTRA 타입인 경우, MEB(MPEG EdgeBreaker) 기술을 기반으로 정적 메쉬 디코더를 통해 복호화될 수 있고, 그 결과 Base mesh의 연결 정보, 정점 기하정보, 정점 매핑 정보(텍스처 좌표) 등을 복원할 수 있다.
부호화기에서 텍스쳐 파라미터화(texture parameterization) 방법이 orthoAtlas인 경우, 복호화기에서 정점 좌표를 사용하여 매핑정보(텍스처 좌표)와 속성 정보(텍스처) 연결 정보를 유도할 수 있다. 매핑정보(텍스처 좌표) 및 연결 정보를 유도하는 과정은 각 페이스(face)의 호모그래피 변환(Homography transform)을 계산한 후, 이를 기반으로 정점을 투영시키는 과정을 통해 매핑정보(텍스처 좌표) 및 속성정보(텍스처) 연결 정보를 생성할 수 있다.
Basemesh 타입이 INTER 타입인 경우, Entropy decoding과 Inverse prediction 과정을 통해 motion정보를 복호화할 수 있다. 복원된 Motion 정보는 이미 복원되어 버퍼에 저장되어 있는 참조 Base mesh와 결합하여 현재 프레임에 대한 Reconstructed quantized base mesh를 생성한다. 복원된 Base mesh에는 inverse quantization 과정이 수행될 수 있다.
Displacement sub-stream은 Encoding에서 사용한 압축 방법에 따라 비디오 코덱을 통해 압축된경우, 비디오 압축 코덱의 디코더를 통해 Displacement video로 복호화 된 후, Image unpacking 과정이 수행된다.
산술 코딩을 통해 압축된 경우, 변위 벡터 비트스트림은 산술 복호화를 통해 이진화된 신택스 요소를 복호화할 수 있고, 신택스 요소의 각 bin에 따라 적응적으로 컨텍스트 확률 모델 (CPM, Contextual Probability Model)이 결정될 수 있고, CPM을 통해 bin의 발생 확률을 예측하여 산술 복호화를 수행할 수 있다. 이진화된 신택스 요소는 역 이진화를 통해 복호화될 수 있다. 복호화된 신택스 요소로 양자화된 변위 벡터 변환 계수를 유도할 수 있다. 변위 정보 타입에 따라 INTER 인 경우, (inter prediction이 수행된 경우) 양자화된 displacement coefficient에 대해 참조 정보를 사용하여 inverse inter prediction 과정이 수행된다.
양자화된 displacement coefficient는 Inverse quantization, Inverse transform, 좌표계 변환 과정을 거쳐 각 정점에 대한 Displacement 정보로 복원된다.
복원된 Base mesh와 복원된 Displacement 정보가 결합되어 최종 Decoded mesh를 생성한다. Attribute map sub-stream은 Encoding에서 사용한 비디오 압축 코덱의 디코더를 통해 복호화된 후, 색상 포맷 변환 등의 과정을 거쳐 최종적인 Attribute map으로 복원된다.
복원된 Decoded mesh와 Decoded attribute map은 사용자가 활용할 수 있는 최종적인 Mesh data로써 수신단에서 활용될 수 있다.
아틀라스 디코더는 비트스트림 내 아틀라스 데이터를 복호화한다.
모션 디코더는 비트스트림 내 메쉬 데이터가 인터 프레딕션에 기반하여 부호화된 경우, 참조 프레임 내 베이스메쉬에 기반하여, 현재 프레임의 베이스메쉬의 모션 필드를 움직임 추정 및 보상을 통해 유도한다. 스새틱 디코더는 비트스트림 내 메쉬 데이터가 인트라 프레딕션에 기반하여 부호화된 경우, 베이스메쉬를 복호화한다. 부호화 방식에 따라서, 산술부호화 디코딩 또는 비디오 디코딩 방식을 적용하여 변위 데이터를 복호화한다. 비디오 디코더는 비트스트림 내 어트리뷰트 데이터를 복호화한다.
도11 디코딩 방식은 실시예들에 따른 인코딩 방식의 역과정을 따를 수 있다.
도12는 실시예들에 따른 V-DMC 인코딩 프로세스를 나타낸다.
도12는 도1내지 도2등의 송신 장치의 인코더의 구성 및 동작을 나타낸다. 도12 각 구성요소는 하드웨어, 소프트웨어, 프로세서, 및/또는 그것들의 조합에 대응한다.
도12는 V-Mesh 기술의 인코딩 과정을 보여준다.
메쉬 전처리부에서는 원본 메쉬를 입력받아 단순화된 메쉬 (Decimated mesh)를 생성한다. 단순화는 메쉬를 구성하는 타겟 정점 개수 또는 타겟 다각형 개수를 기준으로 수행할 수 있다. 단순화된 메쉬에 대해 정점 당 매핑정보 (텍스처 좌표) 및 속성정보 (텍스처) 연결정보를 생성하는 매개변수화 (parameterization)가 수행될 수 있다. 또한 부동 소수점 형태의 메쉬 정보들을 고정 소수점 형태로 양자화하는 작업을 수행할 수 있다. 이 결과는 베이스 메쉬로서 정적 메쉬 부호화부를 통해 부호화될 수 있다. 메쉬 전처리부에서는 베이스 메쉬에 대해 메쉬 세분화 (Subdivision)를 수행하여 추가적인 정점을 생성할 수 있다. 세분화 방법에 따라 추가된 정점들을 포함하는 정점 연결 정보, 텍스처 좌표 및 텍스처 좌표의 연결 정보들이 생성될 수 있다. 세분화된 메쉬는 원본 메쉬와 유사해지도록 정점 위치 조정을 통해 피팅 (Fitting)되어 피팅된 세분 메쉬 (Fitted subdivided mesh)를 생성할 수 있다.
메쉬 전처리부를 통해 생성된 베이스 메쉬는 베이스 메쉬 타입에 따라 화면내 부호화 (Intra encoding) 또는 화면간 부호화 (Inter encoding)를 수행할 수 있다. 베이스 메쉬 프레임이 화면내 부호화 (Intra encoding)을 수행하는 경우, 정적 메쉬 부호화부를 통해 압축될 수 있다. 이 경우 베이스 메쉬의 연결 정보, 정점 기하정보, 정점 텍스처 정보, 노말 정보 등에 대해 부호화를 수행할 수 있다. 베이스 메쉬 프레임이 화면간 부호화를 수행하는 경우, 움직임 벡터 부호화부가 수행되는데, 베이스 메쉬와 참조 복원 베이스 메쉬를 입력으로 하여 두 메쉬 간의 움직임 벡터를 계산하고 그 값을 부호화할 수 있다. 움직임 벡터 부호화부는 이전에 부/복호화 된 움직임 벡터를 예측자로 사용하여 연결 정보 기반의 예측을 수행하고, 현재 움직임 벡터에서 예측 움직임 벡터를 뺀 잔차 움직임 벡터를 부호화할 수 있다. 베이스 메쉬 부호화부를 통해 생성된 베이스 메쉬 비트스트림은 다중화부로 전송된다.
부호화 된 베이스 메쉬 비트스트림은 베이스 메쉬 복원부를 통해 복원 베이스 메쉬를 생성할 수 있다.
변위 벡터 계산부에서는 복원된 베이스 메쉬에 대해서 메쉬 세분화를 수행할 수 있다. 변위 벡터는 세분화된 복원 베이스 메쉬와 전처리부에서 생성된 피팅된 세분 메쉬 간의 정점 위치 차이값으로 계산될 수 있다. 그 결과 세분화된 메쉬의 정점 개수만큼 변위 벡터가 계산될 수 있다. 변위 벡터 계산부에서는 3차원 Cartesian 좌표계에서 계산된 변위 벡터를 각 정점의 노말 (Normal) 벡터를 기반으로 한 Local 좌표계로 변환할 수 있다.
변위 벡터 처리부에서는 효과적인 부호화를 위해 변위 벡터를 변환 (Transform)할 수 있다. 변환은 실시예에 따라 Lifting 변환, Wavelet 변환 등이 수행될 수 있다. 또한 변환된 변위 벡터 값, 곧 변환 계수에 대해 양자화를 수행할 수 있다. 변환 계수의 각 축마다 다른 양자화 파라미터를 적용할 수 있으며, 부/복호화기의 약속에 의해 양자화 파라미터를 유도할 수 있다. 변위 벡터 처리부에서 계산된 양자화된 변위 벡터 변환 계수는 압축 방법에 따라 변위 벡터 비디오 부호화부 또는 변위 벡터 산술 부호화부를 통해 부호화될 수 있다.
변위 벡터 비디오 부호화부에서는 변환 및 양자화를 거친 변위 벡터 정보들을 2D 이미지로 패킹 (Packing)할 수 있다. 매 프레임마다 패킹된 2D 이미지들을 묶어 변위 벡터 비디오를 생성할 수 있고, 변위 벡터 비디오는 입력 메쉬의 GoF (Group of Frame) 단위마다 생성될 수 있다. 생성된 변위 벡터 비디오를 비디오 압축 코덱을 이용하여 부호화할 수 있다. 생성된 변위 벡터 비디오 비트스트림은 다중화부로 전송된다.
변위 벡터 산술부호화부에서는 양자화된 변위 벡터 변환 계수에 대해 변위 벡터 타입에 따라 INTER 타입인 경우, 화면 간 예측을 수행할 수 있다. 화면 간 예측 과정은 현재 변환 계수와 참조 변환 계수의 차이인 잔차값을 구하는 과정일 수 있다. 변위 벡터 변환 계수 또는 잔차값을 산술 부호화 과정을 통해 부호화할 수 있다.
변위 벡터 복원부를 통해 복원된 변위 벡터와 베이스 메쉬 복원부를 통해 복원되어 세분화를 거친 베이스 메쉬는 메쉬 복원부를 통해 복원되며, 복원된 메쉬는 복원된 정점, 정점 간 연결 정보, 텍스처 좌표 및 텍스처 좌표 간 연결 정보 등을 갖고 있다.
원본 메쉬의 속성정보 (텍스처 맵)은 속성정보 (텍스처 맵) 비디오 생성부를 통해 복원된 메쉬에 대한 속성정보 (텍스처 맵)으로 재생성될 수 있다. 복원된 메쉬의 텍스처 좌표에 대해 원본 메쉬의 텍스처 맵이 갖고 있는 정점 별 색상 정보를 할당할 수 있다. 매 프레임마다 재생성된 텍스처 맵들은 GoF 단위마다 묶여 텍스처 맵 비디오를 생성할 수 있다.
생성된 텍스처 맵 비디오는 텍스처 맵 비디오 부호화부를 통해 비디오 압축 코덱을 이용하여 부호화될 수 있다. 부호화를 통해 생성된 텍스처 맵 비디오 비트스트림은 다중화부로 전송된다.
아틀라스 부호화부에서는 메쉬 복호화 및 렌더링 과정에 필요한 부가 정보인 아틀라스를 부호화할 수 있다. 생성된 아틀라스 비트스트림은 다중화부로 전송된다.
생성된 베이스 메쉬 비트스트림, 변위 벡터 비트스트림, 텍스처 맵 비트스트림 및 아틀라스 비트스트림은 하나의 비트스트림으로 다중화되어 송신부를 통해 수신단으로 전송될 수 있다. 또는 생성된 베이스 메쉬 비트스트림, 변위 벡터 비트스트림, 텍스처 맵 비트스트림 및 아틀라스 비트스트림은 하나 이상의 트랙 데이터로 파일이 생성되거나 세그먼트로 인캡슐레이션 되어 송신부를 통해 수신단(디코더)에 전송될 수 있다.
데이터 입력부는 원본 메쉬 및/또는 원본 텍스쳐 맵('어트리뷰트')를 수신할 수 있다. 메쉬 전처리부는 원본 메쉬를 단순화하여 베이스메쉬를 생성하고, 핏팅하여 세분화된 메쉬를 생성할 수 있다. 움직임 벡터 부호화부는 메쉬 인코딩 방식이 인터 프레딕션인 경우, 이전에 처리된 참조 프레임 내 복원된 베이스 메쉬를 참조하여, 움직임 벡터(움직임 필드)를 생성하고, 움직임 추정 및 보상 방식에 기반하여 부호화할 수 있다. 정적 메쉬 부호화부는 메쉬 인코딩 방식이 인트라 프레딕션인 경우, 프레임 내 베이스메쉬를 부호화할 수 있다. 변위 벡터 계산부는 피팅된 세분화된 메쉬로부터 정점에 대한 변위 벡터를 복원된 베이스메쉬에 기초하여 산출할 수 있다. 변위 벡터 처리부는 변위 벡터를 부호화하기에 적합한 형태로 처리할 수 있다. 변위 벡터에 대한 부호화 방식에 따라서, 변위 벡터를 비디오 방식에 기반하여 부호화하거나, 산술 부호화 방식에 기반하여 부호화할 수 있다. 변위 벡터는 복원되고, 복원된 베이스메쉬와 함께 메쉬 복원부에 제공될 수 있다. 복원된 메쉬에 기반하여 어트리뷰트(텍스쳐 맵) 비디오 생성부는 원본 메쉬와 원본 메쉬에 대한 텍스쳐 맵을 이용하여 텍스쳐 맵을 인코딩하기 위한 비디오를 생성할 수 있다. 어트리뷰트는 비디오 방식에 기반하여 부호화된다. 아틀라스는 아틀라스 부호화부에 의해 인코딩된다.
도13은 실시예들에 따른 V-DMC 디코딩 프로세스를 나타낸다.
도13은 도1 내지 도3 등의 디코더에 대응한다. 도13 각 구성요소는 하드웨어, 소프트웨어, 프로세서, 및/또는 그것들의 조합에 대응한다.
수신된 Mesh의 비트스트림은 파일/세그먼트 디캡슐레이션 후 압축된 베이스 메쉬 비트스트림, 변위 벡터 비트스트림, 속성정보(텍스처 맵) 비트스트림, 그리고 아틀라스 비트스트림으로 역다중화된다.
프레임 헤더 정보에 따라 현재 메쉬가 화면간 부호화가 적용된 경우라면 베이스 메쉬 비트스트림에 대해 움직임 벡터 복호화부에서 복호화를 수행할 수 있다. 이전의 복호화된 움직임 벡터를 예측자로 사용하여 비트스트림으로부터 복호화된 잔차 움직임 벡터와 더하여 최종 움직임 벡터를 복원할 수 있다. 참조 베이스 메쉬에 복호화 된 움직임 벡터를 더하여 현재 베이스 메쉬를 복원할 수 있다.
프레임 헤더 정보에 따라 현재 메쉬가 화면내 부호화가 적용된 경우라면 베이스 메쉬 비트스트림은 정적 메쉬 복호화부를 통해 베이스 메쉬의 연결 정보, 정점 기하정보, 텍스처 좌표, 노말 정보 등을 복원할 수 있다.
베이스 메쉬 복원부에서는 복호화 된 베이스 메쉬에 대해 역양자화를 수행하여 복원 베이스 메쉬를 생성할 수 있다.
변위 벡터 비트스트림은 부호화 코덱 타입에 따라 비디오 코덱을 통해 부호화된 경우, 비디오 코덱을 이용하여 복호화된 후, 역패킹 과정이 수행될 수 있다. 산술 코딩을 통해 부호화된 경우, 변위 벡터 산술 복호화부를 통해 산술 복호화를 수행할 수 있고, 화면 간 예측이 수행된 경우, 화면 간 예측을 통해 참조 변위 벡터 변환 계수에 잔차값을 더하여 현재 변위 벡터 변환 계수를 생성할 수 있다.
변위 벡터 복원부에서는 복호화 된 변위 벡터 변환 계수를 역양자화와 역변환 과정을 거쳐 변위 벡터를 복원한다. 복원된 변위 벡터가 Local 좌표계의 값이라면 Cartesian 좌표계로 역변환하는 과정이 수행될 수 있다.
메쉬 복원부에서는 복원된 베이스 메쉬에 대해 세분화를 수행하여 추가적인 정점을 생성할 수 있다. 세분화를 통해, 추가된 정점을 포함하는 정점 연결 정보, 텍스처 좌표 및 텍스처 좌표의 연결 정보 등을 생성할 수 있다. 세분화된 복원 베이스 메쉬는 복원된 변위 벡터와 결합하여 최종 복원된 메쉬를 생성할 수 있다.
텍스처 맵 비트스트림은 비디오 비트스트림으로서 텍스처 맵 비디오 복호화부에서 비디오 코덱을 이용하여 복호화될 수 있다. 복원된 텍스처 맵은 복원된 메쉬가 담고 있는 각 정점에 대한 색상 정보를 갖고 있으며, 각 정점의 텍스처 좌표를 이용하여 텍스처 맵으로부터 해당 정점의 색상값을 가져올 수 있다.
아틀라스 비트스트림은 아틀라스 복호화부를 통해 복호화될 수 있다.
복원된 메쉬와 텍스처 맵은 메쉬 데이터 렌더러 등을 이용하여 렌더링 과정을 통해 사용자에게 보여진다.
디코더는 부호화된 비트스트림을 수신하고, 비트스트림 내 포함된 파라미터 정보(시그널링 정보, 메타데이터 등으로 지칭 가능함)에 기반하여, 비트스트림 내 베이스메쉬, 변위벡터, 어트리뷰트, 아틀라스를 복호화한다. 복호화 과정은 부호화 과정의 역과정을 따를 수 있다. 복호화된 아틀라스에 기반하여, 복원된 베이스 메쉬 및 복원된 변위 메쉬로부터 메쉬가 복원된다. 복원된 메쉬 및 복원된 어트리뷰트에 기반하여 메쉬가 렌더링될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 부호화 장치 및 방법은 메쉬 데이터를 부호화하여, 부호화된 메쉬 데이터를 포함하는 비트스트림을 송신할 수 있다. 실시예들에 따른 포인트 클라우드 데이터 복호화 장치 및 방법은 메쉬 데이터를 포함하는 비트스트림을 수신하여 메쉬 데이터를 복호화할 수 있다. 실시예들에 따른 포인트 클라우드 데이터 부/복호화 방법/장치는 실시예들에 따른 방법/장치로 줄여서 지칭될 수 있다. 실시예들에 따른 포인트 클라우드 데이터 부/복호화 방법/장치는 실시예들에 따른 메쉬 데이터 부/복호화 방법/장치로도 지칭될 수 있다. 또한, 줄여서 부/복호화 방법/장치로 본 문서에서 사용될 수 있다.
실시예들은 2D 비디오 코덱 (Video codec)을 이용하여 3차원 동적 메쉬 (Dynamic mesh) 데이터를 압축하는 방법인 비디오 기반 다이나믹 메시 압축(Video-based dynamic mesh compression)(V-Mesh)에 관한 것이다. V-Mesh는 입력된 원본 메쉬의 텍스처 맵 (Texture map)을, 인코딩 (Encoding) 과정에서 복원된 메쉬에 대한 텍스처 맵으로 재생성한 후 재생성된 텍스처 맵 이미지들을 비디오 스트림으로 처리, 및 압축한다. MPEG V-DMC 표준에서 관련 시퀀스(sequence)가 추가되었다. 기존에는 하나의 속성정보(텍스쳐 맵)를 갖는 메쉬 데이터였다면, 새로 추가된 영상에는 다수의 속성정보를 갖는 데이터들이 도입되었다.
도 14 및 도 15는 실시예들에 따른 다수의 속성정보를 갖는 동적 메쉬 데이터를 설명하기 위한 도면이다.
실시예들에 따른 부호화 방법 및 장치(도1(a) 인코더, 도2 전송 장치(100), 도3 프리-프로세서(200) 및 인코더(201), 도7 인코딩 과정, 도12 인코딩 과정, 및 도18 부호화 방법 등)는 도14 및 도15와 같이 다수의 속성 정보를 가지는 동적 메쉬 데이터를 부호화하고, 실시예들에 따른 다수의 속성 정보에 관련된 신택스 엘리먼트들(파라미터, 메타데이터, 시그널링 정보 등으로 지칭 가능함)을 생성할 수 있다.
실시예들에 따른 복호화 방법 및 장치(도1(b) 디코더, 도2 수신 장치(110), 도11 디코딩 프로세스, 도13 디코딩 프로세스, 및 도19 복호화 방법 등)는 도14 및 도15와 같이 다수의 속성 정보를 가지는 동적 메쉬 데이터를 다수의 속성 정보에 관련된 신택스 엘리먼트들에 기반하여 복호화할 수 있다.
실시예들은 V-DMC를 이용하여 일반적인 포인트 클라우드/메쉬 데이터 셋 보다 많은 다수의 속성정보를 갖는 동적메쉬 데이터들을 압축할 때, 기존 방식에서 발생하는 낮은 압축률 및 높은 복잡도, 많은 코덱 인스턴스 사용 문제를 해결하고자 한다.
실시예들은 기존 2D 비디오 코덱을 기반으로 3차원 동적 메쉬 데이터를 압축하는 방법인 V-DMC (V-mesh)에 관한 것이다. 특히 다중 속성정보를 갖는 데이터를 V-DMC 로 압축하는 경우에 대해, 효과적인 압축 성능을 낼 수 있는 방법을 제공한다. 이것은 V-DMC 내부에서의 어트리뷰트(Attribute) 비디오 스트림(Video stream) 생성 방법, 비디오 스트림 생성 방식에 대한 시그널링 (Signaling), 송신기와 수신에서의 비디오 스트림 처리 방법과 관련되어 있다.
현재 표준이 진행되는 V-DMC를 이용하여 더 크고 많은 속성 정보를 갖는 메쉬 데이터를 압축할 수 있는 방법이 연구되고 있다. 현재 기존 방법은 다수의 속성 정보를 가로나 세로로 기계적으로 붙여서 기존 V-DMC 틀에 포함하여 사용하고 있다. 이 방법은 데이터 양이 크고 해상도도 큰 속성 정보를 전부 커버해야 하기에 비효율적일 수 있다. 또한, 추후 활용될 데이터의 특징에 따라 연산량이 선형적으로 증가하고, 필수적으로 비디오 코덱을 활용해야하는 V-DMC 특성상 타 코덱들도 수정이 불가피한 문제가 발생할 수 있다. 각각의 속성 정보를 하나의 비디오 코덱을 활용하여 압축하는 방법도 생각할 수 있으나 비효율적일 수 있다.
따라서, 실시예들은 다수의 속성정보 중에 대표 속성정보를 선택하여 해당 영상과 잔차(residual)를 구하여 이를 압축하고 활용하는 방법을 제안하여, 효율적인 V-DMC 활용 방법을 제안한다.
실시예들에 따라, 동적 메쉬 데이터는 하나의 텍스처 좌표에 맵핑되는 다수의 속성정보(텍스처 맵)을 포함할 수 있다. 입력 메쉬로 다수의 속성 정보(T1 내지 T5)를 갖는 동적 메쉬 데이터가 입력되는 경우, 다수의 속성 정보들은 단순히 일렬로 연결(concatenated)될 수 있다. 이러한 경우, 데이터 양이 방대하고, 압축률이 낮아질 수 있다.
도14 및 도15를 참조하면, 메쉬 데이터에 관련된 프레임은 오브젝트(예를 들어, 사람 또는 건물) 등을 포함할 수 있다. 예를 들어, 오브젝트의 크기가 크거나, 고해상도를 위해서, 하나의 오브젝트 및/또는 하나의 오브젝트에 관한 바운딩 박스에 관한 어트리뷰트 정보가 복수 개일 수 있다. 예를 들어, 어트리뷰트가 텍스쳐 맵인 경우, 오리지널 오브젝트 혹은 복셀화된 오브젝트(qp=12, qt=12, rotated/translated)에 관한 복수의 텍스쳐들이 존재할 수 있다. 복수의 텍스쳐들은 텍스쳐1, 텍스쳐2, 텍스쳐3, 텍스쳐4, 텍스쳐5 등과 같이 지칭될 수 있다. 도14 내지 도15의 오브젝트를 복원하기 위해서 텍스쳐1 내지 텍스쳐5의 정보가 모두 필요할 수 있다.
도 16은 실시예들에 따른 다수의 속성정보를 갖는 메쉬 데이터의 속성정보를 압축하는 방법을 설명하기 위한 도면이다.
실시예들에 따른 부호화 방법 및 장치(도1(a) 인코더, 도2 전송 장치(100), 도3 프리-프로세서(200) 및 인코더(201), 도7 인코딩 과정, 도12 인코딩 과정, 및 도18 부호화 방법 등)는 도14 내지 도15의 다중 속성 정보에 기반하여, 도16과 같이, 다중 속성 정보를 부호화할 수 있다.
실시예들에 따른 복호화 방법 및 장치(도1(b) 디코더, 도2 수신 장치(110), 도11 디코딩 프로세스, 도13 디코딩 프로세스, 및 도19 복호화 방법 등)는 도14 및 도15의 다중 속성 정보를 가지는 동적 메쉬 데이터를, 도 16의 방법을 이용하여 인코딩된 다중 속성 정보를 복호화할 수 있으며, 다중 속성 정보에 관련된 신택스 엘리먼트들에 기반하여 복호화할 수 있다.
도 16을 참조하면, 실시예들은 기준이 되는 대표 텍스처 비디오를 먼저 선정한다. 이는 사용자가 직접 임의로 지정할 수 있다. 대표 텍스처 비디오가 선정되면, 나머지 각 텍스처 비디오들은 대표 텍스처 비디오와의 픽셀 별 컬러 차이를 연산하여 잔차 텍스처(Residual texture) 비디오를 생성하도록 한다. 그 결과 N개의 텍스처 비디오로부터 오리지널 텍스처(Original texture) 정보를 갖는 1개의 대표 텍스처 비디오와 N - 1개의 잔차 텍스처(Residual texture) 비디오가 생성되고, 이 각각은 비디오 코덱을 이용하여 압축, 전송될 수 있고, 하나의 데이터로 이어져서 (concatenated) 전송될 수도 있다.
도16을 참조하면, 오리지널 텍스쳐 비디오는 다중 속성 정보를 포함할 수 있다. 그리고 다중 속성 정보의 순서는 텍스쳐 비디오 #1 내지 텍스쳐 비디오 #N과 같이 정렬되어 있을 수 있다. 먼저, 텍스쳐 비디오를 부호화하기 위하여 대표 비디오가 세팅될 수 있다. 실시예들에 따라, 첫 번째 텍스쳐 비디오인 텍스쳐 비디오 #1가 대표 비디오로 셋팅될 수 있다.
전처리 과정을 통하여, 텍스쳐 비디오 #1 및 텍스쳐 비디오 #2 간 잔차인 레지듀얼 텍스쳐 비디오 #2가 생성될 수 있다. 그리고 텍스쳐 비디오 #1 및 텍스쳐 비디오 #3 간 잔차인 레지듀얼 텍스쳐 비디오 #3가 생성되고, 텍스쳐 비디오 #1 및 텍스쳐 비디오 #4 간 잔차인 레지듀얼 텍스쳐 비디오 #4 가 생성될 수 있다. 그리고 텍스쳐 비디오 #1 및 텍스쳐 비디오 #N 간 잔차인 레지듀얼 텍스쳐 비디오 #N가 생성될 수 있다.
대표 비디오로 세팅된 텍스쳐 비디오 #1은 텍스쳐 비디오 #1으로 인코딩될 수 있다. 그리고 텍스쳐 비디오 #2 내지 텍스쳐 비디오 #N은 텍스쳐 비디오 #1과의 잔차인 레지듀얼 텍스쳐 비디오를 생성하여 인코딩될 수 있다. 인코딩된 다중 속성 정보는 텍스쳐 비디오 #1 및 레지듀얼 텍스쳐 비디오 #2 내지 레지듀얼 텍스쳐 비디오 #N을 포함할 수 있다.
도 16과 같은 과정 (속성 코딩 전처리)을 통해 인코딩 된 이후, 디코딩 과정에서는 마찬가지로 각 비트스트림들이 각각 혹은 합쳐진 상태로 디코딩 된 이후에, 기준이 되는 대표 텍스처 비디오를 기반으로 아래의 식 1과 같이 잔차를 합하여 복원될 수 있다.
[식 1] Recon_texture map[i] += residual_data[i] + texture video #1
식 1에서, 재구성 텍스쳐 맵(Recon_texture map[i])은 인덱스 i를 갖는 재구성된 텍스쳐 맵을 의미할 수 있다. 그리고 텍스쳐 비디오 #1(texture video #1)은 대표 텍스쳐 비디오로 설정된 텍스쳐 비디오를 의미할 수 있으며, 실시예에 따라 다른 인덱스를 갖는 텍스쳐 비디오로 설정될 수 있다. 그리고 레지듀얼 데이터[i](residual_data[i])는 인덱스 i를 갖는 레지듀얼 데이터를 의미할 수 있다. 레지듀얼 데이터는 텍스쳐 맵과 대표 텍스쳐 맵 간의 픽셀 간 잔차 값을 포함할 수 있다. 실시예들에서, 텍스쳐 맵과 텍스쳐 비디오는 혼용되어 사용될 수 있다.
도 17은 실시예들에 따라 텍스쳐 맵 간의 블록 단위 상관관계를 연산하여 대표 텍스처 맵을 선정하는 방법을 설명하기 위한 도면이다.
실시예들에 따른 부호화 방법 및 장치(도1(a) 인코더, 도2 전송 장치(100), 도3 프리-프로세서(200) 및 인코더(201), 도7 인코딩 과정, 도12 인코딩 과정, 및 도18 부호화 방법 등)는 도14 내지 도15의 다중 속성 정보 및 도17의 대표 텍스쳐 맵 설정 방법에 기반하여 도16과 같이 다중 속성 정보를 부호화할 수 있다.
실시예들에 따른 복호화 방법 및 장치(도1(b) 디코더, 도2 수신 장치(110), 도11 디코딩 프로세스, 도13 디코딩 프로세스, 및 도19 복호화 방법 등)는 도14 및 도15의 다중 속성 정보를 가지는 동적 메쉬 데이터를, 도 17에 따라 설정된 대표 텍스쳐 맵에 기반하여 도 16에 따라 인코딩된 다중 속성 정보를 복호화할 수 있으며, 다중 속성 정보에 관련된 신택스 엘리먼트들에 기반하여 복호화할 수 있다.
실시예들에 따라 기준이 되는 대표 텍스처 비디오(또는 맵)을 선정하는 방법에 대해 설명한다.
기본적으로는 첫번째 텍스쳐 비디오(또는 맵)를 선정할 수 있다. 이 경우 별도의 대표 텍스처 비디오(또는 맵)에 대한 정보를 저장하여 전송할 필요없이 첫번째 비디오를 기준으로 복호화된 잔차 영상들과 첫번째 영상을 합산하여 텍스쳐 비디오를 복원할 수 있다.
도 17을 참조하면, N개의 텍스처 비디오(또는 맵)들 중에 대표 텍스처 비디오(또는 맵)을 별도의 과정을 통해 선정할 수 있다. 실시예들에 따라 텍스처 맵 간의 블록(block) 단위 상관관계를 연산하여 대표 텍스처 맵을 선정할 수 있다.
실시예들에 따라, 각각의 픽셀 단위 혹은 특정 블록 사이즈에 따라 각각 영상들 간의 매칭, 및/또는 상관관계(correlation)를 계산해 볼 수 있다. 연산을 통해 결정된 대표 텍스처 맵에 대한 정보는 추가적으로 시그널링되어 디코딩 과정에서 복원에 활용될 수 있다. 예를 들어, 대표 텍스처 맵에 대한 정보는 도미넌트 텍스쳐 맵(dominant_texture_map) = 2로 시그널링될 수 있다.
텍스처 맵의 데이터들을 RGB 값, 혹은 YUV 값 기반으로 데이터 어레이(array)를 만들고 각 텍스처 맵 간의 상관관계(correlation)는 아래의 식 2과 같이 계산될 수 있다.
[식2]
여기서 X, Y는 비교를 위해 입력되는 텍스처 맵의 데이터 전체 혹은 일부를 의미할 수 있고, x' 와 y' 은 표준화(normalize)를 위한 각 데이터들의 평균을 의미할 수 있다.
또는 식 3과 같이 코스트 함수(cost function)를 만들어서 값이 최소가 되게 하는 대표 텍스처 맵을 선정할 수 있다.
[식3]
예를 들어, 다중 속성 정보는 순차적으로 연결된 텍스쳐 맵 1 내지 텍스쳐 맵 N을 포함할 수 있다. 그리고 실시예들에 따른 부/복호화 방법 및 장치는 다중 속성 정보 중 첫 번째 텍스쳐 맵을 대표 텍스쳐 맵으로 설정할 수 있다. 이 때, 대표 텍스쳐 맵으로 설정된 첫 번째 텍스쳐 맵에 대한 정보는 미리 설정되어 별도의 시그널링이 필요하지 않을 수 있다.
실시예들에 따른 부/복호화 방법 및 장치는 각 텍스쳐 간 상관관계에 기반하여, 복수의 텍스여 맵들 중에서 하나의 대표 텍스쳐 맵을 결정할 수 있다. 예를 들어, 식 2를 이용하여 텍스쳐 1 및 텍스쳐 2의 상관관계를 계산하는 경우, X는 텍스쳐 1을 의미하고 Y는 텍스쳐 2를 의미할 수 있다. 그리고 i는 텍스쳐 1 또는 텍스쳐 2의 블록 인덱스를 의미할 수 있다.
실시예들에 따른 부/복호화 방법 및 장치는 코스트 함수를 이용하여 복수개의 텍스쳐 맵 중 대표 텍스쳐 맵을 결정할 수 있다. 코스트 함수는 머신러닝 알고리즘에서 최적화 알고리즘의 목적함수일 수 있다. 코스트 함수 값이 최소가 되게 하는 텍스쳐 맵은 대표 텍스쳐 맵으로 결정될 수 있다. 결정된 대표 텍스처 맵에 대한 정보는 도미넌트 텍스쳐 맵(dominant_texture_map) 값으로 시그널링될 수 있다.
실시예들에 따른 부호화 방법 및 장치(도1(a) 인코더, 도2 전송 장치(100), 도3 프리-프로세서(200) 및 인코더(201), 도7 인코딩 과정, 도12 인코딩 과정, 및 도18 부호화 방법 등)는 도14 내지 도 16과 같이 메쉬 데이터를 부호화하고, 관련 신택스 엘리먼트들을 생성할 수 있다. 실시예들에 따른 부호화 방법 및 장치는 부호화된 메쉬 데이터 및 신택스 엘리먼트를 포함하는 비트스트림을 생성하고 전송할 수 있다.
실시예들에 따른 복호화 방법 및 장치(도1(b) 디코더, 도2 수신 장치(110), 도11 디코딩 프로세스, 도13 디코딩 프로세스, 및 도19 복호화 방법 등)는 도17 및 도19 등과 같이 비트스트림 내 포함된 신택스 엘리먼트들에 기초하여, 비트스트림 내 메쉬 데이터를 복호화할 수 있다.
이하에서, 실시예들에 따른 신택스 및 시맨틱스를 설명한다.
실시예들에 따른 시그널링 정보(파라미터/메타데이터 등으로 지칭 가능함)는 실시예들에 따른 포인트 클라우드 데이터 송신 장치에서, 메타데이터 부화화부(또는, 메타데이터 부호화기 등으로 지칭 가능함)에 의해 인코딩되어 비트스트림에 포함되어 전송될 수 있다.
또한, 실시예들에 따른 시그널링 정보(파라미터/메타데이터 등으로 지칭 가능함)는 실시예들에 따른 포인트 클라우드 데이터 수신 장치에서, 메타데이터 복호화부(또는, 메타데이터 복호화기 등으로 지칭 가능함)에 의해 디코딩되어 포인트 클라우드 데이터의 디코딩 프로세스에 제공될 수 있다.
먼저 V3C 유닛 헤더(unit header)를 통해, 전송되는 어트리뷰트 비디오 데이터(Attribute video data) 가 잔차 텍스처 (Residual texture) 비디오에 대한 것임을 알도록 vuh_attribute_residual_texture_video_flag syntax를 추가하여 시그널링한다.
실시예들에 따른 송신기는 포인트 클라우드 데이터를 인코딩하여 비트스트림을 생성할 수 있다.
실시예들에 따른 비트스트림은 V3C유닛을 포함할 수 있다.
실시예들에 따른 수신기는 송신기가 전송한 비트스트림을 수신하고, 포인트 클라우드 데이터를 디코딩하고 복원할 수 있다. 이하에서, 실시예들에 따른 V3C 유닛의 구체적인 신택스 및 V3C 유닛에 포함된 엘리먼트들을 설명한다.
제네럴 V3C 유닛 신택스(General V3C unit syntax)
v3c_unit( numBytesInV3CUnit) { Descriptor
v3c_unit_header( )
v3c_unit_payload(numBytesInV3CUnit - 4 )
}
V3C 유닛 헤더 신택스(V3C unit header syntax)
v3c_unit_header( ) { Descriptor
vuh_unit_type u(5)
if( vuh_unit_type  = =  V3C_AVD  | |  vuh_unit_type  = =  V3C_GVD  | |
vuh_unit_type  = =  V3C_OVD  | |  vuh_unit_type  = =  V3C_AD ) {
vuh_v3c_parameter_set_id u(4)
vuh_atlas_id u(6)
}
if( vuh_unit_type  = =  V3C_AVD ) {
vuh_attribute_index u(7)
vuh_attribute_partition_index u(5)
vuh_map_index u(4)
vuh_auxiliary_video_flag u(1)
vuh_attribute_residual_texture_video_flag u(1)
} else if( vuh_unit_type  = =  V3C_GVD ) {
vuh_map_index u(4)
vuh_auxiliary_video_flag u(1)
vuh_reserved_zero_12bits u(12)
} else if( vuh_unit_type  = =  V3C_OVD  | |  vuh_unit_type  = =  V3C_AD )
vuh_reserved_zero_17bits u(17)
else
vuh_reserved_zero_27bits u(27)
}
vuh_unit_type은 아래와 같이 지정돤 V3C 단위 타입을 나타낸다.
vuh_unit_type Identifier V3C unit type Description
0 V3C_VPS V3C parameter set V3C level parameters
1 V3C_AD Atlas data Atlas information
2 V3C_OVD Occupancy video data Occupancy information
3 V3C_GVD Geometry video data Geometry information
4 V3C_AVD Attribute video data Attribute information
5...31 V3C_RSVD Reserved -
vuh_v3c_parameter_set_id는 활성 V3C VPS에 대한 vps_v3c_parameter_set_id의 값을 나타낸다. vuh_v3c_parameter_set_id의 값은 0에서 15 사이의 범위를 포함한다.
vuh_atlas_id는 현재 V3C 유닛에 해당하는 아틀라스의 ID를 나타낸다. vuh_atlas_id의 값은 0에서 63 사이의 범위를 포함한다.
vuh_attribute_index는 어트리뷰트 비디오 데이터(Attribute Video Data) 유닛에 저장된 속성 데이터의 인덱스를 나타낸다. vuh_attribute_index의 값은 0에서 (ai_attribute_count[vuh_atlas_id] - 1) 사이의 범위를 포함한다.
vuh_attribute_partition_index는 어트리뷰트 비디오 데이터(Attribute Video Data) 유닛에 포함된 속성 차원 그룹의 인덱스를 나타낸다. vuh_attribute_partition_index의 값은 0에서 ai_attribute_dimension_partitions_minus1[ vuh_atlas_id ][ vuh_attribute_index ] 사이의 범위를 포함한다.
vuh_map_index는, 존재하는 경우, 현재 지오메트리 또는 속성 스트림의 맵 인덱스를 나타낸다. 존재하지 않는 경우 현재 지오메트리 또는 속성 스트림의 맵 인덱스는 스트림의 유형과 지오메트리 및 속성 비디오 스트림에 대해 각각 설정된 연산을 기반으로 도출된다. vuh_map_index가 있는 경우 값은 0에서 vps_map_count_minus1[ vuh_atlas_id]까지의 범위를 포함한다.
vuh_auxiliary_video_flag가 1과 같다면, 관련된 지오메트리 또는 속성 비디오 데이터 유닛이 RAW 및/또는 EOM 코드 포인트 비디오임을 나타낸다. vuh_auxiliary_video_flag가 0과 같다면, 관련된 지오메트리 또는 속성 비디오 데이터 유닛이 RAW 및/또는 EOM 코드 포인트를 포함할 수 있음을 나타낸다. vuh_auxiliary_video_flag가 존재하지 않을 경우, 그 값은 0과 같도록 추론된다.
vuh_reserved_zero_12bit가 존재하는 경우, 이 문서의 버전을 준수하는 비트스트림에서 0과 같다. vuh_reserved_zero_12bit의 다른 값은 ISO/IEC에서 향후 사용할 수 있도록 예약된다. 디코더는 vuh_reserved_zero_12bit의 값을 무시해야 한다.
vuh_reserved_zero_17비트가 존재하는 경우, 이 문서의 버전에 부합하는 비트스트림에서 0과 같다. vuh_reserved_zero_17bit의 다른 값은 ISO/IEC에서 향후 사용할 수 있도록 예약된다. 디코더는 vuh_reserved_zero_17bit의 값을 무시해야 한다.
vuh_reserved_zero_27bit가 존재하는 경우, 이 문서의 버전을 준수하는 비트스트림에서 0과 같다. vuh_reserved_zero_27bit의 다른 값은 ISO/IEC에서 향후 사용할 수 있도록 예약된다. 디코더는 vuh_reserved_zero_27bit의 값을 무시해야 한다.
어트리뷰트 잔차 텍스쳐 비디오 플래그(vuh_attribute_residual_texture_video_flag) 값이 1 이면 속성 비디오 데이터 유닛(Attribute video data unit)은 레지듀얼 텍스처(Residual texture) 비디오 데이터에 대한 것임을 나타낸다. 어트리뷰트 잔차 텍스쳐 비디오 플래그(vuh_attribute_residual_texture_video_flag) 값이 0이면 본래의 속성 데이터를 갖는 비디오에 대한 것임을 나타낸다.
또한 실시예들에 따라 기존의 V3C 파라미터 세트 신택스(parameter set syntax) 중 속성 정보 신택스(Attribute information syntax)로서 시그널링되는 ai_attribute_type_id를 이용하여 제안하는 속성 비디오의 종류를 구별할 수 있도록 한다. ai_attribute_type_id[ j ][ i ] 는 ID가 j인 atlas 에 대해 i번째 인덱스를 갖는 속성 비디오 데이터가 갖는 속성 타입을 나타내며, 이것이 나타낼 수 있는 타입의 종류는 아래의 V3C 속성 타입을 나타낸 테이블과 같다.
기존에 V-PCC에서 지원하는 속성 타입은 ai_attribute_type_id[ j ][ i ] 가 0~4이며, 실시예들에 따라 ai_attribute_type_id[ j ][ i ] = 5 로 레지듀얼 텍스처(Residual texture) 비디오 타입을 나타내는 ATTR_RESIDUAL_TEXTURE 타입을 추가할 수 있다.
실시예에 따라, V3C 유닛 헤더(v3c_unit_header)는 유닛 타입(vuh_unit_type)을 포함할 수 있고, 유닛 타입 (vuh_unit_type)이 4의 값을 가지는 경우, V3C 유닛 타입은 어트리뷰트 정보를 나타낼 수 있다. 그리고 V3C 유닛 타입이 어트리뷰트 정보를 나타내는 경우, V3C 유닛 헤더(v3c_unit_header)는 어트리뷰트 인덱스(vuh_attribute_index), 어트리뷰터 파티션 인덱스(vuh_attribute_partition_index), 맵 인덱스(vuh_map_index, 보조 비디오 플래그(vuh_auxiliary_video_flag), 및 어트리뷰트 잔차 텍스쳐 비디오 플래그(vuh_attribute_residual_texture_video_flag)를 포함할 수 있다.
그리고 어트리뷰트 잔차 텍스쳐 비디오 플래그(vuh_attribute_residual_texture_video_flag) 값이 1 이면 속성 비디오 데이터 유닛(Attribute video data unit)은 레지듀얼 텍스처(Residual texture) 비디오 데이터에 대한 것임을 나타낼 수 있다.
실시예들에 따른 부호화 방법 및 장치는 어트리뷰트가 다중 어트리뷰트 정보를 포함하는지 여부에 기반하여 어트리뷰트 잔차 텍스쳐 비디오 플래그 값을 생성할 수 있다. 그리고 실시예들에 따른 복호화 방법 및 장치는 어트리뷰트 잔차 텍스쳐 비디오 플래그 값에 기반하여 다중 어트리뷰트 정보에 관한 어트리뷰트를 디코딩할 수 있다.
V3C 파라미터 세트 신택스(V3C parameter set syntax)
제네럴 V3C 파라미터 세트 신택스(General V3C parameter set syntax)
v3c_parameter_set( ) { Descriptor
profile_tier_level()
vps_v3c_parameter_set_id u(4)
vps_reserved_zero_8bits u(8)
vps_atlas_count_minus1 u(6)
for(k = 0; k < vps_atlas_count_minus1 + 1; k++ ) {
vps_atlas_id[ k ] u(6)
j = vps_atlas_id[ k ]
vps_frame_width[ j ] ue(v)
vps_frame_height[ j ] ue(v)
vps_map_count_minus1[ j ] u(4)
if( vps_map_count_minus1[ j ] > 0 )
vps_multiple_map_streams_present_flag[ j ] u(1)
vps_map_absolute_coding_enabled_flag[ j ][ 0 ] = 1
vps_map_predictor_index_diff[ j ][ 0 ] = 0
for( i = 1; i <= vps_map_count_minus1[ j ]; i++ ) {
if( vps_multiple_map_streams_present_flag[ j ] )
vps_map_absolute_coding_enabled_flag[ j ][ i ] u(1)
else
vps_map_absolute_coding_enabled_flag[ j ][ i ] = 1
if( vps_map_absolute_coding_enabled_flag[ j ][ i ]  = =  0 ) {
vps_map_predictor_index_diff[ j ][ i ] ue(v)
}
}
vps_auxiliary_video_present_flag[ j ] u(1)
vps_occupancy_video_present_flag[ j ] u(1)
vps_geometry_video_present_flag[ j ] u(1)
vps_attribute_video_present_flag[ j ] u(1)
if( vps_occupancy_video_present_flag[ j ] )
occupancy_information( j )
if( vps_geometry_video_present_flag[ j ] )
geometry_information( j )
if(vps_attribute_video_present_flag[ j ] )
attribute_information( j )
}
vps_extension_present_flag u(1)
if( vps_extension_present_flag ) {
vps_vpcc_extension_flag u(1)
vps_miv_extension_flag u(1)
vps_extension_6bits u(6)
}
if( vps_vpcc_extension_flag )
vps_vpcc_extension() /* Specified in Annex H */
if( vps_miv_extension_flag )
vps_miv_extension() /* Specified in ISO/IEC 23090-12 */
if( vps_extension_6bits ) {
vps_extension_length_minus1 ue(v)
for( j = 0; j < vps_extension_length_minus1 + 1; j++ ) {
vps_extension_data_byte u(8)
}
}
byte_alignment( )
}
ai_attribute_count[j]는 ID j. ai_attribute_count[j]를 가진 아틀라스와 관련된 속성의 수가 0에서 127 사이임을 나타낸다.
ai_attribute_type_id[ j ][ I ]는 ID j를 가진 아틀라스에 대한 인덱스 i를 가진 속성 비디오 데이터 유닛의 속성 유형을 나타낸다. 아래 표는 지원되는 속성 목록과 ai_attribute_type_id와의 관계를 설명한다.
V3C 속성 타입
ai_attribute_type_id[ j ][ i ] Identifier Attribute type
0 ATTR_TEXTURE Texture
1 ATTR_MATERIAL_ID Material ID
2 ATTR_TRANSPARENCY Transparency
3 ATTR_REFLECTANCE Reflectance
4 ATTR_NORMAL Normals
5 ATTR_RESIDUAL_TEXTURE Residual texture
6...14 ATTR_RESERVED Reserved
15 ATTR_UNSPECIFIED Unspecified
ATTR_TEXTURE는 볼류메트릭 프레임의 텍스처 정보를 포함하는 속성을 나타낸다. 예를 들어, 이는 RGB(빨강, 녹색, 파란색) 색상 정보를 포함하는 속성을 나타낼 수 있다.
ATTR_MATERIAL_ID는 볼류메트릭 프레임에서 포인트의 재료 유형(material type)을 나타내는 보충 정보(supplemental information)를 포함하는 속성을 나타낸다. 예를 들어, 재료 유형은 볼류메트릭 프레임 내의 객체 또는 포인트의 특성을 식별하는 지표로 사용할 수 있다. 이러한 속성 프레임 유형의 값에 대한 해석은 이 문서의 범위를 벗어난다.
ATTR_TRANSPARENCY는 볼류메트릭 프레임의 각 지점과 관련된 투명성 정보를 포함하는 속성을 나타낸다.
ATTR_REFLECTANCE는 볼류메트릭 프레임의 각 지점과 관련된 반사율 정보를 포함하는 속성을 나타낸다.
ATTR_NORMAL은 볼류메트릭 프레임의 각 포인트과 관련된 단위 벡터 정보를 포함하는 속성을 나타낸다. 단위 벡터는 한 포인트(즉, 포인트가 향하고 있는 방향)에서 표면에 대한 수직 방향을 나타낸다. 이 속성 유형을 가진 속성 프레임은 ai_attribute_dimension_minus1이 2와 같아야 한다. 이 속성 유형을 가진 속성 프레임의 각 채널은 단위 벡터(x, y, z)의 한 구성 요소를 포함해야 하며, 첫 번째 구성 요소는 x 좌표를, 두 번째 구성 요소는 y 좌표를, 세 번째 구성 요소는 z 좌표를 포함한다.
어트리뷰트 레지듀얼 텍스쳐(ATTR_RESIDUAL_TEXTURE)는 서로 다른 두 텍스처 비디오의 픽셀 별 색상 차이 정보로 구성된 잔차 텍스처 비디오(Residual texture video) 정보를 포함하는 속성을 나타낸다. 잔차 텍스처 비디오 정보는 (Red_diff, Green_diff, Blue_diff) 벡터로 구성되며, 각 값은 두 텍스처 비디오의 레드 성분값의 차이, 그린 성분값의 차이, 블루 성분값의 차이를 나타내고 모두 정수 값 타입을 갖는다.
ATTR_UNSPECIFIED 명시된 의미가 없으며 향후 이 문서의 필수적인 부분으로 지정된 의미가 없는 값을 포함하는 속성을 나타낸다.
ai_attribute_codec_id[ j ][ i ]는 ID j. ai_attribute_codec_id[ j ][ I ]를 가진 아틀라스의 속성 비디오 데이터를 인덱스 i로 압축하는 데 사용되는 코덱의 식별자를 나타낸다. 이 코덱은 SEI 메시지를 매핑하는 컴포넌트 코덱이나 이 문서 외부의 방법을 통해 식별할 수 있다.
ai_auxiliary_attribute_codec_id[ j ][ i ]가 있을 때, RAW 및/또는 EOM 코드 포인트가 속성 i의 속성 비디오 데이터를 압축하는 데 사용되는 코덱의 식별자를 나타낸다. 이는 ID j. ai_auxiliary_attribute_codec_id[ j ][ i ]를 가진 아틀라스의 보조 비디오 스트림에 인코딩될 때 사용된다. 이는 0에서 255까지의 범위를 포함한다. 이 코덱은 SEI 메시지를 매핑하는 컴포넌트 코덱이나 이 문서 외부의 방법을 통해 식별될 수 있다. ai_auxiliary_attribute_codec_id[ j ][ i ]의 값이 제시되지 않을 경우, ai_attribute_codec_id[ j ][ i ]와 동일하다고 추론된다.
ai_attribute_map_absolute_coding_persistence_flag[ j ][ i ]가 1과 같다면, 인덱스 i를 가진 속성에 대해 ID j를 가진 아틀라스에 해당하는 모든 속성 맵이 어떤 형태의 멥 예측도 없이 코딩된다는 것을 나타낸다. ai_attribute_map_absolute_coding_persistence_flag[ j ][ i ]가 0과 같다면, 인덱스 i를 가진 속성 맵이 ID j를 가진 아틀라스의 지오메트리에 사용되는 것과 동일한 맵 예측 방법을 사용할 것임을 나타낸다. 만약, ai_attribute_map_absolute_coding_persistence_flag[ j ][ i ]가 존재하지 않는다면, 그 값은 1과 같도록 추론된다.
그런 다음, 속성의 특정 맵을 예측과 함께 코딩할지 여부를 나타내는 3D 배열 AttributeMapAbsoluteCodingEnabledFlag을 다음과 같이 얻는다.
if( ai_attribute_map_absolute_coding_persistance_flag[ j ][ i ] == 1) {
for( k = 0; k < vps_map_count_minus1[ j ]; k++ )
AttributeMapAbsoluteCodingEnabledFlag[ j ][ i ][ k ] = 1
}
else{
for( k = 0; k < vps_map_count_minus1[ j ]; k++ )
AttributeMapAbsoluteCodingEnabledFlag[ j ][ i ][ k ] =
vps_map_absolute_coding_enabled_flag[ j ][ i ]
}
ai_attribute_dimension_minus1[ j ][ i ] 더하기 1은 ID j. ai_attribute_dimension_minus1[ j ][ i ]를 가진 아틀라스의 인덱스 i를 가진 속성의 총 차원 수(즉, 채널 수)를 나타낸다. 이는 0에서 63 사이의 범위를 포함한다.
ai_attribute_dimension_partitions_minus1[ j ][ i ] 더하기 1은 ID j를 가진 아틀라스의 인덱스 i를 가진 속성 채널을 그룹화해야 하는 파티션 그룹의 수를 나타낸다. ai_attribute_dimension_partitions_minus1[ j ][ i ]는 0에서 63 사이의 범위에 있어야 하며, 여기에 포함된다.
ai_attribute_partition_channels_minus1[ k ][ i ][ j ] 더하기 1은 ID k의 아틀라스에 대해 속성 인덱스 j가 i인 차원 분할 그룹에 할당된 채널의 수를 나타낸다. ai_attribute_partition_channels_minus1[ k ][ i ][ j ]는 모든 차원 분할 그룹에 대해 0에서 ai_attribute_dimension_minus1 [ k ][ i ]의 범위 내에 있어야 한다.
ai_attribute_2d_bit_depth_minus1[ j ][ i ] 더하기 1은 ID j를 가진 아틀라스의 속성 인덱스 i를 가진 모든 속성 비디오가 변환될 명목상 2D 비트 깊이를 나타낸다. ai_attribute_2d_bit_depth_minus1[ j ][ I ]는 0에서 31 사이의 범위에 있어야 하며, 포함되어야 한다.
ai_attribute_MSB_align_flag[ j ][ i ] 는 ID가 j이고 인덱스가 i인 아틀라스와 연관된 디코딩된 속성 비디오 샘플이 명목 속성 비트 깊이의 샘플로 변환되는 방법을 나타낸다.
V3C 파라미터 세트(v3c_parameter_set)는 어트리뷰트 정보(attribute_information)를 포함할 수 있으며, 어트리뷰트 정보는 어트리뷰트 타입 아이디(ai_attribute_type_id[ j ][ i ])를 포함할 수 있다. 어트리뷰트 타입 아이디는 값에 따라 어트리뷰트 타입이 텍스쳐(Texture), 재료 ID(Material ID), 투명도(Transparency), 반사율(Reflectance), 노말(Normals), 또는 레지듀얼 텍스쳐(Residual texture) 인지 나타낼 수 있다.
어트리뷰트 레지듀얼 텍스쳐(ATTR_RESIDUAL_TEXTURE)는 어트리뷰트가 서로 다른 두 텍스처 비디오의 픽셀 별 색상 차이 정보로 구성된 잔차 텍스처 비디오(Residual texture video) 정보를 포함함을 나타낸다. 잔차 텍스처 비디오 정보는 두 텍스처 비디오의 레드 성분값의 차이, 그린 성분값의 차이, 및 블루 성분값의 차이를 포함한다.
도 18은 실시예들에 따른 부호화 방법을 나타낸다.
실시예들에 따른 부호화 방법은 실시예들에 따른 부호화 방법은 메쉬 데이터의 베이스메쉬를 인코딩하는 단계(S1810), 및/또는 메쉬 데이터의 변위를 인코딩하는 단계(S1820), 및/또는 메쉬 데이터의 어트리뷰트를 인코딩하는 단계(S1830)를 포함할 수 있다.
메쉬 데이터의 어트리뷰트를 인코딩하는 단계(S1830)는 다중 어트리뷰트 정보에 관한 어트리뷰트를 인코딩하는 것을 포함하고, 다중 어트리뷰트 정보는 하나의 오브젝트에 대한 바운딩 박스에 관련된 복수의 어트리뷰트 데이터가 결합(concatenated)된 데이터일 수 있다.
그리고 상기 다중 어트리뷰트 정보에 관한 어트리뷰트를 인코딩하는 것은 다중 어트리뷰트 정보 중 대표 어트리뷰트 정보와의 픽셀 별 컬러 차이를 산출하여 잔차 어트리뷰트 정보를 산출하는 것을 포함할 수 있다.
그리고 비트스트림은 어트리뷰트가 메쉬 데이터의 하나의 오브젝트에 연관된 다중 어트리뷰트 정보에 관련되어 있는지 여부를 나타내는 플래그를 포함하고, 플래그의 제1값은 어트리뷰트가 다중 어트리뷰트 정보에 대한 잔차 어트리뷰트 정보를 포함함을 나타낼 수 있다. 그리고 플래그의 제2값은 어트리뷰트가 다중 어트리뷰트 정보에 대한 잔차 어트리뷰트 정보를 포함하지 않음을 나타낼 수 있다.
그리고 비트스트림은 파라미터 세트 정보를 포함하고, 파라미터 세트 정보는 비트스트림 내 상기 어트리뷰트의 타입을 나타내는 정보를 포함하고, 어트리뷰트의 상기 타입의 제1값은 상기 어트리뷰트가 상기 다중 어트리뷰트 정보 간 도출된 잔차를 포함함을 나타낼 수 있다.
도 16을 함께 참조하면, 오리지날 속성 정보가 텍스쳐 비디오 #1 내지 텍스쳐 비디오 #N을 포함하는 경우, 인코딩된 다중 어트리뷰트 정보는 1 개의 대표 어트리뷰트 정보와 N-1개의 잔차(residual) 어트리뷰트 정보를 포함할 수 있다. 잔차 어트리뷰트 정보는 대표 어트리뷰트 정보와의 픽셀별 컬러 차이를 연산하여 생성될 수 있다. 실시예들에서, 잔차 어트리뷰트 정보는 잔차 어트리뷰트 데이터, 잔차 데이터, 레지듀얼 데이터, 및 레지듀얼 어트리뷰트 데이터 등으로 지칭될 수 있다.
대표 속성 정보를 선정하는 과정은 복수개의 속성 정보 중 첫 번째의 속성 정보를 대표 속성 정보로 선정하거나, 또는 복수개의 속성 정보 각각을 픽셀 또는 블록 단위로 상관관계를 연산한 값을 이용하여 선정할 수 있다. 또는, 대표 속성 정보는 코스트 함수를 이용하여 선정할 수 있다.
도 17을 함께 참조하면, 각각의 속성 정보를 블록 단위 또는 픽셀 단위로 나누어, 특정 픽셀 또는 특정 블록 사이즈에 따라 각 속성 정보의 매칭 상관관계를 계산하고, 가장 효율적인 압축이 가능한 속성 정보를 대표 속성 정보로 선정할 수 있다. 이 때, 선정된 속성 정보에 대한 정보는 추가적으로 시그널링될 수 있다.
부호화 방법은 도1 또는 도 2를 함께 참조하면, 부호화 장치에 의해 수행될 수 있다. 부호화 장치는 메모리; 및 메모리에 연결된 적어도 하나의 프로세서; 를 포함하고, 적어도 하나의 프로세서는: 메쉬 데이터의 베이스메쉬를 인코딩; 메쉬 데이터의 변위를 인코딩; 및 메쉬 데이터의 어트리뷰트를 인코딩; 하도록 구성될 수 있다.
실시예들은 도18 부호화 방법에 따른 방법에 의해 생성된 비트스트림을 저장하는, 컴퓨터 판독 가능한 저장매체를 포함할 수 있다.
도 19는 실시예들에 따른 복호화 방법을 나타낸다.
실시예들에 따른 복호화 방법은 비트스트림 내 베이스메쉬를 디코딩하는 단계(S1910), 및/또는 비트스트림 내 변위를 디코딩하는 단계(S1920), 및/또는 비트스트림 내 어트리뷰트를 디코딩하는 단계(S1930)를 포함할 수 있다.
도19 복호화 방법 및 도18 부호화 방법은 서로 역과정으로 수행될 수 있다.
실시예들에 따른 비트스트림 내 어트리뷰트를 디코딩하는 단계(S1930)는 비트스트림 내 어트리뷰트가 메쉬 데이터의 하나의 오브젝트에 연관된 다중 어트리뷰트 정보에 관련되어 있는지 여부를 나타내는 플래그에 기초하여, 다중 어트리뷰트 정보에 관한 어트리뷰트를 디코딩하는 것을 포함하고, 플래그의 제1값은 어트리뷰트가 다중 어트리뷰트 정보에 대한 잔차 어트리뷰트 정보를 포함함을 나타낼 수 있다. 그리고 플래그의 제2 값은 어트리뷰트가 다중 어트리뷰트 정보에 대한 잔차 어트리뷰트 정보를 포함하지 않음을 나타낼 수 있다.
여기서, 다중 어트리뷰트 정보는 하나의 오브젝트에 대한 바운딩 박스에 관련된 복수의 어트리뷰트 데이터가 결합(concatenated)된 데이터일 수 있다.
실시예에 따라, 비트스트림은 파라미터 세트 정보를 포함하고, 파라미터 세트 정보는 상기 비트스트림 내 상기 어트리뷰트의 타입을 나타내는 정보를 포함할 수 있다. 그리고 어트리뷰트의 타입의 제1값은 상기 어트리뷰트가 상기 다중 어트리뷰트 정보 간 도출된 잔차 어트리뷰트 데이터를 포함함을 나타낼 수 있다.
실시예에 따라, v3c_parameter_set은 어트리뷰트 타입에 대한 정보를 포함할 수 있으며, 어트리뷰트 타입에 대한 정보의 제1 값은 어트리뷰트가 잔차 어트리뷰트 정보를 포함함을 나타낼 수 있다.
잔차 어트리뷰트 정보(ATTR_RESIDUAL_TEXTURE)는 서로 다른 두 속성 정보의 픽셀별 컬러 차이 정보로 구성된 어트리뷰트 정보를 나타낼 수 있다. 잔차 속성 정보 정보는 (Red_diff, Green_diff, Blue_diff) 벡터로 구성되며, 각 값은 두 속성 정보의 레드 성분값의 차이, 그린 성분값의 차이, 블루 성분값의 차이를 나타내고 모두 정수 값 타입을 가질 수 있다.
또한, 다중 어트리뷰트 정보에 관한 어트리뷰트를 디코딩하는 것은 다중 어트리뷰트 정보 중 대표 어트리뷰트 정보와, 대표 어트리뷰트 정보와의 잔차 어트리뷰트 정보를 합산하여 어트리뷰트를 복원하는 것을 포함할 수 있다.
그리고 다중 어트리뷰트 정보에 관한 어트리뷰트를 디코딩하는 것은 다중 어트리뷰트 정보 중 대표 어트리뷰트를 나타내는 정보를 수신하고, 대표 어트리뷰트를 나타내는 정보에 기반하여, 어트리뷰트를 복원하는 것을 포함할 수 있다.
복호화 방법은 도1 또는 도 2를 참조하면, 복호화 장치에 의해 수행될 수 있다. 복호화 장치는 메모리; 및 메모리에 연결된 적어도 하나의 프로세서; 를 포함하고, 적어도 하나의 프로세서는: 비트스트림 내 베이스메쉬를 디코딩; 상기 비트스트림 내 변위를 디코딩; 및 상기 비트스트림 내 어트리뷰트를 디코딩; 하도록 구성될 수 있다.
실시예들에 따른 효과는 다음과 같다. 실시예들은 다수의 속성정보를 갖는 동적 메쉬 데이터 압축 방식의 문제를 개선하고 보다 효율적인 압축 성능을 얻을 수 있는 방법을 제안한다. 실시예들은 다수의 속성 정보들의 오리지널 데이터, 즉 원래의 컬러 값을 그대로 압축하지 않고, 대표 속성정보 (텍스처 맵)를 선정하여 이것과의 픽셀 단위 컬러 값 차이를 연산함으로써 잔차 신호 데이터를 담고 있는 잔차 텍스처(Residual texture) 데이터를 재 생성한다. 이로써 하나의 원래 컬러 정보를 담고 있는 대표 속성 정보와 나머지 잔차 텍스처 비디오들을 각각 비디오 코덱을 이용해 압축함으로써 압축 효율을 높일 수 있다.
실시예들은 방법 및/또는 장치 관점에서 설명되었으며, 방법의 설명 및 장치의 설명은 상호 보완하여 적용될 수 있다.
설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시 예들을 병합하여 새로운 실시 예를 구현하도록 설계하는 것도 가능하다. 그리고, 통상의 기술자의 필요에 따라, 이전에 설명된 실시 예들을 실행하기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체를 설계하는 것도 실시예들의 권리범위에 속한다. 실시예들에 따른 장치 및 방법은 상술한 바와 같이 설명된 실시 예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 실시 예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다. 실시예들의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 실시예들은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 실시예들의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 실시예들의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
실시예들의 장치의 다양한 구성요소들은 하드웨어, 소프트웨어, 펌웨어 또는 그것들의 조합에 의해 수행될 수 있다. 실시예들의 다양한 구성요소들은 하나의 칩, 예를 들면 하나의 하드웨어 서킷으로 구현될 수 있다 실시예들에 따라, 실시예들에 따른 구성요소들은 각각 별도의 칩들로 구현될 수 있다. 실시예들에 따라, 실시예들에 따른 장치의 구성요소들 중 적어도 하나 이상은 하나 또는 그 이상의 프로그램들을 실행 할 수 있는 하나 또는 그 이상의 프로세서들로 구성될 수 있으며, 하나 또는 그 이상의 프로그램들은 실시예들에 따른 동작/방법들 중 어느 하나 또는 그 이상의 동작/방법들을 수행시키거나, 수행시키기 위한 인스트럭션들을 포함할 수 있다. 실시예들에 따른 장치의 방법/동작들을 수행하기 위한 실행 가능한 인스트럭션들은 하나 또는 그 이상의 프로세서들에 의해 실행되기 위해 구성된 일시적이지 않은 CRM 또는 다른 컴퓨터 프로그램 제품들에 저장될 수 있거나, 하나 또는 그 이상의 프로세서들에 의해 실행되기 위해 구성된 일시적인 CRM 또는 다른 컴퓨터 프로그램 제품들에 저장될 수 있다. 또한 실시예들에 따른 메모리는 휘발성 메모리(예를 들면 RAM 등)뿐 만 아니라 비휘발성 메모리, 플래쉬 메모리, PROM등을 전부 포함하는 개념으로 사용될 수 있다. 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함될 수 있다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이 문서에서 “”와 “”는 “및/또는”으로 해석된다. 예를 들어, “”는 “및/또는 B”로 해석되고, “B”는 “및/또는 B”로 해석된다. 추가적으로, “”는 “B 및/또는 C 중 적어도 하나”를 의미한다. 또한, “B, C”도 “B 및/또는 C 중 적어도 하나”를 의미한다. 추가적으로, 이 문서에서 “또는”는 “및/또는”으로 해석된다. 예를 들어, “또는 B”은, 1) “”만을 의미하고, 2) “”만을 의미하거나, 3) “및 B”를 의미할 수 있다. 달리 표현하면, 본 문서의 “또는”은 “추가적으로 또는 대체적으로(additionally or alternatively)”를 의미할 수 있다.
제1, 제2 등과 같은 용어는 실시예들의 다양한 구성요소들을 설명하기 위해 사용될 수 있다. 하지만 실시예들에 따른 다양한 구성요소들은 위 용어들에 의해 해석이 제한되어서는 안된다. 이러한 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위해 사용되는 것에 불과하다. 것에 불과하다. 예를 들어, 제1 사용자 인풋 시그널은 제2사용자 인풋 시그널로 지칭될 수 있다. 이와 유사하게, 제2사용자 인풋 시그널은 제1사용자 인풋시그널로 지칭될 수 있다. 이러한 용어의 사용은 다양한 실시예들의 범위 내에서 벗어나지 않는 것으로 해석되어야만 한다. 제1사용자 인풋 시그널 및 제2사용자 인풋 시그널은 모두 사용자 인풋 시그널들이지만, 문맥 상 명확하게 나타내지 않는 한 동일한 사용자 인풋 시그널들을 의미하지 않는다.
실시예들을 설명하기 위해 사용된 용어는 특정 실시예들을 설명하기 위한 목적으로 사용되고, 실시예들을 제한하기 위해서 의도되지 않는다. 실시예들의 설명 및 청구항에서 사용된 바와 같이, 문맥 상 명확하게 지칭하지 않는 한 단수는 복수를 포함하는 것으로 의도된다. 및/또는 표현은 용어 간의 모든 가능한 결합을 포함하는 의미로 사용된다. 포함한다 표현은 특징들, 수들, 단계들, 엘리먼트들, 및/또는 컴포넌트들이 존재하는 것을 설명하고, 추가적인 특징들, 수들, 단계들, 엘리먼트들, 및/또는 컴포넌트들을 포함하지 않는 것을 의미하지 않는다. 실시예들을 설명하기 위해 사용되는, ~인 경우, ~때 등의 조건 표현은 선택적인 경우로만 제한 해석되지 않는다. 특정 조건을 만족하는 때, 특정 조건에 대응하여 관련 동작을 수행하거나, 관련 정의가 해석되도록 의도되었다.
또한, 본 문서에서 설명하는 실시예들에 따른 동작은 실시예들에 따라서 메모리 및/또는 프로세서를 포함하는 송수신 장치에 의해 수행될 수 있다. 메모리는 실시예들에 따른 동작을 처리/제어하기 위한 프로그램들을 저장할 수 있고, 프로세서는 본 문서에서 설명한 다양한 동작을 제어할 수 있다. 프로세서는 컨트롤러 등으로 지칭가능하다. 실시예들에 동작들은 펌웨어, 소프트웨어, 및/또는 그것들의 조합에 의해 수행될 수 있고, 펌웨어, 소프트웨어, 및/또는 그것들의 조합은 프로세서에 저장되거나 메모리에 저장될 수 있다.
한편, 상술한 실시예들에 따른 동작은 실시예들 따른 송신 장치 및/또는 수신 장치에 의해서 수행될 수 있다. 송수신 장치는 미디어 데이터를 송수신하는 송수신부, 실시예들에 따른 프로세스에 대한 인스트럭션(프로그램 코드, 알고리즘, flowchart 및/또는 데이터)을 저장하는 메모리, 송/수신 장치의 동작들을 제어하는 프로세서를 포함할 수 있다.
프로세서는 컨트롤러 등으로 지칭될 수 있고, 예를 들어, 하드웨어, 소프트웨어, 및/또는 그것들의 조합에 대응할 수 있다. 상술한 실시예들에 따른 동작은 프로세서에 의해 수행될 수 있다. 또한, 프로세서는 상술한 실시예들의 동작을 위한 인코더/디코더 등으로 구현될 수 있다.
상술한 바와 같이, 실시예들을 실시하기 위한 최선의 형태에서 관련 내용을 설명하였다.
상술한 바와 같이, 실시예들은 포인트 클라우드 데이터 송수신 장치 및 시스템에 전체적 또는 부분적으로 적용될 수 있다.
당업자는 실시예들의 범위 내에서 실시예들을 다양하게 변경 또는 변형할 수 있다.
실시예들은 변경/변형들을 포함할 수 있고, 변경/변형은 청구항들 및 그 와 동일한 것들의 범위를 벗어나지 않는다.

Claims (15)

  1. 비트스트림 내 베이스메쉬를 디코딩하는 단계;
    상기 비트스트림 내 변위를 디코딩하는 단계; 및
    상기 비트스트림 내 어트리뷰트를 디코딩하는 단계; 를 포함하는,
    복호화 방법.
  2. 제1항에 있어서,
    상기 비트스트림 내 어트리뷰트를 디코딩하는 단계는:
    상기 비트스트림 내 상기 어트리뷰트가 메쉬 데이터의 하나의 오브젝트에 연관된 다중 어트리뷰트 정보에 관련되어 있는지 여부를 나타내는 플래그에 기초하여, 상기 다중 어트리뷰트 정보에 관한 어트리뷰트를 디코딩하는 것을 포함하고,
    상기 플래그의 제1값은 상기 어트리뷰트가 상기 다중 어트리뷰트 정보에 대한 잔차 어트리뷰트 정보를 포함함을 나타내는,
    복호화 방법.
  3. 제2항에 있어서,
    상기 다중 어트리뷰트 정보는 상기 하나의 오브젝트에 대한 바운딩 박스에 관련된 복수의 어트리뷰트 데이터가 결합(concatenated)된 데이터인,
    복호화 방법.
  4. 제2항에 있어서,
    상기 비트스트림은 파라미터 세트 정보를 포함하고,
    상기 파라미터 세트 정보는 상기 비트스트림 내 상기 어트리뷰트의 타입을 나타내는 정보를 포함하고,
    상기 어트리뷰트의 상기 타입의 제1값은 상기 어트리뷰트가 상기 다중 어트리뷰트 정보 간 도출된 잔차 어트리뷰트 정보를 포함함을 나타내는,
    복호화 방법.
  5. 제2항에 있어서,
    상기 다중 어트리뷰트 정보에 관한 어트리뷰트를 디코딩하는 것은,
    상기 다중 어트리뷰트 정보 중 대표 어트리뷰트 정보와, 상기 대표 어트리뷰트 정보와의 잔차 어트리뷰트 정보를 합산하여 상기 어트리뷰트를 복원하는 것을 포함하는,
    복호화 방법.
  6. 제5항에 있어서,
    상기 비트스트림은 상기 다중 어트리뷰트 정보 중 대표 어트리뷰트를 나타내는 정보를 포함하고,
    상기 어트리뷰트는 상기 대표 어트리뷰트를 나타내는 정보에 기반하여 복원되는,
    복호화 방법.
  7. 메모리; 및
    상기 메모리에 연결된 적어도 하나의 프로세서; 를 포함하고, 상기 적어도 하나의 프로세서는:
    비트스트림 내 베이스메쉬를 디코딩;
    상기 비트스트림 내 변위를 디코딩; 및
    상기 비트스트림 내 어트리뷰트를 디코딩; 하도록 구성되는,
    복호화 장치.
  8. 메쉬 데이터의 베이스메쉬를 비트스트림으로 인코딩하는 단계;
    상기 메쉬 데이터의 변위를 상기 비트스트림으로 인코딩하는 단계; 및
    상기 메쉬 데이터의 어트리뷰트를 상기 비트스트림으로 인코딩하는 단계; 를 포함하는,
    부호화 방법.
  9. 제8항에 있어서,
    상기 메쉬 데이터의 어트리뷰트를 인코딩하는 단계는,
    다중 어트리뷰트 정보에 관한 어트리뷰트를 인코딩하는 것을 포함하고,
    상기 다중 어트리뷰트 정보는 상기 하나의 오브젝트에 대한 바운딩 박스에 관련된 복수의 어트리뷰트 데이터가 결합(concatenated)된 데이터인,
    부호화 방법.
  10. 제9항에 있어서,
    상기 다중 어트리뷰트 정보에 관한 어트리뷰트를 인코딩하는 것은,
    상기 다중 어트리뷰트 정보 중 대표 어트리뷰트 정보와의 픽셀 별 컬러 차이를 산출하여 잔차 어트리뷰트 정보를 산출하는 것을 포함하는,
    부호화 방법.
  11. 제8항에 있어서,
    상기 비트스트림은 상기 어트리뷰트가 메쉬 데이터의 하나의 오브젝트에 연관된 다중 어트리뷰트 정보에 관련되어 있는지 여부를 나타내는 플래그를 포함하고,
    상기 플래그의 제1값은 상기 어트리뷰트가 상기 다중 어트리뷰트 정보에 대한 잔차 어트리뷰트 정보를 포함함을 나타내는,
    부호화 방법.
  12. 제11항에 있어서,
    상기 비트스트림은 파라미터 세트 정보를 포함하고,
    상기 파라미터 세트 정보는 상기 비트스트림 내 상기 어트리뷰트의 타입을 나타내는 정보를 포함하고,
    상기 어트리뷰트의 상기 타입의 제1값은 상기 어트리뷰트가 상기 다중 어트리뷰트 정보 간 도출된 잔차 어트리뷰트 정보를 포함함을 나타내는,
    부호화 방법.
  13. 메모리; 및
    상기 메모리에 연결된 적어도 하나의 프로세서; 를 포함하고, 상기 적어도 하나의 프로세서는:
    메쉬 데이터의 베이스메쉬를 인코딩;
    상기 메쉬 데이터의 변위를 인코딩; 및
    상기 메쉬 데이터의 어트리뷰트를 인코딩; 하도록 구성되는,
    부호화 장치.
  14. 제8항에 따른 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 저장매체.
  15. 메쉬 데이터에 대한 비트스트림을 획득하는 단계,
    상기 비트스트림은 상기 메쉬 데이터의 베이스메쉬를 인코딩하는 단계; 상기 메쉬 데이터의 변위를 인코딩하는 단계; 및 상기 메쉬 데이터의 어트리뷰트를 인코딩하는 단계; 에 기초하여 생성됨; 및
    상기 비트스트림을 포함하는 데이터를 전송하는 단계를 포함하는, 방법.
PCT/KR2025/008911 2024-06-25 2025-06-25 메쉬 데이터 부호화 장치, 메쉬 데이터 부호화 방법, 메쉬 데이터 복호화 장치 및 메쉬 데이터 복호화 방법 Pending WO2026005485A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2024-0082896 2024-06-25
KR20240082896 2024-06-25

Publications (1)

Publication Number Publication Date
WO2026005485A1 true WO2026005485A1 (ko) 2026-01-02

Family

ID=98222368

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2025/008911 Pending WO2026005485A1 (ko) 2024-06-25 2025-06-25 메쉬 데이터 부호화 장치, 메쉬 데이터 부호화 방법, 메쉬 데이터 복호화 장치 및 메쉬 데이터 복호화 방법

Country Status (1)

Country Link
WO (1) WO2026005485A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022186675A1 (ko) * 2021-03-05 2022-09-09 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2024063811A1 (en) * 2022-09-22 2024-03-28 Tencent America LLC Multiple attribute maps merging
WO2024085654A1 (en) * 2022-10-19 2024-04-25 Samsung Electronics Co., Ltd. Packing of displacements data in video frames for dynamic mesh coding
US20240153150A1 (en) * 2022-10-26 2024-05-09 Apple Inc. Mesh Compression Texture Coordinate Signaling and Decoding
WO2024123039A1 (ko) * 2022-12-05 2024-06-13 엘지전자 주식회사 3d 데이터 송신 장치, 3d 데이터 송신 방법, 3d 데이터 수신 장치 및 3d 데이터 수신 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022186675A1 (ko) * 2021-03-05 2022-09-09 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2024063811A1 (en) * 2022-09-22 2024-03-28 Tencent America LLC Multiple attribute maps merging
WO2024085654A1 (en) * 2022-10-19 2024-04-25 Samsung Electronics Co., Ltd. Packing of displacements data in video frames for dynamic mesh coding
US20240153150A1 (en) * 2022-10-26 2024-05-09 Apple Inc. Mesh Compression Texture Coordinate Signaling and Decoding
WO2024123039A1 (ko) * 2022-12-05 2024-06-13 엘지전자 주식회사 3d 데이터 송신 장치, 3d 데이터 송신 방법, 3d 데이터 수신 장치 및 3d 데이터 수신 방법

Similar Documents

Publication Publication Date Title
WO2020190114A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020189895A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2024063544A1 (ko) 3d 데이터 송신 장치, 3d 데이터 송신 방법, 3d 데이터 수신 장치 및 3d 데이터 수신 방법
WO2020190090A1 (ko) 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020189982A1 (ko) 포인트 클라우드 데이터 처리 장치 및 방법
WO2024049197A1 (ko) 3d 데이터 송신 장치, 3d 데이터 송신 방법, 3d 데이터 수신 장치 및 3d 데이터 수신 방법
WO2021025392A1 (ko) 포인트 클라우드 데이터 처리 장치 및 방법
WO2022050688A1 (ko) 3d 데이터 송신 장치, 3d 데이터 송신 방법, 3d 데이터 수신 장치 및 3d 데이터 수신 방법
WO2024043659A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2024185940A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021101066A1 (ko) 비디오 또는 영상 코딩 시스템에서의 엔트리 포인트 관련 정보에 기반한 영상 코딩 방법
WO2024191192A1 (ko) 메쉬 데이터 송신 장치, 메쉬 데이터 송신 방법, 메쉬 데이터 수신 장치 및 메쉬 데이터 수신 방법
WO2026005485A1 (ko) 메쉬 데이터 부호화 장치, 메쉬 데이터 부호화 방법, 메쉬 데이터 복호화 장치 및 메쉬 데이터 복호화 방법
WO2023132605A1 (ko) 포인트 클라우드 데이터의 전송 장치와 이 전송 장치에서 수행되는 방법 및, 포인트 클라우드 데이터의 수신 장치와 이 수신 장치에서 수행되는 방법
WO2025048566A1 (ko) 메쉬 데이터 송신 장치, 메쉬 데이터 송신 방법, 메쉬 데이터 수신 장치 및 메쉬 데이터 수신 방법
WO2025048473A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021118076A1 (ko) 비디오 또는 영상 코딩 시스템에서의 일부 엔트리 포인트 관련 정보에 기반한 영상 코딩 방법
WO2021002562A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2025220986A1 (ko) 메쉬 데이터 송신 장치, 메쉬 데이터 송신 방법, 메쉬 데이터 수신 장치 및 메쉬 데이터 수신 방법
WO2025216593A1 (ko) 메쉬 데이터 부호화 장치, 메쉬 데이터 부호화 방법, 메쉬 데이터 복호화 장치 및 메쉬 데이터 복호화 방법
WO2025009868A1 (ko) 메쉬 데이터 송신 장치, 메쉬 데이터 송신 방법, 메쉬 데이터 수신 장치 및 메쉬 데이터 수신 방법
WO2026014975A1 (ko) 메쉬 데이터 부호화 장치, 메쉬 데이터 부호화 방법, 메쉬 데이터 복호화 장치 및 메쉬 데이터 복호화 방법
WO2026010463A1 (ko) 메쉬 데이터 송신 장치, 메쉬 데이터 송신 방법, 메쉬 데이터 수신 장치 및 메쉬 데이터 수신 방법
WO2026005484A1 (ko) 메쉬 데이터 송신 장치, 메쉬 데이터 송신 방법, 메쉬 데이터 수신 장치 및 메쉬 데이터 수신 방법
WO2026084533A1 (ko) 메쉬 데이터 송신 장치, 메쉬 데이터 송신 방법, 메쉬 데이터 수신 장치 및 메쉬 데이터 수신 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25827055

Country of ref document: EP

Kind code of ref document: A1