用于计算平台上的功能实现的计算资源估计的制作方法

文档序号:28130267发布日期:2021-12-22 16:25阅读:86来源:国知局
用于计算平台上的功能实现的计算资源估计的制作方法
用于计算平台上的功能实现的计算资源估计
1.引用并入
2.本技术要求于2020年9月22日提交的申请号为17/028,426的美国专利申请“用于计算平台上的功能实现的计算资源估计(compute resource estimation for function implementation on computing platform)”的优先权,该美国专利申请要求于2019年9月28日提交的申请号为62/907,629的美国临时专利申请“用于云平台上的功能实现的资源估计子(resource estimators for function implementations in cloud platform)”。所述在先申请的全部公开内容通过引用整体并入本技术中。
技术领域
3.本技术涉及用于在计算平台(例如,计算机或云平台)上实现处理功能的计算资源估计方法。一些实施例涉及基于网络的媒体处理(nbmp)。


背景技术:

4.本文中提供的背景技术描述是为了大体上呈现本技术的上下文。在此背景技术部分描述的程度上,当前署名的发明人的工作,以及在本技术提交时可能不具有作为现有技术的资格的描述的各方面,既不明确认为也不隐含认为是本技术的现有技术。
5.多媒体服务提供者面临着使他们的服务适应多个云和网络服务提供者以到达他们的客户的挑战。这些云和网络服务提供者经常定义他们自己的应用程序接口(api)来给他们的客户分配计算资源。目前正在开发基于网络的媒体处理(nbmp)标准,以处理碎片化并提供统一的方式在任何云平台上和任何ip网络上进行媒体处理。nbmp定义了工作流管理器,工作流管理器可以使用现成的媒体处理功能的实现,将它们组合在一起以创建媒体处理工作流。


技术实现要素:

