Method and apparatus for processing media content in network-based media processing (NBMP)

By introducing functional descriptors and task descriptors in MPEG NBMP, the lack of network management abstraction is solved, media processing efficiency is improved, and deployment costs are reduced, and media service deployment in multi-cloud environments is supported.

CN111831834BActive Publication Date: 2025-08-26TENCENT AMERICA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202010321112.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-04-21
Filing Date
2020-04-22
Publication Date
2025-08-26
Estimated Expiration
2040-10-11

AI Technical Summary

Technical Problem

Current MPEG NBMP designs lack the application program interface (API) abstraction for network management, the response parameters are not clearly defined, and it is difficult for media sources or NBMP managers to make correct decisions when processing multiple return entries.

Method used

Function descriptors and task descriptors are introduced to indicate the maximum throughput of functions and tasks, minimum buffer size, maximum metadata size and frequency, through which descriptors simplify the description of function groups and improve the abstraction of timing requirements and workflows.

Benefits of technology

Improve media processing efficiency, reduce media service deployment costs, and support large-scale media service deployment through public, private or hybrid cloud services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111831834B_ABST
    Figure CN111831834B_ABST
Patent Text Reader

Abstract

A method for processing media content in Network-Based Media Processing (NBMP) of Moving Picture Experts Group (MPEG) includes obtaining at least one function from a function repository storing one or more functions for processing media content, each of the at least one function including a function descriptor; based on the obtained at least one function, obtaining a task for processing the media content, the task including a task descriptor, the function descriptor and each of the task descriptors including a flag indicating whether the descriptor describes a function group, the function group including multiple functions of the one or more functions; and using the obtained task to process the media content based on the task descriptor.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related documents

[0002] This application claims priority to U.S. Provisional Patent Application No. 62 / 837,608, filed in the U.S. Patent and Trademark Office on April 23, 2019, and to U.S. Patent Application No. 16,854,869, filed in the U.S. Patent and Trademark Office on April 21, 2020, the entire contents of which are incorporated herein by reference. Background Art

[0003] The Moving Picture Experts Group (MPEG) Network Based Media Processing (NBMP) project developed the concept of processing media in the cloud. However, current NBMP designs do not provide an application programming interface (API) abstraction for network management. Current NBMP designs only provide APIs for cloud resources (such as hardware platforms).

[0004] Furthermore, in NBMP, current response parameters are not clearly defined. When multiple entries are returned from the function repository, the media source or the NBMP manager can make a decision based on the returned entries. For example, if such a decision is made by the media source, it may be easy because the media source can read the multiple returned entries and perform a manual selection. However, even in this case, it may be difficult for the media source to select the correct function from the multiple returned entries. In another example, if the NBMP manager makes a decision after reading the multiple returned entries, the NBMP manager may need a reference point to make the decision. Summary of the Invention

[0005] According to various embodiments, a method for processing media content in Moving Picture Experts Group (MPEG) Network-Based Media Processing (NBMP) is performed by at least one processor and includes obtaining at least one of the one or more functions from a function repository storing one or more functions for processing media content, each of the at least one of the one or more functions including a function descriptor indicating a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata of the function of the one or more functions; obtaining a task for processing media content based on the at least one function obtained from the one or more functions, the task including a task descriptor indicating a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata of the task; and using the obtained task to process media content based on the task descriptor.

[0006] According to various embodiments, a device for processing media content in Moving Picture Experts Group (MPEG) Network-Based Media Processing (NBMP) includes at least one processor for reading program code and operating according to instructions of the program code, the program code including a first acquisition code for causing the at least one processor to obtain at least one of the one or more functions from a function repository storing one or more functions for processing media content, each of the at least one of the one or more functions including a function descriptor for indicating a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata of the function in the one or more functions; a second acquisition code for causing the at least one processor to obtain a task for processing media content based on the at least one function obtained from the one or more functions, the task including a task descriptor for indicating a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata of the task; and a processing code for causing the at least one processor to use the obtained task to process media content based on the task descriptor.

