Method and apparatus for signaling net-zero workflow modifications on a cloud platform - Patents.com

JP2024535162A5Active Publication Date: 2025-04-21TENCENT AMERICA LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023560901
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-22
Filing Date
2022-04-12
Publication Date
2025-04-21
Estimated Expiration
2042-04-12

AI Technical Summary

Technical Problem

The Network-Based Media Processing (NBMP) standard lacks the necessary tasks to efficiently partition workflows into sub-workflows, leading to inefficient workflow division on cloud platforms.

Method used

Introduce net-zero tasks that are added to the workflow description without altering its output, using task group objects with a net-zero flag to manage these tasks, allowing efficient workflow splitting.

Benefits of technology

Enables efficient partitioning of workflows into sub-workflows on cloud platforms without affecting the overall functionality, optimizing resource utilization and bandwidth management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method and apparatus for signaling a workflow modification in a network-based media processing (NBMP) workflow. The method includes the steps of obtaining an NBMP workflow, generating a modified NBMP workflow by adding a task configured to perform a predetermined function to a work description of the NBMP workflow, where the task does not change an output of the NBMP workflow, and signaling the task of the modified NBMP workflow based on a task group object. The task is included in a task group and is determined based on a group identification information, a task identification information, a group mode, and a net-zero flag of the task group object. Based on the state of the net-zero flag, one or more tasks in the task group may be removed from the modified NBMP workflow without affecting the output of the NBMP workflow. Multiple task groups may be included in the modified NBMP workflow and removed separately.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is based on and claims priority to U.S. Provisional Patent Application No. 63 / 252,422, filed October 5, 2021, the disclosure of which is incorporated by reference in its entirety herein.

[0002] An embodiment of the present disclosure relates to a signaling task that is added to a workflow to make it more suitable for splitting the workflow into two or more sub-workflows. Such a task makes the split feasible, but does not have any functional significance in the net process performed by the workflow, and therefore has a net-zero impact on the processing of data. [Background technology]

[0003] Networks and cloud platforms may be used to run a variety of applications. The Network-Based Media Processing (NBMP) standard provides specifications for defining, instantiating, and executing workflows on cloud platforms. The NBMP standard also includes a split rendering function. However, the split rendering function of the NBMP standard does not identify additional tasks to a workflow that are required to split the workflow. As a result, the workflow may not be split efficiently. This disclosure describes additional tasks that solve this problem and help to efficiently split a workflow into sub-workflows. Summary of the Invention [Means for solving the problem]

[0004] One or more example embodiments of the present disclosure provide a method and apparatus for signaling net-zero workflow modifications on a cloud platform.

[0005] According to an embodiment, a method is provided for signaling an NBMP workflow modification when a workflow split is required. The method may include obtaining an NBMP workflow, generating a modified NBMP workflow by adding one or more tasks to a work description of the NBMP workflow, and signaling the one or more tasks of the modified NBMP workflow based on a task group object. The one or more tasks of the method may be configured to perform a predetermined function, and the one or more tasks do not change an output of the NBMP workflow.

[0006] According to an embodiment, an apparatus is provided for signaling an NBMP workflow modification when a workflow split is required. The apparatus may comprise at least one memory storing instructions and at least one processor configured to read program code and operate as instructed by the program code. The program code may include an acquisition code configured to cause the at least one processor to acquire an NBMP workflow, a generation code configured to cause the at least one processor to generate a modified NBMP workflow by adding one or more tasks to a work description of the NBMP workflow, and a signaling code configured to cause the at least one processor to signal one or more tasks of the modified NBMP workflow based on a task group object, where the one or more tasks are configured to perform a predetermined function, and the one or more tasks do not change an output of the NBMP workflow.

[0007] According to one or more embodiments, a non-transitory computer-readable medium having computer code stored thereon may be provided. The program code, when executed by at least one processor, may be configured to cause the at least one processor to obtain an NBMP workflow, generate a modified NBMP workflow by adding one or more tasks to a work description of the NBMP workflow, and signal one or more tasks of the modified NBMP workflow based on a task group object, where the one or more tasks are configured to perform a predetermined function, and where the one or more tasks do not modify an output of the NBMP workflow.