6.本技术的各方面提供了一种用于实现处理功能的资源估计方法。所述方法可以包括:接收资源需求参数的默认值,该资源需求参数的默认值指示用于在计算平台上,用处理功能的配置参数和输入参数的一个或多个默认参数值,实例化所述处理功能的参考实例的默认资源需求;以及基于所述资源需求参数的默认值,以及所述处理功能的配置参数和输入参数的所述一个或多个默认参数值和一个或多个当前参数值,估计所述资源需求参数的当前值,该资源需求参数的当前值指示用于在所述计算平台上,使用所述处理功能的配置参数和输入参数的一个或多个当前参数值,实例化所述处理功能的当前实例的当前资源需求。
7.在实施例中,所述资源需求参数是以下之一:计算性能参数,其指示中央处理单元(cpu)或图形处理单元(gpu)的性能;内存大小参数;以及内存访问带宽参数,其指示cpu与内存之间的带宽。
8.在实施例中,所述指示当前资源需求的资源需求参数的当前值可以基于以下表达
式进行估计:
9.当前值=估计子*默认值,
10.其中,所述估计子是所述处理功能的所述配置参数和输入参数的一个或多个当前参数值的函数。
11.在示例中,当所述处理功能的配置参数和输入参数的所述默认参数值和所述一个或多个当前参数值相同时,所述估计子等于1。在示例中,所述估计子是从存储包括所述处理功能的媒体处理功能的功能储存库接收的,所述功能储存库属于基于网络的媒体处理(nbmp)系统。
12.在示例中,所述估计子、所述资源需求参数的默认值、以及所述配置参数和输入参数的一个或多个默认参数值和一个或多个当前参数值,包括在从属于nbmp系统的功能储存库接收的所述处理功能的功能描述的描述符之中。
13.所述方法的实施例可以还包括:基于估计的资源需求参数的当前值,请求用于用所述处理功能的所述配置参数和输入参数的所述一个或多个当前参数值在当前计算平台上实例化所述处理功能的当前实例的计算资源;以及使用所请求的计算资源,在所述当前计算平台上实例化所述处理功能的当前实例。
14.本技术的各方面提供了一种包括电路的装置。所述电路可以配置为:接收资源需求参数的默认值,该资源需求参数的默认值指示用于在计算平台上,用处理功能的配置参数和输入参数的一个或多个默认参数值,实例化所述处理功能的参考实例的默认资源需求;以及基于所述资源需求参数的默认值,以及所述处理功能的配置参数和输入参数的所述一个或多个默认参数值和一个或多个当前参数值,估计所述资源需求参数的当前值,该资源需求参数的当前值指示用于在所述计算平台上,使用所述处理功能的配置参数和输入参数的一个或多个当前参数值,实例化所述处理功能的当前实例的当前资源需求。
15.本技术的各方面进一步提供了一种存储指令的非易失性计算机可读介质,所述指令在由处理器执行时,使所述处理器执行所述用于实现处理功能的资源估计方法。
附图说明
16.根据以下详细描述和附图,所公开的主题的进一步的特征、性质和各种优点将变得更加明显,其中:
17.图1示出了根据本技术实施例的示例性数据处理系统。
18.图2示出根据本技术实施例的工作流的示例。
19.图3示出了根据本技术实施例的用于实现处理功能的资源估计的示例性过程。
20.图4示出了根据本技术实施例的计算机系统的示意图。
具体实施方式
21.i.基于网络的媒体处理
22.本技术的各方面描述了与基于网络的媒体处理(nbmp)架构有关的资源估计方法。nbmp架构可用于初始化和控制网络中(例如,云平台上)的媒体处理。例如,nbmp源描述所请求的媒体处理,并提供关于媒体数据的性质和格式信息。作为响应,nbmp工作流管理器可以建立媒体处理工作流,并通知nbmp源工作流就绪,可以启动所请求的媒体处理。媒体源然后
可以开始向网络发送媒体以进行处理。
23.nbmp工作流可以理解为是媒体处理任务的连接图,每个媒体处理任务执行明确定义的媒体处理操作。工作流管理器通过配置和监控每个任务以及工作流输出,确保工作流的正确操作。工作流管理器负责基于从nbmp源接收的工作流描述,选择媒体处理功能,并将所选择的功能实例化为任务。
24.当工作流管理器对媒体服务提供商隐藏与底层云计算平台的交互时,可以建立、加载和监控运行媒体处理任务的媒体处理实体(mpe)。在建立mpe的过程期间,本技术中所描述的资源估计方法可用于估计对实例化媒体处理任务有用的资源量。
25.图1示出了根据本技术实施例的示例性nbmp系统(100)。nbmp系统(100)可以支持现有的媒体传送方法,例如,流式传输、文件传送、基于推送的渐进下载、混合传送、多路径和异构网络环境。nbmp系统(100)还可以通过提供各种基于云的媒体处理能力来启用新兴的媒体应用,诸如网络辅助的媒体质量增强(例如,虚拟现实(vr)拼接、视频放大(up

scaling)、用于自适应流式传输的移动边缘编码、以及内容感知的云转码)、网络辅助的媒体分发(例如,直播媒体摄取、在线转码、以及媒体感知的高速缓存)、网络辅助的媒体合成(例如,增强视频的流式传输、定制的媒体合成)、沉浸式媒体处理(例如,网络聚合点云媒体)等。
26.如图所示,nbmp系统(100)可以包括nbmp源(101)、nbmp工作流管理器(103)、功能储存库(function repository)(105)、媒体源(111)、数据处理实体(mpe)(113)和媒体接收器(media sink)(115)。nbmp系统(100)可以包括附加的媒体源、媒体接收器和/或mpe。
27.nbmp源(101)可以描述或以其它方式指示要由媒体处理实体(113)执行的媒体处理操作。功能储存库(105)可以存储各种媒体处理功能。nbmp源(101)和nbmp工作流管理器(103)可以从功能储存库(105)中检索媒体处理功能。媒体处理功能或功能可用于执行特定的媒体处理过程,诸如360度视频流式传输服务中的拼接过程、视频传送服务中的基于人工智能(ai)的视频放大过程等。
28.媒体处理任务或任务可以是由mpe(113)执行的功能的运行时间实例(instance)。nbmp工作流或工作流可以由一个或多个连接起来的任务的图(例如,有向无环图(dag))表示,所述一个或多个连接起来的任务实现所请求的媒体处理。nbmp工作流管理器(103)或工作流管理器(103)可以例如基于工作流描述文档(wdd)来提供一个或多个任务并连接一个或多个任务,以创建、控制、管理和监控工作流。
29.媒体源(111)可以提供要由工作流处理的媒体内容(例如,媒体数据、补充信息)。补充信息可包括与媒体数据相关的元数据或辅助信息。媒体源(111)可以向工作流提供输入。媒体接收器(115)可以使用工作流的输出。mpe(113)可以运行一个或多个媒体处理任务来处理媒体内容。
30.nbmp系统(100)中的不同实体(例如,nbmp源(101)、工作流管理器(103)和mpe(113))可以使用api来调用和响应媒体服务请求,如图1所示。api可以包括nbmp工作流api(或工作流api)、功能发现api和任务api。工作流api可以提供nbmp源(101)和工作流管理器(103)之间的接口。任务api可以提供工作流管理器(103)和媒体处理任务之间的接口。功能发现api可以提供工作流管理器(103)/nbmp源(101)和功能储存库(105)之间的接口。
31.上述nbmp接口可用于创建和控制网络中的媒体处理工作流。nbmp系统(100)可以
被分割成控制平面和媒体平面(或媒体数据平面)。控制平面可以包括工作流api、功能发现api和任务api。
32.nbmp源(101)可以使用工作流api来创建和控制媒体处理工作流。nbmp源(101)可以使用工作流api与工作流管理器(103)通信,用于配置和控制网络中的媒体处理。当nbmp源(101)通过在工作流api的操作中包括工作流资源(wr)而向工作流管理器(103)发送请求时,工作流管理器(103)可以解析wr、所包括的wdd和对应的描述符,并根据所请求的操作采取适当的动作。然后,工作流管理器(103)可以用响应来确认该请求。工作流api操作可包括创建工作流(例如,createworkflow)、更新工作流(例如,updateworkflow)、删除工作流(例如,deleteworkflow)、检索工作流(例如,retrieveworkflow)等。
33.功能发现api可以为工作流管理器(103)和/或nbmp源(101)提供手段,用于发现可以作为媒体处理工作流的一部分而加载的媒体处理功能。
34.工作流管理器(103)可以使用任务api在运行时配置和监控一个或多个任务(例如,由mpe(113)运行的任务1和任务2)。例如,在mpe(113)中为任务分配资源之后,任务api可以定义用于由工作流管理器(103)配置媒体处理任务的一个或多个接口。任务api操作可包括创建任务(例如,createtask)、更新任务(例如,updatetask)、获取任务(例如,gettask)、删除任务(例如,deletetask)等。
35.在媒体平面上,可以定义nbmp源(111)和一个或多个任务之间以及任务与任务之间的媒体格式、元数据和补充信息格式。
36.工作流描述(wd)可以从nbmp源(101)传递给工作流管理器(103)。wd可以描述工作流的诸如输入数据和输出数据、功能和其它要求等信息。
37.工作流管理器(103)可以从nbmp源(101)接收wdd,并且可以为所请求的媒体处理构建工作流。在工作流过程中,例如可以从功能储存库(105)中选择媒体处理功能,然后可以将对应的媒体处理任务配置并分发给一组一个或多个mpe(例如,包括mpe(113))。
38.功能储存库(105)提供的一组功能可以由nbmp源(101)和工作流管理器(103)读取。在实施例中,nbmp源(101)请求使用功能储存库(105)中的一组功能来创建工作流。相应地,nbmp源(101)被配置为选择工作流的功能。nbmp源(101)可以如下所述请求创建工作流。nbmp源(101)可以使用创建工作流所用的媒体处理任务的描述,并且可以指定连接图来定义媒体处理任务的输入和输出的连接。当工作流管理器(103)从nbmp源(101)接收到上述信息时,工作流管理器(103)可以基于相应的功能名称来实例化媒体处理任务,并且可以根据连接图来连接媒体处理任务。
39.可选地,nbmp源(101)可以使用一组关键字来请求创建工作流,工作流管理器(103)可以通过该组关键字来构造工作流。相应地,nbmp源(101)可能不知道要插入到工作流中的一组功能。nbmp源(101)可以如下所述请求创建工作流。nbmp源(101)可以使用一组关键字,工作流管理器(103)可以通过该组关键字来找到适当的功能,并且nbmp源(101)可以使用合适的工作流描述来说明工作流的要求。
40.当工作流管理器(103)从nbmp源(101)接收到上述信息(例如,一组关键字)时,工作流管理器(103)可以通过使用关键字搜索适当的功能来创建工作流,所述关键字例如在处理描述符中指定。工作流管理器(103)然后可以使用工作流描述中的其它描述符来提供媒体处理任务并连接媒体处理任务,以创建最终工作流。
41.工作流管理器(103)的处理模型可以如下所述。
42.工作流管理器(103)可以如下发现可用的媒体处理功能。nbmp功能储存库(105)可以提供功能发现接口(或api),以允许外部实体查询可以实现所请求的处理的媒体处理功能。工作流管理器(103)可以访问目录服务,该目录服务提供可搜索的媒体处理功能列表。工作流管理器(103)可以使用工作流描述中的媒体处理任务的描述,找到工作流的适当功能。
43.工作流的媒体处理任务的选择可以如下所述。当从nbmp源(101)接收到对媒体处理的请求时,工作流管理器(103)可搜索功能储存库(105),以找到可实现该工作流的所有可用功能的列表。使用来自nbmp源(101)的工作流描述,工作流管理器(103)可以从功能储存库(105)中找到功能以实现工作流,这可以取决于来自nbmp源(101)的媒体处理信息。媒体处理信息可以包括输入和输出描述、所请求的处理的描述、以及功能目录(105)中的功能的其它描述符中的信息。将源请求映射到要包括在工作流中的适当媒体处理任务,可以是在网络中实现nbmp的一部分。为了在创建任务时,引用并链接具有输入端口名称和输出端口名称的输入源,输入端口和输出端口可用于引用输入流。
44.对要被实例化为任务的适当功能的搜索,可以由工作流管理器(103)使用功能发现api来执行。或者,工作流管理器(103)可使用功能发现api来检索功能储存库(105)中的某些或所有合适功能的详细信息。然后,工作流管理器(103)可以将来自nbmp源(101)的媒体处理信息与每个功能的不同描述符进行比较。
45.可以在工作流中配置所选择的媒体处理任务。当识别出要包括在工作流中的功能时,nbmp工作流管理器(103)可以将这些功能实例化为相应的任务,并配置这些任务,使得这些任务可以被添加到工作流中。nbmp工作流管理器(103)可以从接收自nbmp源(101)的媒体处理信息中提取配置数据,并配置对应的任务。任务的配置可以使用任务api(例如,nbmp任务api)来执行。
46.任务分配和分发可以如下描述。工作流管理器(103)可以使用工作流来执行处理部署和配置媒体处理实体。在示例中,对于计算密集的媒体处理请求,工作流管理器(103)可建立多个计算实例,并在多个计算实例之间分发工作负载。因此,工作流管理器(103)可以根据需要连接和配置多个计算实例。在示例中,工作流管理器(103)将相同的任务分配给多个实例,并提供负载平衡器以使用所选择的调度机制在多个实例之间分发工作负载。在可选示例中,工作流管理器(103)将同一任务的不同操作分配给不同实例(例如,并行操作)。在上述两个示例中,工作流管理器(103)可以在实例之间建立工作流路径,并且因此可以成功地实现合适的工作负载。工作流管理器(103)可以配置任务,以将经处理的媒体数据/流推送到(或通过拉机制使它们可用)工作流图中的下一任务。
47.当工作流管理器(103)从nbmp源(101)接收到wdd时,工作流管理器(103)可以选择要插入到工作流中的媒体处理功能。当要包括在工作流中的任务列表编译好时,工作流管理器(103)然后可以连接任务以准备工作流。
48.工作流管理器(103)可以生成例如由图形(例如,dag)表示的工作流。图2示出了根据本技术实施例的图形(例如,dag)(200)的示例。dag(200)可以包括多个节点(t1)