[0007] According to various embodiments, a non-volatile computer-readable storage medium stores instructions that, when executed by at least one processor of a device for processing media content in MPEG NBMP, causes the at least one processor to obtain at least one of the one or more functions from a function repository storing one or more functions for processing media content, each of the at least one of the one or more functions including a function descriptor indicating a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata of the function in the one or more functions; obtain a task for processing media content based on the at least one function obtained from the one or more functions, the task including a task descriptor indicating a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata of the task; and use the obtained task to process media content based on the task descriptor.

[0008] The functional improvements to the MPEG NBMP standard provided by various embodiments improve media processing efficiency, increase the speed of media service deployment and reduce the cost of media service deployment, and allow large-scale deployment of media services by utilizing public, private or hybrid cloud services. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Figure 1 The figure is a schematic diagram of an environment in which the methods, apparatuses, and systems of various embodiments may be implemented.

[0010] Figure 2 for Figure 1 A block diagram of example components of one or more devices.

[0011] Figure 3 4 is a block diagram of an NBMP system according to various embodiments.

[0012] Figure 4 Flowchart of a method for processing media content in MPEG NBMP in various embodiments.

[0013] Figure 5 A block diagram of an apparatus for processing media content in MPEG NBMP according to various embodiments.

[0014] Figure 6 A block diagram of an apparatus for processing media content in MPEG NBMP according to various embodiments. DETAILED DESCRIPTION

[0015] The embodiments described herein provide functional improvements to the MPEG NBMP standard that increase media processing efficiency, speed up and reduce the cost of media service deployment, and enable large-scale deployment of media services by leveraging public, private, or hybrid cloud services.

[0016] In some examples, functional improvements to the MPEG NBMP standard include using functional descriptors to simplify the description of functional groups that include multiple functions for processing media content. In addition, media sources and media sinks are added to the workflow for processing media content, and task descriptors are used to characterize their inputs and outputs. The inputs and outputs of functions and the inputs and outputs of tasks are better characterized by adding buffer throughput, buffer size, metadata size, and frequency parameters to input descriptors and output descriptors. Functional groups and task workflows are better characterized by adding timing descriptors to connection mapping descriptors. The abstraction of timing requirements and workflows is improved by separating timing parameters from explicit hardware parameters and adding additional extension parameters to timing descriptors.

[0017] Figure 1 FIG. 1 is a diagram of an environment 100 in which the methods, apparatuses, and systems described herein may be implemented. Figure 1 As shown, environment 100 may include user device 110, platform 120, and network 130. The devices of environment 100 may be interconnected via wired connections, wireless connections, or a combination of wired and wireless connections.

[0018] User device 110 includes one or more devices that can receive, generate, store, process, and / or provide information associated with platform 120. For example, 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 smartphone, a wireless phone, etc.), a wearable device (e.g., smart glasses or a smart watch), or similar devices. In some embodiments, user device 110 can receive information from platform 120 and / or send information to platform 120.

[0019] The platform 120 includes one or more devices as described elsewhere herein. In some embodiments, the platform 120 may include a cloud server or a group of cloud servers. In some embodiments, the platform 120 may be designed to be modular so that software components can be swapped in or out based on specific needs. This allows the platform 120 to be easily and / or quickly reconfigured for different uses.

[0020] In some embodiments, as shown, the platform 120 can be hosted in a cloud computing environment 122. It is worth noting that although the embodiments described herein describe the platform 120 as being hosted in a cloud computing environment 122, in some embodiments, the platform 120 may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.

[0021] Cloud computing environment 122 includes an environment that hosts platform 120. Cloud computing environment 122 can provide computing, software, data access, storage, and other services without requiring end users (e.g., user devices 110) to be aware of the physical location and configuration of the systems and / or devices hosting platform 120. As shown, cloud computing environment 122 can include a set of computing resources 124 (collectively, "computing resources 124" and individually, "computing resource 124").

