SYSTEMS AND METHODS FOR ENCODING THE SEMANTIC ELEMENTS OF PRIMITIVE MESH FORMATS

VN126149APending Publication Date: 2026-06-15INTERDIGITAL CE PATENT HOLDINGS SAS
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
VN · VN
Patent Type
Applications
Current Assignee / Owner
INTERDIGITAL CE PATENT HOLDINGS SAS
Filing Date
2024-09-30
Publication Date
2026-06-15

AI Technical Summary

Technical Problem

Current 3D scene and object interaction technologies in immersive environments lack effective mechanisms for semantically describing mesh primitives, leading to difficulties in partitioning and rendering complex meshes without duplicating geometry or losing contextual information.

Method used

The introduction of a segmentation extension for mesh objects in the MPEG-I Scene Description framework, which allows for the semantic labeling of mesh primitives and facilitates mesh partitioning without duplicating geometry, thereby improving contextual information and rendering efficiency.

Benefits of technology

This solution enables efficient mesh partitioning and improved contextual information for mesh primitives, reducing the number of sub-meshes and enhancing the ability of engines and applications to infer and utilize interactivity models in immersive environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure VN1202602450_0
    Figure VN1202602450_0
Patent Text Reader

Abstract

The method includes the step of obtaining a scene description file containing a data structure representing the object of the immersive video system, where the data structure includes a segment extension that indicates that the mesh object is segmented and includes data for each mesh segment, and rendering the scene from the scene description file according to the data structure so that the object is rendered in at least part of the scene. The relevant machine, computer-readable media including instructions to cause one or more processors to execute the method, computer program product computer-readable media including instructions to cause one or more processors to execute the method, and signals including the scene description file for the 3D scene are also described.
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEM AND METHOD OF MESH PRIMITIVE SEMANTICAL CODINGCROSS-REFERENCE

[0001] This application claims the priority of European Patent Application No. 23306719.8, filed 6 October 2023, entitled “System and Method of Mesh Primitive Semantical Coding,” which is incorporated herein by reference in its entirety.BACKGROUND

[0002] The present disclosure relates to 3D scene and object interaction within immersive environments, including but not limited to, a mesh extension that provides a semantical description of the primitives created under a mesh object.

[0003] Various technologies are available for generating, processing, and rendering virtual three-dimensional (3D) scenes. The information characterizing a 3D scene, referred to as a scene description, can be time-dependent, allowing a 3D scene to change in a manner analogous to playback of a video. This kind of behavior can be achieved by relying on the framework defined in the Scene Description for MPEG media document, Information technology - Coded representation of immersive media - Parti 4: Scene Description for MPEG media, ISO / IEC DIS 23090-14 :2021 (E). A scene update mechanism based on the JSON Patch protocol as defined in IETF RFC 6902 may be used to synchronize virtual content to MPEG media streams.

[0004] Extended reality (XR) is a technology enabling interactive experiences where the real- world environment and / or a video content is enhanced by virtual content, which may be utilized across multiple sensory modalities, including visual, auditory, haptic, and so forth. During runtime of the application, the virtual content (for example, 3D content or audio / video file) is rendered in real-time in a way that is consistent with the user context (environment, point of view, device, and so forth). Scene graphs, such as gITF (Graphics Language Transmission Format) and its extensions described in MPEG Scene Description format or USDZ, are representations of the content to be rendered. Scene graphs combine a declarative description of the scene structure linking real-environment objects and virtual objects on one hand, and binary representations of the virtual content on the other hand. Scene description frameworks ensure that the timed media and the corresponding relevant virtual content are available at any time during the rendering of the application. Scene descriptions may also carry data at scene level describing how a user may interact with scene objects at runtime for immersive XR experiences.SUMMARY

[0005] A method comprises obtaining a scene description file containing a data structure representing an object of an immersive video system, wherein the data structure comprises a segmentation extension that indicates that a mesh object is segmented and includes data for each mesh segment, and rendering a scene from the scene description file according to the data structure such that the object is at least partially rendered in the scene. An associated apparatus, a computer-readable medium including instructions for causing one or more processors to perform the method, a computer-readable medium computer program product including instructions for causing one or more processors to carry out the method, and a signal comprising a scene description file for a 3D scene are also described.BRIEF DESCRIPTION OF THE DRAWINGS

[0006] FIG. 1 illustrates a flowchart of a method of rendering an object in a scene in accordance with at least one embodiment.

[0007] FIG. 2 illustrates a flowchart of a method of parsing a semantics array in accordance with at least one embodiment.

[0008] FIG. 3 illustrates a flowchart of a method of parsing a segmentation array in accordance with at least one embodiment.

[0009] FIG. 4 illustrates a flowchart of a method of parsing primitives in accordance with at least one embodiment.

[0010] FIG. 5 illustrates a mesh made of seven primitives having corresponding semantics in accordance with at least one embodiment.

[0011] FIG. 6 illustrates a front face of each cube / primitive for a mesh made of seven primitives having corresponding semantics in accordance with at least one embodiment.

[0012] FIG. 7 illustrates a block diagram of a device for display and / or rendering of 3D scene information in accordance with at least one embodiment.DETAILED DESCRIPTION

[0013] In some 3D applications, a scene description is used to combine explicit and easy-to- parse description of a scene structure and some binary representations of media content.

[0014] In time-based media streaming, the scene description itself may be time-evolving to provide the relevant virtual content for each sequence of a media stream. For instance, for advertising purposes, a virtual bottle may be displayed during a video sequence where people are drinking.

[0015] This kind of behavior may be achieved by relying on the framework described in the Scene Description for MPEG media document, Information technology - Coded representation of immersive media - Part14: Scene Description for MPEG media, ISO / IEC DIS 23090-14 :2021(E). A scene update mechanism based on the JSON Patch protocol as described in IETF RFC 6902 may be used to synchronize virtual content to MPEG media streams.

[0016] In general, animation combination may be performed before the creation of the gITF file or other runtime asset delivery file. During this pre-processing, one computes the combination following any custom rules and stores the resulting new animation in the runtime asset delivery file, which allows for the transportation and rendering of the final scene.

[0017] The present disclosure relates to 3D scene and object interaction within immersive environments. A segmentation extension for a mesh provides a semantical description of the primitives created under a mesh object. This mechanism permits the use of sub-components of a mesh primitive without defragmenting the mesh and how the mesh is rendered in a scene.

[0018] This disclosure introduces a node or segmentation extension for MPEG-I Scene Description (SD) to support mesh partition / segmentation in interactive 3D environments. The current node level in gITF format does not allow 3D mesh primitives to be partitioned / segmented or to define or describe high-level semantical descriptors. Generating sub-meshes and associating nodes to each sub-part becomes intractable in the presence of several sub-parts that may eventually intersect and overfills the scene description with repeated geometry information without contextual information. Using a primitive array in the object mesh facilitates mesh subdivision, although the subdivided mesh parts lose local context at a fine level, resulting in difficulty for engines and applications to infer / use interactivity models in mesh subparts.

