Method and apparatus for managing media storage and delivery, computer readable medium

By extending the glTF format, introducing MPEG extensions and CBOR format, and combining Media Access Function (MAF) and a rendering engine, the problem that the existing glTF cannot support video and audio media is solved, achieving efficient immersive media transmission and presentation.

CN115280296BActive Publication Date: 2025-10-17TENCENT AMERICA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180020882.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-10-12
Filing Date
2021-10-13
Publication Date
2025-10-17
Estimated Expiration
2041-10-13

AI Technical Summary

Technical Problem

The existing glTF format cannot effectively support video and audio media types, making it impossible to achieve efficient and interoperable media transmission and presentation in immersive media scenarios.

Method used

By extending the glTF format, introducing MPEG extensions and CBOR formats, and combining Media Access Function (MAF) and a rendering engine, support for video and audio media is achieved, including the use of MPEG media extensions, CBOR parser functionality, and predefined programming interfaces.

Benefits of technology

It enables efficient transmission and presentation of video and audio media, improves data transmission speed and file storage efficiency, and supports immersive media experiences.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115280296B_ABST
    Figure CN115280296B_ABST
Patent Text Reader

Abstract

Methods and apparatus, computer readable media, for managing media storage and delivery are disclosed, the methods comprising: obtaining, by a media access function (MAF), a glTF (glTF) file corresponding to a scene; obtaining, from the glTF file, a uniform resource locator (URL) parameter indicating a binary data blob; determining that the binary data blob has a CBOR (compact binary object representation) format; converting, using a CBOR parser function implemented by the MAF, the binary data blob into an object having a JSON (JavaScript object notation) format; and obtaining, based on the object, media content corresponding to the scene.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments of the present disclosure relate to a system design to support media objects using 3D modeling syntax, implementing media syntax to support various media codecs, containers and formats, managing media storage and delivery methods through predefined programmatic interfaces, and providing media buffer control and rendering functions. BACKGROUND

[0002] Graphics Language Transmission Format (glTF) is an API-neutral runtime resource 3D modeling delivery format. Compared with traditional 3D modeling tools, glTF provides a more efficient, scalable, and interoperable format for the transmission and loading of 3D content. glTF 2.0 is the latest version of the glTF specification written by the Khronos 3D Group. This format supports a simple scene graph format, which is generally capable of supporting static (non-timed) objects in a scene, including “png” and “jpeg” image formats. glTF 2.0 supports simple animations, including translation, rotation, and scaling of basic shapes (i.e., geometric objects) described using glTF primitives. glTF 2.0 does not support timed media, and therefore does not support video and audio.

[0003] “Information technology - Coding of audio-visual objects - Part 12: ISO base media file format”, ISO / IEC 14496-12 (December 2015), “ISO / IEC FDIS 23000-19 Generic Media Application Format for Segmented Media”, ISO / IEC JTC1 / SC29 / WG11 MPEG117 / 16819 (April 2017), and “ISO / IEC FDIS 23009-1 Text 4th Edition”, ISO / IEC JTC 1 / SC 29 / WG 11 N18609 (August 2019), and the glTF 2.0 specification are incorporated herein by reference in their entirety. SUMMARY

[0004] According to an embodiment, a method of managing media storage and delivery includes: obtaining, by a media access function (MAF), a glTF file corresponding to a scene; obtaining, from the glTF file, a uniform resource locator (URL) parameter indicating a binary data blob; determining that the binary data blob has a CBOR format; converting, using a CBOR parser function implemented by the MAF, the binary data blob into an object having a JSON format; and obtaining, based on the object, media content corresponding to the scene.

[0005] According to an embodiment, an apparatus for managing media storage and delivery 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 to perform a method of managing media storage and delivery as described in the embodiments.

[0006] According to an embodiment, an apparatus for managing media storage and delivery includes a first obtaining module configured to obtain, by a media access function (MAF), a glTF file corresponding to a scene; a second obtaining module configured to obtain, from the glTF file, a uniform resource locator (URL) parameter indicating a binary data blob; a determining module configured to determine that the binary data blob has a CBOR format; a converting module configured to convert, using a CBOR parser function implemented by the MAF, the binary data blob into an object having a JSON format; and a third obtaining module configured to obtain, based on the object, media content corresponding to the scene.

