Media Processing Method, Apparatus, Computer Device, and Computer Readable Medium

By adding envelope descriptors to NBMP tasks, the problem of inefficiency of messaging is solved, the efficiency and cost reduction of media processing is achieved, and large-scale cloud service deployment is supported.

CN116074552BActive Publication Date: 2025-07-18TENCENT AMERICA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310078901.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-03-09
Filing Date
2020-03-12
Publication Date
2025-07-18
Estimated Expiration
2040-03-12

AI Technical Summary

Technical Problem

Current MPEG network-based media processing (NBMP) designs lack application program interface (API) abstraction and cannot effectively encapsulate and manage messaging, resulting in inefficient messaging in large-scale deployments, especially the problem of transmitting the same information multiple times during media sessions.

Method used

By adding an envelope descriptor to each task, the envelope descriptor contains a message identifier (ID), message priority, and sender ID, used to identify and process duplicate tasks when processing media content and sort messages according to priority.

Benefits of technology

Improves media processing efficiency, reduces costs, and supports large-scale media service deployment in public, private, or hybrid cloud services, ensuring efficient and consistent message processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116074552B_ABST
    Figure CN116074552B_ABST
Patent Text Reader

Abstract

A method, apparatus, computer device, and computer-readable medium for processing media content in the Moving Picture Experts Group (MPEG) Network-Based Media Processing (NBMP), including: obtaining a plurality of tasks for processing the media content, each task in the plurality of tasks having an envelope descriptor, the envelope descriptor indicating a message identifier (ID), a message priority, and a sender ID of a sender of a corresponding one of the plurality of tasks; and in response to the existence of duplicate tasks in the plurality of tasks, processing the media content based on the message priority indicated by the envelope descriptor of the duplicate tasks.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of an actively modified version of a patent application with an application date of March 12, 2020, a Chinese patent application number of 202080018741.6, and an invention title of "Method and Apparatus for Envelope Descriptors in Moving Picture Experts Group Network-Based Media Processing". Technical Field

[0002] This application relates to computer technologies, and in particular, to a media processing method, apparatus, computer device, and computer-readable medium. Background Art

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

[0004] In addition, the current NBMP design does not include a common way to encapsulate messages passed through the APIs. Therefore, processing messages may not be effectively carried out through the APIs. For example, in the deployment of a workflow, multiple tasks can be run on multiple media processing entities. The workflow manager and tasks can communicate through a task API by scheduling / querying a set of descriptors. In large deployments, especially in large-scale deployments, the number of dispatches / queries during a media session may be in the thousands or millions. Multiple messages or queries for transmitting the same information may occur. The order of these messages, their sources relative to other messages, and the intended recipients may be important for processing messages efficiently and effectively. Summary of the Invention

[0005] Embodiments of this application provide a media processing method, apparatus, computer device, and computer-readable medium.

[0006] The technical solution of the embodiments of this application is implemented as follows:

[0007] Embodiments of this application provide a method for processing media content in Moving Picture Experts Group (MPEG) Network-Based Media Processing (NBMP), characterized in that the method is executed by at least one processor, and the method includes:

[0008] Obtaining a plurality of tasks for processing the media content, each task in the plurality of tasks having an envelope descriptor, the envelope descriptor indicating a message identifier ID, a message priority, and a sender ID of a sender of the corresponding task in the plurality of tasks;

[0009] In response to the existence of duplicate tasks among the multiple tasks, process the media content based on the message priority indicated by the envelope descriptor of the duplicate task.

[0010] An embodiment of the present application provides an apparatus for processing media content in the Motion Picture Experts Group (MPEG) Network-Based Media Processing (NBMP). The apparatus is characterized in that the apparatus includes:

[0011] At least one memory configured to store program code; and

[0012] At least one processor configured to read the program code and perform the following operations according to the instructions of the program code:

[0013] Obtain multiple tasks for processing the media content, each of the multiple tasks having an envelope descriptor that indicates the message identifier (ID), message priority, and sender ID of the sender of the corresponding task among the multiple tasks;

