首页> 中国专利> 一种自适应的媒体内容创作任务分配方法

一种自适应的媒体内容创作任务分配方法

摘要

本发明公开了一种在媒体内容创作过程中分配任务的方法,属于在分布式并行系统中分配任务的技术领域。本发明通过探测算法快速地确定合理的任务分配初始解,选择可以完成任务的合适结点,让系统减少抖动,满足稳定性的要求;并通过对任务队列分配方式的控制,灵活地调整任务分配策略,满足环境多变情况下系统快速反应的要求。本发明所提供的任务分配方法可使处于动态环境下的系统很快进入一种稳定状态,进行合理的任务分配。本发明具有良好的实用性和扩展性,不仅适用于媒体内容创作领域任务分配的需要,而且可以满足其他领域任务分配的需要。

著录项

  • 公开/公告号CN101169738A

    专利类型发明专利

  • 公开/公告日2008-04-30

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN200710050631.4

  • 申请日2007-11-28

  • 分类号G06F9/50(20060101);

  • 代理机构51214 成都九鼎天元知识产权代理有限公司;

  • 代理人刘雪莲;吴彦峰

  • 地址 611731 四川省成都市高新区(西区)西源大道2006号

  • 入库时间 2023-12-17 20:02:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-04-29

    授权

    授权

  • 2008-06-25

    实质审查的生效

    实质审查的生效

  • 2008-04-30

    公开

    公开

说明书

技术领域

本发明涉及一种分配任务的技术,特别涉及一种在媒体内容创作过程中分配任务的方法。

背景技术

自从计算机和互联网诞生以来,它已经迅速地发展为当今世界上影响最广泛、增长最快、市场潜力最大的产业之一,被喻为是第三次工业革命——知识经济时代的主要标志。计算机的小型化和网络带宽的提高,使得计算机的应用发生了日新月异的发展,媒体创作在这个平台下也得到了越来越充分地表现。然而,在媒体内容创作的实际应用中,也出现了一些问题,具体表现如下:1、任务分配不均衡。媒体创作过程是个协同工作的过程,如编辑、美工、导演、摄像师、动画设计人员、设备管理人员之间的工作是协作和相互影响的过程。各类人员也是多人合作的群体,而同类群体中各人的处理能力有很多差异。若这个工作链中任务分配不合理,如一些环节的执行效率低下,而执行任务又很繁重时,就严重影响了下一步的工作的进行。2、资源环境不断的变化:进行媒体创作的单位,如动画、电影公司,其资源环境处于不断的变化,主要表现在人员变动,硬件资源的购进和卖出。现有的任务分配方法,如果保证了系统、优化的任务分配,就不能很好地适应环境的变化;相反,如果保证了系统灵活多变,却不能让系统进入稳定的任务分配状态。特别是对于规模大,资源类别多的媒体内容分发过程,目前还没有成熟的自适应任务分配方法。

发明内容

本发明的目的是克服现有技术中存在的不足,提供一种使处于动态环境下的分别具备处理器的多个结点的分散处理系统很快进入一种稳定状态进行合理的任务分配的技术方法。

一种自适应的媒体内容创作任务分配方法,在包含分别具备处理器的多个结点的分散处理系统中,将任务合理地分配到各个结点进行处理,包括以下步骤:

在系统中设置任务信息处理模块、结点信息处理模块、任务映射处理模块、任务分配处理模块;

由任务信息处理模块处理到达的任务信息,建立任务队列、记录任务队列的信息、记录任务队列的探测次数;

由结点信息处理模块处理到达的员工信息,建立结点队列、记录结点队列信息;

由任务映射模块提取任务队列、结点队列传送的信息,建立任务映射表;

由任务分配处理模块将任务分配到各结点进行处理:选择有任务需要执行的队列,提取排头任务,索引任务映射表的信息,获取结点队列中能完成此项任务的结点,根据任务队列的探测次数选择任务队列的分配方式,将任务分配到适合的结点进行处理:若任务队列的探测次数小于系统设定的次数,则选择探测分配方式,将任务分配给查询出来的所有结点进行处理,若任务队列的探测次数大于或等于系统设定的次数,则选择自适应分配方式,根据查询任务映射表的结果,结合结点的信息变化情况及其空闲时间,自动将任务分配给合适的结点进行处理;结点完成任务后将信息反馈给任务分配处理模块,任务分配处理模块根据反馈的信息对结点和任务队列进行处理,使结点和任务队列的信息发生改变,并将改变的信息反馈给结点信息处理模块及任务信息处理模块。

所述自适应的媒体内容创作任务分配方法流程图如图1所示。