[0007] According to an embodiment, a non-transitory computer-readable medium stores instructions, the instructions including one or more instructions configured, upon execution by at least one processor of an apparatus for managing media storage and delivery, to cause the at least one processor to perform a method of managing media storage and delivery as described in the embodiments. BRIEF DESCRIPTION OF DRAWINGS

[0008] Other features, properties, and various advantages of the disclosed subject matter will become further apparent during the following detailed description, the appended claims and the drawings, in which:

[0009] Figure 1 is a schematic diagram of an environment in which methods, apparatuses and systems described herein can be implemented according to an embodiment.

[0010] Figure 2 is a schematic diagram of an environment in which methods, apparatuses and systems described herein can be implemented according to an embodiment. Figure 1Block diagram of example components of one or more devices.

[0011] Figure 3 Diagram of a glTF scene description object according to an embodiment.

[0012] Figure 4 Diagram of a media scene description system reference architecture according to an embodiment.

[0013] Figure 5 Example of a glTF JavaScript Object Notation (JSON) format representation according to an embodiment.

[0014] Figure 6 Example of an MPEG glTF extension according to an embodiment.

[0015] Figure 7A Diagram of a file with a JSON format according to an embodiment.

[0016] Figure 7B Diagram of a file with a CBOR format according to an embodiment.

[0017] Figure 8 Diagram of an example of a glTF syntax according to an embodiment.

[0018] Figures 9A-9C Diagram of an example process for managing media storage and delivery according to an embodiment. DETAILED DESCRIPTION

[0019] Figure 1 Diagram of an environment 100 in which methods, apparatuses, and systems described herein can be implemented according to an embodiment. As shown, the environment 100 can include a user device 110, a platform 120, and a network 130. Devices of the environment 100 can be interconnected through wired connections, wireless connections, or a combination of wired and wireless connections. Figure 1

[0020] The user device 110 includes one or more devices capable of receiving, generating, storing, processing, and / or providing information associated with the platform 120. For example, the user device 110 can include a computing device (e.g., a desktop computer, a laptop computer, a tablet computer, a handheld computer, a smart speaker, a server, etc.), a mobile phone (e.g., a smart phone, a wireless phone, etc.), a wearable device (e.g., smart glasses or a smart watch), or a similar device. In some implementations, the user device 110 can receive information from and / or send information to the platform 120.

[0021] ​The platform 120 includes one or more devices, as described elsewhere herein. In some embodiments, the platform 120 can include a cloud server or a group of cloud servers. In some embodiments, the platform 120 can be designed to be modular, such that software components can be swapped in or out as particular needs dictate. In this way, the platform 120 can be easily and / or quickly reconfigured for different uses.

[0022] In some embodiments, as shown, the platform 120 can be hosted in a cloud computing environment 122. Notably, while the embodiments described herein describe the platform 120 as being hosted in the cloud computing environment 122, in some embodiments, the platform 120 can not be cloud-based (i.e., can be implemented outside of a cloud computing environment) or can be partially cloud-based.

[0023] The cloud computing environment 122 includes an environment that hosts the platform 120. The cloud computing environment 122 can provide computing, software, data access, storage, etc. services that do not require end users (e.g., the user devices 110) to know the physical location and configuration of the systems and / or devices that host the platform 120. As shown, the cloud computing environment 122 can include a group of computing resources 124 (collectively, “computing resources 124” and individually, “computing resource 124”).

[0024] The computing resources 124 include one or more personal computers, workstation computers, server devices, or other types of computation and / or communication devices. In some embodiments, the computing resources 124 can host the platform 120. The cloud resources can include compute instances executing in the computing resources 124, storage devices provided in the computing resources 124, data transfer devices provided by the computing resources 124, etc. In some embodiments, the computing resources 124 can communicate with other computing resources 124 by way of wired connections, wireless connections, or a combination of wired and wireless connections.