[0008] Additional aspects will be set forth in part in the description that follows, and in part will be apparent from the description, or may be realized by practice of the illustrated embodiments of the disclosure.

[0009] The above and other aspects, features, and aspects of the embodiments of the present disclosure will become more apparent from the following description taken in conjunction with the accompanying drawings, in which: [Brief description of the drawings]

[0010] [Figure 1] 1 is a schematic diagram of a communication system according to one or more embodiments. [Diagram 2] FIG. 1 is a simplified illustrative diagram of a streaming environment, according to one or more embodiments. [Diagram 3] FIG. 1 is a block diagram of an NBMP system in accordance with one or more embodiments. [Figure 4] FIG. 1 is an exemplary diagram of a task added to a workflow, according to one or more embodiments. [Diagram 5] FIG. 1 is a block diagram of an example process for signaling net-zero tasks in a modified workflow, according to one or more embodiments. [Figure 6]FIG. 1 is a block diagram of an example of computer code for signaling net-zero tasks in a modified workflow, according to one or more embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] The present disclosure relates to methods and apparatus for signaling modifications in a network-based media processing (NBMP) workflow without affecting the output of the workflow.

[0012] The embodiments of the present disclosure will be comprehensively described with reference to the accompanying drawings. However, the implementation examples may be implemented in various forms, and the present disclosure should not be construed as being limited to the examples described herein. On the contrary, the implementation examples are provided to make the technical solutions of the present disclosure more comprehensive and complete, and to comprehensively convey the concept of the implementation examples to those skilled in the art. The accompanying drawings are merely illustrative of the present disclosure, and are not necessarily drawn to scale. The same reference numbers in the accompanying drawings represent the same or similar components, and therefore repeated descriptions of the components will be omitted.

[0013] The proposed functions described below may be used separately or combined in any order. Some block diagrams shown in the accompanying drawings are functional entities that do not necessarily correspond to physically or logically separate entities. Furthermore, the embodiments may be implemented by processing circuits (e.g., one or more processors or one or more integrated circuits) or in the form of software, or in different networks and / or processor devices and / or microcontroller devices. In one example, one or more processors execute computer programs stored on one or more non-transitory computer-readable media.

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

[0015] User device 110 may include 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, 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., a pair of smart glasses or a smart watch, etc.), or a similar device. In some implementations, user device 110 can receive information from and / or transmit information to platform 120.

[0016] Platform 120 may include one or more devices described elsewhere herein. In some implementations, platform 120 may include a cloud server or a group of cloud servers. In some implementations, platform 120 may be designed to be modular such that software components may be swapped in or out depending on particular needs. As such, platform 120 may be easily and / or quickly reconfigured for different uses.

[0017] In some implementations, as shown, platform 120 may be hosted within a cloud computing environment 122. In particular, although the implementations described herein describe platform 120 as being hosted within cloud computing environment 122, in some implementations platform 120 may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.

[0018] Cloud computing environment 122 may include an environment that hosts platform 120. Cloud computing environment 122 may provide services such as computation, software, data access, storage, etc. that do not require end-user (e.g., user device 110) knowledge of the physical location and configuration of the systems and / or devices that host platform 120. As illustrated, cloud computing environment 122 may include a group of computing resources 124 (collectively referred to as “computing resources 124” and individually referred to as “computing resource 124”).

[0019] The computing resources 124 may include one or more personal computers, workstation computers, server devices, or other types of computing and / or communication devices. In some implementations, the computing resources 124 may host the platform 120. Cloud resources may include computational instances running within the computing resources 124, storage devices provided within the computing resources 124, data transfer devices provided by the computing resources 124, etc. In some implementations, the computing resources 124 may communicate with other computing resources 124 via wired connections, wireless connections, or a combination of wired and wireless connections.

[0020] As further shown in FIG. 1, the computing resources 124 may include a group 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, and one or more hypervisors (“HYP”) 124-4.

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

[0022] The virtual machine 124-2 may include a software implementation of a machine (e.g., a computer) that executes programs like a physical machine. The virtual machine 124-2 may be either a system virtual machine or a process virtual machine, depending on the use by the virtual machine 124-2 and the degree of correspondence with 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 support a single process. In some implementations, the virtual machine 124-2 can run on behalf of a user (e.g., the user device 110) and manage the infrastructure of the cloud computing environment 122, such as data management, synchronization, or long-term data transfer.