[0019] This disclosure describes several mechanisms that reference mesh sub-parts and include contextual information about such regions. This solution advantageously reduces the number of sub-meshes to a single mesh, improves the contextual information of a mesh primitive, and provides several approaches using, for example, gITF format to segment meshes and primitives.

[0020] In the data structure used by gITF format and scene graphics architectures, a node points to a mesh and children nodes with the assumption that the node exists in a similar mesh hierarchy. Although not always the case, when 3D meshes are subdivided into parts of a whole object, manually performing, organizing, and labelling or identifying such portioning of 3D data may be difficult and laborious. The described solution facilitates mesh partition without duplicating 3D geometry or buffer information.

[0021] Table 1 includes node object proprieties in gITF format. In this table and all other syntax descriptions herein, an indication that particular data is “required” indicates only that there are particular embodiments in which the syntax calls for the particular data to be present; it should not be understood as an indication that the information is required in all embodiments.Table 1

[0022] Table 2 includes mesh object proprieties in gITF format.Table 2

[0023] A mesh primitive object facilitates partitioning a mesh object, although semantical information present at the mesh level is lost. The contextual meaning of each primitive is not provided in current solutions for mesh-based representation formats. Table 3 illustrates the lack of contextual information about primitives. The segmentation extension described herein provides a mechanism for semantically labeling or identifying mesh primitives. The segmentation extension is applied at the “mesh. primitive” level, for example, at the node level. Table 3 includes mesh. primitive object proprieties in gITF format.Table 3

[0024] A mesh segment is part of a mesh that, when combined with other mesh segments, reconstructs the completed mesh. A single mesh segment may also represent a complete mesh. A mesh segment provides information, for example, geometrical and textural information for a part of the mesh and additional metadata that provide related information, such as semantical relationship of the mesh segment to a mesh and any non-geometrical and non-textural information for a mesh segment.

[0025] A flowchart of a method of rendering an object in a scene is shown in FIG. 1 . A scene description file containing a data structure representing an object of an immersive video system is obtained 102. The scene description file may be obtained by receiving a transmitted file, including a streamed file or a file received by wireless or wired communication resources, reading data from a storage medium, and so forth. The architecture of the scene description file may advantageously be an MPEG-I Scene Description file. The scene description file may be a JSON file. The scene description file may alternatively be a gITF file. The data structure comprises a segmentation extension, for example, MPEG_mesh_segmentation extension, that indicates thata mesh object is segmented and includes data for each mesh segment. The method optionally comprises parsing, reading, or extracting 104 the data structure from the scene description file and processing the data structure 106 for use, for example, in a synthetic 3D model. For example, such processing may include reading and displaying or visualizing the synthetic 3D model as a mesh, converting the mesh to a point cloud, removing hidden points from the point cloud, converting the point cloud to a dataframe including coordinates and vectors, and storing the resulting data. A scene is rendered 108 from the scene description file according to the data structure such that the object is at least partially rendered in the scene.

[0026] The data structure may advantageously include a static representation and a format representation. The static representation may contain metadata, for example, metadata that represents a user identity including at least one of a name, age, and input device for a user. The format representation may point to a 3D avatar format representation containing at least one of geometry, texture maps, and animation parameters. The data structure may facilitate appearance generalization and stylization, for example, based on user provided data.

[0027] The data structure advantageously comprises a representation of an object, which representation is compatible with any immersive, augmented, and / or streaming technology that considers the transmission of object data or human data, for example, 2D videos or images containing body or faces, 3D technology for rendering, animating, or manipulating assets of human nature. The data structure may include, for example, a digital representation of a human that includes at least one of a skeletal structure, a subject-specific model, a statistical shape model, or metadata representing individual social properties or parameters. The data structure may be a synthetic 3D representation of a digital human.

[0028] The format for primitive semantics may follow the gITF format and is compatible with the current MPEG effort to extend gITF with MPEG extensions. While example embodiments are described herein using the gITF format, it should be understood that the principles described herein are not limited to the use of gITF. For example, different embodiments may use different formats such as XML, USD, and so forth.