[0014] In response to the existence of duplicate tasks among the multiple tasks, process the media content based on the message priority indicated by the envelope descriptor of the duplicate task.

[0015] An embodiment of the present application provides an apparatus for processing media content in the Motion Picture Experts Group (MPEG) Network-Based Media Processing (NBMP). The apparatus includes:

[0016] A processing unit configured to:

[0017] Obtain multiple tasks for processing the media content, each of the multiple tasks having an envelope descriptor that indicates the message identifier (ID), message priority, and sender ID of the sender of the corresponding task among the multiple tasks;

[0018] In response to the existence of duplicate tasks among the multiple tasks, process the media content based on the message priority indicated by the envelope descriptor of the duplicate task.

[0019] An embodiment of the present application provides a computer device, the computer device includes:

[0020] A memory configured to store computer program code; and

[0021] At least one processor configured to access the computer program code and perform operations according to the instructions of the computer program code to execute the method described in the embodiments of the present application.

[0022] An embodiment of the present application provides a non-transitory computer-readable medium storing computer-executable instructions that, when executed by at least one processor of a device for processing media content in the Moving Picture Experts Group (MPEG) Network-Based Media Processing (NBMP), cause the at least one processor to execute the method described in the embodiments of the present application. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] Figure 1 is an environmental diagram in which the methods, devices, and systems described herein can be implemented according to an embodiment.

[0024] Figure 2 is Figure 1 a block diagram of exemplary components of one or more devices of.

[0025] Figure 3 is a block diagram of an NBMP system according to an embodiment.

[0026] Figure 4 is a flowchart of a method for processing media content in MPEG NBMP according to an embodiment.

[0027] Figure 5 is a block diagram of a device for processing media content in MPEG NBMP according to an embodiment. DETAILED DESCRIPTION

[0028] The embodiments described herein provide an envelope descriptor in the MPEG NBMP standard. The envelope descriptor is added to all requests communicated through the NBMP task API. This envelope descriptor increases media processing efficiency, improves the speed of media service deployment and reduces costs, and allows for large-scale deployment of media services by leveraging public, private, or hybrid cloud services.

[0029] Figure 1 is a diagram of environment 100 in which the methods, devices, and systems described herein can be implemented according to an embodiment. As Figure 1 shown, environment 100 may include user equipment 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.

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

[0031] Platform 120 includes one or more devices as described elsewhere herein. In an embodiment, platform 120 may include a cloud server or a group of cloud servers. In an embodiment, platform 120 may be designed to be modular such that software components can be swapped in or out according to specific needs. Thus, platform 120 can be easily and / or quickly reconfigured for different uses.

[0032] In an embodiment, as shown, platform 120 may be hosted in a cloud computing environment 122. It is noted that while the implementations described herein describe platform 120 as being hosted in cloud computing environment 122, in an embodiment, platform 120 may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.

[0033] Cloud computing environment 122 includes an environment that hosts platform 120. Cloud computing environment 122 may provide services such as computing, software, data access, storage, etc. without the end user (e.g., user device 110) knowing the physical location and configuration of the systems and / or devices hosting platform 120. As shown, cloud computing environment 122 may include a set of computing resources 124 (collectively referred to as "multiple computing resources 124" and individually referred to as "computing resource 124").

[0034] Computing resources 124 include one or more personal computers, workstation computers, server devices, or other types of computing and / or communication devices. In an embodiment, computing resources 124 may be hosted in platform 120. Cloud resources may include computing instances executed in computing resources 124, storage devices provided in computing resources 124, data transfer devices provided by computing resources 124, etc. In an embodiment, computing resources 124 may communicate with other computing resources 124 via a wired connection, a wireless connection, or a combination of wired and wireless connections.

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

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