[0022] Computing resources 124 include one or more personal computers, workstation computers, server devices, or other types of computing and / or communication devices. In some embodiments, computing resources 124 can host platform 120. Cloud resources can include computing instances executed on computing resources 124, storage devices provided on computing resources 124, data transmission devices provided by computing resources 124, etc. In some embodiments, computing resources 124 can communicate with other computing resources 124 via wired connections, wireless connections, or a combination of wired and wireless connections.

[0023] Further Figure 1As shown, the computing resources 124 include a set of cloud resources, such as one or more applications (APP) 124-1, one or more virtual machines (VM) 124-2, virtualized storage (VS) 124-3, one or more hypervisors (HYP) 124-4, etc.

[0024] Applications 124-1 include one or more software applications that can be provided to or accessed by user device 110 and / or platform 120. Applications 124-1 eliminate the need for user device 110 to install and execute software applications. For example, applications 124-1 may include software associated with platform 120 and / or any other software that can be provided via cloud computing environment 122. In some embodiments, one application 124-1 can send and receive information to and from one or more other applications 124-1 via virtual machine 124-2.

[0025] The virtual machine 124-2 comprises a software implementation of a machine (e.g., a computer) that executes programs like a physical machine. The virtual machine 124-2 can be a system virtual machine or a process virtual machine, depending on the use and correspondence of the virtual machine 124-2 to any real machine. A system virtual machine can provide a complete system platform that supports the 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., a user device 110) and can manage the infrastructure of the cloud computing environment 122, such as data management, synchronization, or long-term data transfer.

[0026] Virtualized storage 124-3 includes one or more storage systems and / or one or more devices that use virtualization technology within the storage system or device of the computing resource 124. In some embodiments, within the context of the storage system, the types of virtualization may include block virtualization and file virtualization. Block virtualization may refer to abstracting (or separating) logical storage from physical storage, so that the storage system can be accessed without considering the physical storage or heterogeneous structure. The above separation may allow administrators of the storage system to flexibly manage the storage of end users. File virtualization may eliminate the dependency between data accessed at the file level and the location of the physical storage file. This may optimize the performance of storage usage, server consolidation, and / or non-disruptive file migration.

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

[0028] The network 130 includes one or more wired and / or wireless networks. For example, the network 130 may 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 public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber-optic-based network, etc., and / or a combination of these or other types of networks.

[0029] Figure 1 The number and arrangement of devices and networks shown are provided as an example. Figure 1 There may be more devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks than those shown. Figure 1 Two or more of the devices shown may be implemented in a single device, or Figure 1 The single device shown may be implemented by multiple distributed devices. Additionally or alternatively, one set of devices (eg, one or more devices) of environment 100 may perform one or more functions described as being performed by another set of devices of environment 100.

[0030] Figure 2 yes Figure 1 1. The device 200 may correspond to the user device 110 and / or the platform 120. Figure 2 As shown, device 200 may include a bus 210 , a processor 220 , a memory 230 , a storage component 240 , an input component 250 , an output component 260 , and a communication interface 270 .

[0031] The bus 210 includes components that allow communication between components of the device 200. The processor 220 is implemented in hardware, firmware, or a combination of hardware and software. The 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, the processor 220 includes one or more processors that can be programmed to perform functions. The 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., flash memory, magnetic memory, and / or optical memory) that stores information and / or instructions for use by the processor 220.

[0032] Storage component 240 stores information and / or software related to the operation and use of device 200. For example, storage component 240 may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optical disk, and / or a solid-state disk), a compact disk (CD), a digital versatile disk (DVD), a floppy disk, a cassette, a magnetic tape, and / or another type of non-volatile computer-readable medium, and corresponding drives.

[0033] Input components 250 include components that allow device 200 to receive information, such as through user input, such as a touch screen display, a keyboard, a keypad, a mouse, buttons, switches, and / or a microphone. Additionally or alternatively, input components 250 may include sensors for sensing information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, and / or an actuator). Output components 260 include components that provide output information from device 200, such as a display, a speaker, and / or one or more light emitting diodes (LEDs).

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