[0023] Virtualized storage 124-3 may include one or more storage systems and / or one or more devices that use virtualization techniques within the storage systems or devices of computing resources 124. In some implementations, within the context of storage systems, types of virtualization may include block virtualization and file virtualization. Block virtualization may refer to the abstraction (or separation) of logical storage from physical storage so that it may be accessed regardless of whether the storage system is physical storage or a heterogeneous structure. The separation may allow flexibility in how storage system administrators manage storage for end users. File virtualization may remove dependencies between data accessed at the file level and where the file is physically stored. This may enable optimization of storage usage, server consolidation, and / or performing non-disruptive file migration.

[0024] The hypervisor 124-4 may provide hardware virtualization techniques that allow multiple operating systems (e.g., "guest operating systems") to run simultaneously on a host computer, such as the computing resource 124. The hypervisor 124-4 may present a virtual operating platform to the guest operating systems and may manage the execution of the guest operating systems. Multiple instances of different operating systems may share virtualized hardware resources.

[0025] Network 130 may include one or more wired and / or wireless networks. For example, 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 local 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, an optical fiber-based network, etc., and / or a combination of these and other types of networks.

[0026] The number and arrangement of devices and networks shown in Figure 1 are provided as an example. In practice, there may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or different arrangements of devices and / or networks than those shown in Figure 1. Furthermore, two or more devices shown in Figure 1 may be implemented within a single device, or a single device shown in Figure 1 may be implemented as multiple distributed devices. Additionally or alternatively, a set of devices (e.g., 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.

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

[0028] The bus 210 includes components that enable communication between the components of the device 200. The processor 220 may be implemented in hardware, firmware, or a combination of hardware and software. The processor 220 may be a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or another type of processing component. In some implementations, the processor 220 may include one or more processors that can be programmed to perform functions. The memory 230 may include 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.

[0029] 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, optical disk, magneto-optical disk, and / or solid-state disk), a compact disk (CD), a digital versatile disk (DVD), a floppy disk, cartridges, magnetic tape, and / or another type of non-transitory computer-readable medium along with a corresponding drive.

[0030] Input components 250 may include components that enable device 200 to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, buttons, switches, and / or a microphone). Additionally or alternatively, input components 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 (e.g., a display, a speaker, and / or one or more light emitting diodes (LEDs)).

[0031] Communications interface 270 may include transceiver-like components (e.g., a transceiver and / or a separate receiver and transmitter) that enable device 200 to communicate with other devices via a wired connection, a wireless connection, or a combination of wired and wireless connections, etc. Communications interface 270 can enable device 200 to receive information from another device and / or provide information to another device. For example, communications 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.

[0032] The device 200 can perform one or more processes described herein. The device 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. A computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.

[0033] Software instructions may be read into memory 230 and / or storage component 240 from another computer-readable medium or from another device via communication interface 270. When executed, the software instructions stored in memory 230 and / or storage component 240 may cause processor 220 to perform one or more processes described herein. Additionally or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

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

[0035] In an embodiment of the present disclosure, a network-based media processing (NBMP) system is provided. FIG. 3 illustrates an NBMP architecture 300 according to an embodiment of the present disclosure, which may be implemented for cloud processing. The NBMP system 300 comprises an NBMP source 310, an NBMP workflow manager 320, a function repository 330, one or more media processing entities (MPEs) 340, a media source 350, and a media sink 360. The NBMP source 310, the NBMP workflow manager 320, the function repository 330, the MPE 340, the media source 350, and the media sink 360 may include or be implemented by at least one or more processors and a memory storing code configured to cause at least one or more processors to perform functions of the NBMP source 310, the NBMP workflow manager 320, the function repository 330, the MPE 340, the media source 360, and the media sink 360, respectively.