(t6)和多个链路(或连接)(202)

(208)。在示例中,dag(200)表示工作流(200)。
49.dag(200)的每个节点可以表示工作流(200)中的媒体处理任务。将dag(200a)中的
第一节点(例如,节点(t1))连接到第二节点(例如,节点(t2))的链路(例如,链路(202)),可以表示传输第一节点(例如,节点(t1))的输出作为第二节点(例如,节点(t2))的输入。
50.通常,工作流可以包括任何合适数量的输入(或工作流输入)和任何合适数量的输出(或工作流输出)。工作流输入可以连接到媒体源(111)、其它工作流等等之类,工作流输出可以连接到媒体接收器(115)、其它工作流等等之类。工作流(200)具有输入(201)以及输出(209)和输出(210)。在一些实施例中,工作流(200)可以具有来自中间节点的一个或多个输出。
51.ii.在云平台上实现功能的资源估计
52.为了在云平台上实现或实例化媒体处理功能,可以执行资源估计以确定实现媒体处理功能所需的计算资源的量。例如,在图1的示例中,基于来自nbmp源(101)的媒体处理请求,nbmp工作流管理器(103)可以从功能储存库(105)中选择一个或多个媒体处理功能。随后,nbmp工作流管理器(103)可以估计将所选择的媒体处理功能转换为任务需要多少计算资源。基于估计的计算资源的量,nbmp工作流管理器(103)可以从将存储(host)任务的云平台请求计算资源。
53.例如,响应于对计算资源的请求,云平台的资源管理功能(例如,资源管理器)可以相应地分配计算资源(例如,计算、内存、网络等的资源)。例如,可以提供和分配虚拟机来执行任务。这些虚拟机可以充当nbmp架构(100)中的一个或多个mpe。当那些分配的资源变得可由nbmp工作流管理器(103)使用时,nbmp工作流管理器(103)可以实例化选择的媒体处理功能,以开始任务。
54.通常,用于媒体处理的云平台可以由不同的云运营商拥有,并且因此具有可以频繁更新的各种硬件模块。不同硬件平台上的媒体处理功能(例如,媒体处理库)的性能可以不同,例如,取决于中央处理单元(cpu)、图形处理单元(gpu)、l1和l2高速缓存、memcached、内存带宽、硬件加速模块、系统时钟、cpu或gpu时钟、网络配置或其它参数。换言之,对于给定的性能要求(例如,帧速率和图片分辨率),在不同的云平台上可能需要不同的计算资源。因此,对于在各种云平台中使用的不同硬件系统而言,使用单一的一组度量标准来描述媒体处理功能的资源需求是困难的或不可行的。
55.另一方面,媒体处理功能的实现或实例的资源需求可以取决于要执行的处理工作的复杂度(或性质)。处理工作的复杂度可以取决于媒体处理功能中使用的算法(对于该媒体处理功能不变)和处理工作的配置(可以变化)。在本技术中,媒体处理功能的实现或实例的资源需求或要求称为媒体处理功能的实现或实例的复杂度,或者与特定实例或实现相对应的媒体处理功能的复杂度。
56.以视频编码器的媒体处理功能为例,处理工作的复杂度可以根据输入数据的大小(输入参数)和处理配置(配置参数)而变化。例如,输入数据的大小可以由帧大小、帧速率、比特深度、颜色分量的数量、分量颜色格式等来表示。处理配置可以包括用于预测的参考帧的数量、编码模式(例如,用于算术编码的上下文配置文件的数量、以及上下文配置文件的大小)、图块和图块组的数量、目标比特率等。因此,当媒体处理功能的输入参数和配置参数改变时,实现该媒体处理功能所需的资源可以改变。
57.相应地,在本技术公开的资源估计方案中,为了描述实现具有给定配置(输入参数和配置参数)的媒体处理功能的计算资源需求,定义了具有参考配置的媒体处理功能的参
考实例,并将其用作基准(参考)。该参考配置可以对应于一组参考输入参数和配置参数。具有给定配置的媒体处理功能的当前实例的资源需求可以相对于具有参考配置的参考实例的资源需求来进行描述。
58.此外,在资源估计方案中,可以将当前实例的资源需求定义为媒体处理功能的输入参数和配置参数的函数。这样的函数可以称为资源估计函数(ref)。换言之,当媒体处理功能的配置(输入参数和配置参数)改变时,可以根据基准实例的资源需求,基于ref来确定各个实例的不同资源需求。
59.在本技术中,参考实例的参考配置可以称为默认实例的默认配置。参考配置的参考输入参数和参考配置参数可以称为默认实例的默认输入参数和默认配置参数。参考实例的资源需求可以称为默认实例的默认资源需求。另一方面,可以将当前实例的给定配置称为当前配置。当前实例的给定配置的输入参数和配置参数可以称为当前输入参数和当前配置参数。当前实例的资源需求可以称为当前实例的当前资源需求。
60.在资源估计方案中,对于某个媒体处理功能,可以提供与用于实例化媒体处理功能的默认实例的一组默认输入参数和配置参数相对应的默认资源需求。在示例中,用为媒体处理功能定义的目标性能需求导出默认资源需求。
61.通常,用于实例化媒体处理功能的资源需求可基于诸如cpu或gpu的计算性能的度量的一组度量标准来指定,例如,以每秒浮点运算次数(flops)、内存大小(例如,随机存取存储器(ram))、内存访问带宽(cpu与内存之间)等形式。用于指示资源需求的那些度量标准的值可以称为资源需求参数或资源参数。相应地,默认资源需求可以由一组默认资源需求参数来表示。
62.可以使用考虑了功能的算法和默认配置参数的分析方法,来导出默认资源需求。可替换地或附加地,可以采用实验方法来确定与默认配置参数相对应的默认资源需求。在示例中,默认资源需求的推导可以基于具有一定硬件和软件配置的参考云平台。
63.此外,在资源估计方案中,可以将与不同的资源需求度量标准对应的一组ref与媒体处理功能一起提供。每个ref可以定义与媒体处理功能的不同实例对应的各个资源需求度量标准的值与可变配置参数(例如,输入参数和配置参数)的值之间的关系。在示例中,ref可以以方程的形式提供。相应地,可以使用具有给定(当前)配置参数的ref来计算当前资源需求的度量标准。在示例中,ref可以以包括条目的查找表的形式提供,每个条目包括一对度量值和一组当前配置参数值。
64.在用于实例化媒体处理功能的资源估计过程期间,可以以如下方式使用资源估计方案。图1示例中的nbmp工作流管理器(103)可以从功能储存库(105)接收默认资源需求、默认输入参数和默认配置参数的值以及一个或多个ref(或指示ref的信息)。此外,nbmp工作流管理器(103)可以从nbmp源(101)接收与媒体处理功能的当前实例相对应的一组当前输入参数和配置参数。基于这些可用信息,nbmp工作流管理器(103)可以估计当前实例的当前资源需求的度量值。
65.在实施例中,资源估计方案的实现可以如下。对于要被实例化为当前实例的媒体处理功能,令当前实例的输入参数由集合{p}来定义。集合{p}可以包括诸如图片宽度、图片高度、帧速率、比特深度、颜色分量的数量、颜色分量的样本比率等参数。令当前实例的配置参数由集合{c}定义。集合{c}可以包括诸如目标比特率、编码模式、选择模式、参考帧数等
参数。
66.此外,对于媒体处理功能的参考实例,令参考实例的默认输入参数由{p0}定义。令参考实例的默认配置参数由{c0}定义。
67.此外,令用于实例化具有默认输入参数{p0}和配置参数{c0}的参考实例的默认资源需求由默认资源需求参数{h0,m0,b0}来定义。默认资源参数h0可以是例如表示为flops的数目的cpu或gpu的默认计算复杂度(计算性能)。默认资源参数m0可以是默认内存大小,例如,表示为兆字节数(mb)。默认资源参数b0可以是cpu

