Method, apparatus, and computer program for mapping architecture of immersive technologies media format (ITMF) specification
By converting ITMF scene file data into formats compatible with specific rendering engines, the method addresses the challenge of mapping ITMF specifications across different engines, achieving seamless compatibility and effective rendering in immersive media technologies.
Patent Information
- Application Number
- JP2023559983
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-12-05
- Filing Date
- 2022-12-15
- Publication Date
- 2025-05-20
- Estimated Expiration
- 2042-12-15
AI Technical Summary
The Immersive Technologies Media Format (ITMF) specification needs to be mapped across different rendering engines to ensure compatibility and effective rendering in various immersive media technologies such as virtual reality, augmented reality, and light field/holographic technologies.
A method and apparatus for converting ITMF scene file data into a format compatible with specific rendering engines, involving parsing the scene file, transmitting the data to a converter, converting the data, and mapping it to a scene representation compatible with ITMF.
Enables seamless mapping of ITMF specifications across various rendering engines, ensuring compatibility and effective rendering in diverse immersive media technologies, thereby enhancing the interoperability and efficiency of immersive media applications.
Smart Images

Figure 0007680074000001 
Figure 0007680074000002 
Figure 0007680074000003
Abstract
Description
[Technical field]
[0001] This application is based on and claims priority to U.S. Provisional Application No. 63 / 298,110, filed January 10, 2022, and U.S. Application No. 18 / 075,037, filed December 5, 2022, the disclosures of which are incorporated herein by reference in their entireties.
[0002] This disclosure relates to architectural mapping of the ITMF specification with scene representations for various rendering engines. [Background technology]
[0003] Immersive media includes immersive technologies that attempt to create or mimic a physical world through digital simulation, thereby simulating some or all of the human sensory systems to create the perception of a user being physically present in the scene.
[0004] There are various types of immersive media technologies in use today, including virtual reality (VR), augmented reality (AR), mixed reality (MR), and light field / holographic technologies. VR refers to a digital environment that replaces the user's physical environment by placing them in a computer-generated world using a headset. AR, on the other hand, takes digital media and overlays them onto the real world around a person, using either clear vision or a smartphone. MR refers to the merging of the real and digital worlds, thereby creating an environment where technology and the physical world can coexist.
[0005] Light field / holographic technology is composed of light rays in a 3D space, with light rays coming from each point and direction. It is based on the idea that everything we see around us is illuminated by light coming from any light source, moving through space, and hitting the surfaces of objects, where the light is partly absorbed and partly reflected to other surfaces before reaching the human eye. If the light field is properly reproduced, it will provide the user with 3D effects, such as binocular vision and continuous motion parallax. The concept behind light field displays is that a large array of projection modules projects light rays onto a holographic screen in such a way that it reproduces an approximation of the light field by showing different but consistent information in slightly different directions.
[0006] The open source Immersive Technologies Media Format (ITMF) based on ORBX, specified by the Immersive Digital Experience Alliance (IDEA), is a robust scene description focused on applications for photorealistic immersive media. ITMF focuses on both content composition workflows and transport for network-based rendering, progressive download, and / or streaming over media-aware networks for immersive media. ITMF is intended for use in DCC tools, where individual assets, e.g. textures and meshes, are finalized before being imported into the Scene Graph. A way to map the ITMF specification across different rendering engines is needed. Summary of the Invention
[0007] The following presents a simplified summary of one or more embodiments of the present disclosure in order to provide a basic understanding of such embodiments. This summary is not an extensive summary of all contemplated embodiments, and is not intended to identify key or critical elements of all embodiments or to delineate the scope of any or all embodiments. Its sole purpose is to present some concepts of one or more embodiments of the present disclosure in a simplified form as a prelude to the more detailed description that is presented later.
[0008] SUMMARY Disclosed herein are methods, apparatus, and non-transitory computer-readable media for a wire format for segmented media metadata for parallel processing in a cloud platform.
[0009] According to some embodiments, there is provided a method executed by at least one processor. The method includes parsing a scene file to extract relevant scene file data. The method further includes transmitting the relevant scene file data to a converter. The method further includes converting, by the converter, the relevant scene file data to a format compatible with a respective rendering engine. The method further includes mapping, with the respective rendering engine, the converted scene file data to a scene representation, the scene representation being compatible with Immersive Technologies Media Format (ITMF).
[0010] According to some embodiments, an apparatus includes at least one memory configured to store program code and at least one processor configured to read the program code and operate as instructed by the program code. The program code includes parsing code configured to cause the at least one processor to parse a scene file to extract associated scene file data. The program code further includes a transmitting code configured to cause the at least one processor to transmit the associated scene file data to a converter. The program code further includes a converting code configured to cause the at least one processor to convert, by the converter, the associated scene file data into a format compatible with a respective rendering engine. The program code further includes a mapping code configured to cause the at least one processor to map, with a respective rendering engine, the converted scene file data to a scene representation, the scene representation being compatible with Immersive Technologies Media Format (ITMF).
[0011] According to some embodiments, a non-transitory computer-readable storage medium stores instructions that, when executed by at least one processor, cause the at least one processor to parse a scene file to extract relevant scene file data. The instructions further cause the at least one processor to send the relevant scene file data to a converter. The instructions further cause the at least one processor to convert, by the converter, the relevant scene file data into a format compatible with a respective rendering engine. The instructions further cause the at least one processor to map, with the respective rendering engine, the converted scene file data to a scene representation, the scene representation compatible with Immersive Technologies Media Format (ITMF).
[0012] Additional embodiments will be set forth in the description that follows, and in part will be obvious from the description, and / or may be learned by practice of illustrative embodiments of the present disclosure. [Brief description of the drawings]
[0013] The above and other aspects, features, and embodiments of the present disclosure will become apparent from the following description taken in conjunction with the accompanying drawings. [Figure 1] 1 is an example ITMF container according to some embodiments. [Diagram 2] 1 is an example ITMF mapping architecture according to some embodiments. [Diagram 3] FIG. 1 illustrates an example environment in which the systems and / or methods described herein may be implemented. [Figure 4] 1 is a simplified block diagram of a communication system according to some embodiments. [Diagram 5] FIG. 1 is a diagram of a computer system according to some embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] The following detailed description of example embodiments refers to the accompanying drawings, in which the same reference numbers in different drawings may identify the same or similar elements.
[0015] The foregoing disclosure provides illustrations and descriptions, and is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations. Also, one or more features or components of one embodiment may be incorporated or combined with another embodiment (or one or more features of another embodiment). Also, in the flowcharts and descriptions of operations provided below, it will be understood that one or more operations may be omitted, one or more operations may be added, one or more operations may be performed (at least partially) concurrently, or the order of one or more operations may be rearranged.
[0016] It will be apparent that the systems and / or methods described herein may be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and / or methods is not intended to be a limitation of the implementation. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, with the understanding that software and hardware may be designed to implement the systems and / or methods based on the description herein.
[0017] Although particular combinations of features are recited in the claims and / or disclosed in the specification, those combinations are not intended to limit the disclosure of possible implementations. Indeed, many of the features can be combined in ways not specifically recited in the claims and / or disclosed in the specification. Although each dependent claim listed below may depend directly on only one claim, the disclosure of possible implementations includes each dependent claim in combination with every other claim in the claim set.
[0018] No element, act, or instruction used herein should be construed as critical or essential unless expressly stated as such. Also, as used herein, the articles "a" and "an" are intended to include one or more items and may be used interchangeably with "one or more." When only one item is intended, the term "a" or similar words are used. Also, as used herein, the terms "have," "has," "having," "includes," "including," and the like are intended to be open-ended terms. Furthermore, the phrase "based on" is intended to mean "based at least in part on," unless expressly stated otherwise. Also, for example, phrases such as "at least one of [A] and [B]" or "at least one of [A] or [B]" should be understood to include only A, only B, or both A and B.
[0019] References throughout this specification to "one embodiment," "an embodiment," or similar terms mean that a particular feature, structure, or characteristic described in connection with the illustrated embodiment is included in at least one embodiment of the solution. Thus, appearances of "one embodiment," "an embodiment," and similar terms throughout this specification do not necessarily all refer to the same embodiment.
[0020] Also, the described features, advantages, and characteristics of the present disclosure may be combined in any suitable manner in one or more embodiments. In light of the description herein, one of ordinary skill in the art may recognize that the present disclosure may be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the present disclosure.
[0021] ITMF is a node-based hierarchical scene graph where nodes have both input and output pins. Pins allow for relationships between nodes. In addition, nodes have attributes that define the intrinsic and immutable characteristics of the object. Nodes have multiple types including cameras, geometry, lighting, materials, textures, etc., which feed into render target nodes. Each node has input and output pins that allow connections to be created and supported. Render target nodes have parameters that enable ray tracing for photorealistic rendering in unbiased rendering applications. In a media and device aware network, the design of render target nodes with render targets can be adapted to target devices including legacy 2D / 3D displays, virtual and augmented reality headsets, and emerging stereoscopic and light field displays.
[0022] The entire scene contents can be binary encoded within a Binary Markup Language (BML) container, and the scene description can be serialized with unique node identifiers and connectivity relationships in an XML-based scene graph. Within the container, logical units that encode geometry, textures, and more imported assets are listed by directory and index units, allowing random access and compression / encryption of individual units. The container design allows additional file types to be encoded within the logical units for decoding as needed.
[0023] In some embodiments, an ITMF scene graph may be a node-based, directed acyclic graph that describes the logical, temporal, and spatial relationships between multiple visual objects in a scene. The graph may be represented as a fully human-readable XML file. The ITMF scene graph may be used to support both legacy and emerging advanced imaging (e.g., stereoscopic, holographic, light field) display technologies. In FIG. 1, each of the scene elements 120 referenced by the scene graph 110 and the XML file for the graph itself may be aggregated and stored in the ITMF container 100.
[0024] After an ITMF scene file is provided to an end client, if the end client's rendering engine does not support the scene file, the ITMF scene file needs to be mapped into a scene graph of files that the endpoint supports.
[0025] The architecture framework for converting ITMF specifications to various endpoint representations is shown in Figure 2. An ITMF specification 201 may be mapped to a non-realistic (virtual) converter 204. An ITMF scene parser 202 may be responsible for parsing scene files, e.g., extracting relevant information from ITMF containers, e.g., scene assets, materials, geometry, rendering paths, etc., by parsing scene graphs and scene elements. The parsed data is then sent to the converter, which converts the data into a format understood by the respective rendering engine. After receiving data from ITMF specification modules 209, 210, 211, 212, 213, 214, 215, and 216, the ITMF scene parser 202 may structurally parse the ITMF specification 201 to convert it into a relevant rendering engine format. The non-realistic converter 204, together with rendering engine converters 217 and 218, converts the parsed ITMF file into an equivalent rendering engine format.
[0026] The unrealistic converter 204, including the rendering engine converters 217 and 218, may be responsible for mapping the analyzed ITMF scene into an equivalent unrealistic scene representation 206, in which the data is organized into various scene representation classes, such as unrealistic primary scene classes 207 and unrealistic material classes 208, as understood by the rendering engine converters 217 and 218.
[0027] FIG. 3 is a block diagram of example components of one or more devices according to some embodiments.
[0028] The device 300 may correspond to a user device and / or a platform. As shown in FIG. 3, the device 300 may include a bus 310, a processor 320, a memory 330, a storage component 340, an input component 350, an output component 360, and a communication interface 370.
[0029] The bus 310 may include components that enable communication between the components of the device 300. The processor 320 is implemented in hardware, firmware, or a combination of hardware and software. The processor 320 may be a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or other type of processing component. In some embodiments, the processor 320 may include one or more processors that can be programmed to perform operations. The memory 330 may include random access memory (RAM), read only memory (ROM), and / or other types of dynamic or static storage devices (e.g., flash memory, magnetic memory, and / or optical memory) that store information and / or instructions for use by the processor 320.
[0030] Storage component 340 stores information and / or software related to the operation and use of device 300. For example, storage component 340 may include hard disks (e.g., magnetic disks, optical disks, magneto-optical disks, and / or solid state disks), compact disks (CDs), digital versatile disks (DVDs), floppy disks, cartridges, magnetic tapes, and / or other types of non-transitory computer-readable media along with corresponding drives.
[0031] Input components 350 may include components that enable device 300 to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, buttons, switches, and / or a microphone). Additionally or alternatively, input components 350 may include sensors that sense information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, and / or an actuator). Output components 360 may include components that provide output information from device 300 (e.g., a display, a speaker, and / or one or more light emitting diodes (LEDs)).
[0032] The communication interface 370 may include transceiver-like components (e.g., a transceiver and / or separate receivers and transmitters) that enable the device 300 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. The communication interface 370 may enable the device 300 to receive information from and / or provide information to other devices. For example, the communication interface 370 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, or the like.
[0033] The device 300 may perform one or more processes described herein. The device 300 may perform those processes based on the processor 320 executing software instructions stored by a non-transitory computer-readable medium, such as the memory 330 and / or the storage component 340. A computer-readable medium is defined herein as a non-transitory memory device. A memory device may include storage space within a single physical storage device or may include storage space spread across multiple physical storage devices.
[0034] Software instructions may be loaded into memory 330 and / or storage component 340 from other computer-readable media or from other devices via communication interface 370. The software instructions stored in memory 330 and / or storage component 340, when executed, may cause processor 320 to perform one or more processes described herein. Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, the embodiments described herein are not limited to any specific combination of hardware circuitry and software.
[0035] The number and arrangement of components shown in Figure 3 are provided as an example. In practice, apparatus 300 may include additional, fewer, different, or different arrangements of components than those shown in Figure 3. Additionally or alternatively, a set (e.g., one or more components) of components of apparatus 300 may perform one or more operations described as being performed by another set of components of apparatus 300.
[0036] 4 illustrates a simplified block diagram of a communication system 400 according to some embodiments of the present disclosure. The communication system 400 may include at least two terminals 410-420 interconnected via a network 450. In a unidirectional transmission of data, a first terminal 410 may code video data at a local location for transmission to another terminal 420 via the network 450. A second terminal 420 may receive the coded video data of the other terminal from the network 450, decode the coded data, and display the recovered video data. Unidirectional data transmission may be common in media serving applications and the like.
[0037] 4 shows a second pair of terminals 430, 440 arranged to support bidirectional transmission of coded video, such as may occur in a video conference. In the bidirectional transmission of data, each terminal 430, 440 may code video data captured at a local location for transmission to the other terminal over a network 450. Each terminal 430, 440 may also receive coded video data transmitted by the other terminal, may decode the coded data, and may display the recovered video data on a local display device.
[0038] In FIG. 4, terminals 410-440 are shown as servers, personal computers, and smartphones, although the principles of the present disclosure are not so limited. Embodiments of the present disclosure find application in laptop computers, tablet computers, media players, and / or dedicated videoconferencing equipment. Network 450 represents any number of networks that convey coded video data between terminals 410-440, including, for example, wired and / or wireless communication networks. Communication network 450 may exchange data over circuit-switched and / or packet-switched channels. Representative networks include telecommunications networks, local area networks, wide area networks, and / or the Internet. For purposes of this description, the architecture and topology of network 450 may not be important to the operation of the present disclosure unless described herein.
[0039] 5 with respect to computer system 500 are exemplary and are not intended to suggest any limitation as to the scope of use or functionality of the computer software implementing embodiments of the present disclosure, nor should the arrangement of components be construed as having any dependency or requirement related to any one or combination of components illustrated in this exemplary embodiment of computer system 500.
[0040] The computer system 500 may include certain human interface input devices. Such human interface input devices may be responsive to input by one or more human users, for example, via tactile input (e.g., keystrokes, swipes, moving a data glove, etc.), audio input (e.g., voice, clapping, etc.), visual input (e.g., gestures, etc.), olfactory input (not shown). The human interface devices may also be used to capture certain media that are not necessarily directly related to conscious human input, such as audio (e.g., speech, music, ambient sounds, etc.), images (e.g., scanned images, photographic images obtained from a still camera, etc.), video (e.g., two-dimensional video, three-dimensional video including stereoscopic video, etc.).
[0041] The input human interface devices may include one or more of a keyboard 505, a mouse 510, a trackpad 515, a touch screen 545, a data glove (not shown), a joystick 520, a microphone 525, a scanner 530, and a camera 535 (only one of each is shown).
[0042] The computer system 500 may also include certain human interface output devices. Such human interface output devices may stimulate one or more of the senses of a human user, for example, through haptic output, sound, light, and smell / taste. Thus, the human interface output devices may include haptic output devices (e.g., haptic feedback via a touch screen 545, data gloves (not shown), or joystick 520, although there may also be haptic feedback devices that do not function as input devices), audio output devices (e.g., speakers 540, headphones (not shown), etc.), visual output devices (e.g., screens 545, including CRT screens, LCD screens, plasma screens, OLED screens (each with or without touch screen input capability, each with or without haptic feedback capability, some of which may be capable of outputting two-dimensional visual output, or output in four or more dimensions, for example through means of stereoscopic output), virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown), etc.), and printers (not shown).
[0043] The computer system 500 may also include human-accessible storage devices and their associated media, such as optical media including, for example, a CD / DVD ROM / RW Z20 having CD / DVD or similar media 555, a thumb drive 560, a removable hard drive or solid state drive 565, legacy magnetic media such as tape and floppy disks (registered trademark, not shown), specialized ROM / ASIC / PLD based devices (not shown) such as security dongles, and the like.
[0044] Those skilled in the art will also appreciate that the term "computer-readable medium" as used in connection with the subject matter disclosed herein does not include transmission media, carrier waves, or other transitory signals.
[0045] The computer system 500 may also include interfaces to one or more communication networks. The networks may be, for example, wireless, wired, optical. The networks may further be local, wide area, metropolitan, vehicular and industrial, real-time, delay tolerant, etc. Examples of networks include local area networks, such as Ethernet, wireless LAN, cellular networks including GSM, 3G, 4G, 5G, LTE, and the like, TV wired or wireless wide area digital networks including cable TV, satellite TV, and terrestrial broadcast TV, vehicular and industrial including CANbus, etc. Certain networks typically require an external network interface adapter attached to a particular general-purpose data port or peripheral bus 589, such as a USB port of the computer system 500, while others are typically integrated into the core of the computer system 500 by attachment to a system bus, as described below (e.g., an Ethernet interface to a PC computer system, or a cellular network interface to a smartphone computer system). Using any of these networks, the computer system 500 may communicate with other entities. Communications may be one-way receive only (e.g., broadcast TV), one-way transmit only (e.g., CANbus to a particular CANbus device), or two-way, for example to other computer systems using local or wide area digital networks. Specific protocols and protocol stacks may also be used on each of the networks and network interfaces, as described above.
[0046] The aforementioned human interface devices, human accessible storage devices, and network interfaces may be attached to a core 580 of the computer system 500 .
[0047] The core 580 may include one or more central processing units (CPUs) 581, graphics processing units (GPUs) 582, specialized programmable processing units in the form of field programmable gate arrays (FPGAs) 583, hardware accelerators for specific tasks 584, etc. These devices may be connected via a system bus 588 along with read only memory (ROM) 585, random access memory 586, internal mass storage 587 such as internal non-user accessible hard drives, SSDs, and the like. In some computer systems, the system bus 588 may be made accessible in the form of one or more physical plugs to allow expansion with additional CPUs, GPUs, and the like. Peripheral devices may also be attached to the core's system bus 588 either directly or via a peripheral bus 589. Peripheral bus architectures include PCI, USB, and the like.
[0048] The CPU 581, GPU 582, FPGA 583, and accelerator 584 may execute certain instructions that may combine to constitute the aforementioned computer code. Such computer code may be stored in RAM 586. Transient data may also be stored in RAM 586, while permanent data may be stored, for example, in internal mass storage 587. Rapid storage and retrieval from any of the memory devices may be enabled through the use of cache memory, which may be proximate to one or more of the CPU 581, GPU 582, mass storage 587, ROM 585, RAM 586, and the like.
[0049] The computer-readable media may have computer code thereon for performing various computer-implemented processes. The media and computer code may be specially designed and constructed for the purposes of the present disclosure, or they may be of the kind well known and available to those skilled in the computer software arts.
[0050] By way of example and not limitation, the architecture corresponding to computer system 500, and in particular core 580, may provide functionality as a result of processor(s) (including CPU, GPU, FPGA, accelerator, and the like) executing software embodied in one or more tangible computer-readable media. Such computer-readable media may be media associated with specific storage of core 580 that is non-transitory in nature, such as mass storage 587 internal to core or ROM 585, and user-accessible mass storage as introduced above. Software implementing various embodiments of the present disclosure may be stored in such devices and executed by core 580. Computer-readable media may include one or more memory devices or chips according to specific needs. The software may cause core 580, and in particular the processors therein (including CPU, GPU, FPGA, and the like) to perform certain processes or certain portions of certain processes described herein, including defining data structures stored in RAM 586 and modifying such data structures according to processes defined by the software. Additionally, or alternatively, a computer system may provide functionality as a result of logic hardwired or otherwise embodied in circuitry (e.g., accelerator 584) that may operate in place of or in conjunction with software to perform particular processes or portions of particular processes described herein. References to software may include logic, and vice versa, where appropriate. References to computer-readable media may include circuitry (e.g., an integrated circuit (IC) or the like) that stores software for execution, circuitry embodied with logic for execution, or both, where appropriate. The present disclosure includes any suitable combination of hardware and software.
[0051] The foregoing disclosure provides illustration and description, and is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations.
[0052] It is understood that the particular order or hierarchy of the blocks in the processes / flowcharts disclosed herein represents example approaches. Based on design preferences, it is understood that the particular order or hierarchy of the blocks in the processes / flowcharts may be rearranged, and some blocks may be combined or omitted. The accompanying method claims present elements of the various blocks in a sample order, and are not meant to be limited to the particular order or hierarchy presented.
[0053] Some embodiments may relate to systems, methods, and / or computer-readable media at any possible level of technical detail integration. Also, one or more of the above-mentioned components may be implemented as instructions stored on a computer-readable medium and executable by at least one processor (and / or may include at least one processor). The computer-readable medium may include a computer-readable non-transitory storage medium(s) having computer-readable program instructions for causing a processor to perform operations.
[0054] A computer readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. A computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, hard disks, random access memories (RAM), read only memories (ROM), erasable programmable read only memories (EPROM or flash memory), static random access memories (SRAM), portable compact disk read only memories (CD-ROM), digital versatile disks (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridges in a groove structure having instructions recorded thereon, and any suitable combination thereof. Computer-readable storage medium, as used herein, is not to be construed as being a transitory signal per se, such as, for example, electric waves or other freely propagating electromagnetic waves, electromagnetic waves propagating in a waveguide or other transmission medium (e.g., light pulses traveling in a fiber optic cable), or electrical signals transmitted in wires.
[0055] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium into each computing / processing device, or can be downloaded to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions to a computer-readable storage medium in the respective computing / processing device for storage.
[0056] The computer readable program code / instructions for carrying out the operations may be either source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or object code written in any combination of one or more programming languages, including object oriented programming languages such as Smalltalk, C++, or the like, and procedural programming languages such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or a connection may be made to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform an aspect or operation.
[0057] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, produce means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium that may instruct a computer, programmable data processing apparatus, and / or other device to function in a particular manner, such that the computer readable storage medium having instructions stored thereon comprises an article of manufacture including instructions that perform aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0058] The computer readable program instructions may also be loaded into a computer, other programmable data processing device, or other device and a series of operational steps executed on the computer, other programmable device, or other device to generate a computer-implemented process such that the instructions executing on the computer, other programmable device, or other device perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0059] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer-readable media according to various embodiments. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions having one or more executable instructions for implementing a particular logical function(s). The methods, computer systems, and computer-readable media may include additional, fewer, different, or differently configured blocks than those shown in the figures. In some alternative implementations, the functions noted in the blocks may occur out of order relative to the order noted in the figures. For example, two blocks shown one after the other may actually be executed simultaneously or substantially simultaneously, or the blocks may be executed in the reverse order depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flow diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or acts or a combination of dedicated hardware and computer instructions.
[0060] It will be apparent that the systems and / or methods described herein may be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and / or methods is not intended to be a limitation of the implementation. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, with the understanding that software and hardware may be designed to implement the systems and / or methods based on the description herein.
[0061] While this disclosure has described several exemplary embodiments, there are alterations, permutations, and various substitute equivalents which fall within the scope of the disclosure. It will thus be appreciated that those skilled in the art will be able to devise numerous systems and methods which, although not explicitly shown or described herein, embody the principles of the disclosure and are therefore within the spirit and scope of the disclosure.
Claims
1. 1. A method executed by at least one processor, comprising: parsing the scene file with a scene parser to extract relevant scene file data; transmitting the associated scene file data to a converter; converting, by said converter, said associated scene file data into a format compatible with each rendering engine; organizing the converted scene file data into various scene representation classes compatible with the respective rendering engines using an Immersive Technologies Media Format (ITMF) scene graph; mapping, with the respective rendering engines, the transformed scene file data into a scene representation compatible with Immersive Technologies Media Format (ITMF), the mapping including mapping the transformed scene file data into a plurality of non-realistic primary scene classes and a plurality of non-realistic material classes; The method includes:
2. The method of claim 1 , wherein the extracted relevant scene file data includes scene assets, materials, geometry, rendering passes, and scene elements.
3. The method of claim 1 , wherein the ITMF scene graph comprises a node-based, directed acyclic graph that describes temporal and spatial relationships between multiple visual objects in the scene file.
4. The method of claim 1 , wherein the ITMF scene graph is represented as a human-readable XML file.
5. The method of claim 1 , wherein the ITMF scene graph supports both legacy and emerging advanced imaging display technologies.
6. referencing scene assets by said ITMF scene graph; aggregating the scene assets referenced by the ITMF scene graph with a human readable XML file; storing the aggregated scene assets and the human readable XML file in an ITMF container; The method of claim 1 further comprising:
7. one or more processors; one or more memories storing a computer program; having The computer program causes the one or more processors to carry out a method according to any one of claims 1 to 6. Device.
8. A computer program causing a computer to carry out the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Systems and methods for network-based media processing
US20190028691A1
Media access function for scene descriptions
US20210409818A1