[0036] The NBMP source 310 can communicate the workflow description with the NBMP workflow manager 320 via the NBMP workflow API 311. The NBMP source 310 can also communicate the feature description with the feature repository 330 via the feature discovery API 313. For example, the NBMP source 310 can send a workflow description document (WDD) to the NBMP workflow manager 320, which can read feature descriptions of features stored in the feature repository 330, where the features are media processing functions stored in the memory of the feature repository 330, such as, for example, media decoding, feature point extraction, camera parameter extraction, projection method, seam information extraction, blending, post-processing, and encoding functions. The NBMP workflow manager 320 can communicate with the feature repository 330 via a feature discovery API 312, which can be the same or a different API as the feature discovery API 313, and can communicate with one or more of the MPEs 340 via an API 314 (e.g., an MPE API).

[0037] The media processing entity 340 may include one or more tasks 341. The NBMP workflow manager 320 may also communicate with the tasks 341 via an API 315 (e.g., an NBMP task API). The NBMP workflow manager 320 may use the API 315 to set up, configure, manage, and monitor one or more tasks 341 of a workflow that may be executed by one or more MPEs 340. To configure, manage, and monitor the tasks 341 of a workflow, the NBMP workflow manager 320 may send messages, such as requests, to the MPEs 340 and / or one or more of the tasks 341, each message may have several descriptors, each of which has several parameters. Furthermore, the communication between the NBMP source 310, the NBMP workflow manager 320, the capability repository 330, and the MPEs 340 may be considered a control flow.

[0038] The tasks 341 may each include a media processing function 343 and a configuration 342 for the media processing function 343. Each of the tasks 341 in each media processing entity 340 may also communicate with each other to facilitate data flow between the tasks. In one embodiment, the NBMP workflow manager 320 may select a task based on the task's description in the WDD and search the capability repository 330 via the capability discovery API 312 to find an appropriate function to perform as the task 341 for the current workflow. The one or more MPEs 340 may be configured to receive media content from a media source 350, process the media content according to a workflow including the task 341 created by the NBMP workflow manager 320, and output the processed media content to a media sink 360. In one embodiment, the one or more MPEs 340 may each be provided in parallel for multiple media flows 316 and 317 between the media source 350 and the media sink 360.

[0039] Media source 350 may include memory to store media and may be integrated with or separate from NBMP source 310. In one embodiment, NBMP workflow manager 320 may notify NBMP source 310 when a workflow is prepared, and media source 350 may send media content to one or more MPEs 340 based on the notification that a workflow is prepared, and one or more MPEs 340 may send the media content to media sink 360. Communication between media source 350, MPE 340, and media sink 360 may be considered a data flow.

[0040] According to an exemplary embodiment, when a workflow is split, new tasks may be added to the original workflow to split the workflow more efficiently on the cloud platform. An example of such addition, according to an embodiment, is now described with reference to FIG.

[0041] The workflow may be modified by adding tasks to reduce the connection bandwidth of the devices. As shown in FIG. 4, task 6 and task 7 are added to the initial workflow 410. In an embodiment, the initial workflow 410 may be split between a cloud device and a sink device. The cloud device and sink device may be the same as or different from the media sink 360. For purposes of this example, the device is referred to as sink device 430. When the connection bandwidth of sink device 430 is reduced, workflow 410 can operate at the required throughput. The workflow manager (e.g., NBMP workflow manager 320) updates workflow 410 by adding task 6 and task 7, resulting in modified workflow 420. For example, task 7 may be configured to perform a built-in decompression function in sink device 430, and task 6 may be configured to perform a compression function in sink device 430. Using task 6 as the compression function on the edge network, the bandwidth between task 6 and task 7 may be reduced sufficiently to fit into the available bandwidth of sink device 430. Tasks 6 and 7 have a net-zero impact on workflow functionality. Therefore, Task 6 and Task 7 do not affect the processing of the input (ie, Input 1) in producing the outputs (ie, Output 2 and Output 3).

[0042] When a workflow is modified by adding a new task, it is important to signal the presence of such a task in the modified workflow. In the NBMP system, the RESTFUL principle is used, and thus each resource shows the latest state of that resource. Each resource is complete and does not require other resources to show its characteristics. Furthermore, the WDD shows the state of the workflow description. When a workflow is split and a new task is added, as shown in FIG. 4, the WDD represents the state of the workflow but does not currently have information about the added task. In an embodiment, the workflow may be updated later by deleting the added task if necessary. However, the presence of the added task needs to be signaled due to the split rendering characteristics and because the added task is not part of the original workflow. Therefore, it is beneficial to signal the added task in the modified workflow.

