CN114467085A - 云平台工作流中的非必要的输入、输出和任务信令 - Google Patents
云平台工作流中的非必要的输入、输出和任务信令 Download PDFInfo
- Publication number
- CN114467085A CN114467085A CN202180005496.XA CN202180005496A CN114467085A CN 114467085 A CN114467085 A CN 114467085A CN 202180005496 A CN202180005496 A CN 202180005496A CN 114467085 A CN114467085 A CN 114467085A
- Authority
- CN
- China
- Prior art keywords
- workflow
- task
- media
- nbmp
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N21/2353—Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提供了用于管理基于网络的媒体处理(Network Based Media Processing,NBMP)工作流的系统和方法。提供了一种包括由至少一个处理器执行的方法的方法。该方法包括:导出NBMP工作流;获取至少一个第一语法元素,该第一语法元素指示在NBMP工作流中包括的至少一个任务、由该至少一个任务接收的至少一个输入或由该至少一个任务生成的至少一个输出,是非必要的;基于至少一个第一语法元素确定多个必要的任务;以及将多个必要的任务分配给在NBMP工作流中包括的媒体接收器、媒体源和媒体处理实体中的至少一个。
Description
相关申请的交叉引用
本申请要求于2020年6月22日提交的美国临时申请No.63/042,480、于2020年10月5日提交的美国临时申请No.63/087,746、于2020年10月5日提交的美国临时申请No.63/087,748、于2020年10月5日提交的美国临时申请No.63/087,751以及于2021年6月21日提交的美国申请No.17/352,616的优先权,上述申请的公开内容通过引用整体并入本申请。
技术领域
本公开的实施例涉及动态图像专家组(Moving Picture Experts Group,MPEG)的基于网络的媒体处理(Network Based Media Processing,NBMP),更具体地,涉及管理NBMP工作流。
背景技术
MPEG的基于网络的媒体处理(NBMP)项目已经开发了在云上处理媒体的概念。NBMP国际规范草案在提高媒体处理效率、更快更低成本的媒体服务部署以及具有通过利用公共、私有或混合云服务来提供大规模部署的能力方面显示出巨大潜力。
然而,当前的NBMP规范没有区分工作流的必要的任务和非必要的任务。
此外,虽然采用相同的持续时间片段分割媒体流对于许多应用是有用的,但是在一些应用中,由于不同的原因,片段的持续时间可能变得不同。因此,在这些情况下,固定的持续时间片段不起作用。
此外,NBMP标准定义了一个步骤描述符,用于在相互独立或并行的时间片段中处理媒体。虽然媒体流在时间上的分割是第一级并行化,但是对于大型视频或体积数据,其他维度上的分割可以进一步提供媒体数据的更多并行化或独立处理,并且能够使用更多的并行任务/微服务来处理数据。这样的多维并行化在NBMP标准中没有得到充分解决。
此外,NBMP标准定义了工作流描述,以定义所需的处理。然而,当前的设计不可能排除某些功能实例。虽然NBMP工作流描述提供了运行工作流的详细要求,但不允许从应用于整个工作流的描述中排除某些功能实例。
发明内容
NBMP国际规范草案在提高媒体处理效率、更快更低成本的媒体服务部署以及具有通过利用公共、私有或混合云服务来提供大规模部署的能力方面显示出巨大潜力。
本公开的实施例提供了一种实施NBMP标准中的各种改变的机制。
在实施例中,提供了一种信令机制来识别非必要的输入、输出和任务,并从任务的必要性中导出输入和输出的必要性。
在实施例中,提供了一种用于独立处理在云中可以具有不同持续时间或尺寸的媒体片段的方法,该方法可涉及扩展NBMP标准以支持具有可变持续时间/维度的片段的独立处理。
在实施例中,提供了一种NBMP标准的步骤描述符的扩展以定义多维片段。
在实施例中,提供了一种用于从应用于整个工作流程的描述中排除某些功能实例的方法。
根据一个或多个实施例,提供了一种由至少一个处理器执行的方法。该方法包括:导出基于网络的媒体处理(NBMP)工作流;获取至少一个第一语法元素,该第一语法元素指示在NBMP工作流中包括的至少一个任务、由该至少一个任务接收的至少一个输入或由该至少一个任务生成的至少一个输出,是非必要的;基于至少一个第一语法元素确定多个必要的任务;以及将多个必要的任务分配给在NBMP工作流中包括的媒体接收器、媒体源和媒体处理实体中的至少一个。
根据一个或多个实施例,提供了一种媒体系统的工作流管理器。该工作流管理器包括:至少一个处理器以及包括计算机代码的存储器。计算机代码包括:工作流导出代码,配置为使得至少一个处理器导出基于网络的媒体处理(NBMP)工作流;第一获取代码,配置为使得至少一个处理器获取至少一个第一语法元素,该第一语法元素指示在NBMP工作流中包括的至少一个任务、由该至少一个任务接收的至少一个输入或由该至少一个任务生成的至少一个输出,是非必要的;确定代码,配置为使得至少一个处理器基于至少一个第一语法元素来确定多个必要的任务;以及分配代码,配置为使得至少一个处理器将多个必要的任务分配给在NBMP工作流中包括的媒体接收器、媒体源和媒体处理实体中的至少一个。
根据一个或多个实施例,提供一种存储计算机代码的非瞬时性计算机可读介质。该计算机代码被配置为,当由实施媒体系统的工作流管理器的至少一个处理器执行时,使得至少一个处理器执行:导出基于网络的媒体处理(NBMP)工作流;获取至少一个第一语法元素,该第一语法元素指示在NBMP工作流中包括的至少一个任务、由该至少一个任务接收的至少一个输入或由该至少一个任务生成的至少一个输出,是非必要的;基于至少一个第一语法元素确定多个必要的任务;以及将多个必要的任务分配给在NBMP工作流中包括的媒体接收器、媒体源和媒体处理实体中的至少一个。
附图说明
根据以下详细描述和附图,所公开主题的进一步特征、性质和各种优点将更加明显,附图中:
图1是根据实施例的环境的示图,在该环境中可以实现这里描述的方法、装置和系统。
图2是图1中的一个或多个设备的示例性组件的框图。
图3是根据实施例的NBMP系统的框图。
图4是根据实施例的具有必要和非必要的任务的工作流的示例的示意图。
图6是根据实施例的用于识别工作流中的必要任务的过程的示意图。
图7是根据实施例的用于对可具有不同持续时间或尺寸的媒体片段进行独立处理的过程的示意图。
图8是根据实施例的工作流管理过程的示例的框图。
图9是根据实施例的计算机代码的示例的框图。
具体实施方式
图1是根据实施例的环境100的示图,在该环境100中可以实现这里描述的方法、装置和系统。如图1所示,环境100可以包括用户设备110、平台120和网络130。环境100的设备可以经由有线连接、无线连接或有线和无线连接的组合来互连。
用户设备110包括一个或多个设备,该一个或多个设备能够接收、生成、存储、处理和/或提供与平台120相关联的信息。例如,用户设备110可以包括计算设备(例如,台式计算机、膝上型计算机、平板计算机、手持式计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,智能眼镜或智能手表),或类似设备。在一些实施方式中,用户设备110可以从平台120接收信息和/或向平台120发送信息。
平台120包括如本公开别处所述的一个或多个设备。在一些实施方式中,平台120可以包括云服务器或一组云服务器。在一些实施方式中,平台120可以被设计成模块化的,使得软件部件可以根据特定的需要被换入或换出。因此,可以容易地和/或快速地针对不同用途重新配置平台120。
在一些实施方式中,如图所示,平台120可以托管在云计算环境122中。值得注意的是,虽然这里描述的实施方式将平台120描述为托管在云计算环境122中,但是在一些实施方式中,平台120可以不基于云(即,可以在云计算环境之外实现)或者可以部分基于云。
云计算环境122包括托管平台120的环境。云计算环境122可以提供不需要关于托管平台120的(一个或多个)系统和/或(一个或多个)设备的物理位置和配置的计算、软件、数据访问、存储等服务的终端用户(例如,用户设备110)知识。如图所示,云计算环境122可以包括一组计算资源124(统称为“多个计算资源124”,分别称为“计算资源124”)。
计算资源124包括一个或多个个人计算机、工作站计算机、服务器设备或其他类型的计算和/或通信设备。在一些实施方式中,计算资源124可以托管平台120。云资源可以包括在计算资源124中执行的计算实例、在计算资源124中提供的存储设备、由计算资源124提供的数据传输设备等。在一些实施方式中,计算资源124可以经由有线连接、无线连接或有线和无线连接的组合与其他计算资源124通信。
如图1进一步所示,计算资源124包括一组云资源,诸如一个或多个应用(“APPs”)124-1、一个或多个虚拟机(“VMs”)124-2、虚拟化存储器(“VSs”)124-3、或一个或多个管理程序(hypervisors,“HYPs”)124-4等。
应用124-1包括可以提供给用户设备110和/或平台120或由用户设备110和/或平台120访问的一个或多个软件应用。应用124-1可以消除在用户设备110上安装和执行软件应用的需要。例如,应用124-1可以包括与平台120相关联的软件和/或能够经由云计算环境122提供的任何其他软件。在一些实施方式中,一个应用124-1可以经由虚拟机124-2向一个或多个其他应用124-1发送信息/从一个或多个其他应用124-1接收信息。
虚拟机124-2包括类似于物理机的执行程序的机器(例如,计算机)的软件实现。虚拟机124-2可以是系统虚拟机或过程虚拟机,这取决于虚拟机124-2的使用和其与任何真实机器的对应程度。系统虚拟机可以提供支持完整操作系统(“OS”)的执行的完整系统平台。过程虚拟机可以执行单个程序,并且可以支持单个过程。在一些实施方式中,虚拟机124-2可以代表用户(例如,用户设备110)执行,并且可以管理云计算环境122的基础设施,诸如数据管理、同步或长时间数据传输。
虚拟化存储器124-3包括在计算资源124的存储系统或设备内使用虚拟化技术的一个或多个存储系统和/或一个或多个设备。在一些实施方式中,在存储系统的上下文中,虚拟化的类型可以包括块级虚拟化和文件虚拟化。块级虚拟化可以指从物理存储中抽象化(或分离)逻辑存储,使得可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员在管理员如何管理终端用户的存储方面的灵活性。文件虚拟化可以消除在文件级别访问的数据与物理存储文件的位置之间的依赖性。这可以使得能够优化存储使用、服务器整合和/或无中断文件迁移的性能。
管理程序124-4可以提供硬件虚拟化技术,该硬件虚拟化技术允许多个操作系统(例如,“访客操作系统”)在主机计算机(例如,计算资源124)上同时执行。管理程序124-4可以向访客操作系统呈现虚拟操作平台,并且可以管理访客操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。
网络130包括一个或多个有线和/或无线网络。例如,网络130可以包括蜂窝网络(例如,第五代(5G)网络、长期演进(LTE)网络、第三代(3G)网络、码分多址(CDMA)网络等)、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网(例如,公共交换电话网(PSTN))、专用网络、自组织网络、内部网、因特网、基于光纤的网络等,和/或这些网络或其他类型网络的组合。
提供图1所示的设备和网络的数量和布置作为示例。在实践中,与图1所示的相比,可以有额外的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或不同布置的设备和/或网络。此外,图1中所示的两个或更多个设备可以在单个设备内实现,或者图1中所示的单个设备可以实现为多个分布式设备。另外,或者可选地,环境100的一组设备(例如,一个或多个设备)可以执行描述为由环境100的另一组设备执行的一个或多个功能。
图2是图1的一个或多个设备的示例部件的框图。设备200可对应于用户设备110和/或平台120。如图2所示,设备200可以包括总线210、处理器220、存储器230、存储器部件240、输入部件250、输出部件260和通信接口270。
总线210包括允许设备200的部件之间通信的部件。处理器220以硬件、固件或硬件和软件的组合来实现。处理器220是中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其它类型的处理部件。在一些实施方式中,处理器220包括能够被编程以执行功能的一个或多个处理器。存储器230包括随机存取存储器(RAM)、只读存储器(ROM)和/或存储供处理器220使用的信息和/或指令的另一类型的动态或静态存储设备(例如,闪速存储器、磁存储器和/或光存储器)。
存储器部件240存储与设备200的操作和使用有关的信息和/或软件。例如,存储器部件240可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、光盘(CD)、数字通用光盘(DVD)、软盘、盒式磁带、磁带和/或其他类型的非瞬时性计算机可读介质,以及相应的驱动器。
输入部件250包括允许设备200例如经由用户输入接收信息的部件(例如,触摸屏显示器、键盘、键盘、鼠标、按钮、开关和/或麦克风)。另外,或者可选地,输入部件250可以包括用于感测信息的传感器(例如,全球定位系统(GPS)部件、加速计、陀螺仪和/或致动器)。输出部件260包括提供来自设备200的输出信息的部件(例如,显示器、扬声器和/或一个或多个发光二极管(LED))。
通信接口270包括收发机样部件(例如,收发机和/或单独的接收机和发射机),其使得设备200能够例如经由有线连接、无线连接或有线连接和无线连接的组合与其他设备通信。通信接口270可以允许设备200从另一设备接收信息和/或向另一设备提供信息。例如,通信接口270可以包括以太网接口、光接口、同轴接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、Wi-Fi接口、蜂窝网络接口等。
设备200可以执行本公开描述的一个或多个过程。响应于处理器220执行由非瞬时性计算机可读介质(例如存储器230和/或存储器部件240的)存储的软件指令,设备200可以执行这些处理。计算机可读介质在此定义为非瞬态存储器设备。存储器设备包括单个物理存储设备内的存储器空间或分布在多个物理存储设备上的存储器空间。
软件指令可经由通信接口270从另一计算机可读介质或从另一设备而被读入存储器230和/或存储器部件240。当存储在存储器230和/或存储器部件240中的软件指令被执行时,软件指令可以使得处理器220执行本公开描述的一个或多个过程。另外,或者可选地,可以使用硬连线电路来代替软件指令或者与软件指令结合来执行本公开描述的一个或多个过程。因此,这里描述的实施方式不限于硬件电路和软件的任何特定组合。
提供图2所示的部件的数量和布置作为示例。在实践中,与图2所示的相比,设备200可包括额外的部件、更少的部件、不同的部件或不同布置的部件。另外,或者可选地,设备200的一组部件(例如,一个或多个部件)可以执行描述为由设备200的另一组部件执行的一个或多个功能。
在本公开的实施方式中,提供了NBMP系统300。参考图3,NBMP系统300包括NBMP源310、NBMP工作流管理器320、功能存储库330、一个或多个媒体处理实体350、媒体源360和媒体接收器370。
NBMP源310可以从第三方实体接收指令,可以经由NBMP工作流API 392与NBMP工作流管理器320通信,并且可以经由功能发现API 391与功能存储库330通信。例如,NBMP源310可以向NBMP工作流管理器320发送工作流描述文档(Workflow Description Document(s),WDD),并且可以读取存储在功能存储库330中的功能的功能描述,该功能是存储在功能存储库330的存储器中的媒体处理功能,诸如例如媒体解码、特征点提取、相机参数提取、投影方法、缝隙(seam)信息提取、混合、后处理和编码之类的功能。NBMP源310可以包括至少一个处理器和存储器,或者由至少一个处理器和存储器实现,该存储器存储被配置为使至少一个处理器执行NBMP源310的功能的代码。
NBMP源310可以请求NBMP工作流管理器320通过发送工作流描述文档来创建工作流,该工作流包括要由一个或多个媒体处理实体350执行的任务352,该工作流描述文档可以包括若干描述符,每个描述符可以具有若干参数。
例如,NBMP源310可以选择存储在功能存储库330中的功能,并将工作流描述文档发送到NBMP工作流管理器320,该工作流描述文档包括用于描述细节的各种描述符,这些细节例如输入和输出数据、所需的功能和工作流的要求。该工作流描述文档可以包括一组任务描述和要由一个或多个媒体处理实体350执行的任务352的输入和输出的连接映射。当NBMP工作流管理器320从NBMP源310接收到这样的信息时,NBMP工作流管理器320可以通过基于功能名称实例化任务并根据连接映射连接任务来创建工作流。
附加或可选择的是,NBMP源310可以通过使用一组关键字来请求NBMP工作流管理器320创建工作流。例如,NBMP源310可以向NBMP工作流管理器320发送工作流描述文档,该工作流描述文档可以包括NBMP工作流管理器320可用于查找存储在功能存储库330中的适当的功能的一组关键字。当NBMP工作流管理器320从NBMP源310接收到这样的信息时,NBMP工作流管理器320可以通过使用在工作流描述文档的处理描述符中指定的关键字搜索适当的功能来创建工作流,并且使用工作流描述文档中的其他描述符来提供任务并将它们连接以创建工作流。
NBMP工作流管理器320可以经由功能发现API 393与功能存储库330通信,功能发现API 393可以是与功能发现API 391相同或不同的API,并且可以经由API 394(例如,NBMP任务API)与一个或多个媒体处理实体350通信。NBMP工作流管理器320可以包括至少一个处理器和存储器,或者由至少一个处理器和存储器来实现,该存储器存储被配置为使至少一个处理器执行NBMP工作流管理器320的功能的代码。
NBMP工作流管理器320可以使用API 394来设置、配置、管理和监控可由一个或多个媒体处理实体350执行的工作流的一个或多个任务352。在一个实施例中,NBMP工作流管理器320可以使用API 394来更新和销毁任务352。为了配置、管理和监控工作流的任务352,NBMP工作流管理器320可以向一个或多个媒体处理实体350发送例如请求的消息,其中每个消息可以具有若干描述符,每个描述符具有若干参数。每个任务352可以包括媒体处理功能354和用于该媒体处理功能354的配置353。
在一个实施例中,在从NBMP源310接收到不包括任务列表(例如,包括关键字列表而不是任务列表)的工作流描述文档之后,NBMP工作流管理器320可以基于工作流描述文档中的任务描述来选择任务,以经由功能发现API 393搜索功能存储库330,从而找到适当的功能以作为当前工作流的任务352运行。例如,NBMP工作流管理器320可以基于工作流描述文档中提供的关键字来选择任务。在通过使用由NBMP源310提供的关键字或任务描述组来识别适当的功能之后,NBMP工作流管理器320可以通过使用API 394在工作流中配置选择的任务。例如,NBMP工作流管理器320可以从接收自NBMP源的信息中提取配置数据,并基于该配置数据来配置任务352。
一个或多个媒体处理实体350可以被配置为从媒体源360接收媒体内容,根据由NBMP工作流管理器320所创建的包括任务352的工作流来处理媒体内容,并将处理后的媒体内容输出到媒体接收器370。一个或多个媒体处理实体350可各自包括至少一个处理器和存储器,或者由至少一个处理器和存储器实现,该存储器存储被配置为使至少一个处理器执行媒体处理实体350的功能的代码。
媒体源360可以包括存储媒体并且可以与NBMP源310集成或分离的存储器。在一个实施例中,NBMP工作流管理器320可以在准备工作流时通知NBMP源310,并且媒体源360可以基于准备工作流的通知向一个或多个媒体处理实体350发送媒体内容。
媒体接收器370可以包括至少一个处理器和至少一个显示器,或者由至少一个处理器和至少一个显示器实现,该至少一个显示器被配置为显示由一个或多个媒体处理实体350处理的媒体。
如上所述,从NBMP源310到NBMP工作流管理器320的消息(例如,用于请求创建工作流的工作流描述文档),以及从NBMP工作流管理器320到一个或多个媒体处理实体350的消息(例如,用于执行工作流的消息)可以包括若干描述符,每个描述符可以具有若干参数。在这种情况下,使用API的NBMP系统300的任意组件之间的通信可以包括若干描述符,每个描述符可以具有若干参数。
[工作流中非必要的输入、输出和任务信令]
实施例可以涉及用于识别和用信号表示在云平台上运行的工作流中非必要的输入、输出和任务的方法。
工作流的必要输出可以是必须产生数据以使该工作流被认为是正确运行的工作流的输出。工作流的必要输入可以是必须为该工作流处理以创建其必要输出的输入。正确运行的工作流可以是处理其所有必要输入并产生其所有必要输出的工作流。工作流的必要任务可以是正确运行并处理正确运行工作流所需的数据所必需的任务。例如,必要任务可以是处理必要输入和/或产生必要输出的任务。在实施例中,必要输入可以是运行必要的任务所需的输入,以及必要输出可以是作为必要任务的必要输入所需的输出,或者作为整个工作流的输出所需的输出。非必要的输入可以是工作流为产生工作流的必要输出而不需要的输入。例如,如果提供了所有必要的输入,即使没有提供任何非必要的输入,工作流也可以产生所有必要的输出。非必要的任务可以是包括在工作流中、但不是必要任务的任务。例如,非必要的任务可以处理非必要的输入并产生非必要的输出。
图4示出了根据实施例的具有必要和非必要的任务的工作流400的示例。
在工作流400中,以灰色阴影圆圈示出非必要的任务。因此,如图4所示,任务1、任务3、任务5和任务8是必要的。此外,在图5所示的示例中,任务2、任务4、任务6和任务7是非必要的。
相应地,在工作流400中,输入1可以被归类为必要输入,而输入2可以被归类为非必要输入。类似地,输出2可以被归类为必要输出,而输出1和输出3可以被归类为非必要输出。
[工作流中的信令必要性]
在实施例中,可以使用标志来用信号表示在给定工作流中任务的必要性。通过定义工作流的所有必要和非必要的任务,也可以定义或确定必要和非必要的输入和输出。
表1示出了在任务的通用描述符中添加非必要标志的示例。在表1以及本公开全文中,以斜体示出添加的非必要标志。
表1-具有添加的非必要标志的任务的通用描述符
参数名称 | 类型 | 基数 |
id | P | 1 |
name | P | 1 |
description | P | 1 |
rank | P | 0-1 |
mpeg-compatibility | P | 0-1 |
published-time | P | 0-1 |
priority | P | 0-1 |
execution-time | P | 0-1 |
input-ports | 对象数组 | 1 |
output-ports | 对象数组 | 1 |
is-group | P | 0-1 |
nonessential | P | 0-1 |
state | P | 1 |
添加的参数以斜体示出。在表2中定义了非必要的参数的示例。
表2-非必要的参数定义
[导出工作流的输入和输出的必要性和非必要性]
如果工作流由该工作流的任务图所定义,并且如果这些任务被识别为必要的和非必要的,则工作流的任意输入或输出可以被识别为必要的或非必要的。
对于作为必要和非必要的任务图的给定工作流,对于任意输入和输出对,如果输入可以通过至少一个必要路径连接到输出,则输入和输出都是必要的。不能满足上述条件的任意其它输入和输出都是非必要的。
工作流中的路径可以是仅具有一个输入和一个输出的该工作流的子集,并且输入可以通过连接路径中的任务的一组箭头连接到输出,其中两个任务之间的每个连接的方向与直接连接输入到输出的箭头的方向相同。工作流的必要路径可以是其中包括在路径中的所有任务都是必要任务的路径。
图5以虚线箭头线示出了工作流400中的一个必要路径。
[用信号表示输入和输出的必要性]
如果工作流图以定义的其任务的必要性来定义,如上所述,可以导出工作流的输入和输出的必要性。
然而,在一些情况下,在工作流描述中,可以仅定义其输入和输出,而精确的工作流留给工作流管理器来导出。在这种情况下,工作流描述可以包括或指示工作流的输入和输出的必要性。
在实施例中,如表3、表4、表5和表6所示,可以为输出描述符中的每个输出定义非必要参数。例如,非必要参数可以指示输入、输出、任务或其他对象是必要的还是非必要的。
表3—输入媒体-参数对象
名称 | 类型 | 基数 |
stream-id | P | 1 |
Name | P | 1 |
Keywords | P | 1 |
mime-type | P | 1 |
video-format | P | 0-1 |
audio-format | P | 0-1 |
image-format | P | 0-1 |
codec-type | P | 0-1 |
Protocol | P | 1 |
Throughput | P | 0-1 |
Buffersize | P | 0-1 |
caching-server-url | P | 1 |
nonessential | P | 0-1 |
表4—输入元数据-参数对象
表5—输出媒体-参数对象
名称 | 类型 | 基数 |
stream-id | P | 1 |
name | P | 1 |
keywords | P | 1 |
mime-type | P | 1 |
video-format | P | 0-1 |
audio-format | P | 0-1 |
image-format | P | 0-1 |
codec-type | P | 0-1 |
protocol | P | 1 |
throughput | P | 0-1 |
buffersize | P | 0-1 |
caching-server-url | P | 1 |
nonessential | P | 0-1 |
表1:输出元数据参数对象
名称 | 类型 | 基数 |
stream-id | P | 1 |
name | P | 1 |
keywords | P | 1 |
mime-type | P | 1 |
codec-type | P | 0-1 |
protocol | P | 0-1 |
max-size | P | 0-1 |
min-interval | P | 0-1 |
caching-server-url | P | 1 |
scheme-uri | P | 0-1 |
nonessential | P | 0-1 |
在实施例中,如果媒体和元数据参数都是非必要的,则输出可以是非必要的。
[从工作流的输入和输出导出任务的必要性和非必要性]
如果定义了工作流输入和输出的必要性,则可以导出该工作流的任务(及其输入)的必要性。
对于作为任务图和识别的必要输出的给定工作流,可以使用以下过程来识别必要任务:
·首先,对于每个非必要输入,如果所有其它相应任务的输入也是非必要的,则可以将该任务的输出标记为非必要的,并且可以移除该任务。此过程可应用于所有新的非必要输入,直到没有留下非必要的输入以应用于该过程。
·其次,对于每个非必要输出,如果所有其它相应任务的输出也是非必要的,则可以将该任务的输入标记为非必要的,并且可以移除该任务。可以应用此过程,直到没有留下非必要的输出以应用于该过程。
图6示出了这种过程的示例。例如,图6示出了其中仅输入的必要性是已知的工作流600A。如图6A所示,已知输入1是必要的,已知输入2是非必要的,已知输出2是必要的,并且已知输出2和输出3是非必要的。
图6还示出了工作流600B,工作流600B是在工作流600A上执行操作610的结果。操作610可对应于上述过程的第一部分。例如,由于输入2是非必要的,并且由于任务2没有其它输入,所以任务2的输出(显示为输入2.1)也被标记为非必要的,并且任务2被移除。
图6还示出了工作流600C,工作流600C是在工作流600B上执行操作620的结果。操作620可对应于上述过程的第二部分。例如,由于输出1是非必要的,并且由于任务6没有其它输出,所以任务6的输入(显示为输出1.2)被标记为非必要的,并且任务6被移除。类似地,由于任务4没有必要的输出,所以任务6的输入(显示为输出1.1)也被标记为非必要的,并且任务6被移除。此外,由于输出3是非必要的,并且由于任务7没有其它输出,所以任务7的输入(显示为输出3)也被标记为非必要的,并且任务7被移除。
因此,作为操作610和620的结果,任务2、任务4、任务6和任务7被移除,因此这些任务可以被确定为非必要的任务。类似地,由于任务1、任务3、任务5和任务8仍然保留,所以这些任务可以被确定为必要的任务。
实施例可涉及一种用于定义工作流中输入、输出和任务的必要性的方法,其中输入、输出或任务可被定义为对于工作流的其余部分是非必要的,并且如果该实体被移除,则工作流仍然正常运行。
实施例可以涉及一种用信号表示任务的必要性的方法,其中在其描述中标志用于用信号表示任务的非必要性。
实施例可以涉及一种用信号表示一个输入或一个输出的必要性的方法,其中在其描述中标志用于用信号表示输入或输出的非必要性。
实施例可以涉及一种在识别工作流的任务的必要性时导出工作流的输入和输出的必要性的方法,其中工作流的必要路径和相应的必要输入-输出对被识别。
实施例可以涉及一种用于在识别工作流的输入和/或输出的必要性时导出工作流的任务的必要性的方法,其中使用该方法简化工作流图直到识别所有非必要任务。
[云上具有可变持续时间的媒体片段的独立处理]
实施例可涉及一种用于独立处理媒体片段的方法,该媒体片段在云中可具有不同的持续时间或尺寸。
图7示出了使用拆分/合并来并行处理片段的过程700的示例。在图7中,任务T被转换为并行运行的任务T的n个实例(即任务T0、任务T1、…、任务TN-1)。
在图7中,媒体流是连续的。然而,1:N分割功能将媒体流转换成N个媒体子流。每个子流由T的实例处理,然后子流被交织在一起以生成相当于任务T输出流的输出。
1∶N分割和N∶1合并功能在片段边界上工作。每个片段具有与一个或多个T的任务片段持续时间(Task Segment Duration,TSD)相等的持续时间,因此,片段和子流在由任务T处理方面是彼此独立。需要注意的是,任务T0、...、TN-1不需要同时处理片段。由于片段和子流是独立的,所以任务的每个实例可以以其速度运行。
由于每个子流中的每个片段携带该片段的起始时间、持续时间和长度,因此这些片段可以按正确的顺序复用在一起。
NBMP修正为上述操作定义了分割器和合并功能模板。
NBMP标准包括步骤描述符,如表7中所示,该步骤描述符用于描述每个功能的处理模式和时间片段持续时间。
表7:NBMP步骤描述符
如表7所示,片段持续时间对于所有片段都是相同的。
[扩展步骤描述符]
实际上,各个片段的片段持续时间(segment duration)可以不同。因此,代替作为运行参数的片段持续时间,实施例可以包括用于分离片段的片段标记。在这种情况下,具有最大的片段持续时间是有用的。实施例还可以用信号表示是否允许可变片段持续时间。
表8:具有可变片段持续时间的步骤描述符
[扩展分割器和合并参考功能模板]
为了使用分割器功能将具有可变片段持续时间的媒体流转换成多个流,然后在使用合并功能处理之后将这些流组合,实施例可以在下文中扩展NBMP分割器和合并参考功能模板。
[分割器]
[NBMP标记名称]
urn:mpeg:mpegi:nbmp:2020:split
[描述]
这些要求假定输入媒体流是连续、没有任何间隙的。在本条款中,[a,b[是指等于或大于a且小于b的时间范围。
分割器功能可以具有以下要求:
●一个输入和N个输出FIFO缓冲器,其中N是分割数的配置参数。
●每次运行一个输入片段并生成N个输出片段
●每个输入片段应满足以下要求:
○连续样本集
○时间尺度T中的最大持续时间N*D,其中D和T是配置参数
○包括以下元数据和约束:
■起始时间s(毫秒)
■时间尺度t
■最大持续时间N*d,其中d=D*T/t是整数,即D*T可被t整除
■长度l(字节)
■当可变持续时间=‘True’时的片段标记,其中片段标记指示每个片段的起始时间
○与其它输入片段不重叠的样本
●输入片段集应涵盖输入的整个持续时间,即在总持续时间中没有漏掉输入样本
●以递增顺序在输入片段上运行,即涵盖较早时间段的片段应在涵盖较晚时间段的任意片段之前被处理
●在任意时间每个输出缓冲器处的媒体流由零或更多个输出片段组成。每个输出片段应满足以下要求:
○样本的连续持续时间
○时间尺度t中d的最大持续时间
○包括以下元数据:
■起始时间s(毫秒)
■时间尺度t
■时间尺度t中的最大持续时间d
■长度l(字节)
●所有输出缓冲器的所有输出片段的集合应涵盖输入的整个持续时间,即在输出片段的集合没有漏掉输入样本。
●分割器应在每个输入片段上运行,并以以下方式将其分成N个输出片段:
○每个输出缓冲器接收一个输出片段。
○每个输入片段被分成N个输出片段,其顺序为s0,s1,…,sN-1,其中片段si涵盖紧随片段si-1和si+1之后的媒体的持续时间。
○输出缓冲器被排序为O0,O1,…,ON-1。
○输出片段si放置在缓冲器Oi中。
[功能描述模板]
表9:分割器功能描述模板
[配置参数]
[参数]
表10:分割器配置参数
表11:MIFIFO可变参数
[JSON架构]
[配置]
表12
[变量]
表13
[事件JSON]
表14
[合并]
[NBMP标记名称]
urn:mpeg:mpegi:nbmp:2020:merge
[描述]
这些要求假定输入媒体流是连续、没有任何间隙的。在本条款中,[a,b[是指等于或大于a且小于b的时间范围。
合并功能应具有以下要求:
●N个输入和一个输出FIFO缓冲器,其中N是分割数的配置参数。
●每次从每个输入缓冲器中运行一个输入片段,总共N个片段,并生成一个输出片段
●每个输入片段应满足以下要求:
○连续样本集
○在时间尺度T中的最大持续时间D,其中D和T是配置参数
○包括以下元数据:
■起始时间s(毫秒)
■时间尺度t
■在t尺度中的最大持续时间d,其中d=D*T/t是整数,即D*T可被t整除
■长度l(字节)
■
○与其它输入片段不重叠的样本
●N个缓冲器的输入片段集应涵盖输入的整个持续时间,即在总持续时间中没有漏掉输入样本。
●以递增顺序在输入片段上运行,即涵盖较早时间段的片段应在涵盖较晚时间段的任意片段之前被处理。
●在任意时间输出缓冲器处的媒体流由零或更多个输出片段组成。每个输出片段应满足以下要求:
○样本的连续持续时间
○在t尺度中N*d的持续时间
○包括以下元数据:
■起始时间s(毫秒)
■时间尺度t
■持续时间N*d
■长度l(字节)
■当可变持续时间=‘True’时的片段标记,其中片段标记指示每个片段的起始时间
●所有输出缓冲器的输出片段的集合应涵盖输入的整个持续时间,即在输出片段的集合没有漏掉输入样本。
●分割器应在来自每个输入缓冲器的每个输入片段运行,并以以下方式将它们合并为一个输出片段:
○分别处理来自输入缓冲器I0、I1、…、IN-1中的每个输入缓冲器的一个片段s0、s1、…、sN-1。片段si包括恰好介于si-1和si+1的时间间隔之间的时间间隔的样本。
○片段s0、s1、…、sN-1按照所示的顺序串联成一个输出片段,使得输出片段包括片段s0、s1、…、sN-1的所有样本且没有重复样本,并且具有EPT的最初表示。
[功能描述模板]
表15:合并功能描述模板
[配置参数]
[参数]
表16:合并配置参数
表17:合并变量参数
[JSON架构]
[配置]
表18
[变量]
表19
[事件JSON]
表20
实施例可以涉及一种用于描述具有可变持续时间片段的媒体的分段方法,其中媒体由具有可变持续时间的独立片段处理,其中步骤描述符被扩展以用信号表示功能对可变片段持续时间的支持。
实施例可以涉及一种用于将媒体流分割为多个媒体子流和将多个媒体子流合并为媒体流的方法,其中在具有可变持续时间的片段上执行分割和合并功能,其中定义片段的边界且在这些边界处执行分割和合并的过程。
[云上处理多维媒体片段]
实施例可以涉及一种用于在云中独立地处理媒体片段的多维媒体片段方法。实施例可以扩展NBMP标准的步骤描述符以定义多维片段。
NBMP标准包括步骤描述符,其用于描述如表21中所示的每个功能的处理模式和时间片段持续时间。
表21:NBMP步骤描述符
[通用概念]
实施例可以将片段维度扩展到时间轴的其他维度。表22示出了该扩展的示例。
表22:多维步骤描述符
●示例1:例如,可以通过以下配置来实现将视频帧划分为分片(tile)以用于步骤处理:
○更高维度-尺寸=2
○更高维度-描述=[宽度,高度]
○更高片段-尺寸=[w,h],其中w和h表示每个独立分片的宽度和高度。
●示例2:对于具有3种颜色分量的视频:
○更高维度-尺寸=1
○更高维度-描述=[RGB]
○更高片段-尺寸=[c],其中c表示颜色分量视频。
参数重叠尺寸指示每个维度中的重叠量。例如,示例1中的重叠尺寸[16 16]表示16个样本在相邻分片的宽度和高度上重叠。
[JSON实现]
上述概念的JSON实施方式如表23所示。
表23
实施例可以涉及一种用于描述多维度媒体信号到多维度片段的分段方法,通过该方法可以独立地处理每个片段,其中在描述符中描述媒体片段的维度及其属性,包括每个维度中的尺寸和每个维度中的重叠量以及处理片段的数量,其中描述符可以在功能描述中使用以用于描述功能的属性,或者在工作流或任务描述中使用以用于描述运行工作流中该功能的处理操作,由此允许独立或并行处理这些多维度片段。
[从工作流描述符配置和策略中排除功能实例和任务]
实施例可以涉及一种用于从工作流描述中定义的一个或多个描述符中排除功能实例和任务的方法。
NBMP修正1包括下列用于排除功能的方法:
[范围描述符]
如表24所示,应包括作为在WDD中定义的描述符的参数范围的描述符,以指示其描述符参数应被忽略的任务。
表24:范围描述符
参数 | 类型 | 基数 |
blacklist | 字符串数组 | 0.1 |
表25:JSON架构
[范围描述符参数]
表26定义了范围描述符中使用的参数。
表26:范围参数
上述实施方式存在许多问题。例如,范围描述符用于排除WDD中用于功能子集的特定描述符。范围描述符在描述符内部使用且不是独立的描述符。范围描述符适用于某些描述符而并非全部描述符。可能使用的描述符是安全、要求、报告和通知。不清楚功能列表是这些功能的名称还是标识符。
因此,还没有定义可以应用中断列表(blackout list)的明确的描述符列表。不清楚是否将中断应用于工作流中的功能、功能实例/任务。工作流描述文档(WDD)可以包括工作流,也可以不包括工作流。如果WDD包括工作流,则WDD具有对象的连接映射和可能的功能限制数组。如果WDD不包括工作流,则将描述符应用于WDD,并且尚未定义功能和任务。工作流管理器可以从一个或多个存储库中选择不同的功能以实现工作流。中断列表是二进制标志,这意味着如果在描述符的中断列表中列出功能,则该描述符不应用于实现该功能的任务。
因为功能限制列出了工作流中每个功能的限制,所以实施例可以涉及将黑名单添加到该元素。
例如,可以进行以下改变:
功能限制
a)可以添加上表中缺少的其它描述符,而与黑名单特征无关。
b)黑名单可以添加数组以列出为功能实例中排除的描述符。
表27:功能限制数组元素
表28中示出了示例JSON实施方式。
表28
如表28所示,实施例可以添加为每个功能实例排除的描述符的列表的简单数组。
表28:处理参数
这种修改可以提供若干好处。例如:
1、作用于功能实例而不是功能。在工作流中,功能实例可以被列入黑名单,而不是该功能的所有实例被列入黑名单。
2、功能限制已经列出了不同的描述符。如果希望描述符对功能实例进行中断,则可以在该数组中对其进行标志。
3、由于中断是单一参数,因此不需要单独的描述符来对其进行定义。
4、如果WDD没有工作流,则WDD可以导出工作流并将其返回给更新的WDD中的NBMP。然后,NBMP源可以将中断标志添加到所需的功能实例/任务。
实施例可以涉及一种用于从功能实例中排除工作流描述文档(WDD)中的任何描述符的方法,其中该功能实例不必实施特定描述符,其中每个功能实例可以具有自身的排除列表,而同一功能的其他功能实例可以具有或者可以不具有相同的排除,其中NBMP源可以在提供工作流时在WDD中提供排除列表,或者,如果没有提供工作流,则工作流管理器可以导出工作流并将其提供给NBMP源,然后NBMP源用每个功能实例/任务的排除列表更新WDD,并将其返回工作流管理器以实施。
[示例性过程]
参考图3和图8,下面描述由NBMP工作流管理器320执行的用于工作流的分割呈现的过程800。
图8是用于重建用于视频解码的当前网络抽象层(Network Abstraction Layer,NAL)单元的示例过程800的流程图。
如图8所示,过程800可以包括导出基于网络的媒体处理(NBMP)工作流(块810)。
如图8进一步所示,过程800可以包括获取至少一个第一语法元素,该第一语法元素指示在NBMP工作流中包括的至少一个任务、由该至少一个任务接收的至少一个输入或由该至少一个任务生成的至少一个输出,是非必要的(块820)。
如图8进一步所示,过程800可以包括基于至少一个第一语法元素确定多个必要的任务(块830)。
如图8进一步所示,过程800可以包括将多个必要的任务分配给在NBMP工作流程中包括的媒体接收器、媒体源和媒体处理实体中的至少一个(块840)。
在实施例中,至少一个第一语法元素可以包括在至少一个任务的通用描述符中包括的第一标志,并且该第一标志可以指示至少一个任务是非必要的。在实施例中,第一标志可以对应于表1的非必要的标志。
在实施例中,可以基于第一标志来确定多个必要的任务。
在实施例中,至少一个第一语法元素可以包括在至少一个输出的输出描述符中包括的第一参数,并且该第一参数可以指示至少一个输出是非必要的。在实施例中,第一参数可对应于表3的非必要的参数。
在实施例中,可以基于第一参数来确定多个必要的任务。
在实施例中,过程800还可以包括:获取步骤描述符,该步骤描述符包括至少一个第二语法元素,该第二语法元素指示与NBMP工作流相关联的至少一个媒体片段的并行处理信息;以及基于并行处理信息来分配多个必要的任务。
在实施例中,至少一个第二语法元素可以包括指示媒体片段的持续时间可变的第二标志,以及指示持续时间中的最大持续时间的第二参数。在实施例中,第二标志可对应于上述元素“可变持续时间”,第二参数可对应于上述元素“片段持续时间”。
在实施例中,至少一个第二语法元素可以包括第三参数,第三参数指示以下至少之一:至少一个媒体片段的时间重叠、至少一个媒体片段的维度数、至少一个媒体片段的维度的描述和至少一个媒体片段的维度的重叠。在实施例中,第三参数可对应于表21中所示的至少一个参数。
在实施例中,过程800还可以进一步包括获取与在NBMP工作流中包括的功能的实例相对应的功能限制列表。在实施例中,功能限制列表可以指示对应功能的限制。在实施例中,功能限制列表可以包括黑名单数组,该黑名单数组指定针对对应于NBMP工作流的工作流描述文档中的功能的实例排除的描述符。
在实施例中,功能限制列表可以是第一功能限制列表,并且功能的实例可以是功能的第一实例,并且与功能的第二实例对应的第二功能限制列表可以不包括黑名单数组。
尽管图8示出了过程800的示例块,但是在一些实施方式中,过程800可以包括与图8中所示的那些块相比的附加的块、更少的块、不同的块或不同布置的块。附加或者可选地,可以并行地执行过程800的两个或更多个块。
此外,所提出的方法可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实施。在一个示例中,一个或多个处理器执行存储在非瞬时性计算机可读介质中的程序以执行所提出的一个或多个方法。
[示例性计算机代码]
根据本公开的实施例,可以提供至少一个具有存储计算机代码的存储器的处理器。当由至少一个处理器执行时,计算机代码可以被配置为执行本公开的任意数量的方面。
例如,参照图9,计算机代码900可以在NBMP系统300中实施。例如,计算机代码可以存储在NBMP工作流管理器320的存储器中,并且可以由NBMP工作流管理器320的至少一个处理器执行。计算代码可以包括例如工作流导出代码910、第一获取代码920、确定代码930和分配代码940。
工作流导出代码910、第一获取代码920、确定代码930和分配代码940可以被配置为使得NBMP工作流管理器320分别执行上述参照图8描述的过程的各个方面。
本公开的实施例可以以任何顺序单独使用或组合使用。此外,可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实施每个实施例(及其方法)。在一个示例中,一个或多个处理器执行存储在非瞬时性计算机可读介质中的程序。
前述公开提供了图示和描述,但不旨在穷举或将实现限制为所公开的精确形式。根据上述公开内容可以进行修改和变化,或者可以从实施方式的实践中获取修改和变化。
如本文所使用的,术语组件(部件)旨在广义地解释为硬件、固件或硬件和软件的组合。
即使在权利要求书中陈述和/或在说明书中公开了特征的特定组合,这些组合并不旨在限制可能的实施方式的公开。实际上,这些特征中的许多特征可以以未在权利要求书中具体陈述和/或在说明书中公开的方式组合。虽然下面列出的每个从属权利要求可以仅直接依赖于一个权利要求,但是可能实现的公开包括每个从属权利要求与权利要求集中的每个其它权利要求的组合。
除非明确描述,否则本公开使用的任何元素、动作或指令不应被理解为关键的或必要的。此外,如本公开所使用的,术语“一”旨在包括一个或多个物品,并且可以与“一个或多个”互换使用。此外,如本公开所使用的,术语“集合”意在包括一个或多个项目(例如,相关项目、非相关项目、相关和非相关项目的组合等),并且可以与“一个或多个”互换使用。在仅意指一项的情况下,使用术语“一”或类似的语言。此外,如本公开所使用的,术语“有”或类似术语是开放式术语。此外,“基于”一词意指“至少部分基于”,除非另有明确说明。
Claims (20)
1.一种由至少一个处理器执行的方法,所述方法包括:
导出基于网络的媒体处理NBMP工作流;
获取至少一个第一语法元素,所述第一语法元素指示在所述NBMP工作流中包括的至少一个任务、由所述至少一个任务接收的至少一个输入或由所述至少一个任务生成的至少一个输出,是非必要的;
基于所述至少一个第一语法元素确定多个必要的任务;以及
将所述多个必要的任务分配给在所述NBMP工作流中包括的媒体接收器、媒体源和媒体处理实体中的至少一个。
2.根据权利要求1所述的方法,其中,所述至少一个第一语法元素包括在所述至少一个任务的通用描述符中包括的第一标志,以及
其中所述第一标志指示所述至少一个任务是非必要的。
3.根据权利要求2所述的方法,其中,基于所述第一标志来确定所述多个必要的任务。
4.根据权利要求1所述的方法,其中,所述至少一个第一语法元素包括在所述至少一个输出的输出描述符中包括的第一参数,以及
其中所述第一参数指示所述至少一个输出是非必要的。
5.根据权利要求4所述的方法,其中,基于所述第一参数来确定所述多个必要的任务。
6.根据权利要求1所述的方法,还包括:
获取步骤描述符,所述步骤描述符包括至少一个第二语法元素,所述第二语法元素指示与所述NBMP工作流相关联的至少一个媒体片段的并行处理信息;以及
基于所述并行处理信息分配所述多个必要的任务。
7.根据权利要求6所述的方法,其中,所述至少一个第二语法元素包括指示媒体片段的持续时间可变的第二标记和指示所述持续时间中的最大持续时间的第二参数。
8.根据权利要求6所述的方法,其中,所述至少一个第二语法元素包括第三参数,所述第三参数指示以下至少之一:所述至少一个媒体片段的时间重叠、所述至少一个媒体片段的维度数、所述至少一个媒体片段的维度的描述和所述至少一个媒体片段的维度的重叠。
9.根据权利要求1所述的方法,其中,所述方法还包括:获取与在所述NBMP工作流中包括的功能的实例相对应的功能限制列表,
其中所述功能限制列表包括黑名单数组,所述黑名单数组指定对应于所述NBMP工作流的工作流描述文档中的所述功能的实例排除的描述符。
10.根据权利要求9所述的方法,其中,所述功能限制列表是第一功能限制列表,所述功能的实例是所述功能的第一实例,以及
其中,对应于所述功能的第二实例的第二功能限制列表不包括所述黑名单数组。
11.一种媒体系统的工作流管理器,所述工作流管理器包括:
至少一个处理器;以及
包括计算机代码的存储器,所述计算机代码包括:
工作流导出代码,被配置为使得所述至少一个处理器导出基于网络的媒体处理NBMP工作流;
第一获取代码,被配置为使得所述至少一个处理器获取至少一个第一语法元素,所述第一语法元素指示在所述NBMP工作流中包括的至少一个任务、由所述至少一个任务接收的至少一个输入或由所述至少一个任务生成的至少一个输出,是非必要的;
确定代码,被配置为使得所述至少一个处理器基于所述至少一个第一语法元素来确定多个必要的任务;以及
分配代码,被配置为使得所述至少一个处理器将所述多个必要的任务分配给在所述NBMP工作流中包括的媒体接收器、媒体源和媒体处理实体中的至少一个。
12.根据权利要求11所述的工作流管理器,其中,所述至少一个第一语法元素包括在所述至少一个任务的通用描述符中包括的第一标志,以及
其中所述第一标志指示所述至少一个任务是非必要的。
13.根据权利要求12所述的工作流管理器,其中,所述确定代码还被配置为使得所述至少一个处理器基于所述第一标志来确定所述多个必要的任务。
14.根据权利要求11所述的工作流管理器,其中,所述至少一个第一语法元素包括在所述至少一个输出的输出描述符中包括的第一参数,以及
其中所述第一参数指示所述至少一个输出是非必要的。
15.根据权利要求14所述的工作流管理器,其中,所述确定代码还被配置为使得所述至少一个处理器基于所述第一参数来确定所述多个必要的任务。
16.根据权利要求11所述的工作流管理器,其中,所述计算机代码还包括第二获取代码,所述第二获取代码被配置为使得所述至少一个处理器获取步骤描述符,所述步骤描述符包括至少一个第二语法元素,所述第二语法元素指示与所述NBMP工作流相关联的至少一个媒体片段的并行处理信息,以及
其中,所述分配代码还被配置成使得所述至少一个处理器基于所述并行处理信息分配所述多个必要的任务。
17.根据权利要求16所述的工作流管理器,其中,所述至少一个第二语法元素包括指示媒体片段的持续时间可变的第二标记和指示所述持续时间中的最大持续时间的第二参数。
18.根据权利要求16所述的工作流管理器,其中,所述至少一个第二语法元素包括第三参数,所述第三参数指示以下至少之一:所述至少一个媒体片段的时间重叠、所述至少一个媒体片段的维度数、所述至少一个媒体片段的维度的描述和所述至少一个媒体片段的维度的重叠。
19.根据权利要求11所述的工作流管理器,其中,所述计算机代码还包括第三获取代码,所述第三获取代码被配置为使得所述至少一个处理器获取与在所述NBMP工作流中包括的功能的第一实例相对应的第一功能限制列表,
其中所述第一功能限制列表包括黑名单数组,所述黑名单数组指定对应于所述NBMP工作流的工作流描述文档中的所述功能的第一实例排除的描述符,以及
其中对应于所述功能的第二实例的第二功能限制列表不包括所述黑名单数组。
20.一种非瞬时性计算机可读介质,其存储有计算机代码,所述计算机代码被配置为当由实现媒体系统的工作流管理器的至少一个处理器执行时,使得所述至少一个处理器执行:
导出基于网络的媒体处理NBMP工作流;
获取至少一个第一语法元素,所述第一语法元素指示在所述NBMP工作流中包括的至少一个任务、由所述至少一个任务接收的至少一个输入或由所述至少一个任务生成的至少一个输出,是非必要的;
基于所述至少一个第一语法元素确定多个必要的任务;以及
将所述多个必要的任务分配给在所述NBMP工作流中包括的媒体接收器、媒体源和媒体处理实体中的至少一个。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063042480P | 2020-06-22 | 2020-06-22 | |
US63/042,480 | 2020-06-22 | ||
US202063087748P | 2020-10-05 | 2020-10-05 | |
US202063087746P | 2020-10-05 | 2020-10-05 | |
US202063087751P | 2020-10-05 | 2020-10-05 | |
US63/087,751 | 2020-10-05 | ||
US63/087,746 | 2020-10-05 | ||
US63/087,748 | 2020-10-05 | ||
US17/352,616 US11743307B2 (en) | 2020-06-22 | 2021-06-21 | Nonessential input, output and task signaling in workflows on cloud platforms |
US17/352,616 | 2021-06-21 | ||
PCT/US2021/038472 WO2021262713A1 (en) | 2020-06-22 | 2021-06-22 | Nonessential input, output and task signaling in workflows on cloud platforms |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114467085A true CN114467085A (zh) | 2022-05-10 |
Family
ID=79022128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180005496.XA Pending CN114467085A (zh) | 2020-06-22 | 2021-06-22 | 云平台工作流中的非必要的输入、输出和任务信令 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11743307B2 (zh) |
EP (1) | EP4026012A4 (zh) |
JP (1) | JP2022553021A (zh) |
KR (1) | KR20220044995A (zh) |
CN (1) | CN114467085A (zh) |
WO (1) | WO2021262713A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11917034B2 (en) | 2022-04-19 | 2024-02-27 | Tencent America LLC | Deployment of workflow tasks with fixed preconfigured parameters in cloud-based media applications |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7639671B2 (en) | 2006-03-07 | 2009-12-29 | Freescale Semiconductor, Inc. | Allocating processing resources for multiple instances of a software component |
US8863222B2 (en) | 2011-05-23 | 2014-10-14 | Broadcom Corporation | Multiplexing, synchronizing, and assembling multiple audio/video (A/V) streams in a media gateway |
US10033702B2 (en) | 2015-08-05 | 2018-07-24 | Intralinks, Inc. | Systems and methods of secure data exchange |
WO2017046789A1 (en) | 2015-09-15 | 2017-03-23 | Gatekeeper Ltd. | System and method for securely connecting to a peripheral device |
US10778600B2 (en) | 2016-03-30 | 2020-09-15 | Intel Corporation | Adaptive workload distribution for network of video processors |
WO2020080956A1 (en) | 2018-10-17 | 2020-04-23 | Tinderbox Media Limited | Media production system and method |
US11431817B2 (en) * | 2018-12-04 | 2022-08-30 | Samsung Electronics Co., Ltd. | Method and apparatus for management of network based media processing functions |
EP3942835A4 (en) * | 2019-03-21 | 2022-09-28 | Nokia Technologies Oy | NETWORK-BASED MEDIA PROCESSING CONTROL |
US11256546B2 (en) * | 2019-07-02 | 2022-02-22 | Nokia Technologies Oy | Methods, apparatuses and computer readable mediums for network based media processing |
US20210390318A1 (en) * | 2020-06-10 | 2021-12-16 | Nokia Technologies Oy | System And Signalling Of Video Splitter And Merger For Parallel Network Based Media Processing |
-
2021
- 2021-06-21 US US17/352,616 patent/US11743307B2/en active Active
- 2021-06-22 EP EP21828825.6A patent/EP4026012A4/en active Pending
- 2021-06-22 KR KR1020227007434A patent/KR20220044995A/ko not_active Application Discontinuation
- 2021-06-22 JP JP2022523175A patent/JP2022553021A/ja active Pending
- 2021-06-22 CN CN202180005496.XA patent/CN114467085A/zh active Pending
- 2021-06-22 WO PCT/US2021/038472 patent/WO2021262713A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP4026012A4 (en) | 2023-03-01 |
JP2022553021A (ja) | 2022-12-21 |
KR20220044995A (ko) | 2022-04-12 |
EP4026012A1 (en) | 2022-07-13 |
US11743307B2 (en) | 2023-08-29 |
WO2021262713A1 (en) | 2021-12-30 |
US20210400097A1 (en) | 2021-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11356534B2 (en) | Function repository selection mode and signaling for cloud based processing | |
US11544108B2 (en) | Method and apparatus for functional improvements to moving picture experts group network based media processing | |
CN114467085A (zh) | 云平台工作流中的非必要的输入、输出和任务信令 | |
US20230224347A1 (en) | Splitter and merger functions for multidimensional segmented media data | |
CN111831834A (zh) | 基于网络的媒体处理(nbmp)中处理媒体内容的方法和装置 | |
US11489898B1 (en) | Method and apparatus for segment-based split and merge functions for parallel processing of media | |
US11917034B2 (en) | Deployment of workflow tasks with fixed preconfigured parameters in cloud-based media applications | |
EP4118649B1 (en) | Method for switching workflow or updating workflow with continuity and no interruption in dataflow | |
US11917269B2 (en) | Multidimensional metadata for parallel processing of segmented media data | |
JP7416482B2 (ja) | ネットワークベースのメディア処理ワークフローを管理するための方法、ワークフローマネージャおよびコンピュータプログラム | |
US20230019558A1 (en) | Method and apparatus for signaling independent processing of media segments on cloud using metadata and startcode | |
US20230108435A1 (en) | Method and apparatus for parallel transcoding of media content on cloud | |
CN117917062A (zh) | 在基于云的媒体应用中部署具有固定预配置参数的工作流任务 | |
CN115552865A (zh) | 用于表示云工作流输入和输出的协议特征的方法 | |
CN111831842A (zh) | Nbmp中处理媒体内容的方法、装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40071736 Country of ref document: HK |