[0035] 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.

[0036] 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.

[0037] Figure 2 The number and arrangement of components shown are provided as an example. 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.

[0038] Figure 3 is a block diagram of the NBMP system 300 according to various embodiments.

[0039] refer to Figure 3 , the NBMP system 300 includes a NBMP source 310 , a NBMP workflow manager 320 , a function repository 330 , a network controller 340 , one or more media processing entities 350 , a media source 360 ​​, and a media receiver 370 .

[0040] NBMP source 310 can receive instructions from third-party entity 380, communicate with NBMP workflow manager 320 via the NBMP workflow API, and communicate with function repository 330 via the capability discovery API. For example, NBMP source 310 can send a workflow description document to NBMP workflow manager 320 and read functional descriptions of various functions stored in the memory of function repository 330. These functions can include media processing functions such as media decoding, feature point extraction, camera parameter extraction, projection methods, seam information extraction, blending, post-processing, and encoding. NBMP source 310 can include at least one processor and memory storing code for causing the at least one processor to execute the functions of NBMP source 310.

[0041] NBMP source 310 may request NBMP workflow manager 320 to create a workflow including tasks 351 and 352 by sending a workflow description document to NBMP workflow manager 320, wherein tasks 351 and 352 are to be performed by one or more media processing entities 350. The workflow description document may include descriptors, and each descriptor may include parameters.

[0042] For example, NBMP source 310 may select one or more functions stored in function repository 330 and send a workflow description document to NBMP workflow manager 320. The workflow description document includes descriptors describing details such as input and output data, the selected one or more functions, and workflow requirements. The workflow description document may further include a set of task descriptions and a connection mapping of the inputs and outputs of tasks 351 and 352 to be executed by one or more media processing entities 350. When NBMP workflow manager 320 receives this information from NBMP source 310, it may instantiate tasks 351 and 352 based on the function names and connect tasks 351 and 352 according to the connection mapping to create a workflow.

[0043] Alternatively or additionally, NBMP source 310 may request NBMP workflow manager 320 to create a workflow using a set of keywords. For example, NBMP source 310 may send a workflow description document including the set of keywords to NBMP workflow manager 320, which may then use the set of keywords to search for one or more appropriate functions stored in function repository 330. Upon receiving this information from NBMP source 310, NBMP workflow manager 320 may use the keywords specified in the processing descriptor of the workflow description document to search for one or more appropriate functions, and may use other descriptors in the workflow description document to provide and connect tasks 351 and 352, thereby creating a workflow.

[0044] The NBMP workflow manager 320 can communicate with the function repository 330 via a function discovery API, and can communicate with one or more media processing entities 350 through the network controller 340 via an NBMP task API, an NBMP link API, and a function discovery API. The NBMP workflow manager 320 can include at least one processor and a memory storing code for causing the at least one processor to perform the functions of the NBMP workflow manager 320.

[0045] The NBMP workflow manager 320 can use the NBMP task API to set up, configure, manage, and monitor one or more tasks in the workflow's tasks 351 and 352, which can be performed by one or more media processing entities 350. In various embodiments, the NBMP workflow manager 320 can use the NBMP task API to update and destroy tasks 351 and 352. To configure, manage, and monitor the workflow's tasks 351 and 352, the NBMP workflow manager 320 can send messages, such as requests, to the one or more media processing entities 350, where each message can have a descriptor, and each descriptor can include parameters. Tasks 351 and 352 can each include one or more media processing functions 354, and one or more configurations 353 for the one or more media processing functions 354.