[0025] As Figure 1 As further shown, the computing resources 124 include a group of cloud resources, such as one or more applications (“APPs”) 124-1, one or more virtual machines (“VMs”) 124-2, virtualized storage (“VSs”) 124-3, one or more hypervisors (“HYPs”) 124-4, etc.

[0026] The application 124-1 includes one or more software applications that can be provided to and / or accessed by the user device 110 and / or the platform 120. The application 124-1 can eliminate the need to install and execute software applications on the user device 110. For example, the application 124-1 can include software related to the platform 120 and / or any other software capable of being provided through the cloud computing environment 122. In some embodiments, one application 124-1 can send / receive information to / from one or more other applications 124-1 through the virtual machine 124-2. For example, the application 124-1 can provide a media stream, which includes, but is not limited to, an audio stream, a video stream, an object description stream, a scene description stream, etc. A scene description generally refers to a descriptor that describes a scene. A scene can generally refer to any 2D, 3D, and / or immersive object and its associated attributes, commands, and / or behaviors. The scene description can be transmitted in the form of a scene graph, which is a hierarchical representation of audio, video, and graphics objects. It should be noted that the scene description can be transmitted independently of other types of streams, e.g., an audio stream, a visual stream, an object description stream, etc.

[0027] The virtual machine 124-2 includes a software implementation of a machine (e.g., a computer) that executes programs, similar to a physical machine. The virtual machine 124-2 can be a system virtual machine, or a process virtual machine, depending on the extent to which the virtual machine 124-2 uses and corresponds to any real machine. A system virtual machine can provide a complete system platform that supports execution of a complete operating system (“OS”). A process virtual machine can execute a single program and can support a single process. In some embodiments, the virtual machine 124-2 can execute on behalf of a user (e.g., the user device 110) and can manage the infrastructure of the cloud computing environment 122, such as data management, synchronization, or long-term data transfers.

[0028] The virtualized storage 124-3 includes one or more storage systems and / or one or more devices that use virtualization techniques within the storage systems or devices of the computing resources 124. In some embodiments, within the context of a storage system, the types of virtualization can include block virtualization and file virtualization. Block virtualization can refer to abstraction (or separation) of logical storage from physical storage so that the storage system can be accessed without considering the physical storage or heterogeneous structure. The separation can allow an administrator of the storage system to flexibly manage storage for end users. File virtualization can eliminate dependencies between data accessed at a file level and locations of physical storage files. This can optimize storage usage, server consolidation, and / or performance of non-disruptive file migrations.

[0029] A hypervisor 124-4 can provide hardware virtualization techniques that allow multiple operating systems (e.g., "guest operating systems") to execute concurrently on a host computer such as computing resource 124. Hypervisor 124-4 can provide a virtual operating platform for the guest operating systems and can manage execution of the guest operating systems. Multiple instances of various operating systems can share virtualized hardware resources.

[0030] Network 130 includes one or more wired and / or wireless networks. For example, network 130 can include a cellular network (e.g., a fifth generation (5G) network, a long-term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a

[0031] Figure 1 The number and arrangement of devices and networks shown in FIG. 1 are provided as an example. In practice, there can be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks than those shown in FIG. 1. Furthermore, two or more devices shown in Figure 1 FIG. 1 can be implemented within a single device, or across multiple devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of environment 100 can perform one or more functions described as being performed by another set of devices of environment 100. Figure 1 The single device shown in FIG. 1 can be implemented as multiple, distributed devices. Additionally or alternatively, a set of devices (e.g., one or more devices) of environment 100 can perform one or more functions described as being performed by another set of devices of environment 100. Figure 1

[0032] Figure 2 is a block diagram of example components of one or more devices of Figure 1 environment 100. Device 200 can correspond to user device 110 and / or platform 120. As shown, device 200 can include bus 210, processor 220, memory 230, storage component 240, input component 250, output component 260, and communication interface 270. Figure 2

[0033] ​​Bus 210 includes a component that permits communication among the components of device 200. Processor 220 is implemented in hardware, firmware, or a combination of hardware and software. Processor 220 is 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 another type of processing component. In some embodiments, processor 220 includes one or more processors capable of being programmed to perform a function. Memory 230 includes a random access memory (RAM), a read only memory (ROM), and / or another type of dynamic or static storage device (e.g., a flash memory, a magnetic storage device, and / or an optical storage device) that stores information and / or instructions for use by processor 220.

[0034] Storage component 240 stores information and / or software related to the operation and use of device 200. For example, storage component 240 can include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, and / or a solid state disk), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cartridge, a magnetic tape, and / or another type of non-transitory computer-readable medium, along with a corresponding drive.