所述分别具备处理器的多个结点的分散处理系统示意图如图2所示,该系统运行在分布式网络中,网络边缘为工作结点,中心为服务器。所述工作结点即处理机,包括操作处理器的人及处理器,可以完成特定的任务。所述服务器包括FTP服务器,WEB服务器,任务分配服务器等,所述任务信息处理模块、结点信息处理模块、任务映射处理模块、任务分配处理模块都工作在任务分配服务器上,实现管理工作结点、分配任务的功能。

所述任务信息处理模块执行以下处理:建立任务队列、记录任务队列的信息、记录任务队列探测次数,包括以下步骤:

步骤S301:新任务到达,为新任务分配一个任务信息储存单元,录入任务信息;

步骤S302:对任务进行分类,根据任务信息描述将新任务归入符合要求的任务队列:

步骤S321:初始选择排头队列,比较该队列与新任务的信息,如果相同则说明满足入队要求,进行到步骤S304,如果不相同则进入到步骤S322,

步骤S322:选择下一队列,比较该队列与新任务的信息,如果相同则进行到步骤S304,如果不同并且当前队列为最后一个队列就进行到步骤S303,否则继续进行步骤S322;

步骤S303:新建任务队列,初始化任务队列,设置任务队列的探测次数(Count)为0(这里探测次数指的是同类任务完成的次数),将队列信息传送至任务映射处理模块;

步骤S304:将新任务加入此队列,提取结点信息处理模块传送的信息,若结点队列有新结点加入,则设置任务队列的探测次数为0;若无新结点加入,则根据任务分配处理模块反馈的信息,记录队列的探测次数,结束。任务信息处理流程如图3所示。

这里所述任务信息可包括任务代号、任务描述、任务资源需求、任务时间紧迫度、工作能力要求;所述任务队列实质是任务信息存储单元的单链表,数据结构定义包括:队列号,队头指针,队列长,分配方式(Allocation),任务描述,工作能力要求,探测计数(Count)。任务队列的示意图如图4所示。

所述结点信息处理模块执行以下处理:建立结点队列、记录结点队列的信息,包括以下步骤:

步骤S501:新结点加入,为新结点分配一个结点信息储存单元,录入结点信息;

步骤S502:进行结点分类,根据结点信息描述将新结点归入符合要求的结点队列:

步骤S521:初始选择排头队列,比较该队列与新结点的信息,如果相同则说明满足入队要求,进行到步骤S504,如果不相同则进入到步骤522,

步骤S522:选择下一队列,比较该队列与新结点的信息,如果相同则进行到步骤S504,如果不同并且当前队列为最后一个队列就进行到步骤S503,否则继续进行步骤S522;

步骤S503:新建结点队列,将信息传送至任务映射处理模块;

步骤S504:将新结点加入此队列,将信息传送至任务信息处理模块,结束。结点信息处理流程如图5所示。

所述结点信息可包括结点代号、工作能力、空闲度、工作能力要求;结点信息存储单元数据结构定义如下,结点号,工作能力要求,工作能力(Ability),空闲度(Wait),结点队列数据结构定义如下,队列号,队头指针,队列长,工作能力要求。结点队列的示意图如图6所示。

所述任务映射处理模块执行以下处理:提取任务信息处理模块、结点信息处理模块传送的信息,根据相同的信息描述,例如工作能力要求相同,建立任务队列与结点队列相对应的任务映射表,将任务队列和结点队列对应起来,为任务分配提供依据,包括以下步骤:

步骤S701:根据任务队列或结点队列信息设立映射条件并作记录,建立任务映射表;

步骤S702:提取结点队列或任务队列的信息;

步骤S703:根据队列信息所描述的内容,在任务映射表中寻找与映射条件相符的记录:

步骤S731:选取任务映射表的首行记录,比较队列和记录的信息,如果相同,进行步骤S704,否则进行步骤S732,

步骤S732:选取下一个记录,比较队列和记录的信息,如果相同,进行步骤S704,如果不同并且当前记录为最后一个,就建立新记录项进行到步骤S704,否则继续进行步骤S732;

步骤S704:根据步骤S702中的队列类型在记录中存入队列信息。任务映射的处理流程如图7所示。

所述任务分配处理模块执行以下处理:

步骤S801:初始化选择排头任务队列,判断当前队列是否有任务需要执行,如果有,则进行步骤S803,如果没有则进行步骤S802;

步骤S802:选择下一个任务队列,判断当前队列是否有任务需要执行,如果有,则进行步骤S803,如果没有则继续进行步骤S802;

步骤S803:提取排头任务;

步骤S804:索引任务映射表,即根据任务信息描述找到对应的结点队列,取得结点队列中所有能完成此任务的结点;