[0043] In an embodiment, a task group may be used to signal a collection of tasks that may be removed and / or added to a workflow without affecting the functionality of the workflow. An advantage of this approach is that a different task group may be defined for each group. Therefore, there is a technical advantage to such a feature that allows multiple net-zero groups to be signaled and one or more of those net-zero groups to be removed without removing other net-zero groups. Multiple net-zero groups may be removed simultaneously or separately. In the NBMP standard, a task group object defines the tasks that are in the same task group.

[0044] An example of a task group object according to the NBMP standard is shown in Table 1. The task group object includes a parameter, a parameter type, and a cardinality.

[0045] [Table 1]

[0046] The parameters of a task group object are defined in Table 2.

[0047] [Table 2]

[0048] In an embodiment, a net-zero flag is added to a task group object. Table 3 shows an example of a task group object with a net-zero flag added, according to one or more embodiments. In Table 3, and throughout this disclosure, italics are used to indicate additions to the standard.

[0049] [Table 3]

[0050] The additional net-zero parameters are defined in Table 4.

[0051] [Table 4]

[0052] When a workflow is modified by adding a task with net-zero functionality, the presence of the added task does not change the functionality of the entire workflow. Tasks are added for other purposes, such as efficient partitioning of the workflow. For each group of tasks whose presence provides net-zero functionality, a task group can be added to the WDD for that workflow. The WDD can enumerate the ids of the tasks in that group and set the net-zero flag of the task group to "true." By setting the net-zero flag to "true," all tasks within the task group may be removed from the workflow without affecting workflow functionality. In an embodiment, the task group is used only for this purpose and does not indicate any grouping in terms of distance between tasks or task synchronization requirements.

[0053] FIG. 5 is a flowchart of an example method 500 for signaling net-zero tasks within a modified workflow, according to one or more embodiments.

[0054] 5 may be performed by platform 120. In some implementations, one or more process blocks in FIG. 5 may be performed by another device or group of devices that is separate from or includes platform 120, such as user device 110.

[0055] As shown in FIG. 5, in operation 510, the method 500 includes obtaining a workflow.

[0056] At operation 520, method 500 includes generating a modified workflow by adding one or more tasks to a work description of the workflow, where the one or more tasks are configured to perform a predetermined function and have zero net effect on an output of the workflow, i.e., the one or more tasks do not change the output of the workflow or change the function of the workflow.

[0057] At operation 530, the method 500 includes signaling one or more tasks of the modified workflow based on the task group object.

[0058] Although Figure 5 illustrates example blocks of a method, in some implementations, the method may include additional, fewer, different, or differently arranged blocks than the blocks depicted in Figure 5. Additionally or alternatively, two or more of the blocks of the method may be performed in parallel.

[0059] FIG. 6 is a block diagram of an example of computer code for signaling net-zero tasks in a modified workflow according to one or more embodiments.

[0060] According to an embodiment of the present disclosure, at least one processor may be provided along with a memory storing computer code, which when executed by the at least one processor may be configured to perform any number of aspects of the present disclosure.

[0061] For example, with reference to FIG. 6, computer code 600 may be implemented in the NBMP system 300 .

[0062] As shown in FIG. 6, computer code 600 may include obtaining code 610, generating code 620, and signaling code 630.

[0063] The acquisition code 610 may be configured to cause at least one processor to acquire the workflow.

[0064] The generating code 620 may be configured to cause the at least one processor to generate a modified workflow by adding one or more tasks to a work description of the workflow. The one or more tasks may be configured to perform a predetermined function and a zero net effect on an output of the workflow. That is, the one or more tasks do not change the output of the workflow or change the function of the workflow.

[0065] The signaling code 630 may be configured to signal, to at least one processor, one or more tasks of the modified workflow based on the task group object.

[0066] 6 illustrates example blocks of computer code 600 for an apparatus or device according to an embodiment, although in some implementations an apparatus may include additional, fewer, different, or differently arranged blocks than those depicted in FIG 6. Additionally or alternatively, two or more of the blocks of the apparatus may be executed in parallel.

