一种编解码资源分配方法及装置
文献发布时间:2023-06-19 19:20:08
技术领域
本发明涉及通信技术领域,特别是涉及一种编解码资源分配方法及装置。
背景技术
现在的计算设备越来越普及,并且能完成比先前可能的更多任务。因此随着这种能力的增加,计算设备执行这些任务所使用的资源也相应增加。资源数目的增加提高了管理资源的复杂性。
目前还未出现对于资源分配的行业标准或通用的方法,一般都是根据业务要求来使用各种资源分配方法,比如在使用嵌入式设备的编解码资源的时候,使用编解码往往是根据给出的参数做静态分配,如果参数是:4K H.264/H.265 30fps视频编码,可以接1路4K分辨率视频或4路1080p分辨率视频等,在初始化分配之后,就设备就不能自动修改分配情况了,只能人为手动修改。这种方法适用于预知视频分辨率的编解码情况,但对于无法得知分辨率的视频,使用这种方法会出现编解码资源不够或编解码资源利用不充分的情况。
发明内容
本发明提供了一种编解码资源分配方法及装置,可以灵活分配编解码资源,提高编解码资源的使用率。
为了解决上述技术问题,本发明的第一实施例提供了一种编解码资源分配方法,包括:
当接收到新任务的申请时,计算新任务所需的编解码资源,并对新任务分配优先级;
若当前编解码资源小于新任务的所需的编解码资源,比对新任务和已申请任务的优先级;
当新任务的优先级高于已申请任务时,中断已申请任务并释放编解码资源;
当新任务的优先级低于已申请任务时,等待已申请任务运行完成后释放编解码资源;
待当前编解码资源大于新任务所需的编解码资源时,运行新任务。
本发明对于新申请的新任务,可以自动计算该任务所需的编解码资源,并分配到高等级或低等级的优先级,若当前编解码资源不足,但新任务的优先级高于之前的已申请任务,则自动中断运行中的任务,释放出编解码资源,以使有足够的编解码资源来运行优先级高的新任务,若新任务的优先级较低,则将新任务挂起,待前面的已申请任务运行完毕后再运行新任务,本发明根据任务的轻重缓急来灵活分配编解码资源,提高编解码资源的使用率。
进一步地,所述若新任务的优先级高于已申请任务,中断已申请任务并释放编解码资源,具体为:
将正在运行的任务和挂起的任务定义为已申请任务;
若新任务的优先级高于正在运行的任务,则中断正在运行的任务并释放编解码资源,新任务的运行顺序在正在运行的任务之前;
若新任务的优先级低于正在运行的任务且高于挂起的任务,则等待正在运行的任务运行完成后释放编解码资源,新任务的运行顺序在在正在运行的任务之后且挂起的任务之前。
本发明的已申请任务分为正在运行的任务和挂起的任务,若新任务的优先级高于正在运行的任务,可以直接中断正在运行的任务,让新任务先运行,若新任务的优先级低于正在运行的任务,但高于挂起的任务,则可以等正在运行的任务运行完毕后,比起挂起的任务,先运行新任务,可以根据各任务的重要性,优先运行紧急的任务,充分利用编解码资源。
进一步地,所述比对当前编解码资源和新任务所需的编解码资源的大小,具体为:
比对当前编码资源和新任务所需的编码资源的大小;
比对当前解码资源和新任务所需的解码资源的大小;
当前的编码资源大于新任务所需的编码资源,且当前的解码资源大于新任务所需的解码资源时,则确定当前编解码资源大于新任务所需的编解码资源;
否则,确定当前编解码资源小于新任务所需的编解码资源。
本发明的任务会用到编码资源和解码资源,需要设备内两种资源都充足才能运行新任务,若其中一方不足,新任务都需要等待,以保证任务能顺利运行,避免延长任务的运行时间。
进一步地,所述若当前编解码资源小于新任务的所需的编解码资源,比对新任务和已申请任务的优先级,还包括:
若当前编解码资源大于新任务所需的编解码资源,则直接运行新任务。
本发明接收到新任务时,如果当前系统的编解码资源足够可以运行新任务,则不用考虑任务的优先级,直接运行新任务,减少了新任务运行的准备步骤,提高了运行任务的效率。
进一步地,挂起的任务,具体为:
在挂起的任务中,优先级高的任务先运行;
若挂起的任务中,多个任务的优先级相同,则按申请时间的顺序运行。
本发明被挂起的任务,也是遵循优先级高的先运行的原则,若优先级相同,则按申请时间的先后顺序陆续运行,以保证任务顺利运行。
进一步地,所述当新任务的优先级高于已申请任务时,中断已申请任务并释放编解码资源,还包括:
待新任务运行完毕后,释放编解码资源,恢复运行已申请任务。
本发明在高优先级的新任务运行完毕后,会释放出编解码资源,重新运行之前正在运行的任务,保持任务的运行先后顺序。
本发明提供了一种编解码资源分配方法,对于新申请的新任务,可以自动计算该任务所需的编解码资源,并分配到高等级或低等级的优先级,若当前的编解码资源足够运行新任务,则直接运行新任务,若当前编解码资源不足,但新任务的优先级高于之前的已申请任务,则自动中断运行中的任务,释放出编解码资源,以使有足够的编解码资源来运行优先级高的新任务,若新任务的优先级较低,则将新任务挂起,待前面的已申请任务运行完毕后再运行新任务,本发明根据任务的轻重缓急来灵活分配编解码资源,提高编解码资源的利用率。
相应地,本发明提供了一种编解码资源分配装置,包括:计算模块、比对模块、中断模块、等待模块和运行模块;
所述计算模块用于当接收到新任务的申请时,计算新任务所需的编解码资源,并对新任务分配优先级;
所述比对模块用于若当前编解码资源小于新任务的所需的编解码资源,比对新任务和已申请任务的优先级;
所述中断模块用于当新任务的优先级高于已申请任务时,中断已申请任务并释放编解码资源;
所述等待模块用于当新任务的优先级低于已申请任务时,等待已申请任务运行完成后释放编解码资源;
所述运行模块用于待当前编解码资源大于新任务所需的编解码资源时,运行新任务。
进一步地,所述中断模块,包括:定义单元、中断单元和等待单元;
所述定义单元用于将正在运行的任务和挂起的任务定义为已申请任务;
所述中断单元用于若新任务的优先级高于正在运行的任务,则中断正在运行的任务并释放编解码资源,新任务的运行顺序在正在运行的任务之前;
所述等待单元用于若新任务的优先级低于正在运行的任务且高于挂起的任务,则等待正在运行的任务运行完成后释放编解码资源,新任务的运行顺序在在正在运行的任务之后且挂起的任务之前。
进一步地,所述比对模块,还包括:运行单元;
所述运行单元用于若当前编解码资源大于新任务所需的编解码资源,则直接运行新任务。
进一步地,所述中断模块,还包括:恢复单元;
所述恢复单元用于待新任务运行完毕后,释放编解码资源,恢复运行已申请任务。
本发明提供了一种编解码资源分配装置,以模块间的有机结合为基础,可以根据任务的轻重缓急灵活分配编解码资源,提高编解码资源的使用率。
附图说明
图1为本发明提供的编解码资源分配方法的一种实施例的流程示意图;
图2为本发明提供的编解码资源分配方法的另一种实施例的流程示意图;
图3为本发明提供的编解码资源分配装置的一种实施例的结构示意图;
图4为本发明提供的编解码资源分配装置的另一种实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,是本发明提供的编解码资源分配方法的一种实施例的流程示意图,该方法包括步骤101至步骤105,各步骤具体如下:
步骤101:当接收到新任务的申请时,计算新任务所需的编解码资源,并对新任务分配优先级。
作为本发明的一种举例,本发明大致分为两个功能块,一个是资源管理模块,一个是任务调度模块。资源管理模块是实现编解码资源的使用管理,比如,某个任务的实现需要用到编解码资源时,需要在资源管理模块申请资源所需的编解码资源和登记任务运行的优先级。任务调度模块是用于根据任务的优先级对任务进行调度,当编解码资源足够时,所有任务都启动,但编解码资源不足时,就会挂起优先级低的任务并腾出编解码资源给优先级高的任务运行。
作为本发明的一种举例,通过资源管理模块定义系统内的编码总资源为100%,解码总资源为100%,解码4K(3840x2160)视频,所需要资源为100%,解码1080p(1920*1080)所需要资源为25%,按分辨率占比以此类推,所需编码资源也一样定义,编码4K需要资源为100%,解码1080p需要资源为25%,任务的优先级分为高和低两个等级。
在本发明实施例中,任务的优先级是人为决定的,通过实际的应用决定,且优先级的高低是相对的。比如,查看单路视频的操作比查看多路视频的任务优先级高。也会存在某个任务在某个时间段是高优先级,但在这个时间段以外就是低优先级。例如:任务一:视频转码任务(H265转H264),是从网页上看视频时需要用到的;任务二:智能视频分析任务,无人值守时检测异常情况,因为白天的时候安保人员都在值班,智能视频分析任务只是辅助功能,优先级相对不高,所以白天一般设置任务一为高优先级,任务二为低优先级;晚上,安保人员已经下班,智能视频分析任务重要性提高,所以设置任务二为高优先级,任务一为低优先级。
步骤102:若当前编解码资源小于新任务的所需的编解码资源,比对新任务和已申请任务的优先级。
在本实施例中,所述比对当前编解码资源和新任务所需的编解码资源的大小,具体为:
比对当前编码资源和新任务所需的编码资源的大小;
比对当前解码资源和新任务所需的解码资源的大小;
当前的编码资源大于新任务所需的编码资源,且当前的解码资源大于新任务所需的解码资源时,则确定当前编解码资源大于新任务所需的编解码资源;
否则,确定当前编解码资源小于新任务所需的编解码资源。
在本发明实施例中,本发明的任务会用到编码资源和解码资源,需要设备内两种资源都充足才能运行新任务,若其中一方不足,新任务都需要等待,以保证任务能顺利运行,避免延长任务的运行时间。
在本发明实施例中,若当前编解码资源小于新任务的所需的编解码资源,比对新任务和已申请任务的优先级,还包括:
若当前编解码资源大于新任务所需的编解码资源,则直接运行新任务。
在本发明实施例中,如果系统内的编解码资源足够,可以运行新任务,则可以不用考虑新任务的优先级,直接运行。只有在系统的编解码资源不足时才会比对任务的优先级,让优先级高的任务先运行。而且往往新任务会同时用到编码资源和解码资源,要综合考虑系统内两个资源都足够的时候,才能运行新任务。
步骤103:当新任务的优先级高于已申请任务时,中断已申请任务并释放编解码资源。
步骤104:当新任务的优先级低于已申请任务时,等待已申请任务运行完成后释放编解码资源。
步骤105:待当前编解码资源大于新任务所需的编解码资源时,运行新任务。
在本实施例中,如图2所示,是本发明提供的编解码资源分配方法的一种实施例的流程示意图,步骤103具体包括步骤201至步骤203,具体如下:
步骤201:将正在运行的任务和挂起的任务定义为已申请任务。
步骤202:若新任务的优先级高于正在运行的任务,则中断正在运行的任务并释放编解码资源,新任务的运行顺序在正在运行的任务之前。
步骤203:若新任务的优先级低于正在运行的任务且高于挂起的任务,则等待正在运行的任务运行完成后释放编解码资源,新任务的运行顺序在在正在运行的任务之后且挂起的任务之前。
在本发明实施例中,挂起的任务,具体为:
在挂起的任务中,优先级高的任务先运行;
若挂起的任务中,多个任务的优先级相同,则按申请时间的顺序运行。
在本发明实施例中,对于被挂起的任务,也是遵循优先级高的先运行的原则,若优先级相同,则按申请时间的先后顺序陆续运行,以保证任务顺利运行。
在本发明实施例中,当新任务的优先级高于已申请任务时,中断已申请任务并释放编解码资源,还包括:
待新任务运行完毕后,释放编解码资源,恢复运行已申请任务。
在本发明实施例中,本发明在高优先级的新任务运行完毕后,会释放出编解码资源,重新运行之前正在运行的任务,保持任务的运行先后顺序。
在本实施例中,当系统接收到新任务时,则系统内有3种类型的任务,分别是正在运行的任务,挂起的任务和新任务,挂起的任务优先级低于正在运行的任务,或优先级和正在运行的任务一样但申请时间较晚。所以在比对优先级时,先比对新任务和正在运行的任务,若新任务优先级高,则直接中断正在运行的任务,释放资源去运行新任务;如果新任务优先级低于正在运行的任务,则继续比对新任务和挂起的任务,如果新任务的优先级高,则等正在运行的任务运行完毕后,新任务比起挂起的任务可以先运行,而如果新任务和挂起的任务优先级一样或者更低,就要按照申请顺序,等挂起的任务都运行完毕后才能运行新任务。本发明可以根据各任务的重要性,优先运行紧急的任务,充分利用编解码资源。
相应的,如图3所示,是本发明提供的编解码资源分配装置的一种实施例的结构示意图,该装置包括计算模块301、比对模块302、中断模块303、等待模块304和运行模块305;
计算模块301用于当接收到新任务的申请时,计算新任务所需的编解码资源,并对新任务分配优先级;
比对模块302用于若当前编解码资源小于新任务的所需的编解码资源,比对新任务和已申请任务的优先级;
中断模块303用于当新任务的优先级高于已申请任务时,中断已申请任务并释放编解码资源;
等待模块304用于当新任务的优先级低于已申请任务时,等待已申请任务运行完成后释放编解码资源;
运行模块305用于待当前编解码资源大于新任务所需的编解码资源时,运行新任务。
在本发明实施例中,中断模块303,包括:定义单元401、中断单元402和等待单元403;
定义单元401用于将正在运行的任务和挂起的任务定义为已申请任务;
中断单元402用于若新任务的优先级高于正在运行的任务,则中断正在运行的任务并释放编解码资源,新任务的运行顺序在正在运行的任务之前;
等待单元403用于若新任务的优先级低于正在运行的任务且高于挂起的任务,则等待正在运行的任务运行完成后释放编解码资源,新任务的运行顺序在在正在运行的任务之后且挂起的任务之前。
在本发明实施例中,比对模块302,还包括:运行单元;
运行单元用于若当前编解码资源大于新任务所需的编解码资源,则直接运行新任务。
在本发明实施例中,中断模块303,还包括:恢复单元;
所述恢复单元用于待新任务运行完毕后,释放编解码资源,恢复运行已申请任务。
综上,本发明实施例提供的编解码资源分配方法及装置对于新申请的新任务,可以自动计算该任务所需的编解码资源,并分配到高等级或低等级的优先级,若当前的编解码资源足够运行新任务,则直接运行新任务,若当前编解码资源不足,但新任务的优先级高于之前的已申请任务,则自动中断运行中的任务,释放出编解码资源,以使有足够的编解码资源来运行优先级高的新任务,若新任务的优先级较低,则将新任务挂起,待前面的已申请任务运行完毕后再运行新任务,本发明根据任务的轻重缓急来灵活分配编解码资源,提高编解码资源的利用率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
- 一种编解码视频数据的方法及装置
- 一种资源分配方法、装置及计算机可读存储介质
- 一种硬件资源分配方法及装置
- 一种上行资源分配方法、用户设备和具有存储功能的装置
- 一种外包人力资源分配方法及装置
- 编解码资源分配方法、装置及电子设备
- 一种系数编解码方法和系数编解码装置