步骤S805:任务分配,判断任务队列的探测次数是否小于系统设定值,根据判断结果选择任务队列的分配方式,将任务分配到适合的结点进行处理:

若任务队列的探测次数小于系统设定的次数,则选择探测分配方式,将任务分配给查询出来的所有结点进行处理,

若任务队列的探测次数大于或等于系统设定的次数,则选择自适应分配方式,根据查询任务映射表的结果,结合结点的信息变化情况及其空闲时间,自动将任务分配给合适的结点进行处理;

结点完成任务后将信息反馈给任务分配处理模块,任务分配处理模块根据反馈的信息对结点和任务队列进行处理,使结点和任务队列的信息发生改变,并将改变的信息反馈给结点信息处理模块及任务信息处理模块。任务分配的处理流程如图8所示。

所述结点反馈的信息包括任务完成所用时间、资源耗费、作品质量等反映任务完成情况的信息,所述任务分配处理模块根据反馈的信息对结点和任务队列进行如下处理:

对结点的Wait值(空闲时间值)和Ability值(工作能力值)进行处理:结点分配到任务则Wait值增加,结点完成任务则Wait值减小,结点未分配到任务则Wait值不改变;结点完成任务所用时间少、资源耗费小、作品质量好,则结点的Ability值得到增加,反之则结点的Ability值得到减小。可根据预先设定的奖惩函数进行奖惩,比如通过简单的奖惩计量函数来确定怎样改变结点的Ability值:Beta=任务完成度*a1+资源耗费*a2+作品评价*a3,其中a1+a2+a3=1,Beta越高表示任务完成得越好,比较所有结点对应的Beta,如果最高给予奖励,结点Ability值发生如下改变:Ability=Ability+1;ifAbility>=MAX then Ability=MAX;否则给予惩罚,结点Ability值的变化为:Ability=Ability-1;if Ability<=1 then Ability=1;Ability表示结点执行此任务的工作能力,越高表示执行能力越强。

对任务队列的探测次数进行处理:完成任务后任务队列的探测次数(Count)加一。根据系统预先设定的探测次数,比如T次,将任务队列的探测次数与之比较,若Count>=T,表示此任务队列经过T次完全分配后,已经了解各个结点的工作能力,可以进入自适应分配。T值可根据系统的需要设定,T越大,系统进入自适应状态越慢,进入后系统更稳定优化。反之,系统进入自适应状态越快,进入后系统不如前者稳定优化。

将任务队列的变化情况反馈给任务信息处理模块,将结点的变化情况反馈给结点信息处理模块。

所述自适应分配方式为,系统提取各个结点的Ability值和Wait值,计量函数Alpha值,Alpha表示结点适配任务的值,将任务分配给Alpha值最大的结点,比如Alpha=Ability*a1+Wait*a2,其中a1+a2=1。Alpha与工作能力成正比,与空闲程度成反比,Alpha越大表示越适合此项任务。按此原则分配就可以实现系统对结点工作能力的自动搜索,并参照结点空闲状态,进行自适应地任务分配,可以使系统很快地达到最优或接近最优的状态。

与现有技术相比,本发明的有益效果是:本发明通过探测算法快速地确定合理的任务分配初始解,选择可以完成任务的合适结点,让系统减少抖动,满足稳定性的要求;并通过对任务队列分配方式的控制,灵活地调整任务分配策略,满足环境多变情况下系统快速反应的要求。本发明所提供的任务分配方法可使处于动态环境下的系统很快进入一种稳定状态,进行合理的任务分配。本发明具有良好的实用性和扩展性,不仅适用于媒体内容创作领域任务分配的需要,而且可以满足其他领域任务分配的需要。

附图说明

图1为自适应的媒体内容创作任务分配方法流程图。

图2为自适应的媒体内容创作网络结构图。

图3为任务信息处理流程图。

图4为多任务队列示意图。

图5为结点信息处理流程图。

图6为多结点队列示意图。

图7为任务映射处理流程图。

图8为任务分配流程图。

图9为三维动画制作流程图。

具体实施方式

下面结合附图及优选实施例对本发明作进一步的详细描述,但这并不意味着对本发明范围的限定。

本发明的优选实施例涉及媒体内容创作过程中的任务分配。媒体内容创作的实际应用主要包括:动画制作、影视制作、游戏开发。进一步分类包括材质创作、角色建模、音乐创作、故事脚本创作、场景渲染等等。媒体内容创作的特点有:任务繁多,关联度大,人员复杂。因此一个成功的媒体内容创作必须协调好工作人员之间的关系,进行合理的任务分配。下面以媒体内容创作的应用——三维角色动画制作为例,对任务分配进行分析。三维动画制作流程如图9所示。