[0067] The techniques for signaling net-zero tasks of a workflow on a cloud platform described above may be used separately or combined in any order. Furthermore, each of the methods (or embodiments) may be implemented by a processing circuit (e.g., one or more processors or one or more integrated circuits). In one example, the one or more processors may execute a program stored in a non-transitory computer-readable medium.

[0068] This disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Modifications and variations may be realized in light of the disclosure or may be acquired from practice of the implementations.

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

[0070] It will be apparent that the systems and / or methods described herein may be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not intended to limit the implementation. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and it will be understood that software and hardware can be designed to implement the systems and / or methods based on the description herein.

[0071] Even if combinations of features are recited in the claims and / or disclosed herein, these combinations are not intended to limit the disclosure of possible implementations. Indeed, many of these features may be combined in ways not specifically recited in the claims and / or disclosed herein. Although each dependent claim recited below may depend directly on only one claim, the disclosure of possible implementations includes each dependent claim in combination with every other claim in the set of claims.

[0072] As used herein, elements, activities, or instructions may not be construed as critical or essential unless expressly described as such. Additionally, the articles "a" and "an" as used herein include one or more items and may be used interchangeably with "one or more." Additionally, the term "set" as used herein includes one or more items (e.g., related items, unrelated items, combinations of related and unrelated items, etc.) and may be used interchangeably with "one or more." When only one item is addressed, the term "one" or similar language is used. Additionally, as used herein, terms such as "has," "have," and "having" are intended to be open-ended terms. Additionally, the phrase "based on" is intended to mean "based at least in part on," unless otherwise specified. [Explanation of symbols]

[0073] 100 Environment 110 User Devices 120 Platform 122 Cloud Computing Environment 124 computing resources 124-1 Application ("APP") 124-2 Virtual Machines ("VMs") 124-3 Virtualized Storage ("VS") 124-4 Hypervisor ("HYP") 130 Network 200 devices 210 Bus 220 Processor 230 Memory 240 Memory Components 250 Input Components 260 Output Components 270 Communication Interface 300 NBMP Architecture, NBMP System 310 NBMP Source 311 NBMP Workflow API 312 Feature Discovery API 313 Feature Discovery API 314 API 315 API 316 Media Flow 317 Media Flow 320 NBMP Workflow Manager 330 Feature Repository 340 Media Processing Entity (MPE) 341 Tasks 342 Configuration 343 Media Processing Functions 350 Media Sources 360 Media Sync 410 Initial Workflow 420 Modified Workflow 430 Sink Device 500 ways 600 Computer Code 610 Acquisition Code 620 Generated Code 630 signaling code

Claims

1. 1. A method for signaling a network-based media processing (NBMP) workflow modification when a workflow split is required, performed by at least one processor, the method comprising: obtaining an NBMP workflow; generating a modified NBMP workflow by adding one or more tasks to a work description of the NBMP workflow; signaling the one or more tasks of the modified NBMP workflow based on a task group object; Including, The method, wherein the one or more tasks are configured to perform a predetermined function, and the one or more tasks do not modify an output of the NBMP workflow.

2. determining the one or more tasks to be included in a task group based on the task group object, the task group object including group identification information, task identification information, a group mode, and a net-zero flag; The method of claim 1, further comprising:

3. removing the one or more tasks in the task group from the modified NBMP workflow based on a state of the net-zero flag, wherein removing the one or more tasks does not change an output of the modified NBMP workflow.

3. The method of claim 2, further comprising:

4. 4. The method of claim 3, wherein the NBMP workflow is replaced by the modified NBMP workflow.

5. The method of claim 2 , wherein the one or more tasks in the task group are signaled simultaneously based on the group mode.

6. The method of claim 2 , wherein the one or more tasks in the task group are signaled separately based on the group mode.

7. The method of claim 2 , wherein the group identification information uniquely identifies the task group, and the task identification information identifies the one or more tasks included in the task group.

8. 2. The method of claim 1, wherein the modified NBMP workflow includes one or more task groups, the one or more task groups do not change the output of the NBMP workflow, and the one or more task groups are deleted simultaneously or separately.

9. An apparatus configured to perform a method according to any one of claims 1 to 8.

10. A computer program product which, when executed by at least one processor, causes the at least one processor to perform a method according to any one of claims 1 to 8.