[0037] Virtual machine 124-2 includes a software implementation of a machine (e.g., a computer) that executes programs similar to a physical machine. Virtual machine 124-2 can be a system virtual machine or a process virtual machine, depending on the use and correspondence of virtual machine 124-2 to any real machine. A system virtual machine can provide a complete system platform that supports a complete operating system (“OS”). A process virtual machine can execute a single program and can support a single process. In an embodiment, virtual machine 124-2 can execute on behalf of a user (e.g., user device 110) and can manage the infrastructure of cloud computing environment 122, such as data management, synchronization, or long-duration data transfer.

[0038] Virtualized storage 124-3 includes one or more storage systems and / or one or more devices that use virtualization technologies within a storage system or device using computing resources 124. In an embodiment, in the context of a storage system, the types of virtualization can include block virtualization and file virtualization. Block virtualization can refer to abstracting (or separating) logical storage from physical storage so that the storage system can be accessed regardless of the physical storage or heterogeneous structure. The separation can allow the administrator of the storage system to have flexibility in how the administrator manages storage for end users. File virtualization can eliminate the correlation between the data accessed at the file level and the location where the file is physically stored. This can optimize the performance of storage usage, server consolidation, and / or non-destructive file migration.

[0039] The 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 (e.g., computing resource 124). The hypervisor 124-4 can present 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 the virtualized hardware resources.

[0040] The network 130 includes one or more wired and / or wireless networks. For example, the network 130 can include cellular networks (e.g., fifth generation (5G) network, long term evolution (LTE) network, third generation (3G) network, code division multiple access (CDMA) network, etc.), public land mobile network (PLMN), local area network (LAN), wide area network (WAN), metropolitan area network (MAN), telephone network (e.g., public switched telephone network (PSTN)), private network, ad hoc network, intranet, Internet, fiber-based network, etc., and / or combinations of these or other types of networks.

[0041] Figure 1 The number and arrangement of the devices and networks shown are provided as examples. In practice, there may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or devices and / or networks arranged differently from Figure 1 the devices and / or networks shown. Additionally, Figure 1 two or more of the devices shown can be implemented within a single device, or Figure 1 a single device shown can be implemented as multiple distributed devices. Additionally or alternatively, a set of devices (e.g., one or more devices) of the environment 100 can perform one or more functions described as being performed by another set of devices of the environment 100.

[0042] Figure 2 is Figure 1 a block diagram of exemplary components of one or more of the devices. The device 200 can correspond to the user device 110 and / or the platform 120. As Figure 2 shown, the device 200 can 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.

[0043] The bus 210 includes components that allow communication among the 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 other types of processing components. In an embodiment, the processor 220 includes one or more processors that can be programmed to perform functions. The memory 230 includes random access memory (RAM), 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.

[0044] The storage component 240 stores information and / or software related to the operation and use of the device 200. For example, the 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 tape, a magnetic tape, and / or other types of non-transitory computer-readable media, as well as corresponding drives.

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

[0046] The communication interface 270 includes transceiver-like components (e.g., a transceiver and / or separate receiver and transmitter) that enable 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 may allow the device 200 to receive information from another device and / or provide information to another device. For example, the communication interface 270 may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, etc.

[0047] The apparatus 200 can perform one or more of the processes described herein. The apparatus 200 can perform these processes in response to the processor 220 executing software instructions stored by a non-transitory computer-readable medium such as the memory 230 and / or the storage component 240. The computer-readable medium is defined herein as a non-transitory memory device. The memory device includes a memory space within a single physical storage device or a memory space spread across multiple physical storage devices.

[0048] The software instructions can be read into the memory 230 and / or the 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 the storage component 240 can cause the processor 220 to perform one or more of the processes described herein. Additionally or alternatively, hardwired circuitry can be used to perform one or more of the processes described herein in place of or in combination with the software instructions. Accordingly, the implementations described herein are not limited to any particular combination of hardware circuitry and software.

[0049] Figure 2 The number and arrangement of components shown are provided as an example. In practice, the apparatus 200 can include more components, fewer components, different components, or components arranged differently than Figure 2 shown. Additionally or alternatively, a set of components (e.g., one or more components) of the apparatus 200 can perform one or more functions described as being performed by another set of components of the apparatus 200.