[0035] Input component 250 includes a component that permits device 200 to receive information, such as via user input, for example, a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and / or a microphone. Additionally, or alternatively, input component 250 can include a sensor for sensing information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, and / or an actuator). Output component 260 includes a component that provides output information from device 200, such as a display, a speaker, and / or one or more light-emitting diodes (LEDs).

[0036] Communication interface 270 includes a transceiver-like component (e.g., a transceiver and / or a separate receiver and transmitter) that enables device 200 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. Communication interface 270 can permit device 200 to receive information from another device and / or provide information to another device. For example, communication interface 270 can 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, and / or the like.

[0037] Device 200 can perform one or more processes described herein. Device 200 can perform these processes in response to processor 220 executing software instructions stored by non-volatile computer-readable media (e.g., memory 230 and / or storage component 240). Computer-readable media is defined herein as non-volatile memory devices. Memory devices include storage space within a single physical storage device or storage space distributed across multiple physical storage devices.

[0038] The software instructions may be read into the memory 230 and / or storage component 240 from another computer-readable medium or from another device via the communication interface 270. When executed, the software instructions stored in the memory 230 and / or storage component 240 may cause the processor 220 to perform one or more of the 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 of the processes described herein. Accordingly, the embodiments described herein are not limited to any specific combination of hardware circuitry and software.

[0039] Figure 2 The number and arrangement of components shown are provided as examples. Figure 2 The device 200 may include more components, fewer components, different components, or components arranged differently than those shown. Additionally or alternatively, one or more components of the device 200 may perform one or more functions described as being performed by another group of components of the device 200.

[0040] refer to Figure 3 The Graphics Language Transfer Format (glTF) is an API-neutral runtime resource delivery format for 3D modeling. Compared to traditional 3D modeling tools, glTF provides a more efficient, scalable, and interoperable format for transmitting and loading 3D content.

[0041] A glTF scene can be a combination of multiple glTF assets. A glTF asset is a JSON (JavaScript Object Notation) file that contains a complete scene description. This complete scene description can include, for example, scene objects 301, nodes 302, cameras 303, meshes 304, lights 305, animations 306, accessors 307, materials 308, skins 309, buffer views 310, techniques 311, textures 312, buffers 313, programs 314, images 315, samplers 316, shaders 317, and supporting external data.

[0042] glTF also supports external data sources that can be referenced in any of the above scene objects. In embodiments, binary files can be used for animations 306 or other buffer-based data 313. Image files can be used for object textures 312.

[0043] Reference Figure 5 As described above, a glTF scene can be organized in JSON format. A glTF resource can include zero or more scenes 503, which can be a collection of visual objects to be presented. A scene can be defined in a scene array. In Figure 5 In the illustrated example, there is a single scene 506 with a single node 501, but embodiments are not limited thereto and can include various parameters that can be associated with each node object. For example, a name 502 can specify the name of the node object, and a scene name 504 can specify the name of a single scene.

[0044] A glTF scene resource can be used by a presentation engine to present a 3D or immersive scene to a user. Existing glTF syntax only supports 3D objects, including static or computer-generated animations. Media types such as video or audio are not supported, let alone presenting such video / audio media types.

[0045] At the same time, existing glTF cannot use a geographic coordinate system to describe a scene, which is a desirable feature in certain media presentation scenarios.

[0046] Therefore, there is a need to extend glTF to support media types, including traditional 2D planar video, immersive media content such as virtual reality (VR), augmented reality (AR), extended reality (XR), and spatial audio. This can require extensions to support video / audio syntax and systems for media delivery and presentation.