内存访问带宽。
68.给定当前实例的上述当前参数{p}和{q}以及参考实例的默认参数{p0}、{c0}和{h0,m0,b0},可以根据以下ref确定当前实例的当前资源需求:
69.{h,m,b}={e
h
({p},{c}).h0,e
m
({p},{c}).m0,e
b
({p},{c}).b0}。
70.或者,上述表达式可以用以下方式表示:
71.h=e
h
({p},{c}).h0,
72.m=e
m
({p},{c}).m0,
73.b=e
b
({p},{c}).b0。
74.参数{h,m,b}是表示用于实例化具有当前参数{p}和{c}的当前实例的当前资源需求的当前资源参数。
75.在ref中,变量e
h
、e
m
和e
b
被称为资源估计估计子(ree)或估计子,并且可以根据图1示例中的功能储存库(105)中的功能来定义。每一估计子对应于三个资源需求度量标准中的一者:cpu或gpu的计算性能、内存大小和cpu内存访问带宽。相应地,估计子e
h
、e
m
和e
b
可以分别被称为计算估计子、内存估计子和带宽估计子。
76.使用拼接功能作为媒体处理功能的示例,ref的推导和定义解释如下。拼接功能可用于将两个相邻帧沿垂直方向拼接在一起,例如,在360度视频流式传输的媒体处理中。用于实现拼接功能的计算复杂度(资源需求)可以取决于图片高度和输入数据的帧速率。相应地,拼接功能的计算估计子e
h
和内存估计子e
m
可以按如下方式推导:
[0077][0078][0079]
其中,参数h0、f0和w0是默认输入参数,表示与拼接功能的参考实例相对应的默认图片高度、默认帧速率和默认图片宽度;参数h、f和w为当前输入参数,表示拼接功能当前实例对应的当前图片高度、当前帧速率和当前图片宽度。
[0080]
可以看出,计算估计子和内存估计子是当前输入参数的函数。当当前输入参数与默认输入参数相同时,计算估计子和内存估计子在本示例中可以具有值1。相应地,各个当前资源参数可以与各个参考资源参数相同。
[0081]
在另一示例中,相同的拼接功能用于拼接n个帧的序列。数字n可以是3、4等。在相邻两个帧之间进行拼接操作。总之,执行n