[0050] Figure 3 is a block diagram of an NBMP system 300 according to an embodiment.

[0051] Referring to Figure 3 , the NBMP system 300 includes an NBMP source 310, an 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.

[0052] The NBMP source 310 can receive instructions from a third-party entity 380, communicate with the NBMP workflow manager 320 via the NBMP workflow API, and communicate with the function repository 330 via the function discovery API. For example, the NBMP source 310 can send a workflow description document to the NBMP workflow manager 320 and can read the function descriptions stored in the memory of the 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, mixing, post-processing, and encoding functions. The NBMP source 310 can include at least one processor and a memory that stores code configured to cause the at least one processor to perform the functions of the NBMP source 310.

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

[0054] For example, the NBMP source 310 can select one or more functions stored in the function repository 330 and send a workflow description document to the NBMP workflow manager 320, the workflow description document including descriptors for describing details such as input and output data, the one or more selected functions, and requirements of the workflow. The workflow description document can further include a set of task descriptions and a connection map of the inputs and outputs of tasks 351 and 352 to be performed by one or more media processing entities 350. When the NBMP workflow manager 320 receives such information from the NBMP source 310, the NBMP workflow manager 320 can create a workflow by instantiating tasks 351 and 352 based on the function names and connecting tasks 351 and 352 according to the connection map.

[0055] Alternatively or additionally, the NBMP source 310 may request the NBMP workflow manager 320 to create a workflow by using a set of keywords. For example, the NBMP source 310 may send a workflow description document including a set of keywords to the NBMP workflow manager 320, and the NBMP workflow manager 320 may use the set of keywords to find the appropriate one or more functions stored in the function repository 330. When the NBMP workflow manager 320 receives such information from the NBMP source 310, the NBMP workflow manager 320 may create a workflow by searching for the appropriate one or more functions using the keywords that may be specified in the processing descriptor of the workflow description document, and using other descriptors in the workflow description document to provide and connect tasks 351 and 352.

[0056] The NBMP workflow manager 320 may communicate with the function repository 330 via a function discovery API, and may communicate with one or more media processing entities 350 via the NBMP task API, the NBMP link API, and the function discovery API through the network controller 340. The NBMP workflow manager 320 may include at least one processor and a memory that stores code configured to cause the at least one processor to perform the functions of the NBMP workflow manager 320.

[0057] The NBMP workflow manager 320 may use the NBMP task API to establish, configure, manage, and real-time detect one or more of the tasks 351 and 352 of a workflow that can be executed by one or more media processing entities 350. In an embodiment, the NBMP workflow manager 320 may use the NBMP task API to update and destroy tasks 351 and 352. To configure, manage, and real-time detect the tasks 351 and 352 of a workflow, the NBMP workflow manager 320 may send messages, such as requests, to one or more media processing entities 350, where each message may have a descriptor, and each descriptor may include parameters. Each of tasks 351 and 352 may include one or more media processing functions 354 and one or more configurations 353 for the one or more media processing functions 354.

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

[0059] One or more media processing entities 350 can be configured to receive media content from the media source 360, process the received media content according to a workflow that includes tasks 351 and 352 and is created by the NBMP workflow manager 320, and output the processed media content to the media sink 370. Each of the one or more media processing entities 350 can include at least one processor and a memory that stores code configured to cause the at least one processor to execute the functions of the one or more media processing entities 350.

[0060] The network controller 340 can include at least one processor and a memory that stores code configured to cause the at least one processor to execute the functions of the network controller 340.

[0061] The media source 360 can include a memory that stores media and can be integrated with or separated from the NBMP source 310. In an embodiment, the NBMP workflow manager 320 can notify the NBMP source 310 and / or the media source 360 when the workflow is ready, and the media source 360 can send media content to one or more of the media processing entities 350 based on the notification that the workflow is ready.

[0062] The media sink 370 can include at least one processor and at least one display configured to display the media content processed by one or more media processing entities 350.

