利索能及
我要发布
收藏
专利号: 2021107745180
申请人: 西安理工大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-10-22
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于状态驱动的影视编辑任务协同调度方法,其特征在于,具体按以下步骤实施:

步骤1,建立影视编辑任务解耦模型;

所述步骤1具体按以下步骤实施:

步骤1.1,建立“镜头‑环节‑任务”解耦的影视编辑任务模型;

所述步骤1.1具体为将影视镜头的制作过程按照环节拆分,在环节内将该环节需要完成的工作,拆分为一个或者多个制作任务;环节为镜头的完成过程;任务是影视编辑过程中最小的执行单元及调度单元,在影视编辑过程中镜头是影视编辑过程的起点,一个镜头绑定一个或多个制作环节,环节之间具有并行或者顺序关系,每个环节绑定一个根任务,根任务会根据任务复杂度进行任务再分,分为多个子任务;

步骤1.2,设计多环节模型与多环节模型存储结构;

所述步骤1.2具体为:影视镜头信息创建成功后,需要根据镜头制作要求,对镜头的制作环节进行设计,具体包括环节的种类、环节的并行化执行或者顺序化执行的关联关系、环节的制作要求、该环节的预开始与预结束时间、环节的工种信息,为实现上述环节内容的存储,环节节点设计的数据结构为Link{Int asset_id;Int link_pid;String content;Timestamp start_time;Timestamp end_time;Int dept_id;Int task_id},其中asset_id表示该环节绑定的镜头ID,link_pid表示环节与环节之间的关联关系,后置环节在link_pid保存前置环节的link_id,如果某环节没有前置环节,则在该字段中保存‑1;

步骤1.3,设计多任务模型与多任务模型存储结构;

所述步骤1.3具体为:环节创建成功后,在环节内根据制作环节内容和制作环节的周期要求,为环节创建制作任务,在任务创建过程中一个环节只能关联一个根任务,在根任务创建成功后,将根任务的任务ID更新到环节数据结构的task_id中,制作环节与根任务之间的关系使用散列表数据结构存储;设计一种多叉树的父子任务制作模,该数据结构支持将一个任务拆分为多个子任务,子任务可并发执行也可顺序执行;树的根节点,同时也是与环节直接绑定的根任务,根任务可继续拆分为多个子任务,子任务还可以在分为子子任务;task节点的数据结构为Task{Int task_pid;String content;Timestamp start_time; Timestamp end_time;Int user_id; Float total_hour;Int status};其中task_pid表示任务的父亲任务,如果某任务没有父任务,task_pid被置为‑1,如果任务具有父任务,则该字段的内容为父任务的ID,content表示任务具体的制作的内容,start_time与end_time表示任务预估的开始时间与结束时间,user_id为任务的执行人员,total_hour表示该制作任务预估的制作工时耗费时间,status为该任务的流转状态,默认设置为未开始状态;

步骤2,根据步骤1建立的解耦的影视编辑任务模型,建立该任务模型下的影视任务的状态机,包含任务的状态设计及状态流转规则设计;

步骤3,设计影视编辑任务协同调度的算法,此算法分为环节内任务协同调度和环节间任务协同调度,任务在流转的过程中,依据此算法完成任务状态的变更和与之关联任务的触发;

步骤4,设计一种影视编辑任务阻塞消除的方法,用于解决状态驱动方式进行任务的触发调度存在的任务状态无法变更,导致后续任务阻塞问题,实现对步骤3的优化。

2.根据权利要求1所述的一种基于状态驱动的影视编辑任务协同调度方法,其特征在于,所述步骤2具体按以下步骤实施:步骤2.1,影视编辑任务状态模型分析;

步骤2.2,提出影视编辑任务状态转换规则。