1次拼接操作,以将n个帧连接在一起。在这样的配置下,拼接功能的计算估计子e
h
和内存估计子e
m
可以按如下方式推导:
[0082]
[0083][0084]
在另一示例中,将视频编码器的功能认为是媒体处理功能的示例。视频编码器功能的计算复杂度(资源需求)可以是输入帧宽度w、帧高度h和帧速率f的乘数。相应地,用于该视频编码器功能的计算估计子e
h
和内存估计子e
m
可以是:
[0085][0086][0087]
相应地,视频编码器功能的计算复杂度增加了帧宽度w、帧高度h和帧速率f的乘数。如果帧宽度w、帧高度h和帧速率f中的每一个加倍,则相应的输入视频的实时处理所需的资源将增加8倍。
[0088]
对于视频编码器功能,如果参考帧的数量从1增加到k,则内存估计子e
m
变为:
[0089][0090]
请注意,在不同的实施例中,用于指示实例化功能的资源需求的资源需求度量标准可以是不同的。例如,对于同一功能,可在不同的nbmp系统中定义不同的度量标准(例如,不同的定义和/或不同的数目),且不同的nbmp系统中,度量标准的数目可以变化。或者,对于同一nbmp系统中的不同功能,可以采用不同的度量标准(例如,不同的数目和/或不同的定义)。因此,ref和ree可以相应地因功能而变化,或者因nbmp系统而变化。
[0091]
此外,媒体处理功能的输入参数和配置参数可以根据媒体处理功能定义,并且因此可以针对不同的媒体处理功能而变化。
[0092]
iii.在功能描述中包括估计子
[0093]
在各种实施例中,资源估计估计子(例如,e
h
、e
m
和e
b
)和默认资源估计参数(或默认参数)(包括默认输入参数{p0}、默认配置参数{c0}和默认资源参数(例如,{h0,m0,b0}))可以作为与相应的媒体处理功能相关联的功能描述的一部分来提供。例如,媒体处理功能可以由服务提供商例如以程序或程序库的形式来提供。服务提供商可以确定并提供估计子和默认参数作为媒体处理功能的相关部分。
[0094]
在实施例中,媒体处理功能的估计子和默认参数包括在图1示例中的nbmp系统(100)中的媒体处理功能的功能描述的一个或多个描述符中。
[0095]
例如,媒体处理功能的描述可以存储在功能储存库(105)中,并且包括用于描述媒体处理功能的一组描述符。在一个示例中,该组描述符可以包括以下描述符中的一个或多个:通用、输入、输出、处理、要求、配置、客户端