[0046] In various embodiments, after receiving a workflow description document from an NBMP source 310 that does not include a task list (e.g., includes a keyword list but not a task list), the NBMP workflow manager 320 may select tasks based on the descriptions of the tasks in the workflow description document, search the function repository 330 via a function discovery API, and thereby locate one or more appropriate functions to run as tasks 351 and 352 of the current workflow. For example, the NBMP workflow manager 320 may select tasks based on keywords provided in the workflow description document. After determining the appropriate one or more functions using the keywords or task description set provided by the NBMP source 310, the NBMP workflow manager 320 may use the NBMP task API to configure the selected tasks in the workflow. For example, the NBMP workflow manager 320 may extract configuration data from the information received from the NBMP source and configure tasks 351 and 352 based on the extracted configuration data.

[0047] One or more media processing entities 350 may be configured to receive media content from a media source 360, process the received media content according to a workflow including tasks 351 and 352 created by the NBMP workflow manager 320, and output the processed media content to a media receiver 370. Each of the one or more media processing entities 350 may include at least one processor and a memory storing code for causing the at least one processor to perform the functions of the one or more media processing entities 350.

[0048] The network controller 340 may include at least one processor and a memory storing codes for causing the at least one processor to execute the functions of the network controller 340 .

[0049] Media source 360 ​​may include a memory for storing media and may be integrated with or independent of NBMP source 310. In various embodiments, when a workflow is ready, NBMP workflow manager 320 notifies NBMP source 310 and / or media source 360, and media source 360 ​​may transmit the media content to one or more media processing entities 350 based on the notification that the workflow is ready.

[0050] The media receiver 370 may include at least one processor and at least one display for displaying media content processed by one or more media processing entities 350 .

[0051] The third-party entity 380 may include at least one processor and a memory storing codes for causing the at least one processor to perform the functions of the third-party entity 380 .

[0052] As discussed above, messages from NBMP source 310 to NBMP workflow manager 320 (e.g., requesting the creation of a workflow description document for a workflow), and messages from NBMP workflow manager 320 to one or more media processing entities 350 (e.g., messages for causing a workflow to be executed) may include descriptors, each of which includes parameters. In various embodiments, communications between any components of NBMP system 300 using an API may include descriptors, each of which includes multiple parameters.

[0053] Common descriptors for functions and function groups

[0054] The NBMP specification of each embodiment may define separate representations for functional groups, which include multiple functions for processing media content. For each functional group, the representation may include, for example, an identification (ID), a name, a connection mapping, and relationship parameters, as described in detail below. Rather than using separate descriptors to describe the representation of a functional group, a functional descriptor is used to describe the functional group. The general descriptor includes a flag to signal that it describes a functional group. Therefore, the general descriptor is expanded to include the following items in Table 1:

[0055] Table 1 - Generic Descriptor Extension: IsFunctionGroup Flag

[0056]

[0057]

[0058] Generic descriptors are designed for workflow, function, and task descriptors.

[0059] Since the same descriptors are used for both functional groups and functions, parsing, validation, and manipulation of NBMP entities is simplified.

[0060] Adding a media source to the workflow DAG

[0061] The NBMP specification of various embodiments may describe media sources 360 and media sinks 370 by adding them to a directed acyclic graph (DAG) within a workflow. Accordingly, the same DAG can be used to describe resource requirements for network connections between media sources 360 and workflows, and between workflows and media sinks 370. This approach simplifies the creation and management of requirements documentation and workflows through the NBMP workflow manager 320.

[0062] To achieve the above purpose, the general descriptor is extended to signal whether the node is a media source or a sink, as shown in Table 2 below:

[0063] Table 2 — Generic Descriptor Extensions: Media Sources and Sinks

[0064]

[0065]

[0066] Additional input and output parameters

[0067] To improve network management of NBMP tasks, the input and output parameters are extended to model the throughput and buffer size of each task. Similarly, the maximum size of metadata parameters and the maximum frequency of metadata instances are added to better model requirements for each task.

[0068] Table 3 indicates the following parameters added to the input descriptor and the output descriptor:

[0069] Table 3 - Input Descriptor Enhancements

[0070]

[0071]

[0072]