3.根据权利要求2所述的一种基于状态驱动的影视编辑任务协同调度方法,其特征在于,所述步骤2.1具体为:将影视编辑任务的状态分为六大状态,P0表示未开始,P1表示进行中,P2表示审核中,P3表示完成,P4表示暂停,P5表示超时,PT为父任务为子任务执行,铺垫工作完成后的临时状态;大状态包括内部状态,称为小状态,小状态是对大状态的细分;在未开始P0状态中,内部状态包括未开始NOT_STARTED、等待开始WAITING_TO_START、准备开始READY_TO_START,这些小状态由任务创建者进行标记;在进行P1状态中分为标准NORMAL、打开OPEN、制作过程中IN_PROGRESS、任务外包制作OUTSOURCE、反馈FEEDBACK、测试TEST、重新制作REDO这7个小状态,默认小状态为标准NORMAL,在通过影视编辑软件中导入该任务关联文件时,小状态迁移到打开OPEN,任务发送外包后任务状态为外包进行中OUTSOURCE状态,其余状态手动标记;在审核中的P2状态分为任务审核中APPROVE、等待审核PENDING_REVIEW、导演审查样片DAILIES、客户审查CLIENT_REVIEW,提交审核后小状态为等待审核PENDING_REVIEW,当任务一级完成审核时,小状态迁移到审核中APPROVE、导演审核及客户审核的小状态由系统根据审核对象的生成;完成状态P3中分为审批完成APPROVED、总监审核完成DIRECTOR_APPROVED、修正版REVISION、最终版FINAL、发行版DELIVERED、省略版OMITTED、不公开CLOSED七种状态,APPROVED为默认的小状态,其余小状态由人工手动标记;

在暂停P4状态中,内部状态包括ON_HOLD保持、IGNORE忽略、PAUSE暂停三个状态,手动标记;

所述步骤2.2具体为:

步骤2.2.1,设计单任务状态转换规则,单个制作任务创建时默认状态为未开始P0状态,如果该任务有前置父任务,在前置任务状态迁移到P3完成状态,并输出制作成果时,驱动后置任务进入P1进行中状态;任务将自己的制作成果提交审核时,该任务的状态自动迁移到P2审核中状态,在审核过程中,任意一级审批不通过,该任务状态自动迁移到P1进行中,并及时通知任务执行人任务重新启动制作,任务经过所有审核流程通过后,任务状态迁移到P3完成状态;进行中的任务在结束时间到达后,仍未提交审核,则将该任务标识为超时任务,状态为P5超时状态;在镜头暂停制作时,该镜头所有任务不论当前处于什么状态,都会自动迁移到P4暂停状态;

步骤2.2.2,设计包含子任务的父任务状态转换规则,当父任务被拆分成为多个子任务,各个子任务按照单任务的状态转换规则,进行状态流转,父任务的状态流转与子任务状态相关;初始化任务时父子任务的状态均初始化为P0未开始,如果父任务为并行环节绑定的根任务,或者为顺序环节中第一个环节绑定的根任务,则在父任务在任务开始时间到达后被调度,状态变更为P1进行中;如果父任务为顺序环节中后置环节绑定的根任务,则该父任务在上个环节完成且状态迁移到P3时,该父任务将被触发,任务状态迁移为P1进行中,父任务为拆分的子任务做执行铺垫工作,该部分工作完成后,提交审核后状态变更为审核中P2,如果审核任何一级未通过,状态迁移到P1进行中,若审核通过,父任务迁移到临时完成状态PT,此时激发子任务调度;子任务为单任务时,按照单任务的状态转换规则进行状态迁移,所有子任务状态迁移完成后,对子任务的制作成果整合,并提交审核此时状态再次迁移到P2,若未通过审核,父任务状态再次迁移到PT临时状态,对子任务制作成果重新合并,若通过审核,父任务状态迁移到P3完成状态,镜头设置为暂停时,父子任务均流转到P5。

4.根据权利要求1所述的一种基于状态驱动的影视编辑任务协同调度方法,其特征在于,所述步骤3具体按以下步骤实施:步骤3.1,判断该任务为环节内任务协同调度,还是环节间任务协同调度;

步骤3.2,环节内任务,采用环节内任务协同调度算法;

步骤3.3,环节间任务,采用环节间任务协同调度算法。