辅助、声明、变量、事件和安全性。例如,运动图像编码专家组(mpeg)开发的nbmp标准规定了用于功能储存库中的功能的标准化功能描述和相应的描述符。
[0096]
在示例中,输入描述符可以包括两个对象阵列:一个用于媒体输入,一个用于元数据输入。类似地,输出描述符可以包括两个对象阵列:一个用于媒体输出,一个用于元数据输出。例如,输入或输出媒体

参数对象可以包括流标识(id)、名称、关键字、多用途互联网邮件扩展类型(mime

type)、视频格式、音频格式、图像格式、编解码器类型、协议、吞吐量、
缓冲器大小、高速缓存服务器统一资源定位符(url)等。输入或输出元数据参数对象可以包括流id、名称、关键字、多用途互联网邮件扩展类型、编解码器类型、协议、最大尺寸、最小间隔、高速缓存服务器url、方案通用资源标志符(uri)等。
[0097]
在示例中,配置描述符提供用于配置功能的参数的细节。
[0098]
在示例中,需求描述符提供表1中列出的需求参数。
[0099]
表1需求描述符
[0100][0101]
表2中示出了表1底部的一组资源估计参数的示例。
[0102]
表2资源估计子参数
[0103][0104]
[0105]
在表2中,默认值可以包括用作表2中列出的资源估计子的参考的默认资源估计参数的名称