[0047] The Moving Picture Experts Group (MPEG) has defined some extensions to the glTF specification to support immersive media content. Reference is made to Figure 3 The new extensions are MPEG_media 330, MPEG_scene_dynamic 331, MPEG_texture_video 333, MEPG_animation_timing 332, MPEG_audio_spatial 334, MPEG_accessor_timed 335, MPEG_buffer_circular 336. In Figure 3 Generally, elements with a circular profile (e.g., elements 301-317) can be glTF elements and elements with a square profile (e.g., elements 330-336) can correspond to MPEG-based extensions to the glTF specification, but embodiments are not limited thereto.

[0048] If MPEG_media 330 is specified as the root identifier, then MPEG media can be supported. Referring to Figure 6 , the syntax to support MPEG media can be declared as a top-level JSON syntax. If support for Figure 6 syntaxes from 601 to 604 in the middle can be presented exactly as shown.

[0049] Scene updates can be expressed using the JSON patch protocol, and the JSON patch protocol can be supported using MPEG_scene_dynamic 331.

[0050] The MPEG texture video extension identified by MPEG_texture_video 333 can provide the possibility to link glTF texture objects to MPEG media and their respective tracks (listed by the MPEG_media object). The MPEG texture video extension can also provide a reference to MPEG_accessor_timed 335, where decoded timed textures will be available.

[0051] The MPEG_audio_spatial 334 extension can support multiple audio types.

[0052] To support timed data access, the buffer element can be extended to provide circular buffering functionality. This extension is named MPEG_buffer_circular 336 and can be included as part of a glTF “buffer” object, such as buffer 313.

[0053] The above-described MPEG extensions can allow immersive experiences to be created using glTF. Finally, a glTF resource with MPEG extensions can be used to load into a rendering engine for visualization.

[0054] Referring to Figure 4Referring to the media scene description architecture 400, an example of how MPEG extensions can be used to support media types such as audio / video is shown. Media content can be retrieved from an external source such as a media cloud 401 using a media retrieval engine and media access function (MAF) 402, can be processed using a video decoder 403, an audio decoder 404, and other data compressors 405, can be buffered in a video buffer 406, an audio buffer 407, and other buffers 408, and can be rendered by a rendering engine 409. In some cases, media content can be stored in a local storage 410. The MAF provides a framework for integrating elements from multiple MPEG standards into a single specification that is applicable to a particular but widely used application. For example, the MAF can specify how metadata is combined with timed media information in a well-defined format to facilitate the exchange, management, editing, and rendering of media. The rendering can be a "local" rendering of the system or can be accessed over a network or other streaming mechanism.

[0055] Referring to the media scene description architecture 400, an example of how MPEG extensions can be used to support media types such as audio / video is shown. Media content can be retrieved from an external source such as a media cloud 401 using a media retrieval engine and media access function (MAF) 402, can be processed using a video decoder 403, an audio decoder 404, and other data compressors 405, can be buffered in a video buffer 406, an audio buffer 407, and other buffers 408, and can be rendered by a rendering engine 409. In some cases, media content can be stored in a local storage 410. The MAF provides a framework for integrating elements from multiple MPEG standards into a single specification that is applicable to a particular but widely used application. For example, the MAF can specify how metadata is combined with timed media information in a well-defined format to facilitate the exchange, management, editing, and rendering of media. The rendering can be a "local" rendering of the system or can be accessed over a network or other streaming mechanism. Figure 4 Referring to the media scene description architecture 400, an example of how MPEG extensions can be used to support media types such as audio / video is shown. Media content can be retrieved from an external source such as a media cloud 401 using a media retrieval engine and media access function (MAF) 402, can be processed using a video decoder 403, an audio decoder 404, and other data compressors 405, can be buffered in a video buffer 406, an audio buffer 407, and other buffers 408, and can be rendered by a rendering engine 409. In some cases, media content can be stored in a local storage 410. The MAF provides a framework for integrating elements from multiple MPEG standards into a single specification that is applicable to a particular but widely used application. For example, the MAF can specify how metadata is combined with timed media information in a well-defined format to facilitate the exchange, management, editing, and rendering of media. The rendering can be a "local" rendering of the system or can be accessed over a network or other streaming mechanism.