[0073] Table 4 - Output Descriptor Enhancements

[0074]

[0075]

[0076]

[0077] Input descriptors and output descriptors are designed for workflow, function and task descriptors.

[0078] Timing parameters added to the connection mapping descriptor

[0079] To define the timing requirements for connections in a given workflow of the NBMP source 310, the connection mapping descriptor is extended to include timing requirement parameters. Using these parameters, the NBMP source 310 can signal the timing requirements for each connection in the task DAG to the NBMP workflow manager 320, as shown in Table 5 below:

[0080] Table 1 - Connection Mapping Descriptor Improvements

[0081]

[0082] The connection map includes a map indicating all connections between functions of the function group.

[0083] A connection mapping descriptor is available for each connection.

[0084] Grouping, Refinement, and Extension of Timing Requirements

[0085] The NBMP specification of various embodiments may include a requirements descriptor, which includes three types of timing information: delay, bit rate, and throughput. This information is grouped with hardware requirements. Because hardware requirements are unknown or unnecessary in many workflow descriptions, while sufficient timing requirements can define high-level system requirements, the NBMP specification separates timing requirements from hardware requirements and extends parameters so that they can describe high-level requirements without specifying exact hardware requirements. This improves the level of abstraction of workflow descriptions by the NBMP source 310.

[0086] Therefore, the NBMP requirement descriptor is divided into two descriptors: timing descriptor and hardware resource descriptor. In addition, the parameters of the timing requirement descriptor are extended as shown in Table 6 below:

[0087] Table 2 - Timing requirement parameters

[0088]

[0089]

[0090] Figure 4 Flowchart of a method for processing media content in MPEG NBMP of various embodiments. In some embodiments, Figure 4 One or more processing blocks of may be performed by platform 120 implementing NBMP system 300. In some embodiments, Figure 4 One or more processing blocks of NBMP system 300 may be performed by another device or group of devices (such as user device 110) other than or including platform 120 that implements NBMP system 300.

[0091] like Figure 4 As shown, in operation 410, method 400 includes obtaining at least one function among the one or more functions from a function repository storing one or more functions for processing media content, each of the at least one function among the one or more functions including a function descriptor. In some embodiments, the function descriptor indicates a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata of the function among the one or more functions.

[0092] In operation 420, method 400 includes obtaining a task for processing media content based on the at least one function obtained from the one or more functions, the task comprising a task descriptor. In some embodiments, the task descriptor indicates a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata for the task. In various embodiments, each of the function descriptor and the task descriptor includes a flag indicating whether the descriptor describes a function group, the function group comprising multiple functions from the one or more functions.

[0093] In operation 430 , method 400 includes processing media content using the obtained task based on the task descriptor.

[0094] The method may further include obtaining, from an NBMP source, a workflow describing at least one of the one or more functions to be executed, the workflow comprising a workflow descriptor. In some embodiments, the workflow descriptor indicates a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata for the workflow. At least one of the one or more functions is obtained based on the obtained workflow.

[0095] Each of the at least one function of the one or more functions, the tasks, and the workflow may be configured to consume input resources or generate output resources.

[0096] The workflow descriptor includes the flag, which indicates whether the workflow descriptor describes the functional group.

[0097] Based on a flag indicating that one of the workflow descriptor, the function descriptor and the task descriptor describes the function group, the descriptor among the workflow descriptor, the function descriptor and the task descriptor may further include a connection mapping descriptor indicating the connection between the multiple functions and a timing requirement parameter indicating the connection.

[0098] Timing requirement parameters may be independent of hardware requirement parameters.

[0099] Timing requirement parameters may include typical delay, average bit rate, average throughput, minimum delay, maximum delay, minimum throughput, maximum throughput and average window for the connection.

[0100] although Figure 4 An example block diagram of method 400 is shown, but in some embodiments, method 400 may include Figure 4More blocks, fewer blocks, different blocks, or blocks in a different order. Additionally or alternatively, two or more blocks of method 400 may be executed in parallel.