[0029] The object “semantics” is advantageously added at the root level of the mesh object. A segmentation extension to a mesh object in gITF 2.0, for example, MPEG_mesh_segmentation extension, is included in a data structure in a scene description file, for example, to indicate that a mesh with the segmentation extension is segmented, and the geometrical and textural data for each of the mesh segments is present or included in the scene description file. Information is stored in the mesh. primitive property of the mesh object. The presence of the segmentation extension, such as MPEG_mesh_segmentation, in a scene description file may be indicated by mechanisms such as extensionRequired and extensionUsed properties in glTF2.0."extensionllsed" : {"MPEG_mesh_segmentation" b"extensionRequired" : {"MPEG_mesh_segmentation"}

[0030] A segmentation extension provides information, for example, semantic properties to relate a mesh. primitive to a mesh segment. The segmentation extension, such as MPEG_mesh_segmentation, at the mesh level has the following description:

[0031] The object “semantics” is an array of strings that facilitates the content creator to add context to the meaning of each primitive of the mesh. The array “semantics” is index aligned with the primitives' array, hence the number of elements in the “semantics” array matches the number of elements in the “primitives” array. This index alignment facilitates mesh segmentation and identification such that the immersive application acts appropriately with respect to the primitive.

[0032] The segmentation extension, such as MPEG_mesh_segmentation, at the mesh level has the following description:

[0033] The object “segmentation” contains an array of “segment” objects. The “segment” is an object of strings (“semantic” attribute) and indices (“index” attribute) for a primitive in the mesh. The object “segmentation” facilitates semantical description of a primitive and gives freedom to the content creator not to describe each primitive if not necessary or desired.

[0034] The object “semantics” is advantageously added at the root level of a “mesh. primitive” object. A primitive semantics extension to the “mesh. primitive” object in glTF2.0, for example, an “MPEG_primitive_semantics” extension, is included in a data structure in a scene description file, for example, gITF, to indicate that a “mesh. primitive” with the “MPEG_primitive_semantics” extension has associated semantical information. The presence of the MPEG_primitive_semantics extension in a scene description file may be indicated by mechanisms such as the extensionRequired and extensionUsed properties in glTF2.0."extensionllsed" : {"MPEG_primitive_semantics" b"extensionRequired" : {"MPEG_primitive_semantics"}

[0035] A primitive semantics extension, such as MPEG_primitive_semantics, provides information, for example, semantic properties to relate a “mesh. primitive” to a mesh segment. The primitive semantics extension at the mesh. primitive level has the following description:

[0036] The object “semantics” is a string that facilitates the content creator to add context to the meaning of each primitive of the mesh. The object “semantics” facilitates mesh segmentation and identification such that the immersive application may act appropriately with respect to the primitive.

[0037] The primitive semantics extension, such as MPEG_primitive_semantics, at the mesh. primitive level has the following description:

[0038] The segment objects in the array may have the following description:

[0039] In this and other examples provided herein, an indication of whether a syntax element is optional “O” or mandatory “M” merely indicates that the syntax element is optional or mandatory according to the syntax of the particular embodiment shown. A syntax element marked as mandatory for one particular embodiment is not necessarily mandatory in (or even used in) a different embodiment. The object “segmentation” contains an array of “segment” objects. The “segment” is an object of strings (“semantic” attribute) and indices (“index” attribute) of a primitive in the mesh. The “semantic” describes the meaning or context of such segmentation. The “indices” points to an accessor to segment the “mesh. primitive”. The object “segmentation” contains vertex indices related to the semantic. The object “segmentation” facilitates the semantical description of a primitive and gives freedom to the content creator to segment a primitive with associated context.

[0040] A flowchart of a method of parsing a semantics array is shown in FIG. 2. The method parses the named convention for each of the primitives and disambiguates identical naming conventions. A mesh is processed 202 from a node object. When a segmentation extension such as “MPEG_mesh_segmentation” exists or is included 204 in the scene description file, the process checks 206 whether the “primitive” array and “semantics” array have the same or equal dimensions. When the dimensions are different 206, a warning or error is reported 208. When the dimensions are the same or equal 206, the semantics array is parsed 210. Each string in the semantics array is partitioned by a character 7” and a path is created and stored for each string to represent a path or hierarchy. Once all strings have been parsed, identical path names are disambiguated to facilitate accurate processing of the strings. When all the path names are unique 212, the data structure processing continues. When any two or more path names are identical 212, a different index is added 214 to each identical path to disambiguate identical paths until each path name is unique, and the processing continues. The index number need not be provided in any particular order. For example, the semantic strings “left_arm / hand” and “left_arm / hand” have the same path / string, thus the parsing mechanism may generate “left_arm / hand / 0” and “left_arm / hand / 1” to disambiguate the identical names.

[0041] A flowchart of a method of parsing a segmentation array is shown in FIG. 3. The method parses the named convention for each of the primitives and disambiguates identical naming conventions. A mesh is processed 302 from a node object. When a segmentation extension such as “MPEG_mesh_segmentation” exists or is included 304 in the scene description file, the process checks 306 whether the “primitive” array and “segmentation” array have the same or equal dimensions. When the dimensions are different 306, a warning or error is reported 308. When the dimensions are the same or equal 306, the segmentation array is parsed 310. Each string in the segmentation array is partitioned by a characterand a path is created and stored for each string to represent a path or hierarchy. Once all strings have been parsed, identical path names are disambiguated to facilitate accurate processing of the strings. When all the path names are unique 312, the data structure processing continues. When any two or more path names are identical 312, a different index is added 314 to each identical path to disambiguate identical paths until each path name is unique, and the processing continues. The index number need not be provided in any particular order. For example, the semantic strings “left_arm / hand” and “left_arm / hand” have the same path / string, thus the parsing mechanism may generate “left_arm / hand / 0” and “left_arm / hand / 1” to disambiguate the identical names.

[0042] A flowchart of a method of parsing primitives is shown in FIG. 4. The method parses the named convention for each of the primitives and disambiguates identical naming conventions. A mesh is processed from a node object, and each primitive is parsed 402. When a segmentation extension such as “MPEG_mesh_segmentation” exists or is included 404 in the scene description file, the semantics array is parsed 406, and each string in the semantics array is partitioned 406 by a character 7” and a path is created and stored for each string to represent a path or hierarchy. When all of the primitives have not been parsed 408, the process continues at 402, where another primitive is processed. When all of the primitives have been parsed 408, identical path names are disambiguated to facilitate accurate processing of the strings. When all the path names are unique 410, the data structure processing continues. When any two or more path names are identical 410, a different index is added 412 to each identical path to disambiguate identical paths until each path name is unique, and the processing continues. The index number need not be provided in any particular order. For example, the semantic strings “leftjeg / foot” and “leftjeg / foot” have the same path / string, thus the parsing mechanism may generate “leftJeg / foot / 0” and “left_leg / foot / 1” to disambiguate the identical names.

[0043] The following gITF files are examples (not exhaustive) of instantiations of the segmentation extension. A huge number of instantiations are possible, depending on the application. These examples only show parts of the gITF file related to the various embodiments. Data (buffers, accessors, and so forth) are included but not shown to build mesh primitives.

[0044] A mesh made of seven primitives having corresponding semantics is shown in FIG. 5. The mesh is made of seven cubes in this example. A semantic meaning is added to each ofthese primitives. For example, the top cube represents the head of a character, where 0 indicates white color. One implementation is as follows: { "asset": { "generator": "Interdigital R&D France Video Lab, MetaVideo, Interactive Media, Immersive teleprescence" , "version": "2.0" b "accessors" : [...], "bufferviews": [...], "buffers" : [...], "meshes": [{ "primitives": [{ "attributes": { "COLOR_0" : 2, "POSITION": 1 b "indices": 0 b { "attributes": { "COLOR_0": 4, "POSITION": 3 b "indices": 0 b { "attributes": { "COLOR_0": 6, "POSITION": 5 b "indices": 0 b { "attributes": { "COLOR_0" : 8, "POSITION": 7 b "indices": 0 b { "attributes": { "COLOR_0": 10, "POSITION": 9 b "indices": 0 b { "attributes": { "COLOR_0" : 12, "POSITION": 11 b "indices": 0 b { "attributes": { "COLOR_0": 14, "POSITION": 13 b "indices": 0}b"extensions" : {"MPEG_mesh_segmentation" : {"semantics" : ["f ull_body / upper_body / head " ,"f ull_body / upper_body / thorax" ,"f ull_body / upper_body / arm_right" ,"f ull_body / upper_body / arm_left" ,"f ull_body / lower_body / pelvis" ,"f ull_body / lower_body / leg_right" ," f u 1 l_body / lowe r_body / leg_lef t "]}}}L"nodes" : [{"mesh" : 0}L" scenes" : [{"nodes" : [0]}L"extensionsllsed" : ["MPEG_mesh_segmentation"L"extensionsRequired" : ["MPEG_mesh_segmentation"]}

[0045] A gITF loader first decodes usual content (buffers, meshes, nodes, and so forth) except for the segmentation extension data. A single mesh has seven primitives, each primitive having the same topology ("indices" are the same), and vertex coordinates and colors are specific (different "POSITION" and "COLOR_0" attributes). Once default loading is completed, the segmentation extension data is parsed. The segmentation extension contains a single "semantics" property, with seven strings. Each string describes the semantics of a primitive, in the same order, as presented in FIG. 5. For example, the first value of "semantics" is "full_body / upper_body / head" and corresponds to the first primitive, and so forth.

[0046] The following example solves the same problem as the previous example, except that the mesh includes multiple mesh segments:{"asset" : {"generator" : " Interdigital R&D France, Video Lab, MetaVideo, Interactive Media, Immersive teleprescence" , "version" : "2.0" b"accessors" : [ . . . ] ,"bufferviews" : [ . . . ] ,"buffers" : [ . . . ] ,"meshes" : [{"primitives" : [{"attributes" : {"COLOR_0" : 2,"POSITION": 1 b"indices": 0 b {"attributes": {"COLOR_0": 4,"POSITION": 3 b"indices": 0 b {"attributes": {"COLOR_0": 6,"POSITION": 5 b"indices": 0 b {"attributes": {"COLOR_0" : 8 j"POSITION": 7 b"indices": 0 b {"attributes": {"COLOR_0": 10,"POSITION": 9 b"indices": 0 b {"attributes": {"COLOR_0" : 12,"POSITION": 11 b"indices": 0 b {"attributes": {"COLOR_0": 14,"POSITION": 13 b"indices": 0}b"extensions": {"MPEG_mesh_segmentation" : {"segmentation": [{"semantic" : "f ull_body / upper_body / head" ,"index": 0 b {"semantic" : "f ull_body / upper_body / thorax" ,"index": 1 b {"semantic" : "f ull_body / upper_body / head" ,"index": 2 b {"semantic" : "f ull_body / upper_body / arm_right" ,"index": 3 b {"semantic" : "full_body / upper_body / arm_left" , "index": 4 b { "semantic" : "f ull_body / lower_body / pelvis" , "index": 5 b { "semantic" : "f ull_body / lower_body / leg_right" , "index": 6 b { "semantic" : "f ull_body / lower_body / leg_left" , "index": 7}]}}}b"nodes": [{"mesh": 0}b"scenes": [{"nodes": [0]}b"extensionsllsed" : ["MPEG_mesh_segmentation" b"extensionsRequired" : ["MPEG_mesh_segmentation"]}

[0047] A gITF loader first decodes usual content (buffers, meshes, nodes, and so forth) except for the segmentation extension data. A single mesh has seven primitives, each primitive having the same topology ("indices" are the same), and vertex coordinates and colors are specific (different "POSITION" and "COLOR_0" attributes). Once default loading is completed, the segmentation extension data is parsed. The segmentation extension contains a single "segmentation" property, with seven objects. Each object describes the semantics of a primitive, in the same order, as presented in FIG. 5. For example, the first object contains a "semantic" property with "full_body / upper_body / head" and an "index" property with value 0, which corresponds to the first primitive.

[0048] This example solves the same problem as the previous example, except that a single semantic object is included:{"asset": {"generator": "Interdigital R&D France, Video Lab, MetaVideo, Interactive Media, Immersive teleprescence" , "version": "2.0" b"accessors" : [...],"bufferviews": [...],"buffers" : [...],"meshes": [{"primitives": [{"attributes": {"COLOR_0": 2 j"POSITION": 1 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"semantic" : "f ull_body / upper_body / head"}} b {"attributes": {"COLOR_0": 4"POSITION": 3 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"semantic" : "f ull_body / upper_body / thorax"}} b {"attributes": {"COLOR_0": 6,"POSITION": 5 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"semantic" : ”full_body / upper_body / arm_right"}} b {"attributes": {"COLOR_0" : 8 j"POSITION": 7 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"semantic" : "f ull_body / upper_body / arm_left”}} b {"attributes": {"COLOR_0" : 10,"POSITION": 9 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"semantic" : "f ull_body / lower_body / pelvis"}} b {"attributes" : {"COLOR_0" : 12 j"POSITION" : 11 b" indices" : 0,"extensions" : {"MPEG_primitive_semantics" : {" semantic" : "f ull_body / lower_body / leg_right"}} b {"attributes" : {"COLOR_0" : 14,"POSITION" : 13 b" indices" : 0,"extensions" : {"MPEG_primitive_semantics" : {" semantic" : "f ull_body / lower_body / leg_left"}}}]}"nodes" : [ {"mesh" : 0}" scenes" : [{"nodes" : [0]}"extensionsllsed" : ["MPEG_primitive_semantics" b"extensionsRequired" : ["MPEG_primitive_semantics"]}

[0049] A gITF loader first decodes usual content (buffers, meshes, nodes, and so forth) except for the primitive semantics extension data. A single mesh has seven primitives, each primitive having the same topology ("indices" are the same), and vertex coordinates and colors are specific (different "POSITION" and "COLOR_0" attributes). Once default loading is completed, the primitive semantics extension data is parsed. Each primitive contains a single "semantic" property that describes the semantics of the primitive. For example, the first primitive contains a primitive semantics extension, such as MPEG_primitive_semantics, with a "semantic" property with "full_body / upper_body / head".

[0050] A front face of each cube / primitive for a mesh made of seven primitives having corresponding semantics is shown in FIG. 6. In the following example, the same mesh and primitive of the previous examples are utilized, except that a semantic is attributed to the front face of each cube / primitive. One possible implementation is as follows:{"asset": {"generator": "Interdigital R&D France, Video Lab, MetaVideo, InteractiveMedia, Immersive teleprescence" , "version": "2.0" b"accessors" : [...],"bufferviews": [...],"buffers" : [...],"meshes": [{"primitives": [{"attributes": {"COLOR_0" : 2, "POSITION": 1 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"segmentation": [{"semantic" : "full_body / upper_body / head / face", "indices": 15}]}} b {"attributes": {"COLOR_0": 4, "POSITION": 3 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"segmentation": [{"semantic" : "full_body / upper_body / thorax / front" , "indices": 15}]}} b {"attributes": {"COLOR_0": 6, "POSITION": 5 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"segmentation": [{"semantic" : "full_body / upper_body / arm_right / hand", "indices": 15}]}} b {"attributes": { "COLOR_0" : 8, "POSITION": 7b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"segmentation": [{"semantic" : "full_body / upper_body / arm_left / hand"}"indices": 15}]}} b {"attributes": {"COLOR_0" : 10,"POSITION": 9 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"segmentation": [{"semantic" : "f ull_body / lower_body / pelvis / f ront" , "indices": 15}]}} b {"attributes": {"COLOR_0" : 12,"POSITION": 11 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"segmentation": [{"semantic" : "full_body / lower_body / leg_right / foot", "indices": 15}]}} b {"attributes": {"COLOR_0" : 14,"POSITION": 13 b"indices": 0,"extensions": {"MPEG_primitive_semantics" : {"segmentation": [{"semantic" : "f ull_body / lower_body / leg_left / foot" , "indices": 15}]}}}]}"nodes": [{"mesh" : 0}L" scenes" : [{"nodes" : [0]"extensionsllsed" : ["MPEG_primitive_semantics"L"extensionsRequired" : ["MPEG_primitive_semantics"]}

[0051] A gITF loader first decodes usual content (buffers, meshes, nodes, and so forth) except for the primitive semantics extension data. A single mesh has seven primitives, each primitive having the same topology ("indices" are the same), and vertex coordinates and colors are specific (different "POSITION" and "COLOR_0" attributes). Once default loading is completed, the primitive semantics extension data is parsed. Each primitive contains a single "segmentation" property that describes the semantics of the primitive. For example, the first primitive contains a primitive semantics extension, such as MPEG_primitive_semantics, with a "segmentation" property with a single item where "semantic" equals "full_body / upper_body / head / face" and "indices" references an accessor with six values that correspond to the vertices of the front triangles of the cube.

[0052] Digital representations of humans may take the form of many different representations, such as mesh, volumetric, point cloud, image, video, sound, and so forth. The representations facilitate the creation and formalization of digital media content. To allow interoperable representation, a template is formalized that captures one or more different representations of a human. This template may be a generic human body model with a skeletal structure attached, a subject-specific model, a statistical shape model, or metadata representing individual social properties or parameters. Any of these approaches may accurately provide a human figure as an initialization stage or base model capable of statistically representing different human representations.

[0053] A synthetic 3D model is a representation of a digital human. Synthetic representations or models are easier to manipulate and craft to match specific human anatomy, visuals, and social parameters or visual cues, and to animate in immersive realities. Synthetic representations also facilitate appearance generalization and stylization, which may be performed by professionals and used for animation and streaming.

[0054] In the present description, some embodiments utilize gITF file format and are compatible with the recent MPEG-I Scene Description (SD) effort to extend gITF with MPEG extensions, where MPEG denotes Moving Picture Experts Group. Nevertheless, the concepts described herein are not limited to use with gITF and may be coded in other formats such as XML, USD, or other schema for the delivery of runtime assets.

[0055] The above solution applies to encoding of scene description files for a scene. A method comprises partitioning a mesh for an object in a scene into mesh segments and encoding, in a scene description file for the scene, a data structure representing an object in an immersive video system, wherein the data structure comprises a segmentation extension that indicates that a mesh object is segmented and includes data for each mesh segment. The data may include at least one of geometrical data for each mesh segment and textural data for each mesh segment. The data may be stored in a mesh primitive property of the mesh object. The data structure may further comprise a primitive semantics extension to indicate that a primitive has associated semantical information. The segmentation extension may provide information including semantic properties that relate a mesh primitive to a mesh segment. A semantics object may be added at one or more of a root level of a mesh object and a mesh primitive object. The scene description file may comprise an extension to at least one of a mesh object and a mesh primitive object. A semantics array may be parsed by partitioning each string of the semantics array with a character 7” and creating a path for each string. A segmentation array may be parsed by partitioning each string of the segmentation array with a character 7” and creating a path for each string. Identical path names may be disambiguated by adding a different index to each identical path name.

[0056] A device for the display and / or rendering of 3D scene information, together with its control electronics, may be implemented using a system such as the system shown FIG. 7. FIG. 7 is a block diagram of an example of a system in which various embodiments are implemented. The system 700 may be embodied as a device including the various components described below and is configured to perform one or more of the processes described in this document. Examples of such devices, include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. Elements of the system 700, singly or in combination, may be embodied in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of system 700 are distributed across multiple ICs and / or discrete components. In various embodiments, the system 700 is communicatively coupled to one or more other systems, or other electronic devices, via, for example, a communications bus or through dedicated input and / or output ports. In various embodiments, the system 700 is configured to provide one or more of the features described in this document.

[0057] The system 700 includes at least one processor 702 configured to execute instructions loaded therein for performing, for example, the various features or methods described in this document, such as the method of FIG. 2. The processor 702 may include embedded memory, input output interface, and various other circuitries as known in the art. The system 700 includes at least one memory 704, for example, a volatile memory device and / or a non-volatile memory device. The system 700 includes a storage device 706 that may include non-volatile memoryand / or volatile memory, including, but not limited to, Electrically Erasable Programmable Read- Only Memory (EEPROM), Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), flash, magnetic disk drive, and / or optical disk drive. The storage device 706 may include an internal storage device, an attached storage device (including detachable and non-detachable storage devices), and / or a network accessible storage device, as non-limiting examples.

[0058] The system 700 includes an encoder / decoder module 708 configured, for example, to process data to provide an encoded video or decoded video, and the encoder / decoder module 708 may include its own processor and memory. The encoder / decoder module 708 may represent module(s) that may be included in a device to perform the encoding and / or decoding functions. As is known, a device may include one or both of the encoding and decoding modules. Additionally, the encoder / decoder module 708 may be implemented as a separate element of the system 700 or may be incorporated within the processor 702 as a combination of hardware and software as known to those skilled in the art.

[0059] Program code to be loaded onto processor 702 or encoder / decoder 708 to perform the various aspects described in this document may be stored in storage device 706 and subsequently loaded into memory 704 for execution by processor 702. In accordance with various embodiments, one or more of the processor 702, memory 704, the storage device 706, and the encoder / decoder module 708 may store one or more of various items during the performance of the processes described in this document. Such stored items may include, but are not limited to, the scene description file containing the data structure comprising the user properties object 302, the input video, the decoded video, or portions of the decoded video, the bitstream, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operational logic.

[0060] In some embodiments, memory inside of the processor 702 and / or the encoder / decoder module 708 is used to store instructions and to provide working memory for processing that is needed during encoding or decoding. In other embodiments, however, a memory external to the processing device (for example, the processing device may be either the processor 702 or the encoder / decoder module 708) is used for one or more of these functions. The external memory may be the memory 704 and / or the storage device 706, for example, a dynamic volatile memory and / or a non-volatile flash memory. In several embodiments, an external non-volatile flash memory is used to store the operating system of, for example, a television. In at least one embodiment, a fast external dynamic volatile memory such as a RAM is used as working memory for video coding and decoding operations, such as for MPEG-2 (MPEG refers to the Moving Picture Experts Group, MPEG-2 is also referred to as ISO / IEC 13818, and 13818-1 is also known as H.222, and 13818-2 is also known as H.262), HEVC (HEVC refers to High Efficiency VideoCoding, also known as H.265 and MPEG-H Part 2), or WC (Versatile Video Coding, a new standard being developed by JVET, the Joint Video Experts Team).

[0061] The input to the elements of the system 700 may be provided through various input devices as indicated in the input block 710. Such input devices include, but are not limited to, (i) a radio frequency (RF) portion that receives an RF signal transmitted, for example, over the air by a broadcaster, (ii) a Component (COMP) input terminal (or a set of COMP input terminals), (iii) a Universal Serial Bus (USB) input terminal, and / or (iv) a High Definition Multimedia Interface (HDMI) input terminal. Other examples include composite video.

[0062] In various embodiments, the input devices of the input block 710 have associated respective input processing elements as known in the art. For example, the RF portion can be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal, or band-limiting a signal to a band of frequencies), (ii) downconverting the selected signal, (iii) band-limiting again to a narrower band of frequencies to select (for example) a signal frequency band that can be referred to as a channel in certain embodiments, (iv) demodulating the downconverted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired stream of data packets. The RF portion of various embodiments includes one or more elements to perform these functions, for example, frequency selectors, signal selectors, band-limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF portion may include a tuner that performs various of these functions, including, for example, downconverting the received signal to a lower frequency (for example, an intermediate frequency or a near-baseband frequency) or to baseband. In one set-top box embodiment, the RF portion and its associated input processing element receives an RF signal transmitted over a wired (for example, cable) medium, and performs frequency selection by filtering, downconverting, and filtering again to a desired frequency band. Various embodiments rearrange the order of the above-described (and other) elements, remove some of these elements, and / or add other elements performing similar or different functions. Adding elements can include inserting elements in between existing elements, such as, for example, inserting amplifiers and an analog-to-digital converter. In various embodiments, the RF portion includes an antenna.

[0063] Additionally, the USB and / or HDMI terminals may include respective interface processors for connecting the system 700 to other electronic devices across USB and / or HDMI connections. Various aspects of input processing, for example, Reed-Solomon error correction, may be implemented, for example, within a separate input processing IC or within processor 702 as necessary. Similarly, aspects of USB or HDMI interface processing can be implemented within separate interface ICs or within the processor 702 as necessary. The demodulated, error corrected, and demultiplexed stream is provided to various processing elements, including, for example, the processor 702, and encoder / decoder 708 operating in combination with the memoryand storage elements to process the data stream as necessary for presentation on an output device.

[0064] Various elements of the system 700 may be provided within an integrated housing. Within the integrated housing, various elements may be interconnected and transmit data therebetween using suitable connection arrangement 712, for example, an internal bus as known in the art, including the I nter-IC (I2C) bus, wiring, and printed circuit boards.

[0065] The system 700 includes a communication interface 714 that enables communication with other devices via the communication channel 716. The communication interface 714 may include, but is not limited to, a transceiver configured to transmit and to receive data over communication channel 716. The communication interface 714 may include, but is not limited to, a modem or network card, and the communication channel 716 may be implemented, for example, within a wired and / or a wireless medium.

[0066] Data is streamed, or otherwise provided, to the system 700, in various embodiments, using a wireless network such as a Wi-Fi network, for example IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signal of these embodiments is received over the communications channel 716 and the communications interface 714, which may be adapted for Wi-Fi communications. The communications channel 716 of these embodiments is typically connected to an access point or router that provides access to external networks including the Internet for allowing streaming applications and other over-the-top communications. Other embodiments provide streamed data to the system 700 using a set-top boxthat delivers the data overthe HDMI connection of the input block 710. Further embodiments provide streamed data to the system 700 using the RF connection of the input block 710. As indicated above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, for example, a cellular network or a Bluetooth network.

[0067] The system 700 may provide an output signal to various output devices, including a display 718, speakers 720, and other peripheral devices 722. The display 718 of various embodiments includes one or more of, for example, a touchscreen display, an organic lightemitting diode (OLED) display, a curved display, and / or a foldable display. The display 718 may be for a television, a tablet, a laptop, a cell phone (mobile phone), an immersive headset or headmounted display, or other device. The display 718 may also be integrated in other components, for example, in a smart phone, or may be separate, for example, an external monitor for a laptop or desktop computer. The other peripheral devices 722 include, in various examples of embodiments, one or more of a stand-alone digital video disc (or digital versatile disc) (DVR, for both terms), a disk player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices 722 that provide a function based on the output of the system 700. For example, a disk player may perform the function of playing the output of the system 700.

[0068] In various embodiments, control signals are communicated between the system 700 and the display 718, speakers 720, or other peripheral devices 722 using signaling such as AV.Link, Consumer Electronics Control (CEC), or other communications protocols that enable device-to- device control with or without user intervention. The output devices may be communicatively coupled to the system 700 via dedicated connections through respective interfaces 724, 726, and 728. Alternatively, the output devices may be connected to system 700 using the communications channel 716 via the communications interface 714. The display 718 and speakers 720 may be integrated in a single unit with the other components of system 700 in an electronic device such as, for example, a television. In various embodiments, the display interface 724 includes a display driver, such as, for example, a timing controller (T Con) chip.

[0069] The display 718 and speaker 720 may alternatively be separate from one or more of the other components, for example, when the RF portion of input block 710 is part of a separate set- top box. In various embodiments in which the display 718 and speakers 720 are external components, the output signal may be provided via dedicated output connections, including, for example, HDMI ports, USB ports, or COMP outputs.

[0070] The system 700 may include one or more sensor devices 730. Examples of sensor devices that may be used include one or more GPS sensors, gyroscopic sensors, accelerometers, light sensors, cameras, depth cameras, microphones, and / or magnetometers. Such sensors may be used to determine information such as user’s position and orientation. Where the system 700 is used as the control module for an extended reality display, the user’s position and orientation may be used in determining how to render image data such that the user perceives the correct portion of a virtual object or virtual scene from the correct point of view. In the case of headmounted display devices, the position and orientation of the device itself may be used to determine the position and orientation of the user for the purpose of rendering virtual content. In the case of other display devices, such as a phone, a tablet, a computer monitor, or a television, other inputs may be used to determine the position and orientation of the user for the purpose of rendering content. For example, a user may select and / or adjust a desired viewpoint and / or viewing direction with the use of a touch screen, keypad or keyboard, trackball, joystick, or other input device to interact with a scene of the video. Where the display device has sensors such as accelerometers and / or gyroscopes, the viewpoint and orientation used for the purpose of rendering content may be selected and / or adjusted based on motion of the display device.

[0071] The embodiments may be implemented with computer software executed by the processor 702 or by hardware, or by a combination of hardware and software. As a non-limiting example, the embodiments may be implemented by one or more integrated circuits. The memory 704 may be of any type appropriate to the technical environment and may be implemented using any appropriate data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory, as nonlimiting examples. The processor 702 may be of any type appropriate to the technicalenvironment and may encompass one or more of microprocessors, general purpose computers, special purpose computers, and processors based on a multi-core architecture, as non-limiting examples.

[0072] A method comprises obtaining a scene description file containing a data structure representing an object of an immersive video system, wherein the data structure comprises a segmentation extension that indicates that a mesh object is segmented and includes data for each mesh segment, and rendering a scene from the scene description file according to the data structure such that the object is at least partially rendered in the scene. The data may include geometrical data for each mesh segment. The data may include textural data for each mesh segment. The data may be stored in a mesh primitive property of the mesh object. The data structure may further comprise a primitive semantics extension to indicate that a primitive has associated semantical information. Presence of a primitive semantics extension or the segmentation extension in the scene description file may be indicated by one of extensionRequired and extensionUsed properties in glTF2.0. The segmentation extension may provide information including semantic properties that relate a mesh primitive to a mesh segment. A semantics object may be added at a root level of a mesh object. A semantics object may be added at a root level of a mesh primitive object. The scene description file comprises an extension to a mesh object. The scene description file comprises an extension to a mesh primitive object. The architecture of the scene description file may be an MPEG-I Scene Description file. The data structure may include a synthetic 3D representation of a digital human. The data structure may facilitate appearance generalization and stylization. The scene description file may be a JSON file. The scene description file may be a gITF file. The method may further comprise parsing, reading, or extracting the data structure from the scene description file and optionally processing the data structure. The method may further comprise parsing a semantics array by partitioning each string of the semantics array with a characterand creating a path for each string. The method may further comprise disambiguating identical path names within the semantics array by adding a different index to each identical path name. The method may further comprise parsing a segmentation array by partitioning each string of the segmentation array with a character" / ” and creating a path for each string. The method may further comprise disambiguating identical path names within the segmentation array by adding a different index to each identical path name.

[0073] An apparatus may comprise one or more processors configured to perform any method described herein. A computer-readable medium includes instructions for causing one or more processors to perform any method described herein. The computer-readable medium may be a non-transitory storage medium. A computer program product may include instructions that, when executed by one or more processors, cause the one or more processors to carry out any method described herein.

[0074] A signal may comprise a scene description file for a 3D scene, wherein scene description data includes a data structure representing an object of an immersive video system, wherein the data structure comprises a segmentation extension that indicates that a mesh object is segmented and includes data for each mesh segment. The data may include geometrical data for each mesh segment. The data may include textural data for each mesh segment. The data structure may further comprises a primitive semantics extension to indicate that a primitive has associated semantical information. The scene description file may comprise an extension to a mesh object. The scene description file may comprise an extension to a mesh primitive object.

[0075] A decoding method according to some embodiments comprises obtaining a scene description file including at least: a mesh object; an array of mesh primitive objects associated with the mesh object; and a plurality of semantic objects, each semantic object being associated with a corresponding one of the mesh primitive objects. A scene described by the scene description file is rendered, including rendering at least a portion of at least one of the mesh primitive objects according to the corresponding semantic object.

[0076] An encoding method according to some embodiments comprises partitioning a mesh in a scene into a plurality mesh segments; and encoding a scene description file including at least: a mesh object associated with the mesh; an array of mesh primitive objects associated with respective mesh segments; and a plurality of semantic objects, each semantic object being associated with a corresponding one of the mesh primitive objects.

[0077] In some embodiments, the plurality of semantic objects are included as an array of semantic objects in the mesh object, and an index of each of the semantic objects corresponds to an index of the associated mesh primitive object.

[0078] In some embodiments, the plurality of semantic objects are included as an array of semantic objects in the mesh object, and each of the semantic objects includes information identifying an index of the corresponding associated mesh primitive object.

[0079] In some embodiments, each of the semantic objects is included in the corresponding associated mesh primitive object.

[0080] In some embodiments, each of the semantic objects includes information identifying a set of vertices in the mesh primitive object that are associated with the respective semantic object.

[0081] In some embodiments, each of the semantic objects includes a string describing the corresponding mesh primitive object.

[0082] In some embodiments, the plurality of semantic objects define a hierarchy of graph segments.

[0083] In some embodiments, at least one of the mesh primitive objects is associated with two or more semantic objects.

[0084] A signal according to some embodiments comprises a scene description file including at least: a mesh object associated with a mesh; an array of mesh primitive objects associated withrespective segments of the mesh; and a plurality of semantic objects, each semantic object being associated with a corresponding one of the mesh primitive objects.

[0085] This disclosure describes a variety of aspects, including tools, features, embodiments, models, approaches, and so forth. Many of these characteristics are described with specificity and, at least to show the individual aspects, are often described in a manner that may appear to be limiting. Nevertheless, this specificity is for purposes of clarity in description and does not limit the disclosure or scope of these aspects. The different aspects may be combined and interchanged to provide further aspects. Moreover, the aspects can be combined and interchanged with aspects described in earlier filings as well.

[0086] The aspects described and contemplated in this disclosure may be implemented in many different forms. While some embodiments are illustrated specifically, other embodiments are contemplated, and the discussion of particular embodiments does not limit the breadth of the implementations. At least one of the aspects generally relates to encoding, decoding, and rendering of scene description information, and at least one other aspect generally relates to transmitting a file and / or bitstream generated or encoded. These and other aspects may be implemented as a method, an apparatus, a computer readable storage medium having stored thereon instructions for encoding, decoding, or rendering of scene description data according to any of the methods described, and / or a computer readable storage medium having stored thereon a bitstream generated according to any of the methods described.

[0087] Various methods are described herein, and each of the methods comprises one or more steps or actions for achieving the described method. Unless a specific order of steps or actions is required for proper operation of the method, the order and / or use of specific steps and / or actions may be modified or combined. Additionally, terms such as “first,” “second,” and so forth may be used in various embodiments to modify an element, component, step, operation, and so forth, such as, for example, a “first decoding” and a “second decoding.” Use of such terms does not imply an ordering to the modified operations unless specifically required. In this example, the first decoding need not be performed before the second decoding and may occur, for example, before, during, or in an overlapping time period with the second decoding.

[0088] Various numeric values may be used in the present disclosure, for example. The specific values are for example purposes and the aspects described are not limited to these specific values.

[0089] Embodiments described herein may be carried out by computer software implemented by a processor or other hardware, or by a combination of hardware and software. As a nonlimiting example, the embodiments may be implemented in one or more integrated circuits. The processor may be of any type appropriate to the technical environment and may encompass one or more of microprocessors, general purpose computers, special purpose computers, and processors based on a multi-core architecture, as non-limiting examples.

[0090] When a figure is presented as a flow diagram, such a figure also provides a block diagram of a corresponding apparatus. Similarly, when a figure is presented as a block diagram, such a figure also provides a flow diagram of a corresponding method / process.

[0091] The implementations and aspects described herein may be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed may also be implemented in other forms (for example, an apparatus or program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable / personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end-users.

[0092] Reference to “one embodiment” or “an embodiment” or “one implementation” or “an implementation”, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment” or “in one implementation” or “in an implementation,” as well any other variations, appearing in various places throughout this disclosure are not necessarily all referring to the same embodiment.

[0093] Additionally, this disclosure may refer to “determining” various pieces of information. Determining the information may include one or more of, for example, estimating the information, calculating the information, predicting the information, or retrieving the information from memory.

[0094] Further, this disclosure may refer to “accessing” various pieces of information. Accessing the information may include one or more of, for example, receiving the information, retrieving the information (for example, from memory), storing the information, moving the information, copying the information, calculating the information, determining the information, predicting the information, or estimating the information.

[0095] Additionally, this disclosure may refer to “receiving” various pieces of information. Receiving is, as with “accessing,” intended to be a broad term. Receiving the information may include one or more of, for example, accessing the information, or retrieving the information (for example, from memory). Further, “receiving” is typically involved, in one way or another, during operations such as, for example, storing the information, processing the information, transmitting the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information.

[0096] The use of any of the following “ / ”, “and / or”, and “at least one of’, for example, in the cases of “A / B”, “A and / or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and / or C” and “at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended for as many items as are listed.

[0097] As used herein, the word “signal” refers to, among other things, indicating something to a corresponding decoder. For example, in certain embodiments, the encoder signals a particular one of a plurality of parameters for region-based filter parameter selection for de-artifact filtering. In this way, in an embodiment, the same parameter is used at both the encoder side and the decoder side. Thus, for example, an encoder may transmit (explicit signaling) a particular parameter to the decoder such that the decoder may use the same particular parameter. Conversely, if the decoder already has the particular parameter as well as others, then signaling may be used without transmitting (implicit signaling) to simply allow the decoder to know and select the particular parameter. By avoiding transmission of any actual functions, a bit savings is realized in various embodiments. Signaling may be accomplished in a variety of ways. For example, one or more syntax elements, flags, and so forth are used to signal information to a corresponding decoder in various embodiments. While the preceding relates to the verb form of the word “signal,” the word “signal” can also be used herein as a noun.

[0098] Implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal may be formatted to carry the bitstream of a described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired or wireless links, as is known. The signal may be stored on a processor-readable medium.

[0099] A number of embodiments are described. Features of these embodiments can be provided alone or in any combination, across various claim categories and types. Further, embodiments may include one or more of the following features, devices, or aspects, alone or in any combination, across various claim categories and types:• A bitstream or signal that includes one or more of the described syntax elements, or variations thereof.• A bitstream or signal that includes syntax conveying information generated according to any of the embodiments described.• Creating and / or transmitting and / or receiving and / or decoding a bitstream or signal that includes one or more of the described syntax elements, or variations thereof.• Creating and / or transmitting and / or receiving and / or decoding according to any of the embodiments described.• A method, process, apparatus, medium having stored instructions, medium having stored data, computer program product including instructions, or signal according to any of the embodiments described.Various hardware elements of one or more of the described embodiments are referred to as “modules” that carry out (i.e., perform, execute, and the like) various functions that are described herein in connection with the respective modules. As used herein, a module may include hardware deemed suitable for a given implementation, for example, one or more processors, one or more microprocessors, one or more microcontrollers, one or more microchips, one or more application-specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), and one or more memory devices. Each described module may also include instructions executable for carrying out the one or more functions described as carried out by the respective module, and those instructions may take the form of or include hardware (i.e., hardwired) instructions, firmware instructions, software instructions, and / or the like, and may be stored in any suitable non-transitory computer-readable medium or media, such as commonly referred to as RAM, ROM, and so forth.

[0100] Although features and elements are described above in particular combinations, each feature or element may be used alone or in any combination with the other features and elements. In addition, the methods described herein may be implemented in a computer program, software, or firmware incorporated in a computer-readable medium for execution by a computer or processor. Examples of computer-readable storage media include, but are not limited to, a read only memory (ROM), a random access memory (RAM), a register, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magnetooptical media, and optical media such as CD-ROM disks, and digital versatile disks (DVDs). A processor in association with software may be used to implement a radio frequency transceiver for use in a WTRU, UE, terminal, base station, RNC, or any host computer.

Claims

CLAIMS1 . A decoding method comprising: obtaining a scene description file including at least: a mesh object; an array of mesh primitive objects associated with the mesh object; and a plurality of semantic objects, each semantic object being associated with a corresponding one of the mesh primitive objects; and rendering a scene described by the scene description file, including rendering at least a portion of at least one of the mesh primitive objects according to the corresponding semantic object.

2. A decoding apparatus comprising one or more processors configured to perform at least: obtaining a scene description file including at least: a mesh object; an array of mesh primitive objects associated with the mesh object; and a plurality of semantic objects, each semantic object being associated with a corresponding one of the mesh primitive objects; and rendering a scene described by the scene description file, including rendering at least a portion of at least one of the mesh primitive objects according to the corresponding semantic object.

3. An encoding method comprising: partitioning a mesh in a scene into a plurality mesh segments; and encoding a scene description file including at least: a mesh object associated with the mesh; an array of mesh primitive objects associated with respective mesh segments; and a plurality of semantic objects, each semantic object being associated with a corresponding one of the mesh primitive objects.

4. An encoding apparatus comprising one or more processors configured to perform at least: partitioning a mesh in a scene into a plurality mesh segments; and encoding a scene description file including at least: a mesh object associated with the mesh; an array of mesh primitive objects associated with respective mesh segments; and a plurality of semantic objects, each semantic object being associated with a corresponding one of the mesh primitive objects.

5. The method of claim 1 or 3, or the apparatus of claim 2 or 4, wherein the plurality of semantic objects are included as an array of semantic objects in the mesh object, and wherein an index of each of the semantic objects corresponds to an index of the associated mesh primitive object.

6. The method of claim 1 or 3, or the apparatus of claim 2 or 4, wherein the plurality of semantic objects are included as an array of semantic objects in the mesh object, and wherein each of the semantic objects includes information identifying an index of the corresponding associated mesh primitive object.

7. The method of claim 1 or 3, or the apparatus of claim 2 or 4, wherein each of the semantic objects is included in the corresponding associated mesh primitive object.

8. The method of claim 1 or 3, or the apparatus of claim 2 or 4, wherein each of the semantic objects is included in the corresponding associated mesh primitive object, and wherein each of the semantic objects includes information identifying a set of vertices in the mesh primitive object that are associated with the respective semantic object.

9. The method of claim 1 or 3, or claims 5-8 as they depend from claim 1 or 3, or the apparatus of claim 2 or 4, or claims 5-8 as they depend from claim 2 or 4, wherein each of the semantic objects includes a string describing the corresponding mesh primitive object.

10. The method of claim 1 or 3, or claims 5-9 as they depend from claim 1 or 3, or the apparatus of claim 2 or 4, or claims 5-9 as they depend from claim 2 or 4, wherein the plurality of semantic objects define a hierarchy of graph segments.11 . The method of claim 1 or 3, or claims 5-10 as they depend from claim 1 or 3, or the apparatus of claim 2 or 4, or claims 5-10 as they depend from claim 2 or 4, wherein at least one of the mesh primitive objects is associated with two or more semantic objects.

12. The method of claim 1 or 3, or claims 5-11 as they depend from claim 1 or 3, or the apparatus of claim 2 or 4, or claims 5-11 as they depend from claim 2 or 4, wherein the architecture of the scene description file is an MPEG-I Scene Description file.

13. The method of claim 1 or 3, or claims 5-12 as they depend from claim 1 or 3, or the apparatus of claim 2 or 4, or claims 5-12 as they depend from claim 2 or 4, wherein the scene description file is a JSON file.

14. The method of claim 1 or 3, or claims 5-13 as they depend from claim 1 or 3, or the apparatus of claim 2 or 4, or claims 5-13 as they depend from claim 2 or 4, wherein the scene description file is a gITF file.

15. A signal comprising a scene description file including at least: a mesh object associated with a mesh; an array of mesh primitive objects associated with respective segments of the mesh; and a plurality of semantic objects, each semantic object being associated with a corresponding one of the mesh primitive objects.