[0063] The third-party entity 380 can include at least one processor and a memory that stores code configured to cause the at least one processor to execute the functions of the third-party entity 380.

[0064] As described above, messages from the NBMP source 310 to the NBMP workflow manager 320 (e.g., a workflow description document for requesting creation of a workflow), and messages from the NBMP workflow manager 320 to one or more media processing entities 350 (e.g., for causing a workflow to be executed) may include descriptors, each descriptor including parameters. In an embodiment, communication between any components in the NBMP system 300 that uses the API may include descriptors, each descriptor including parameters.

[0065] The embodiments described herein provide envelope descriptors that are added to Figure 3 the NBMP task API shown. Any communication through the NBMP task API carries an envelope descriptor that includes the information described in Table 1:

[0066] Table 1 - Envelope Descriptor

[0067]

[0068]

[0069] In Table 1, the message version indicates the version of the message and can be used for future extensions.

[0070] The message ID is used to identify an instance of the message. This is useful if the same message is sent multiple times. The recipient can process only one message and ignore the others.

[0071] The session ID is used to identify a session. The session is defined by the workflow description document, which depends on the lifetime and scope of the application. The session ID, together with the message ID, defines the unique ID of the message across all sessions established by the user.

[0072] The message priority indicates the priority of the message of the sender. This is a number, and a smaller number means a higher priority.

[0073] The publish time indicates the wall clock time when the message was composed. This can be used to sort messages from the same sender or multiple senders in terms of message processing.

[0074] The expiration time indicates the wall clock time when the message will expire, and the message does not need to be processed after the expiration time.

[0075] The sender ID is the unique ID of the sender of the message, as each workflow has a sender.

[0076] The recipient ID is a list of the unique IDs of the recipients of the message.

[0077] In an embodiment, the envelope descriptor can be used for Figure 3Any API and / or any descriptor of the NBMP system 300 shown.

[0078] If there are additional messages in a task, only the additional message IDs, message priorities, and sender IDs can be retained for the corresponding envelope descriptors and used by the NBMP workflow manager 320 to reduce the redundancy and size of the envelope descriptors.

[0079] For each session, the user initially sets the parameters of the envelope descriptor. For example, the user can assign a session ID for each task, set the sender / receiver IDs for each task, and define a priority range for each task.

[0080] The workflow description document includes the information described in Table 2:

[0081] Table 2 - Envelope descriptor parameters included in the workflow description document

[0082] Parameter Name Mandatory or Optional Description Data Type Session ID Mandatory The session ID that should be used. String

[0083] The NBMP workflow manager 320 can use the following parameters of the envelope descriptor during each task configuration, as shown in Table 3:

[0084] Table 3 - Envelope descriptor parameters used in task configuration

[0085]

[0086]

[0087] The NBMP workflow manager 320 can use the session ID defined in the envelope descriptor and in the workflow description document.

[0088] The NBMP workflow manager 320 can use the same value of the sender ID for all tasks being created.

[0089] The above value cannot be changed during task updates.

[0090] In the use case of the envelope descriptor during a session, each API request includes and only includes one envelope descriptor. The NBMP workflow manager 320 can use the sender ID and task ID in these requests established during the initial setup.

[0091] Each task will use the set of mandatory parameters and values received during the initial setup via the API request.

[0092] By using an envelope descriptor according to an embodiment, the NBMP workflow manager 320 can more easily find duplicate messages in the workflow and purge them, except for one message that is retained for processing. Additionally, the NBMP workflow manager 320 can more easily prioritize messages by using the message priority parameter of the envelope descriptor. Finally, the components of the NBMP system 300 can more easily record messages, workflows, tasks, and functions by using the envelope descriptor.

[0093] Figure 4 is a flowchart of a method 400 for processing media content in MPEG NBMP according to an embodiment. In an implementation, Figure 4 one or more processing blocks of can be executed by the platform 120 implementing the NBMP system 300. In an implementation, Figure 4 one or more processing blocks of can be executed by another device or a group of devices (such as the user device 110), which is separate from or includes the platform 120 implementing the NBMP system 300.