[0056] As noted above, glTF syntax can be expressed in a JSON file. In contrast to the traditional JSON format, the Internet Engineering Task Force (IETF) Concise Binary Object Representation (CBOR) can represent a compact data format. CBOR is similar to JSON in that it relates to data objects in name / value pair format, but is represented in binary and compact fashion, and has more support for key value types. A file in CBOR format can be smaller in size than a corresponding file in JSON format. In some cases, a CBOR file can be more than 50% smaller than a corresponding JSON file. CBOR is registered with the Internet Assigned Numbers Authority (IANA) as “application / CBOR”.

[0057] CBOR can be used as one of the glTF interchange compressed file formats, and is also widely supported due to its compact data size and interchangeability with JSON.

[0058] Information in CBOR is stored in binary form. Because many use cases for information include multiple machines that understand the data, binary data formats can have speed advantages over human-readable data formats like JSON or XML, which can require parsing each time a computer or machine is used to understand the stored data.

[0059] Figure 7A An example of a file in JSON format is shown, Figure 7B An example of a corresponding file in CBOR format is shown. For example, Figure 7A The character “a” (711) in the JSON format file can correspond to Figure 7B 0x61 (721) in the CBOR format file. Similarly, Figure 7A The character “b” (712) in the JSON format file can correspond to Figure 7B 0x62 (722) in the CBOR format file, and Figure 7A The character “c” (713) in the JSON format file can correspond to Figure 7B 0x63 (723) in the CBOR format file.

[0060] Using CBOR for scene description can bring advantages such as smaller data size, support for multiple key value types rather than just string objects in JSON, and others, in comparison to JSON. Function programming interfaces can be used in the presented media scene description reference architecture, more precisely in the media access function module.

[0061] As glTF support for CBOR is gaining popularity, this support can be added to the MPEG scene description to, for example, increase interoperability of the glTF file format, reduce file size for local storage or caching, and reduce glTF file transfer latency at the MAF 402 with minimal processing power.

[0062] According to embodiments, a CBOR parser function can be implemented by the MAF 402 to convert CBOR input to the JSON format natively supported by glTF and can also be used as a file compressor to save large glTF files into local storage or cache 410.

[0063] The CBOR parser API provides one of the methods such as cbor2Json(), json2Cbor, and save() as shown in Table 1 below:

[0064] Table 1

[0065] Method Brief Description cbor2Json(file) Convert CBOR format to JSON format json2Cbor(file) Convert JSON format to CBOR format cbor2Json(object) Convert CBOR data blob to JSON format

[0066] Detailed interface descriptions are as follows:

[0067]

[0068] The functions proposed above can be used, for example, in the following various scenarios.

[0069] Reference Figure 8 The glTF “url” or “uri” syntax can point to a CBOR binary data blob (802) according to embodiments. In embodiments, there can be two ways to specify whether the binary number is indeed in the CBOR data format. According to example 1, a Multipurpose Internet Mail Extensions (MIME) type can be signaled, which specifies “mimeTypes” (801) using “application / cbor”. According to example 2, a prefix “application / cbor;” can be included before the actual binary data. Examples 1 and 2 can be used together. In any case, a function named “cbor2Json(Object)” can be invoked, which takes CBOR binary data to parse the CBOR file format into JSON.

[0070] If the input glTF is in CBOR format, the output can be glTF using the cbor2Json() API.

[0071] If the input is in the native glTF format, no conversion is needed.

[0072] For the purpose of local storage or caching, a glTF file can be saved as CBOR using the json2Cbor() and save() interfaces.

[0073] Thus, embodiments can relate to methods that provide interoperability of glTF file format with CBOR, reduce file size for local storage or caching, improve data transfer speed, reduce file transfer latency.

[0074] Reference Figures 9A-9C Processes 900A, 900B, and 900C for managing media storage and delivery are described below.

[0075] Figure 9A is a flow diagram of an example process 900A for managing media storage and delivery.