三维角色动画制作过程中的任务分配方法,包括:在系统中设置任务信息处理模块、结点信息处理模块、任务映射处理模块和任务分配处理模块;

如图3所示,所述任务信息处理模块执行以下处理:建立任务队列、记录任务队列的信息、记录任务队列探测次数,包括以下步骤:

步骤S301:新任务到达,为新任务分配一个任务信息储存单元,录入任务信息,三维角色动画制作过程的任务信息描述见表1;

步骤S302:对任务进行分类,三维角色动画制作过程的主要任务类别见表1,根据任务信息描述将新任务归入符合要求的任务队列:

步骤S321:初始选择排头队列,即首先选择材质创作队列,比较该队列与新任务的信息,如果相同则说明满足入队要求,进行到步骤S304,如果不相同则进入到步骤S322,

步骤S322:选择下一队列,比较该队列与新任务的信息,如果相同则进行到步骤S304,如果不同并且当前队列为最后一个队列就进行到步骤S303,否则继续进行步骤S322;

步骤S303:新建任务队列,初始化任务队列,设置任务队列的探测次数为0,将队列信息传送至任务映射模块处理;

步骤S304:将新任务加入此队列,提取结点信息处理模块传送的信息,若结点队列有新结点加入,则设置任务队列的探测次数为0;若无新结点加入,则根据任务分配处理模块反馈的信息,记录队列的探测次数,结束。

这里所述任务信息包括任务代号、任务描述、任务资源需求、任务时间紧迫度、工作能力要求;所述任务队列实质是任务信息存储单元的单链表,数据结构定义包括:队列号,队头指针,队列长,分配方式(Allocation),任务描述,工作能力要求,探测计数(Count)。任务队列示意图如图4所示。

表1三维角色动画制作任务说明表

任务队列任务描述工作能力需求结点队列材质创作把千篇一律的模型赋予生动的表面特性熟悉各种物体的颜色和质感材质创作人员建模对出场的角色和场景中出现的物体进行建模,如3D角色建模、3D动作建模。熟悉各种建模方式的优缺点,可以根据不同的需要选择不同的建模方法进行建模。建模人员音效创作使光线同情节的气氛相匹配,强化影片的效果和戏剧性专业音乐知识美术总监音效制作人灯光设置使光线同情节的气氛相匹配,强化影片的效果和戏剧性熟悉各种光线效果灯光设计人员文本编辑创作能力强,文字功底深厚文本编辑人员......... ...渲染让渲染出来的图片有真实感熟悉各种渲染效果,如油画效果、二维平涂效果、彩铅效果。可以根据不同的需要选择不同的方法进行渲染。渲染人员

如图5所示,所述结点信息处理模块执行以下处理:建立结点队列、记录结点队列的信息,包括以下步骤:

步骤S501:新结点加入,为新结点分配一个结点信息储存单元,录入结点信息,三位角色动画制作所需结点技能要求见表1;

步骤S502:进行结点分类,根据结点信息描述将新结点归入符合要求的结点队列,结点队列描述见表1:

步骤S521:初始选择排头队列,即材质创作队列,比较该队列与新结点的信息,如果相同则说明满足入队要求,进行到步骤S504,如果不相同则进入到步骤522,

步骤S522:选择下一队列,比较该队列与新结点的信息,如果相同则进行到步骤S504,如果不同并且当前队列为最后一个队列就进行到步骤S503,否则继续进行步骤S522;

步骤S503:新建结点队列,初始化结点队列数据,设置队列号,将信息传送至任务映射处理模块进行处理;

步骤S504:将新结点加入此队列,将信息传送给任务信息处理模块,结束。

所述结点信息包括结点代号、工作能力、空闲度、工作能力要求;结点信息存储单元数据结构定义如下,结点号,工作能力要求,工作能力(Ability),空闲度(Wait),结点队列数据结构定义如下,队列号,队头指针,队列长,工作能力要求。结点队列示意图如图6所示。

如图7所示,所述任务映射处理模块执行以下处理:接收任务信息处理模块、结点信息处理模块传送的信息,根据相同的信息描述,例如工作能力要求相同,建立任务队列与结点队列相对应的任务映射表,将任务队列和结点队列对应起来,为任务分配提供依据,包括以下步骤:

步骤S701:根据任务队列或结点队列信息设立映射条件并作记录,建立任务映射表,见表2;

步骤S702:提取结点队列或任务队列的信息;

步骤S703:根据队列信息所描述的内容,在任务映射表中寻找与映射条件相符的记录;