[0094] As Figure 4 shown, in operation 410, the method 400 includes obtaining a plurality of tasks for processing media content, each task of the plurality of tasks having an envelope descriptor that indicates a message identifier (ID), a message priority, and a sender ID of a sender of the corresponding task of the plurality of tasks.

[0095] In operation 420, the method 400 includes determining whether there are duplicate tasks among the plurality of obtained tasks based on the message ID and the sender ID of each task in the plurality of obtained tasks.

[0096] In operation 430, the method 400 includes processing the media content by using, based on determining the existence of the duplicate tasks, the duplicate task having the highest message priority among the duplicate tasks.

[0097] In operation 440, the method 400 includes processing the media content by using the plurality of tasks based on determining the non - existence of duplicate tasks.

[0098] Determining whether there are duplicate tasks among the plurality of tasks may include: determining whether the message ID of a first task among the duplicate tasks is the same as the message ID of a second task among the duplicate tasks; and, based on determining that the message ID of the first task among the duplicate tasks is the same as the message ID of the second task among the duplicate tasks, determining that there are duplicate tasks among the plurality of tasks.

[0099] Determining whether there is a duplicate task among the multiple tasks may include: determining whether the sender ID of the first task in the duplicate tasks is the same as the sender ID of the second task in the duplicate tasks; and, based on determining that the sender ID of the first task in the duplicate tasks is the same as the sender ID of the second task in the duplicate tasks, determining that there is a duplicate task among the multiple tasks.

[0100] The method may further include: based on determining that there is a duplicate task, clearing the remaining tasks in the obtained duplicate tasks from the multiple tasks, so that the remaining tasks cleared in the duplicate tasks are not used to process the media content.

[0101] Using the multiple tasks to process the media content may include: based on determining that there is no duplicate task, using the multiple tasks to process the media content in order based on the message priority of each task in the multiple tasks.

[0102] The method may further include: using the envelope descriptor of each task in the multiple tasks to record the multiple tasks.

[0103] The method may be executed by a media processing entity 350, and the multiple tasks may be obtained from an NBMP workflow manager 320.

[0104] Although Figure 4 illustrates example blocks of method 400, in an embodiment, method 400 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those shown in Figure 4 . Additionally or alternatively, two or more blocks of method 400 may be executed in parallel.

[0105] Figure 5 is a schematic diagram of an apparatus 500 for processing media content in MPEG NBMP according to an embodiment. As Figure 5 shown, apparatus 500 includes acquisition code 510, determination code 520, processing code 530, clearing code 540, and recording code 550.

[0106] The acquisition code 510 is configured to cause at least one processor to acquire multiple tasks for processing media content, each task in the multiple tasks having an envelope descriptor that indicates a message identifier (ID), a message priority, and a sender ID of the sender of the corresponding task in the multiple tasks.

[0107] The determination code 520 is configured to cause at least one processor to determine whether there is a duplicate task among the multiple tasks based on the message ID and the sender ID of each task in the acquired multiple tasks.

[0108] The processing code 530 is configured to cause at least one processor to process the media content by using, based on determining the existence of the duplicate tasks, a duplicate task having the highest message priority among the duplicate tasks, among the duplicate tasks; and to process the media content by using the multiple tasks based on determining the non-existence of the duplicate tasks.

[0109] The determining code 520 can also be configured to cause at least one processor to: determine whether a message ID of a first task in the duplicate tasks is the same as a message ID of a second task in the duplicate tasks; and based on determining that the message ID of the first task in the duplicate tasks is the same as the message ID of the second task in the duplicate tasks, determine the existence of the duplicate tasks among the multiple tasks.

[0110] The determining code 520 can also be configured to cause the at least one processor to: determine whether a sender ID of a first task in the duplicate tasks is the same as a sender ID of a second task in the duplicate tasks; and based on determining that the sender ID of the first task in the duplicate tasks is the same as the sender ID of the second task in the duplicate tasks, determine the existence of the duplicate tasks among the multiple tasks.