[0076] As shown in Figure 9A , process 900A can include obtaining, by a media access function (MAF), a glTF file corresponding to a scene (block 911). In embodiments, the MAF can correspond to MAF 402.

[0077] As further shown in Figure 9A , process 900A can include obtaining, from the glTF file, a uniform resource locator (URL) parameter indicating a binary data blob (block 912).

[0078] As further shown in Figure 9A , process 900A can include determining that the binary data blob has a CBOR format (block 913).

[0079] As further shown in Figure 9A , process 900A can include converting the binary data blob to an object having a JSON format using a CBOR parser function implemented by the MAF (block 914).

[0080] As further shown in Figure 9A , process 900A can include obtaining media content corresponding to the scene based on the object (block 915).

[0081] In embodiments, the object having the JSON format can be larger than the binary data blob having the CBOR format.

[0082] In embodiments, the binary data blob can be determined to have the CBOR format based on a multipurpose internet mail extensions (MIME) type signaled in the glTF file.

[0083] In embodiments, the binary data blob can be determined to have the CBOR format based on a prefix included at the beginning of the binary data blob.

[0084] In embodiments, the binary data blob can be determined to have a CBOR format based on a multipurpose internet mail extensions (MIME) type signaled in the glTF file and a prefix included at the beginning of the binary data blob.

[0085] In embodiments, the MAF can be included in a Moving Picture Experts Group (MPEG) scene description architecture.

[0086] In embodiments, a CBOR parser function can be implemented using an application programming interface associated with the MAF.

[0087] Figure 9B is a flow diagram of an example process 900B for managing media storage and delivery. In embodiments, one or more blocks of process 900B can be performed in combination with one or more blocks of process 900A. For example, one or more blocks of process 900B can be performed after one or more blocks of process 900A.

[0088] As Figure 9B Further as shown, process 900B can include determining that the glTF file has a CBOR format (block 921).

[0089] As Figure 9B shown, process 900B can include converting the glTF file to a converted glTF file having a JSON format using a CBOR parser function implemented by the MAF (block 922). In embodiments, the CBOR parser function can be different than the CBOR parser function used in block 914.

[0090] In embodiments, the converted glTF file having a JSON format can be larger than the glTF file having a CBOR format.

[0091] Figure 9C is a flow diagram of an example process 900C for managing media storage and delivery. In embodiments, one or more blocks of process 900C can be performed in combination with one or more blocks of process 900A and / or 900B. For example, one or more blocks of process 900C can be performed after one or more blocks of process 900A or after one or more blocks of process 900B.

[0092] As Figure 9C shown, process 900C can include re-converting the converted glTF file to a re-converted glTF having a CBOR format using a JSON parser function implemented by the MAF (block 931).

[0093] As Figure 9CAs further shown, process 900C may include storing the reconverted glTF file in at least one of local memory or a cache (block 932 ).

[0094] Although Figures 9A-9C Example blocks of processes 900A, 900B, and 900C are shown, but in some implementations, processes 900A, 900B, and 900C may include more Figures 9A-9C More blocks, fewer blocks, different blocks, or differently arranged blocks may be described. Additionally or alternatively, two or more process blocks of processes 900A, 900B, and 900C may be performed in parallel. In an embodiment, any one or more blocks of processes 900A, 900B, and 900C may be combined with any other one or more blocks of processes 900A, 900B, and 900C in any order, and any one or more blocks of processes 900A, 900B, and 900C may be split or combined as needed.

[0095] Furthermore, the proposed method can be implemented by a processing circuit (e.g., one or more processors or one or more integrated circuits). In one example, the one or more processors execute a program stored in a non-volatile computer-readable medium to perform one or more of the proposed methods.

[0096] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the embodiments to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the embodiments.

[0097] It will be apparent that the systems and / or methods described herein can be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods does not limit the implementation. Therefore, it should be understood that software and hardware can be designed based on the description herein to implement the systems and / or methods.

[0098] Even though specific combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. In fact, many of these 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 directly depend on only one claim, the disclosure of possible implementations includes every dependent claim in combination with every other claim in the claim set.

