Method and apparatus for signaling NetZero workflow modifications on a cloud platform
Patent Information
- Application Number
- JP2023560901
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-03-22
- Filing Date
- 2022-04-12
- Publication Date
- 2026-09-01
- Estimated Expiration
- 2042-04-12
Smart Images

Figure 0007913803000005 
Figure 0007913803000006 
Figure 0007913803000007
Abstract
Description
Technical Field
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to and the benefit of U.S. Provisional Patent Application No. 63 / 252,422, filed on October 5, 2021, the disclosure of which is hereby incorporated by reference in its entirety.
[0002] Embodiments of the present disclosure relate to signaling tasks added to a workflow to split the workflow into two or more sub-workflows for improving the workflow. Such tasks enable splitting, but do not have any functional significance in the net process performed by the workflow, and therefore have a net-zero impact on data processing. Background Art
[0003] Networks and cloud platforms may be used to run various 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 be added to a workflow that are necessary for splitting the workflow. Therefore, workflows may not be split efficiently. The present disclosure solves this problem and describes additional tasks that help efficiently split a workflow into sub-workflows. Summary of Invention Means for Solving the Problems
[0004] One or more exemplary embodiments of the present disclosure provide a method and apparatus for signaling net-zero workflow modification on a cloud platform.
[0005] According to one embodiment, a method is provided for signaling NBMP workflow modifications when workflow splitting is required. The method may include the steps of: obtaining an NBMP workflow; generating a modified NBMP workflow by adding one or more tasks to the work description of the NBMP workflow; and signaling one or more tasks of the modified NBMP workflow based on a task group object. One or more tasks of the method may be configured to perform a predetermined function, and one or more tasks do not modify the output of the NBMP workflow.
[0006] According to one embodiment, a device is provided for signaling NBMP workflow modifications when workflow splitting is required. The device may comprise at least one memory for 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 acquisition code configured to cause at least one processor to acquire an NBMP workflow, generation code configured to cause at least one processor to generate a modified NBMP workflow by adding one or more tasks to the work description of the NBMP workflow, and signaling code configured to cause at least one processor to signal one or more tasks of the modified NBMP workflow based on a task group object, the one or more tasks being configured to perform a predetermined function, and the one or more tasks not modifying the output of the NBMP workflow.
[0007] According to one or more embodiments, a non-temporary computer-readable medium for storing computer code may be provided. The program code may be configured, when executed by at least one processor, to cause at least one processor to perform the following: acquire an NBMP workflow; generate a modified NBMP workflow by adding one or more tasks to the work description of the NBMP workflow; and signal one or more tasks of the modified NBMP workflow based on a task group object, wherein one or more tasks are configured to perform a predetermined function, and one or more tasks do not modify the output of the NBMP workflow.
[0008] Further embodiments may be partially described in the following description, partially evident from the description, or realized by the practice of the embodiments presented in this disclosure.
[0009] The above and other embodiments, features, and aspects of the embodiments of this disclosure will become more apparent from the following description in conjunction with the following accompanying drawings. [Brief explanation of the drawing]
[0010] [Figure 1] This is a schematic diagram of a communication system according to one or more embodiments. [Figure 2] This is a simplified illustrative diagram of a streaming environment according to one or more embodiments. [Figure 3] This is a block diagram of an NBMP system according to one or more embodiments. [Figure 4] This is an illustrative diagram of tasks added to a workflow, according to one or more embodiments. [Figure 5] This is a block diagram of an exemplary process for signaling net-zero tasks in a modified workflow, according to one or more embodiments. [Figure 6]This 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. [Modes for carrying out the invention]
[0011] This disclosure relates to a method and apparatus for signaling modifications in a network-based media processing (NBMP) workflow without affecting the workflow output.
[0012] Embodiments of this disclosure are described comprehensively with reference to the accompanying drawings. However, implementations may be implemented in various forms, and this disclosure should not be construed as being limited to the examples described herein. On the contrary, implementations are provided to make the technical solutions of this disclosure more comprehensive and complete, and to comprehensively communicate the concepts of the implementations to those skilled in the art. The accompanying drawings are illustrative of this disclosure and are not necessarily drawn to scale. The same reference numerals in the accompanying drawings represent the same or similar components, so redundant descriptions of components are omitted.
[0013] The proposed functions described below may be used separately or combined in any order. Some of the block diagrams shown in the accompanying drawings are functional entities and do not necessarily correspond to physically or logically independent entities. Furthermore, embodiments may be implemented by processing circuits (e.g., one or more processors or one or more integrated circuits), in software form, or in different networks and / or processor devices and / or microcontroller devices. In one example, one or more processors execute a computer program stored in one or more non-temporary computer-readable media.
[0014] Figure 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 Figure 1, the environment 100 may include a user device 110, a platform 120, and a network 130. The devices in environment 100 can be interconnected via wired connections, wireless connections, or a combination of wired and wireless connections.
[0015] The user device 110 may include one or more devices capable of receiving, generating, storing, processing, and / or providing information associated with the platform 120. For example, the user device 110 may include computing devices (e.g., desktop computers, laptop computers, tablet computers, handheld computers, smart speakers, servers, etc.), mobile phones (e.g., smartphones, wireless phones, etc.), wearable devices (e.g., a pair of smart glasses or smartwatches, etc.), or similar devices. In some implementations, the user device 110 can receive information from and / or transmit information to the platform 120.
[0016] Platform 120 may include one or more devices as described elsewhere in this specification. In some implementations, Platform 120 may include a cloud server or a group of cloud servers. In some implementations, Platform 120 may be designed modularly so that software components can be swapped in or out as needed. Thus, Platform 120 may be easily and / or quickly reconfigured for different applications.
[0017] In some implementations, as illustrated, platform 120 may be hosted within a cloud computing environment 122. In particular, while the implementations described herein describe platform 120 as being hosted within a cloud computing environment 122, in some implementations, platform 120 may not be cloud-based (i.e., it may be implemented outside a cloud computing environment) or may be partially cloud-based.
[0018] The cloud computing environment 122 may include an environment that hosts platform 120. The cloud computing environment 122 can provide services such as computing, software, data access, and storage that do not require the end user's (e.g., user device 110) knowledge of the physical location and configuration of the system and / or device that hosts platform 120. As illustrated, the 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 resources 124”).
[0019] The computing resource 124 may include one or more personal computers, workstation computers, server devices, or other types of computing devices and / or communication devices. In some implementations, the computing resource 124 can host the platform 120. The cloud resources may include computing instances running within the computing resource 124, storage devices provided within the computing resource 124, data transfer devices provided by the computing resource 124, and so on. In some implementations, the computing resource 124 can 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, 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] Application 124-1 may include one or more software applications that may be provided to or accessed by user device 110 and / or platform 120. Application 124-1 can eliminate the need to install and run a software application on user device 110. For example, application 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 implementations, one application 124-1 can send and receive information to and from one or more other applications 124-1 via virtual machine 124-2.
[0022] The virtual machine 124-2 may include a software implementation of a machine (e.g., a computer) that runs programs like a physical machine. Depending on the intended use of the virtual machine 124-2 and the degree of correspondence with any physical machine, the virtual machine 124-2 may be either a system virtual machine or a process virtual 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 run a single program and can support a single process. In some implementations, the virtual machine 124-2 can run on behalf of a user (e.g., a user device 110) and manage the foundation of a cloud computing environment 122, such as data management, synchronization, or long-duration 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 system or device of the computing resource 124. In some implementations, within the context of the storage system, the types of virtualization may include block virtualization and file virtualization. Block virtualization can refer to extracting (or separating) logical storage from physical storage so that it can be accessed regardless of whether the storage system is physical storage or heterogeneous. Separation can allow for flexibility in how the storage system administrator manages storage for end users. File virtualization can eliminate the dependency between data accessed at the file level and the location where the file is physically stored. This can enable optimization of storage usage, server consolidation, and / or non-destructive file migration.
[0024] The hypervisor 124-4 can provide a hardware virtualization technique that allows a plurality of operating systems (e.g., "guest operating systems") to run simultaneously on a host computer such as the 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.
[0025] The network 130 may include one or more wired networks and / or wireless networks. For example, the network 130 may be 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., the 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 the above 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 more devices and / or networks, fewer devices and / or networks, different devices and / or networks, or devices and / or networks in different arrangements 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 in environment 100 (e.g., one or more devices) may perform one or more functions described as being performed by another set of devices in environment 100.
[0027] Figure 2 is a block diagram of exemplary components of one or more devices of Figure 1. Device 200 may correspond to user device 110 and / or platform 120. As shown in Figure 2, device 200 may include a bus 210, a processor 220, memory 230, storage components 240, input components 250, output components 260, and a communication interface 270.
[0028] Bus 210 includes components that enable communication between components of device 200. Processor 220 may be implemented in hardware, firmware, or a combination of hardware and software. Processor 220 may be a central processing unit (CPU), graphics processing unit (GPU), accelerator processing unit (APU), microprocessor, microcontroller, digital signal processor (DSP), field-programmable gate array (FPGA), application-specific integrated circuit (ASIC), or another type of processing component. In some implementations, processor 220 may include one or more processors that can be programmed to perform functions. 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 processor 220.
[0029] The storage component 240 stores information and / or software related to the operation and use of device 200. For example, the storage component 240 may include, along with a corresponding drive, a hard disk (e.g., magnetic disk, optical disk, magneto-optical disk, and / or solid-state disk), a compact disc (CD), a digital multipurpose disc (DVD), a floppy disk, a cartridge, a magnetic tape, and / or another type of non-temporary computer-readable media.
[0030] The input components 250 may include components that enable the device 200 to receive information via user input or the like (e.g., a touchscreen display, keyboard, keypad, mouse, buttons, switches, and / or microphone). Additionally or alternatively, the input components 250 may include sensors for detecting information (e.g., a Global Positioning System (GPS) component, accelerometer, gyroscope, and / or actuator). The output components 260 may include components that provide output information from the device 200 (e.g., a display, speaker, and / or one or more light-emitting diodes (LEDs)).
[0031] The communication interface 270 may include transceiver-like components (e.g., transceivers and / or separate receivers and transmitters) that enable device 200 to communicate with other devices via wired connections, wireless connections, or a combination of wired and wireless connections. The communication interface 270 can enable device 200 to receive information from and / or provide information to other devices. For example, the communication interface 270 may include Ethernet interfaces, optical interfaces, coaxial interfaces, infrared interfaces, radio frequency (RF) interfaces, Universal Serial Bus (USB) interfaces, Wi-Fi interfaces, cellular network interfaces, and the like.
[0032] Device 200 can perform one or more processes described herein. Device 200 can perform these processes in response to the processor 220 executing software instructions stored in a non-temporary computer-readable medium, such as memory 230 and / or storage component 240. Computer-readable medium is defined herein as a non-temporary memory device. A memory device includes a memory space within a single physical storage device or a memory space that extends 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 the communication interface 270. When executed, the software instructions stored in memory 230 and / or storage component 240 can cause the processor 220 to execute one or more of the processes described herein. In addition or as an alternative, hardwired circuits may be used instead of or in combination with software instructions to execute one or more of the processes described herein. Therefore, the implementations described herein are not limited to any particular combination of hardware circuits 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 components, fewer components, different components, or components in different arrangements compared to the components shown in Figure 2. As an addition or alternative, a set of components of device 200 (e.g., one or more components) may perform one or more functions described as being performed by another set of components of device 200.
[0035] Embodiments of this disclosure provide a network-based media processing (NBMP) system. Figure 3 shows an NBMP architecture 300 according to an embodiment of this specification, which may be implemented with respect to 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, NBMP workflow manager 320, function repository 330, MPE 340, media source 350, and media sink 360 each comprise at least one or more processors, and the NBMP source 310, NBMP workflow manager 320, function repository 330, MPE 340, and media source 350 , and memory for storing code configured to cause at least one or more processors to perform the functions of MediaSync 360, or may be implemented by such memory.
[0036] The NBMP source 310 can communicate workflow descriptions with the NBMP workflow manager 320 via the NBMP workflow API 311. The NBMP source 310 can also communicate function descriptions with the function repository 330 via the function discovery API 313. For example, the NBMP source 310 can send a workflow description document (WDD) to the NBMP workflow manager 320 and read function descriptions of functions stored in the function repository 330, where functions are media processing functions stored in the memory of the function repository 330, such as media decoding, feature point extraction, camera parameter extraction, projection methods, seam information extraction, blending, post-processing, and encoding functions. The NBMP workflow manager 320 can communicate with the function repository 330 via the function discovery API 312, which may be the same as or a different API from the function discovery API 313, and can communicate with one or more of the MPE 340 via API 314 (e.g., the MPE API).
[0037] The media processing entity 340 may include one or more tasks 341. The NBMP workflow manager 320 can also communicate with the tasks 341 via API 315 (e.g., the NBMP Task API). The NBMP workflow manager 320 can use API 315 to set up, configure, manage, and monitor one or more tasks 341 of a workflow that can be executed by one or more MPEs 340. To configure, manage, and monitor the tasks 341 of a workflow, the NBMP workflow manager 320 can send messages, such as requests, to one or more of the MPEs 340 and / or tasks 341, each message may have several descriptors, each having several parameters. Furthermore, communication between the NBMP source 310, the NBMP workflow manager 320, the function repository 330, and the MPEs 340 may be considered a control flow.
[0038] Each task 341 may include a media processing function 343 and a configuration 342 for the media processing function 343. Each task 341 within each media processing entity 340 can also communicate with each other to facilitate data flow between tasks. In one embodiment, the NBMP workflow manager 320 can select a task based on the task description in the WDD, search the function repository 330 via the function discovery API 312, and find a suitable function to run as task 341 for the current workflow. 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 tasks 341 created by the NBMP workflow manager 320, and output the processed media content to a media sink 360. In one embodiment, 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] The media source 350 may include memory for storing media and may be integrated with or separate from the NBMP source 310. In one embodiment, the NBMP workflow manager 320 can notify the NBMP source 310 when a workflow is ready, the media source 350 can send media content to one or more MPEs 340 based on the notification that the workflow is ready, and one or more MPEs 340 can send media content to the media sink 360. The communication between the media source 350, the MPEs 340 and the 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. Referring to Figure 4, an example of such addition is described below by the embodiment.
[0041] The workflow may be modified by adding tasks to reduce the connection bandwidth of the device. As shown in Figure 4, tasks 6 and 7 are added to the initial workflow 410. In this 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 the purposes of this example, the device is referred to as the sink device 430. Reducing the connection bandwidth of the sink device 430 allows the workflow 410 to operate at the required throughput. The workflow manager (e.g., NBMP workflow manager 320) updates the workflow 410 by adding tasks 6 and 7, resulting in the modified workflow 420. For example, task 7 may be configured to perform an internal decompression function within the sink device 430, and task 6 may be configured to perform a compression function within the sink device 430. Using task 6 as the compression function on the edge network allows the bandwidth between task 6 and task 7 to be reduced sufficiently to fit within the available bandwidth of the sink device 430. Tasks 6 and 7 have a net-zero impact on the workflow functionality. Therefore, tasks 6 and 7 do not affect the processing of the input (i.e., input 1) when generating the outputs (i.e., outputs 2 and 3).
[0042] When a workflow is modified by adding a new task, it is important to signal the presence of such task in the modified workflow. In the NBMP system, the RESTFUL principle is used, and therefore each resource represents the latest state of that resource. Each resource is complete and does not require other resources to represent its characteristics. Furthermore, the WDD represents the state of the workflow description. If the workflow is split and a new task is added, as shown in Figure 4, the WDD represents the state of the workflow but does not currently have information about the added task. In embodiments, the workflow may be updated later by deleting the added task as needed. 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 embodiments, task groups may be used to signal a set of tasks that can be removed from a workflow and / or added to a workflow without affecting the workflow's functionality. The advantage of this approach is that different task groups can be defined for each group. Thus, there is a technical advantage to such a feature that signals multiple net-zero groups, and allows 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 tasks that are in the same task group.
[0044] Table 1 shows an example of a task group object according to the NBMP standard. A task group object includes parameters, parameter types, and cardinality.
[0045] [Table 1]
[0046] The parameters for the task group object are defined in Table 2.
[0047] [Table 2]
[0048] In some embodiments, a net-zero flag is added to the task group object. Table 3 shows examples of task group objects with the net-zero flag added according to one or more embodiments. Italics are used in Table 3 and throughout this disclosure to indicate additions to the standard.
[0049] [Table 3]
[0050] The added net-zero parameters are defined in Table 4.
[0051] [Table 4]
[0052] Modifying a workflow by adding tasks with net-zero functionality does not change the functionality of the overall workflow. Tasks are added for other purposes, such as efficient splitting of the workflow. For each group of tasks whose presence provides net-zero functionality, a task group can be added to the workflow's WDD. 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 the workflow functionality. In this embodiment, task groups are used solely for this purpose and do not indicate any grouping in terms of distance between tasks or task synchronization requirements.
[0053] Figure 5 is a flowchart of an exemplary method 500 for signaling net-zero tasks within a modified workflow, according to one or more embodiments.
[0054] In some implementations, one or more process blocks in Figure 5 may be executed by platform 120. In some implementations, one or more process blocks in Figure 5 may be executed by a separate device or group of devices, such as user device 110, which is separate from platform 120 or includes platform 120.
[0055] As shown in Figure 5, in operation 510, method 500 includes the step of acquiring a workflow.
[0056] In operation 520, method 500 includes the step of generating a modified workflow by adding one or more tasks to the workflow's work description. The one or more tasks are configured to perform a predetermined function and zero net effect on the workflow's output. That is, the one or more tasks either do not change the workflow's output or change the function of the workflow.
[0057] In operation 530, method 500 includes the step of signaling one or more tasks in a modified workflow based on a task group object.
[0058] Figure 5 shows an exemplary block of the method, but in some implementations, the method may include more blocks, fewer blocks, different blocks, or blocks in different arrangements than those depicted in Figure 5. Additionally or alternatively, two or more blocks of the method may be executed in parallel.
[0059] Figure 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 embodiments of the present disclosure, at least one processor may be provided along with memory for storing computer code. The computer code may be configured to perform any number of embodiments of the present disclosure when executed by the at least one processor.
[0061] For example, referring to Figure 6, the computer code 600 may be implemented in the NBMP system 300.
[0062] As shown in Figure 6, the computer code 600 may include an acquisition code 610, a generation code 620, and a signaling code 630.
[0063] Acquisition code 610 may be configured to cause at least one processor to acquire the workflow.
[0064] The generated code 620 may be configured to cause at least one processor to generate a modified workflow by adding one or more tasks to the workflow's work description. The one or more tasks may be configured to perform a predetermined function and zero net effect on the workflow's output. That is, the one or more tasks either do not change the workflow's output or change the functionality of the workflow.
[0065] The signaling code 630 may be configured to cause at least one processor to signal one or more tasks in a modified workflow based on a task group object.
[0066] Figure 6 shows exemplary blocks of computer code 600 for an apparatus or device according to an embodiment, but in some implementations, the apparatus may include more blocks, fewer blocks, different blocks, or blocks in different arrangements than those depicted in Figure 6. Additionally or alternatively, two or more blocks of the apparatus may run in parallel.
[0067] The techniques for signaling net-zero tasks in workflows on the cloud platform described above may be used separately or in any order. Furthermore, each of the methods (or embodiments) may be implemented by processing circuits (e.g., one or more processors or one or more integrated circuits). In one example, one or more processors may execute a program stored in a non-temporary computer-readable medium.
[0068] This disclosure provides examples and descriptions, but is not intended to be exhaustive or to limit implementations to the very forms disclosed. Modifications and variations may be feasible in light of this disclosure or derived from the practice of the implementations.
[0069] As used herein, the term "components" 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 can be implemented in various forms of hardware, firmware, or combinations of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not limited to the implementation form. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and it is understood that software and hardware can be designed to implement the systems and / or methods based on the descriptions herein.
[0071] Even if combinations of features are enumerated in the claims and / or disclosed herein, these combinations are not intended to limit the disclosure of possible implementations. In practice, many of these features may be combined in ways not specifically enumerated in the claims and / or disclosed herein. Each of the dependent claims listed below may depend directly on only one claim, but the disclosure of possible implementations includes each dependent claim combined with any other claims in the set of claims.
[0072] Any element, activity, or instruction used herein may not be construed as important or essential unless expressly stated otherwise. Furthermore, the articles “a” and “an” used herein may include one or more items and may be used synonymously with “one or more.” Additionally, the term “set” used herein may include one or more items (e.g., related items, unrelated items, combinations of related and unrelated items) and may be used synonymously with “one or more.” When only one item is the subject, the term “one” or similar is used. Furthermore, terms such as “has,” “have,” and “having” used herein are intended to be open-ended terms. Additionally, the phrase “based on” means “at least partially based on” unless otherwise specified. [Explanation of Symbols]
[0073] 100 Environment 110 User Devices 120 platforms 122 Cloud Computing Environment 124 Computing Resources 124-1 Application ("APP") 124-2 Virtual Machine ("VM") 124-3 Virtualized Storage ("VS") 124-4 Hypervisor ("HYP") 130 Networks 200 devices 210 Bus 220 processors 230 memory 240 memory components 250 input components 260 Output Components 270 Communication Interfaces 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 Entities (MPEs) 341 tasks 342 configuration 343 Media Processing Functions 350 media sources 360 Media Sync 410 Initial Workflow 420 Revised Workflow 430 sink devices 500 ways 600 Computer Codes 610 Acquisition Code 620 Generated Code 630 Signaling Code
Claims
1. A method for demonstrating a network-based media processing (NBMP) workflow modification when workflow splitting is required, which is performed by at least one processor, wherein the method is Steps to obtain the NBMP workflow, The steps include generating a modified NBMP workflow by adding one or more tasks to the work description of the aforementioned NBMP workflow, The steps include indicating the presence of one or more tasks in the modified NBMP workflow based on the task group object, and Includes, A method in which one or more tasks are configured to perform a predetermined function, and the one or more tasks do not modify the output of the NBMP workflow.
2. A step of determining one or more tasks to be included in a task group based on the task group object, wherein the task group object includes group identification information, task identification information, group mode, and net zero flag. The method according to claim 1, further comprising:
3. A step of deleting one or more tasks in the task group from the modified NBMP workflow based on the state of the net zero flag, wherein the step of deleting one or more tasks does not change the output of the modified NBMP workflow. The method according to claim 2, further comprising:
4. The method according to claim 3, wherein the NBMP workflow is replaced by the modified NBMP workflow.
5. The method according to claim 2, wherein the presence of one or more tasks within the task group is indicated simultaneously based on the group mode.
6. The method according to claim 2, wherein the presence of one or more tasks within the task group is indicated separately based on the group mode.
7. The method according to claim 2, wherein the group identification information uniquely identifies the task group, and the task identification information identifies one or more tasks included in the task group.
8. The method according to 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 the method described in any one of claims 1 to 8.
10. A computer program, when executed by at least one processor, for causing the at least one processor to perform the method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Method and apparatus for management of network based media processing functions
US20200177694A1
Method and apparatus for a step-enabled workflow
US20210096903A1