[0111] The clearing code 540 can be configured to cause at least one processor to, based on determining the existence of duplicate tasks, clear the remaining tasks in the duplicate tasks from the multiple tasks so that the cleared remaining tasks in the duplicate tasks are not used to process the media content.

[0112] The processing code 530 can also be configured to cause at least one processor to, based on determining the non-existence of the duplicate tasks, process the media content by using the multiple tasks in order based on the message priority of each task in the multiple tasks.

[0113] The recording code 550 can be configured to cause at least one processor to record the multiple tasks by using an envelope descriptor of each task in the multiple tasks.

[0114] The device can be a media processing entity 350, and the multiple tasks are obtained from an NBMP workflow manager 320.

[0115] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the embodiments to the precise forms disclosed. Modifications and variations can be made in light of the above disclosure, or can be obtained from the practice of the implementation.

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

[0117] Obviously, the systems and / or methods described herein can be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual special control hardware or software code used to implement these systems and / or methods is not a limitation on the implementation. Thus, the operations and behaviors of the systems and / or methods are described herein without reference to specific software code, and it should be understood that software and hardware can be designed based on the description herein to implement the systems and / or methods.

[0118] Even if combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure that may be implemented. 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 directly depends on only one claim, the disclosure that may be implemented includes each dependent claim in combination with every other claim in the claim set.

[0119] Unless explicitly described as such, elements, acts, or instructions used herein should not be construed as critical or essential. Additionally, 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." Further, as used herein, the term "group" is intended to include one or more items (e.g., related items, unrelated items, combinations of related and unrelated items, etc.) and can be used interchangeably with "one or more." If there is only one item, the term "one" or similar language is used. Additionally, as used herein, terms such as "having" are open-ended terms. Further, the term "based on" is intended to mean "at least partially based on" unless otherwise explicitly stated.

Claims

1. A method for processing media content in the Moving Picture Experts Group (MPEG) Network Based Media Processing (NBMP), characterized in that, The method is executed by at least one processor, and the method includes: Obtaining a plurality of tasks for processing the media content, each task in the plurality of tasks having an envelope descriptor that indicates a message identifier ID, a message priority, and a sender ID of the sender for the corresponding task in the plurality of tasks; In response to the existence of duplicate tasks among the plurality of tasks, processing the media content based on the message priority indicated by the envelope descriptor of the duplicate tasks.

2. The method according to claim 1, characterized in that, The processing the media content based on the message priority indicated by the envelope descriptor of the duplicate tasks includes: Obtaining the duplicate task with the highest message priority in each of the duplicate tasks; Using the duplicate task with the highest message priority to process the media content.

3. The method according to claim 1, characterized in that, The method further includes: In response to the non-existence of duplicate tasks among the plurality of tasks, using the plurality of tasks to process the media content.

4. The method according to claim 1, wherein The method further includes: In response to the message identifier ID of a first task in the duplicate tasks being the same as the message identifier ID of a second task in the duplicate tasks, determining that there are duplicate tasks among the plurality of tasks.

5. The method according to claim 1, characterized in that, The method further includes: In response to the sender ID of a first task in the duplicate tasks being the same as the sender ID of a second task in the duplicate tasks, determining that there are duplicate tasks among the plurality of tasks.

6. The method according to claim 1, wherein The method further includes: In response to the existence of duplicate tasks among the plurality of tasks, clearing the remaining tasks in the duplicate tasks from the plurality of tasks so that the cleared remaining tasks in the duplicate tasks are not used to process the media content.

7. The method according to claim 3, wherein The using the plurality of tasks to process the media content includes: In response to the non-existence of duplicate tasks among the plurality of tasks, using the plurality of tasks to process the media content in order based on the message priority of each task in the plurality of tasks.

8. The method according to claim 1, wherein The method further includes: Using the envelope descriptor of each task in the plurality of tasks to record the plurality of tasks.