[0101] The apparatus for processing media content in MPEG NBMP in each embodiment may be implemented by a processor executing program code, or may be implemented by a specially designed hardware circuit.

[0102] When the device is implemented by a processor executing program code, Figure 5 FIG. 5 is a block diagram of an apparatus 500 for processing media content in MPEG NBMP according to various embodiments. Figure 5 As shown, the apparatus 500 includes a first acquisition code 510 , a second acquisition code 520 , a processing code 530 , and a third acquisition code 540 .

[0103] The first obtaining code 510 is configured to cause at least one processor to obtain at least one of the one or more functions from a function repository storing one or more functions for processing media content, wherein each of the at least one function includes a function descriptor. For example, the function descriptor may indicate a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata for the one or more functions.

[0104] The second acquisition code 520 is used to enable at least one processor to obtain a task for processing media content based on the at least one function obtained from the one or more functions, wherein the task includes a task descriptor. For example, the task descriptor indicates the maximum throughput, minimum buffer size, maximum size of metadata, and maximum frequency between two instances of metadata of the task. Each descriptor in the function descriptor and the task descriptor includes a flag indicating whether the descriptor describes a function group, wherein the function group includes multiple functions among the one or more functions.

[0105] The processing code 530 is configured to enable at least one processor to process the media content using the obtained task based on the task descriptor.

[0106] The third obtaining code 540 may be configured to cause at least one processor to obtain, from an NBMP source, a workflow describing at least one of the one or more functions to be executed, the workflow including a workflow descriptor. The workflow descriptor indicates a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata for the workflow. At least one of the one or more functions is obtained based on the obtained workflow.

[0107] Each of the at least one function of the one or more functions, the tasks, and the workflow may be configured to consume input resources or generate output resources.

[0108] Each of the workflow descriptor, the function descriptor, and the task descriptor may include a flag indicating whether the descriptor describes a function group including a plurality of the one or more functions.

[0109] Based on a flag indicating that one of the workflow descriptor, the function descriptor and the task descriptor describes the function group, the descriptor among the workflow descriptor, the function descriptor and the task descriptor may further include a connection mapping descriptor indicating the connection between the multiple functions and a timing requirement parameter indicating the connection.

[0110] Timing requirement parameters can be independent of hardware requirement parameters.

[0111] Timing requirement parameters may include typical delay, average bit rate, average throughput, minimum delay, maximum delay, minimum throughput, maximum throughput and average window for the connection.

[0112] When the device is implemented by a hardware circuit, Figure 6 FIG. 6 is a block diagram of an apparatus 600 for processing media content in MPEG NBMP according to various embodiments. Figure 6 As shown, the apparatus 600 includes a first obtaining module 610 , a second obtaining module 620 , a processing module 630 and a third obtaining module 640 .

[0113] The first obtaining module 610 is configured to enable at least one processor to obtain at least one of the one or more functions from a function repository storing one or more functions for processing media content, each of the at least one function including a function descriptor.

[0114] The second obtaining module 620 is configured to enable at least one processor to obtain a task for processing media content based on the at least one function obtained from the one or more functions, where the task includes a task descriptor.

[0115] The processing module 630 is configured to enable at least one processor to process the media content using the obtained task based on the task descriptor.

[0116] The third obtaining module 640 may be configured to enable at least one processor to obtain a workflow describing at least one of the one or more functions to be executed from an NBMP source, the workflow including a workflow descriptor, and obtain at least one of the one or more functions based on the obtained workflow.

[0117] The third obtaining module 640 can obtain a workflow describing at least one of the one or more functions to be executed from an NBMP source, the workflow including a workflow descriptor. The workflow descriptor indicates a maximum throughput, a minimum buffer size, a maximum size of metadata, and a maximum frequency between two instances of metadata for the workflow. At least one of the one or more functions is obtained based on the obtained workflow.