步骤S731:选取任务映射表的首行记录,比较队列和记录的信息,如果相同,进行步骤S704,否则进行步骤S732;

步骤S732:选取下一个记录,比较队列和记录的信息,如果相同,进行步骤S704;如果不同并且当前记录为最后一个,就建立新记录项进行到步骤S704,否则继续进行步骤S732;

步骤S704:根据步骤S702中的队列类型在记录中存入队列信息。

表2任务映射表

记录号任务队列结点队列映射条件...记录1任务队列a结点队列b工作能力要求等同...记录2任务队列b结点队列r结点队列t工作能力要求等同..................

如图8所示,所述任务分配处理模块执行以下处理:

步骤S801:初始化选择排头任务队列,即首先选择材质创作队列,判断当前队列是否有任务需要执行,如果有,则进行步骤S803,如果没有则进行步骤S802;

步骤S802:选择下一个任务队列,判断当前队列是否有任务需要执行,如果有,则进行步骤S803,如果没有则继续进行步骤S802;

步骤S803:提取排头任务;

步骤S804:索引任务映射表,即根据任务信息描述找到对应的结点队列,取得结点队列中所有能完成此任务的结点;

步骤S805:任务分配,判断任务队列的探测次数是否小于系统设定值,根据判断结果选择任务队列的分配方式,将任务分配到适合的结点进行处理:

若任务队列的探测次数小于系统设定的次数,则选择探测分配方式,将任务分配给查询出来的所有结点进行处理;

若任务队列的探测次数大于或等于系统设定的次数,则选择自适应分配方式,根据查询任务映射表的结果,结合结点的信息变化情况及其空闲时间,自动将任务分配给合适的结点进行处理;

结点完成任务后将信息反馈给任务分配处理模块,任务分配处理模块根据反馈的信息对结点和任务队列进行处理,使结点和任务队列的信息发生改变,并将改变的信息反馈给结点信息处理模块及任务信息处理模块。

所述结点反馈的信息包括任务完成所用时间、资源耗费、作品质量等反映任务完成情况的信息,所述任务分配处理模块根据反馈的信息对结点和任务队列进行如下处理:

对结点的Wait值(空闲时间值)和Ability值(工作能力值)进行处理:结点分配到任务则Wait值增加,结点完成任务则Wait值减小,未分配到任务则Wait值不改变;结点完成任务所用时间少、资源耗费小、作品质量好,则结点的Ability值得到增加,反之则结点的Ability值得到减小。可根据预先设定的奖惩函数进行奖惩,比如通过简单的奖惩计量函数来确定怎样改变结点的Ability值:Beta=任务完成度*a1+资源耗费*a2+作品评价*a3,其中a1+a2+a3=1,Beta越高表示任务完成得越好,比较所有结点对应的Beta,如果最高给予奖励,结点Ability值发生如下改变:Ability=Ability+1;ifAbility>=MAX then Ability=MAX;否则给予惩罚,结点Ability值的变化为:Ability=Ability-1;if Ability<=1 then Ability=1;Ability表示结点执行此任务的工作能力,越高表示执行能力越强。

对任务队列的探测次数进行处理:完成任务后任务队列的探测次数(Count)加一。根据系统预先设定的探测次数,比如T次,将任务队列的探测次数与之比较,若Count>=T,表示此任务队列经过T次完全分配后,已经了解各个结点的工作能力,可以进入自适应分配。T越大,系统进入自适应状态越慢,进入后系统更稳定优化。反之,系统进入自适应状态越快,进入后系统不如前者稳定优化。

将任务队列的变化情况反馈给任务信息处理模块,将结点的变化情况反馈给结点信息处理模块。

所述自适应分配方式为,系统提取各个结点的Ability值和Wait值,计量函数Alpha值,Alpha表示结点适配任务的值,将任务分配给Alpha值最大的结点,比如Alpha=Ability*a1+Wait*a2,其中a1+a2=1。Alpha与工作能力成正比,与空闲程度成反比,Alpha越大表示越适合此项任务。按此原则分配就可以实现系统对结点工作能力的自动搜索,并参照结点空闲状态,进行自适应地任务分配,可以使系统很快地达到最优或接近最优的状态。

任务经过处理后可能出现两种状态:1.最优状态,所有子任务分配给工作能力最强、空闲时间较多的人,整体任务完成。2.次优状态,部分子任务分配给工作能力较强、空闲时间较多的人,整体任务完成。两种状态都是在保证整体工作可以完成的情况下出现的,前者可以让系统资源耗费最少,系统最优;后者可以让系统资源耗费较少,系统较优。两者关系:任务分配不能达到最优的状态,则转为次优。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号