9. The method according to any one of claims 1 to 8, characterized in that The method is executed by a media processing entity, and The plurality of tasks are obtained from an NBMP workflow manager.

10. An apparatus for processing media content in a Moving Picture Experts Group (MPEG) Network Based Media Processing (NBMP), characterized in that, The apparatus includes: At least one memory configured to store program code; and At least one processor configured to read the program code and perform the following operations according to the instructions of the program code: Obtaining a plurality of tasks for processing the media content, each task in the plurality of tasks having an envelope descriptor that indicates a message identifier ID, a message priority, and a sender ID of the sender for the corresponding task in the plurality of tasks; In response to the existence of duplicate tasks among the plurality of tasks, processing the media content based on the message priority indicated by the envelope descriptor of the duplicate tasks.

11. The device according to claim 10, characterized in that, The at least one processor is further configured to read the program code and perform the following operations according to the instructions of the program code: Obtaining the duplicate task with the highest message priority in each of the duplicate tasks; Using the duplicate task with the highest message priority to process the media content.

12. The device according to claim 10, characterized in that, The at least one processor is further configured to read the program code and, in accordance with the instructions of the program code, perform the following operations: In response to the absence of duplicate tasks among the plurality of tasks, process the media content using the plurality of tasks.

13. The device according to claim 10, wherein, The at least one processor is further configured to read the program code and, in accordance with the instructions of the program code, perform the following operations: In response to the message identifier ID of the first task in the duplicate tasks being the same as the message identifier ID of the second task in the duplicate tasks, determine that there are duplicate tasks among the plurality of tasks.

14. The device according to claim 10, wherein The at least one processor is further configured to read the program code and, in accordance with the instructions of the program code, perform the following operations: In response to the sender ID of the first task in the duplicate tasks being the same as the sender ID of the second task in the duplicate tasks, determine that there are duplicate tasks among the plurality of tasks.

15. The device according to claim 10, characterized in that The at least one processor is further configured to read the program code and, in accordance with the instructions of the program code, perform the following operations: In response to the presence of duplicate tasks among the plurality of tasks, clear the remaining tasks in the duplicate tasks from the plurality of tasks so that the cleared remaining tasks in the duplicate tasks are not used to process the media content.

16. The apparatus according to claim 10, wherein The at least one processor is further configured to read the program code and, in accordance with the instructions of the program code, perform the following operations: In response to the absence of duplicate tasks among the plurality of tasks, process the media content using the plurality of tasks in order based on the message priority of each task in the plurality of tasks.

17. The device according to claim 10, characterized in that, The at least one processor is further configured to read the program code and, in accordance with the instructions of the program code, perform the following operations: Record the plurality of tasks using the envelope descriptor of each task in the plurality of tasks.

18. An apparatus for processing media content in a Moving Picture Experts Group (MPEG) Network-Based Media Processing (NBMP), characterized in that, The apparatus includes: A processing unit configured to: Obtain a plurality of tasks for processing the media content, each task in the plurality of tasks having an envelope descriptor that indicates the message identifier ID, the message priority, and the sender ID of the sender of the corresponding task in the plurality of tasks; In response to the presence of duplicate tasks among the plurality of tasks, process the media content based on the message priority indicated by the envelope descriptor of the duplicate tasks.

19. A computer device, characterized in that, The computer device includes: A memory configured to store computer program code; and At least one processor configured to access the computer program code and operate in accordance with the instructions of the computer program code to perform the method according to any one of claims 1 to 9.

20. A non-transitory computer-readable medium, characterized in that, Computer-executable instructions are stored which, when executed by at least one processor of a device for processing media content in a Moving Picture Experts Group MPEG network-based media processing NBMP, cause the at least one processor to perform the method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Method, apparatus and system for controlling a scene structure of multiple channels to be displayed on a mobile terminal in a mobile broadcast system

    CN101331772A

  • Implement system and method for customizing content of TV program

    CN1798328A