值对列表。例如,默认资源估计参数可以包括默认输入参数{p0}、默认配置参数{c0}、以及默认资源参数(例如,{h0,m0,b0})。
[0106]
在表2中,接下来的3个条目包括媒体处理功能的估计子e
h
、e
m
和e
b
的信息。在示例中,接下来的3个条目为估计子e
h
、e
m
和e
b
中的每一个提供估计子方程。例如,对于估计子e
h
,估计子方程可以被描述为编程方程:
[0107]
e
h
=(高度/高度0)*(帧速率/帧速率0),
[0108]
其对应于以下方程:
[0109][0110]
在另一个示例中,接下来的3个条目为估计子e
h
、e
m
和e
b
中的每一个提供估计子表达式。例如,对于估计子e
h
,估计子表达式可以被描述为编程方程:
[0111]
(高度/高度0)*(帧速率/帧速率0),
[0112]
其对应于以下表达式:
[0113][0114]
在实施例中,媒体处理功能的输入描述符、输出描述符和配置描述符中的一个或多个还包括该组资源估计参数。表2中的资源估计参数对于输入、输出、配置和要求描述符具有相同的名称、格式和语义。
[0115]
请注意,这里公开的计算资源估计方案不限于媒体处理功能或nbmp系统,尽管nbmp系统中的媒体处理功能用于示例来解释计算资源估计方案。对于用于各种处理目的的任何类型的功能、应用、软件、程序库等,计算资源估计方案可以用于资源估计,以便请求和分配足够的计算资源。此外,计算资源可以是基于云的或非基于云的(例如,计算机或一组计算机的资源)。
[0116]
iv.用于功能实现的计算资源估计的示例性过程
[0117]
图3示出了根据本技术实施例的用于实现处理功能的计算资源估计的示例性方法(300)。处理功能可以是媒体处理功能,或者可以是非媒体应用的其它类型功能之一。在一个示例中,过程300可由图1示例中的nbmp工作流管理器(103)执行。在其它示例中,过程300可由不属于nbmp系统的实体来执行。这样的实体起到nbmp工作流管理器(103)的作用,并且提供将处理功能实例化为任务的服务。方法(300)可以从(s301)开始,进行到(s310)。
[0118]
在(s310)处,可以接收资源需求参数的默认值。资源需求参数的默认值可以指示用于在计算平台(例如,云平台)上实例化处理功能的参考实例的默认资源需求。参考实例可以用处理功能的配置参数和输入参数的一组一个或多个默认参数值来实例化。
[0119]
此外,还可以在(s310)接收配置参数和输入参数的所述一组默认参数值。在示例中,可以从图1示例中的功能储存库(105)接收资源需求参数的默认值以及配置参数和输入参数的默认参数值。在另一示例中,可以从与任何nbmp系统无关的源,接收资源需求参数的默认值以及配置参数和输入参数的默认值。
[0120]
在(s320),可以估计资源需求参数的当前值。资源需求参数的当前值可以指示用于在计算平台上实例化处理功能的当前实例的当前资源需求。当前实例可以用处理功能的
配置参数和输入参数的一组一个或多个当前参数值来实例化。此外,资源需求参数的当前值的估计可以基于处理功能的复杂度参数的默认值以及配置参数和输入参数的默认参数值和当前参数值。
[0121]
例如,可以从功能储存库(105)或与nbmp系统无关的源,接收与资源需求参数对应的估计子。估计子可以是处理功能的配置参数和输入参数的一个或多个当前参数值的函数。相应地,资源需求参数的当前值的估计可以基于以下表达式:
[0122]
当前值=估计子*默认值。
[0123]
作为示例,可以从诸如图1示例中的nbmp源(101)等处理功能的用户,接收处理功能的配置参数和输入参数的当前参数值。
[0124]
在(s330),可以请求用于在当前计算平台上实例化处理功能的当前实例的计算资源。该请求可以基于估计的资源需求参数的当前值。例如,nbmp工作流管理器(103)可以使用当前计算平台提供的api,将请求发送到当前计算平台。
[0125]
在示例中,将估计的资源需求参数的当前值发送到计算平台。在示例中,向计算平台发送指示所请求的资源的转换值。例如,当前计算平台可以具有特定的api,并且使用与用于估计的度量标准(例如,资源需求参数)不同的度量标准来指示计算资源。nbmp工作流管理器(103)可以将估计的资源需求参数的当前值转换为计算平台所使用的度量标准的值,并将转换后的值包括在请求中。
[0126]
在示例中,不同于方法(300),nbmp工作流管理器(103)可以将估计子、资源需求参数以及输入参数和配置参数的默认参数值,以及输入参数和配置参数的当前参数值转发到计算平台。该平台基于所接收的估计子以及默认参数值和当前参数值来执行资源估计(类似于(s320)处的操作)。
[0127]
响应于该请求,当前计算平台可相应地分配计算资源,以匹配资源需求参数的估计的当前值所指示的资源。结果,所请求的计算资源变得可用于例如nbmp工作流管理器(103)。
[0128]
在(s340),可以使用所请求的计算资源在当前计算平台上实例化处理功能的当前实例。方法(300)可以进行到(s399)并在(s399)终止。
[0129]
在方法(300)的示例中,描述了一个资源需求参数。然而,在其它实施例中,用于描述实现功能所需的资源的资源需求参数的数量可以多于一个。相应地,可以在资源估计过程期间,为多个资源需求参数中的每一个资源需求参数提供默认值和资源估计估计子。
[0130]
v.计算机系统
[0131]
本技术中所公开的方法、实施例、实体或功能可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)实施。在一个示例中,所述一个或多个处理器执行存储在非易失性计算机可读介质上的程序,以执行本技术中所公开的方法、实施例或功能。所述程序可使用任何合适的机器代码或计算机语言来编码,所述机器代码或计算机语言可经受汇编、编译、链接或类似机制以创建包括指令的代码,所述指令可直接或通过解译、微码执行等而由一个或多个计算机中央处理单元(central processing unit,cpu)、图形处理单元(graphics processing unit,gpu)等执行。可在各种类型的计算机或计算机组件上执行所述指令,所述计算机或计算机组件包括例如个人计算机、平板电脑、服务器、智能电话、游戏装置、物联网装置等。
[0132]
图4示出了适于实施本技术所公开主题的某些实施例的计算机系统(400)。图4中所示的用于计算机系统(400)的组件在本质上是示范性的,并非旨在暗示关于实施本技术实施例的计算机软件的使用或功能的范围的任何限制。也不应将组件的配置解释为对计算机系统(400)的示范性实施例中所示的组件中的任一个组件或组件组合有任何依赖或需求。
[0133]
计算机系统(400)可包括某些人机接口输入装置。此类人机接口输入装置可响应于一个或多个人类用户通过例如触觉输入(例如:按键、滑动、数据手套移动)、音频输入(例如:语音、拍击)、视觉输入(例如:手势)、嗅觉输入(未描绘)进行的输入。人机接口装置还可用于捕获未必与人的有意识输入直接相关的某些媒体,例如音频(例如:话语、音乐、环境声)、图像(例如:扫描图像、从静态图像相机获得的摄影图像)、视频(例如,二维视频、包括立体视频的三维视频)。
[0134]
输入人机接口装置可包括以下一个或多个(每种仅描绘一个):键盘(401)、鼠标(402)、轨迹垫(403)、触摸屏(410)、数据手套(未示出)、操纵杆(405)、麦克风(406)、扫描仪(407)、相机(408)。
[0135]
计算机系统(400)还可包括某些人机接口输出装置。此类人机接口输出装置可通过例如触觉输出、声音、光和气味/味道刺激一个或多个人类用户的感觉。此类人机接口输出装置可包括触觉输出装置(例如,触摸屏(410)、数据手套(未示出)或操纵杆(405)的触觉反馈,但还可存在不充当输入装置的触觉反馈装置)、音频输出装置(例如:扬声器(409)、头戴式耳机(未描绘))、视觉输出装置(例如,屏幕(410),包括crt屏幕、lcd屏幕、等离子体屏幕、oled屏幕,各自具有或不具有触摸屏输入能力,各自具有或不具有触觉反馈能力
‑‑
其中的一些能够通过例如立体平画输出的方式输出二维视觉输出或大于三维的输出;虚拟现实眼镜(未描绘)、全息显示器和烟雾箱(未描绘)),以及打印机(未描绘)。
[0136]
计算机系统(400)还可包括人类可访问的存储装置和存储装置的相关联介质,例如,光学介质,包括具有cd/dvd等介质(421)的cd/dvd rom/rw(420)、拇指驱动器(422)、可移动硬盘驱动器或固态驱动器(423)、磁带和软盘(未描绘)等旧版磁性媒体、基于rom/asic/pld的专用装置,例如,安全保护装置(未描绘),等等。
[0137]
所属领域的技术人员还应理解,结合当前公开的主题使用的术语“计算机可读介质”并未涵盖传输介质、载波或其它瞬时信号。
[0138]
计算机系统(400)还可包括到一个或多个通信网络(455)的接口(454)。网络可例如是无线的、有线的、光学的。网络还可以是本地的、广域的、城域的、车载和工业的、实时的、容忍延迟的等等。网络的实例包括例如以太网、无线lan的局域网、包括gsm、3g、4g、5g、lte等的蜂窝网络、包括有线tv、卫星tv和地面广播tv的tv有线或无线广域数字网络、包括can总线的车载网络和工业网络等。某些网络通常需要附接到某些通用数据端口或外围总线(449)(例如,计算机系统(400)的usb端口)的外部网络接口适配器;其它网络通常通过附接到如下文所描述的系统总线而集成到计算机系统(400)的核心中(例如,通过以太网接口集成到pc计算机系统中,或通过蜂窝网络接口集成到智能电话计算机系统中)。通过使用这些网络中的任一网络,计算机系统(400)可与其它实体通信。此类通信可以是仅单向接收(例如,广播tv)、仅单向发送(例如,连到某些can总线装置的can总线)或是双向的,例如,使用局域数字网络或广域数字网络连接到其它计算机系统。可在如上文所描述的那些网络和
网络接口中的每一个上使用某些协议和协议栈。
[0139]
上述人机接口装置、人类可访问存储装置和网络接口可附接到计算机系统(400)的核心(440)。
[0140]
核心(440)可包括一个或多个中央处理单元(cpu)(441)、图形处理单元(gpu)(442)、现场可编程门区域(field programmable gate areas,fpga)形式的专用可编程处理单元(443)、用于某些任务的硬件加速器(444)等等。这些装置连同只读存储器(read

only memory,rom)(445)、随机存取存储器(446)、例如内部非用户可访问的硬盘驱动器、ssd等内部大容量存储装置(447)可通过系统总线(448)连接。在一些计算机系统中,系统总线(448)可通过一个或多个物理插头形式访问以实现通过额外cpu、gpu等来扩展。外围装置可直接或通过外围总线(449)附接到核心的系统总线(448)。在一示例中,屏幕(410)可以连接到图形适配器(450)。用于外围总线的架构包括pci、usb等等。
[0141]
cpu(441)、gpu(442)、fpga(443)和加速器(444)可执行某些指令,所述指令组合起来可构成上述计算机代码。计算机代码可存储在rom(445)或ram(446)中。过渡数据也可存储在ram(446)中,而永久性数据可例如存储在内部大容量存储装置(447)中。可通过使用高速缓冲存储器来实现对任一存储器装置的快速存储和检索,所述高速缓冲存储器可与一个或多个cpu(441)、gpu(442)、大容量存储装置(447)、rom(445)、ram(446)等紧密关联。
[0142]
计算机可读介质上可具有用于执行各种计算机实施的操作的计算机代码。所述介质和计算机代码可以是专为本技术的目的设计和构建的介质和计算机代码,或可属于计算机软件领域中的技术人员众所周知且可用的种类。
[0143]
举例来说但不作为限制,具有架构(400)且尤其是核心(440)的计算机系统可提供因处理器(包括cpu、gpu、fpga、加速器等)执行以一个或多个有形计算机可读介质体现的软件而产生的功能。此类计算机可读介质可以是与上文所介绍的用户可访问大容量存储装置以及核心(440)的非暂时性质的某些存储装置(例如,核心内部大容量存储装置(447)或rom(445))相关联的介质。实施本技术的各种实施例的软件可存储在此类装置中且由核心(440)执行。根据特定需求,计算机可读介质可包括一个或多个存储器装置或芯片。软件可使核心(440)且具体地说使其中的处理器(包括cpu、gpu、fpga等等)执行本文中所描述的特定过程或特定过程的特定部分,包括限定存储在ram(446)中的数据结构以及根据由软件限定的过程修改此类数据结构。另外或作为替代方案,计算机系统可提供由硬连线的或以其它方式体现于电路(例如:加速器(444))中的逻辑所产生的功能,所述逻辑可代替或连同软件一起操作以执行本文描述的特定过程或特定过程的特定部分。适当时,对软件的引用可涵盖逻辑,且反之亦然。适当时,对计算机可读介质的引用可涵盖存储用于执行的软件的电路(例如,集成电路(ic))、体现用于执行的逻辑的电路或这两种电路。本技术涵盖硬件与软件的任何合适的组合。
[0144]
尽管本技术描述了若干示范性实施例,但在本技术的范围内,可以有各种改动、排列组合方式以及各种替代等同物。因此,应该理解,在申请的精神和范围内,本领域技术人员能够设计出各种虽未在本文明确示出或描述、但可以体现本技术的原理的系统和方法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1