5.根据权利要求3或4所述的一种基于状态驱动的影视编辑任务协同调度方法,其特征在于,所述步骤3.2具体为:环节内任务协同调度,一个镜头的制作环节只能绑定一个根任务,根任务描述了在该制作环节下任务的时间节点、任务的制作内容及策略、任务的紧急度、任务的困难程度及任务的执行负责人员,将复杂的任务拆解为多个子任务,子任务根据任务复杂性可继续拆解;

步骤3.3具体为:环节间任务协同调度,镜头的制作环节具有并行和顺序这两种类型的环节,在并行环节中,环节之间的制作过程独立,采用写时拷贝的思路,在各并行制作环节中拷贝一份镜头的制作素材,并行环节的通过预设时间触发根任务调度,根任务的子任务按照环节内任务协同调度的方式进行协同调度;

在顺序制作环节中,后置环节的根任务的调度与前置环节的根任务状态相关,在前置环节的根任务状态迁移到P3状态,说明此时前置环节中的所有任务被执行完成,同时根任务已将该环节内的所有任务的成果整合成环节的制作成果,由于在P3在整个过程中可能会出现多个任务制作成果的版本,当根任务的小状态标记为最终版时,触发后置环节的根任务调度,后置环节的制作素材来源于前置环节根任务输出的制作成果。

6.根据权利要求1所述的一种基于状态驱动的影视编辑任务协同调度方法,其特征在于,所述步骤4具体按以下步骤实施:步骤4.1,计算任务阻塞值;

步骤4.2,分析任务阻塞原因;

步骤4.3,任务阻塞调优。

7.根据权利要求6所述的一种基于状态驱动的影视编辑任务协同调度方法,其特征在于,所述步骤4.1具体为:步骤4.1.1,根据公式(1)计算任务的当前时间节点理想生产下的任务进度值Sestimation,其中Dpresent为当前的时间节点,Dstart为任务的开始时间节点,Dend为任务预设的结束时间节点:(1)

步骤4.1.2,根据公式(2)计算任务的当前时间节点实际生产的任务进度 ,其中为任务的实际消耗的工时, 为日工时:(2)

步骤4.1.3,根据公式(3)计算实际生产环境中相比较理想状态下任务进度的阻塞值:

(3)

通过式(3)中的阻塞值Sdeviation,对任务的进度进行估计,当该值为负数时表示进度超前,绝对值越大,说明进度越靠前;阻塞值为正数时,说明进度滞后,绝对值越大,说明进度滞后越严重,任务阻塞越严重;

所述步骤4.2具体为:

步骤4.2.1,查找任务task绑定的制作环节link,通过link获取该制作环节绑定的工种dept;

步骤4.2.2,获取该工种人员executors_list及该周期内各任务开始时间、结束时间、任务状态、任务工时;

步骤4.2.3,使用pandas将数据处理为数据框形式df = pd.DataFrame(executors_list);

步骤4.2.4,按照任务执行人员分组统计;

步骤4.2.5,循环遍历,统计周期内该人员任务最早开始时间start,统计周期内该人员任务最晚结束时间end,获取成员的所有任务工时和total;

步骤4.2.6,当start小于end,日期后移,循环统计每日的计划耗时与实际耗时;

步骤4.2.7,数据按人员分类,封装成为json数据,将json数据添加进all_executor_time列表中;

所述步骤4.3具体为:

步骤4.3.1,在任务阻塞消除方法中,输入参数为任务ID、任务阻塞偏离阈值threshold、影视编辑人员繁忙程度busy_degree,为了满足不同影视编辑业务需求,在threshold及busy_degree参数的设置上,使用接口调用的形式对参数进行动态调整;

步骤4.3.2,根据输入的任务ID调计算出任务的阻塞值,如果阻塞值deviation大于0,则说明任务进度滞后;

步骤4.3.3,在进度滞后偏离值大于系统自定义阈值threshold时,首先获取该任务对应的工种,然后调用人员繁忙程度分析算法,计算该任务执行人对应的工作量;

步骤4.3.4,任务执行人员繁忙程度高于系统设置的繁忙程度阈值,系统自动推荐该工种内繁忙程度较低的人员,并将该人员绑定为任务执行人员;

步骤4.3.5,如果不是人员繁忙原因造成的任务阻塞,采用提高任务紧急度的方法,督促任务处理。