[0099] No element, act or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items, and can be used interchangeably with “one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, a combination of related and unrelated items, etc.), and can be used interchangeably with “one or more.” Where only one item is intended, the term “one” or similar language is used. Also, as used herein, the terms “has,” “have,” “having” or the like are intended to be open-ended terms. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.

Claims

1. A method for managing media storage and delivery, characterized in that: include: Obtain the graphics language transmission format glTF file corresponding to the scene through the media access function MAF; Obtain a Uniform Resource Locator (URL) parameter indicating a binary data blob from the glTF file; Determining, based on a prefix included at the beginning of the binary data blob, that the binary data blob has a Concise Binary Object Representation (CBOR) format; Convert the binary data blob into an object having a JavaScript Object Representation (JSON) format using a CBOR parser function implemented by the MAF; as well as Media content corresponding to the scene is acquired based on the object in the JavaScript object representation JSON format.

2. The method according to claim 1, characterized in that The object in the JSON format is larger than the binary data blob in the CBOR format.

3. The method according to claim 1, characterized in that The binary data blob is determined to be in the CBOR format based on determining both a Multipurpose Internet Mail Extensions (MIME) type signaled in the glTF file and a prefix included at the beginning of the binary data blob.

4. The method according to claim 1, wherein The URL parameter points directly to the binary data blob located in the glTF file.

5. The method according to claim 1, wherein Determining that the binary data blob has the CBOR format based on determining both a Multipurpose Internet Mail Extensions (MIME) type signaled in the glTF file and a prefix included at the beginning of the binary data blob; wherein both the MIME type and the prefix indicate: "application / cbor".

6. The method according to claim 1, characterized in that The MAF is included in the Moving Picture Experts Group MPEG Scene Description Framework.

7. The method according to any one of claims 1 to 6, characterized in that The CBOR parser functionality is implemented using an application programming interface associated with the MAF.

8. A device for managing media storage and delivery, characterized in that The device comprises: at least one memory configured to store program code; and At least one processor is configured to read the program code and operate according to instructions of the program code to execute the method according to any one of claims 1 to 7.

9. A device for managing media storage and delivery, characterized in that The device comprises: A first acquisition module is configured to acquire a graphics language transmission format glTF file corresponding to the scene through a media access function MAF; A second acquisition module is configured to acquire a uniform resource locator URL parameter indicating a binary data blob from the glTF file; a determination module configured to determine that the binary data blob has a Concise Binary Object Representation (CBOR) format based on a prefix included at the beginning of the binary data blob; a conversion module configured to convert the binary data blob into an object having a JavaScript Object Representation (JSON) format using a CBOR parser function implemented by the MAF; and The third acquisition module is configured to acquire media content corresponding to the scene based on the object in JavaScript object representation JSON format.

10. The device according to claim 9, characterized in that The object in the JSON format is larger than the binary data blob in the CBOR format.

11. The device according to claim 9, characterized in that The binary data blob is determined to be in the CBOR format based on determining both a Multipurpose Internet Mail Extensions (MIME) type signaled in the glTF file and a prefix included at the beginning of the binary data blob.

12. The device according to claim 9, characterized in that The URL parameter points directly to the binary data blob located in the glTF file.

13. The device according to claim 9, characterized in that Determining that the binary data blob has the CBOR format based on determining both a Multipurpose Internet Mail Extensions (MIME) type signaled in the glTF file and a prefix included at the beginning of the binary data blob; wherein both the MIME type and the prefix indicate: "application / cbor".

14. The device according to claim 9, characterized in that The MAF is included in the Moving Picture Experts Group MPEG Scene Description Framework.

15. The device according to any one of claims 9 to 14, characterized in that The CBOR parser functionality is implemented using an application programming interface associated with the MAF.

16. A non-volatile computer-readable medium, characterized in that Used to store instructions, the instructions comprising: one or more instructions, the one or more instructions being configured to, when executed by at least one processor of a device for managing media storage and delivery, cause the at least one processor to perform the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method and apparatus for generating stereoscopic file

    US20090066783A1

  • Decentralized content fabric

    US20200120023A1