[0118] 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 of the embodiments may be acquired in light of the above disclosure or may be acquired from practice of the embodiments.

[0119] As used herein, the term component is intended to be broadly interpreted as hardware, firmware, or a combination of hardware and software.

[0120] Obviously, the systems and / or methods described herein can be implemented by 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 is not limited to these embodiments. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code - it should be understood that software and hardware can be designed based on the description herein to implement the systems and / or methods.

[0121] Although 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 embodiments. 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 be directly dependent on only one claim, the disclosure of possible embodiments includes the combination of each dependent claim with every other claim in the claim group.

[0122] None of the elements, actions or instructions used herein should be interpreted as critical or necessary unless explicitly described as such. In addition, as used herein, the articles "one" and "an" are intended to include one or more objects and can be used interchangeably with "one or more". In addition, as used herein, the term "set" is intended to include one or more objects (e.g., related objects, unrelated objects, a combination of related and unrelated objects, etc.), and can be used interchangeably with "one or more". When only one object is intended, the term "one" or similar language is used. In addition, as used herein, the terms "having", "having", "containing" etc. are intended to be open terms. Further, the phrase "based on" is intended to mean "based at least in part on", unless the opposite meaning is explicitly stated.

Claims

1. A method for processing media content in network-based media processing (NBMP), characterized in that: include: obtaining at least one function from a function repository storing one or more functions for processing media content, each of the at least one function comprising a function descriptor; Obtaining a task for processing media content based on the obtained at least one function, the task comprising a task descriptor, the function descriptor and each of the task descriptors comprising a flag, the flag indicating whether the descriptor describes a function group or a function, the function group comprising a plurality of the one or more functions; and Based on the task descriptor, the media content is processed using the obtained task.

2. The method according to claim 1, characterized in that Further comprising obtaining, from an NBMP source, a workflow describing the at least one of the one or more functions to be performed, the workflow comprising a workflow descriptor; The at least one function among the one or more functions is obtained based on the obtained workflow.

3. The method according to claim 2, characterized in that Each of the at least one function among the one or more functions, the tasks, and the workflow is configured to consume input resources or generate output resources.

4. The method according to claim 2, characterized in that The workflow descriptor includes the flag, which indicates whether the workflow descriptor describes the functional group.

5. The method according to claim 4, characterized in that describing the functional group based on a flag indicating one of the workflow descriptor, the functional descriptor, and the task descriptor; The descriptors among the workflow descriptor, the function descriptor and the task descriptor further include a connection mapping descriptor, and the connection mapping descriptor indicates the connection between the multiple functions.

6. The method according to claim 2, characterized in that Each of the workflow descriptor, the function descriptor, and the task descriptor includes the same general descriptor, and the general descriptor includes the same plurality of parameters.

7. The method according to claim 2, characterized in that The workflow descriptor comprises a source or sink parameter indicating whether the at least one of the one or more functions is to be performed by a media source or a media sink.

8. An apparatus for processing media content in a network-based media processing (NBMP), characterized in that: include: A first obtaining module, configured to obtain at least one function from a function repository storing one or more functions for processing media content, each of the at least one function comprising a function descriptor; a second obtaining module, configured to obtain a task for processing media content based on the at least one function, the task comprising a task descriptor, the function descriptor and each of the task descriptors comprising a flag, the flag indicating whether the descriptor describes a function group or a function, the function group comprising a plurality of the one or more functions; and A processing module is configured to process media content using the obtained task based on the obtained task descriptor.

9. A non-transitory computer-readable medium storing instructions that, when executed by at least one processor of an apparatus for processing media content in network-based media processing (NBMP), cause the at least one processor to perform the method according to any one of claims 1 to 7.

10. A computer device comprising a memory and a processor, wherein a computer program is stored in the memory, and when the computer program is executed by the processor, the processor executes the method for processing media content in a network-based media processing (NBMP) according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method and system for the orchestration of tasks on consumer electronics

    CN1855036A

  • Developer exchange system

    WO2016178124A1