CN107613288B - 一种诊断多路视频图像质量的分组方法及系统 - Google Patents
一种诊断多路视频图像质量的分组方法及系统 Download PDFInfo
- Publication number
- CN107613288B CN107613288B CN201710875898.0A CN201710875898A CN107613288B CN 107613288 B CN107613288 B CN 107613288B CN 201710875898 A CN201710875898 A CN 201710875898A CN 107613288 B CN107613288 B CN 107613288B
- Authority
- CN
- China
- Prior art keywords
- diagnosis
- cpu
- packet count
- plan
- consumption
- 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.)
- Active
Links
Landscapes
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
本发明提供一种诊断多路视频图像质量的分组方法及系统,方法包括:获得每个诊断计划的初步分组数;计算CPU的实际消耗,获取CPU的实际消耗和CPU消耗峰值之间的差值s;当差值s大于0时,将每个诊断计划的初步分组数按从大到小的排序放置于一个集合中;从集合中的第一个元素开始,当该元素对应的初步分组数大于1时,将该元素对应的初步分组数减1,作为该元素对应的修正后的初步分组数,同时将所述差值s与该元素对应的CPU消耗能力的差值,作为修正后的差值s,直至修正后的差值s不大于0,将各元素对应的修正后的初步分组数确定为各诊断计划的最终分组结果。本发明提供的方法和系统充分利用了CPU资源,并有效提高了诊断效率,节省了诊断时间。
Description
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种诊断多路视频图像质量的分组方法及系统。
背景技术
视频监控摄像头在城市居民的日常生活中几乎随处可见。视频监控作为安全防范系统的重要组成部分,广泛运用于铁路行业。铁路站点沿线布置了大量的摄像镜头,这些镜头的人工运维需要巨大的工作量,因此基于计算机的智能视频诊断技术备受关注,智能运维成为一个新的研究热点。视频图像质量诊断是指基于数学方法利用现代计算机统计视频在某个方面好坏程度的度量值,例如视频的清晰度、亮度和对比度等信息,进而对视频的质量进行评估,分析是否出现异常。
一般的,视频监控场景的镜头数多则成千上万个,少则几十数百个,面对异常众多的镜头时,为了充分利用计算机资源并提高诊断效率,分组对其进行诊断尤为重要。而现有的分组诊断方法均是将镜头平均分组,每组的诊断路数一样,所有镜头执行相同的诊断任务。但在实际运用中,存在不同的镜头组执行不同的诊断任务的情况,而对于这种情况,现有的平均分组的诊断方法并不适用,难以提高诊断效率。
发明内容
本发明为了克服现有技术中在对多路视频进行诊断时,难以提高诊断效率的问题,提供一种诊断多路视频图像质量的分组方法及系统。
一方面,本发明提供一种诊断多路视频图像质量的分组方法,包括:
S1,根据CPU消耗峰值、各诊断计划的总体消耗时间和各诊断计划的CPU消耗能力,获得每个诊断计划的初步分组数;
S2,计算CPU的实际消耗,根据所述CPU的实际消耗,获取所述CPU的实际消耗和所述CPU消耗峰值之间的差值s;
S3,当所述差值s大于0且所述各诊断计划的初步分组数不均为1时,将所述每个诊断计划的初步分组数按从大到小的排序放置于一个集合中,所述集合中的各个元素分别对应各个诊断计划的初步分组数;
S4,从所述集合中的第一个元素开始,当该元素对应的初步分组数大于1时,将该元素对应的初步分组数减1,作为该元素对应的修正后的初步分组数,同时将所述差值s与该元素对应的CPU消耗能力的差值,作为修正后的差值s,直至修正后的差值s不大于0,将各元素对应的修正后的初步分组数确定为各诊断计划的最终分组结果。
优选地,所述步骤S2之后还包括:
当所述CPU的实际消耗和所述CPU消耗峰值之间的差值不大于0时,将所述每个诊断计划的初步分组数确定为各诊断计划的最终分组结果。
优选地,根据CPU执行的最多诊断计划个数和所有诊断算法的CPU消耗总和确定所述CPU消耗峰值。
优选地,根据各诊断计划中待诊断视频的路数和每个待诊断视频所需的诊断时间确定所述各诊断计划的总体消耗时间;根据各诊断计划所包含的诊断算法的CPU消耗总和确定所述各诊断计划的CPU消耗能力。
优选地,步骤S1中根据CPU消耗峰值以及各诊断计划的总体消耗时间和CPU消耗能力,获得每个诊断计划的初步分组数的步骤进一步包括:其中:gi表示第i个诊断计划的初步分组数;Wi表示第i个诊断计划的总体消耗时间;Ci表示第i个诊断计划的CPU消耗能力;M表示所述CPU消耗峰值;N表示诊断计划的个数。
优选地,根据所述每个诊断计划的初步分组数和所述每个诊断计划的CPU消耗能力,计算所述CPU的实际消耗的步骤进一步包括:其中:m表示所述CPU的实际消耗;Ci表示第i个诊断计划的CPU消耗能力;gi表示第i个诊断计划的初步分组数;N表示诊断计划的个数。
优选地,所述步骤S4后还包括:
根据各诊断计划的最终分组结果并行执行各诊断计划,每执行完一个诊断计划后,依据步骤S1至S4所述的方法对剩余的诊断计划进行重新分组。
一方面,本发明提供一种诊断多路视频图像质量的分组系统,包括:分组数计算模块、CPU消耗计算模块、集合组建模块和第一分组数确定模块,其中:
所述分组数计算模块,用于根据CPU消耗峰值、各诊断计划的总体消耗时间和各诊断计划的CPU消耗能力,获得每个诊断计划的初步分组数;
所述CPU消耗计算模块,用于计算CPU的实际消耗,根据所述CPU的实际消耗,获取所述CPU的实际消耗和所述CPU消耗峰值之间的差值s;
所述集合组建模块,用于当所述差值s大于0且所述各诊断计划的初步分组数不均为1时,将所述每个诊断计划的初步分组数按从大到小的排序放置于一个集合中,所述集合中的各个元素分别对应各个诊断计划的初步分组数;
所述第一分组数确定模块,用于从所述集合中的第一个元素开始,当该元素对应的初步分组数大于1时,将该元素对应的初步分组数减1,作为该元素对应的修正后的初步分组数,同时将所述差值s与该元素对应的CPU消耗能力的差值,作为修正后的差值s,直至修正后的差值s不大于0,将各元素对应的修正后的初步分组数确定为各诊断计划的最终分组结果。
优选地,还包括:第二分组数确定模块,用于当所述CPU的实际消耗和所述CPU消耗峰值之间的差值不大于0时,将所述每个诊断计划的初步分组数确定为各诊断计划的最终分组结果。
一方面,本发明提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行所述诊断多路视频图像质量的分组方法。
本发明提供的一种诊断多路视频图像质量的分组方法及系统,在对多路视频进行诊断时,通过将视频诊断所包含的诊断算法个数及复杂度量化,并将其体现在CPU的消耗上,从而基于多路视频诊断的总时间最少且CPU的利用率最高的原则,根据不同视频诊断所需的不同CPU消耗,确定多路视频诊断的分组方式,从而根据分组方式对多路视频实现并行诊断,充分利用了CPU资源,并有效提高了诊断效率,节省了视频诊断的时间。
附图说明
图1为本发明实施例的一种诊断多路视频图像质量的分组方法的整体流程示意图;
图2为本发明实施例的一种诊断多路视频图像质量的分组系统的整体结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1为本发明实施例的一种诊断多路视频图像质量的分组方法的整体流程示意图,如图1所示,本发明提供一种诊断多路视频图像质量的分组方法,包括:
S1,根据CPU消耗峰值、各诊断计划的总体消耗时间和各诊断计划的CPU消耗能力,获得每个诊断计划的初步分组数;
S2,计算CPU的实际消耗,根据所述CPU的实际消耗,获取所述CPU的实际消耗和所述CPU消耗峰值之间的差值s;
S3,当所述差值s大于0且所述各诊断计划的初步分组数不均为1时,将每个所述诊断计划的初步分组数按从大到小的排序放置于一个集合中,所述集合中的各个元素分别对应各个诊断计划的初步分组数;
S4,从所述集合中的第一个元素开始,当该元素对应的初步分组数大于1时,将该元素对应的初步分组数减1,作为该元素对应的修正后的初步分组数,同时将所述差值s与该元素对应的CPU消耗能力的差值,作为修正后的差值s,直至修正后的差值s不大于0,将各元素对应的修正后的初步分组数确定为各诊断计划的最终分组结果。
具体地,视频诊断算法大多是比较密集且复杂的,导致CPU的消耗较高。本实施例中,在诊断多路视频时,为了充分利用CPU资源并提高诊断效率,对多路视频分组并根据分组采用多线程处理。本实施例中,将待诊断视频、诊断算法及诊断算法参数的组合称之为一个诊断计划,一个诊断计划中,一般包含多个待诊断视频和诊断算法。
视频的诊断算法包括:黑屏诊断算法、冻结诊断算法、亮度异常诊断算法、偏色诊断算法和模糊诊断算法等。鉴于不同的诊断计划所包含的待诊断视频路数和诊断算法一般不相同,在不同诊断计划所包含的诊断算法不相同的情况下,诊断一路视频所需的时间也不相同。例如,诊断计划A包含的诊断算法为黑屏和冻结诊断算法;诊断计划B包含的诊断算法为模糊诊断算法;诊断计划C包含的诊断算法为黑屏诊断算法、亮度异常诊断算法和偏色诊断算法,由于每个诊断算法的复杂度并不相同,且诊断计划A、B和C包含了不同数量的不同诊断算法,因此诊断计划A、B和C诊断一路视频所需的时间并不相同。同时,不同诊断算法的复杂度不同,因而对应的CPU消耗也不相同。因此,不同诊断计划单位时间内消耗资源的能力主要取决于其包含的诊断算法个数及诊断算法的复杂度。
本实施例中,在执行多个诊断计划时,为了充分考量不同诊断计划所包含的诊断算法数量和复杂度,对不同诊断算法的复杂度进行量化,以某种诊断算法为基准,设其对CPU的消耗能力为1,其他诊断算法均参照此诊断算法经由复杂度分析和测试后,分别评估得到对应的CPU消耗能力。
有鉴于此,本实施例中,在诊断多路视频时,首先,获取CPU消耗峰值以及各诊断计划的总体消耗时间和CPU消耗能力,其中,CPU消耗峰值为计算机在执行最多诊断计划个数且每个诊断计划包含最多诊断算法的情况下,CPU消耗的最大值;各诊断计划的总体时间为各诊断计划诊断完成所包含的全部视频所需的时间;各诊断计划的CPU消耗能力为各诊断计划所包含的所有诊断算法对应的CPU消耗能力的总和。再基于CPU利用率最高且各诊断计划的总耗时最小的原则,根据CPU消耗峰值以及各诊断计划的总体消耗时间和CPU消耗能力,获得每个诊断计划的初步分组数。其中,每个诊断计划的初步分组数为大于或等于1的整数。
进一步地,在获得了每个诊断计划的初步分组数之后,根据每个诊断计划的初步分组数计算CPU的实际消耗,并根据计算得到的CPU的实际消耗,获取CPU的实际消耗和CPU消耗峰值之间的差值,以确定CPU的实际消耗是否超出了CPU的负荷,也即CPU消耗峰值,从而确保根据每个诊断计划的初步分组数执行各诊断计划所需的CPU能耗在CPU的负荷范围之内,以有效利用CPU,减少对CPU的损耗。
进一步地,将CPU的实际消耗和所述CPU消耗峰值之间的差值作为s,当差值s大于0时,表明CPU处于超负荷状态,此时应对每个诊断计划的初步分组数进行调整。同时,若各诊断计划的初步分组数不均为1,表明每个诊断计划的初步分组数还可以进行调整。在对各诊断计划的初步分组数进行调整的过程中,首先把每个诊断计划的初步分组数按从大到小的排序放置于一个集合中,由此,集合中的各个元素分别对应各个诊断计划的初步分组数。
进一步地,从集合中的第一个元素对应的初步分组数开始,依次对集合中各元素对应的初步分组数进行调整,当该元素对应的初步分组数大于1时,说明此时可以调整该元素对应的初步分组数以适当降低CPU的负荷,由此将该元素对应的初步分组数减1,从而CPU的实际消耗减少,进而将差值s与该元素对应的CPU消耗能力的差值,作为修正后的差值s。重复执行上述操作,直至修正后的差值s不大于0,则证明此时CPU的实际消耗已减少到了CPU的负荷范围内,最后将集合中最终各元素对应的初步分组数确定为各诊断计划的最终分组结果,进而计算机根据最终的分组结果并行执行各诊断计划。一般情况下,在不超过CPU消耗峰值的条件下,计算机一般都能并行执行多个诊断计划,除计算机性能非常差的特殊情况外。
本发明提供的一种诊断多路视频图像质量的分组方法,在对多路视频进行诊断时,通过将视频诊断所包含的诊断算法个数及复杂度量化,并将其体现在CPU的消耗上,从而基于多路视频诊断的总时间最少且CPU的利用率最高的原则,根据不同视频诊断所需的不同CPU消耗,确定多路视频诊断的分组方式,从而根据分组方式对多路视频实现并行诊断,充分利用了CPU资源,并有效提高了诊断效率,节省了视频诊断的时间。
基于上述任一实施例,提供一种诊断多路视频图像质量的分组方法,所述步骤S2之后还包括:当所述CPU的实际消耗和所述CPU消耗峰值之间的差值不大于0时,将所述每个诊断计划的初步分组数确定为各诊断计划的最终分组结果。
具体地,在获得了每个诊断计划的初步分组数之后,根据每个诊断计划的初步分组数计算CPU的实际消耗,并根据计算得到的CPU的实际消耗,获取CPU的实际消耗和CPU消耗峰值之间的差值,当CPU的实际消耗和CPU消耗峰值之间的差值不大于0时,表明此时不仅各诊断计划总耗时最少,同时CPU的利用率也最高,且没有超出CPU的负荷,由此将每个诊断计划的初步分组数确定为各诊断计划的最终分组结果,即完成分组。
本发明提供的一种诊断多路视频图像质量的分组方法,在对多路视频进行诊断时,通过将视频诊断所包含的诊断算法个数及复杂度量化,并将其体现在CPU的消耗上,从而基于多路视频诊断的总时间最少且CPU的利用率最高的原则,根据不同视频诊断所需的不同CPU消耗,确定多路视频诊断的分组方式,从而根据分组方式对多路视频实现并行诊断,充分利用了CPU资源,并有效提高了诊断效率,节省了视频诊断的时间。
基于上述任一实施例,提供一种诊断多路视频图像质量的分组方法,根据CPU执行的最多诊断计划个数和所有诊断算法的CPU消耗总和确定所述CPU消耗峰值。
具体地,CPU消耗峰值为CPU耗能的最大值,在进行多路视频诊断时,CPU耗能与诊断计划的个数和诊断计划所包含的诊断算法密切相关,在执行最多诊断计划,且每个诊断计划执行最多诊断算法时,CPU的耗能达到最大值,即为CPU消耗峰值。鉴于每个诊断算法均需消耗一定的CPU资源,若全部诊断算法消耗CPU资源的总和为Cmax,每个诊断计划执行最多诊断算法的情况下,CPU能够运行的诊断计划个数为K,将CPU消耗峰值记为M,那么,CPU消耗峰值M=K·Cmax。
本发明提供的一种诊断多路视频图像质量的分组方法,通过CPU执行的最多诊断计划个数和所有诊断算法的总耗能确定所述CPU消耗峰值,有利于将CPU的实际消耗控制在CPU消耗峰值的范围内,从而避免CPU超负荷运行,在充分利用CPU资源的同时,对CPU进行了有效保护。
基于上述任一实施例,提供一种诊断多路视频图像质量的分组方法,根据各诊断计划中待诊断视频的路数和每个待诊断视频所需的诊断时间确定所述各诊断计划的总体消耗时间;根据各诊断计划所包含的诊断算法的CPU消耗总和确定所述各诊断计划的CPU消耗能力。
具体地,对于各诊断计划,各诊断计划所包含的待诊断视频的路数和对应的诊断算法是已知的,根据诊断算法的复杂度可以确定不同诊断计划中每个待诊断视频所需的诊断时间,由此,可根据各诊断计划中待诊断视频的路数和每个待诊断视频所需的诊断时间确定各诊断计划顺序诊断全部待诊断视频所需的总时间,即各诊断计划的总体消耗时间。例如,假设单个诊断计划所包含的视频路数(镜头个数)为L,每路视频的诊断时间为T,将该诊断计划总体消耗时间记为W,则该诊断计划总体消耗时间W=LT。
进一步地,各诊断计划所包含的诊断算法可以为一个或者多个,每个诊断算法的复杂程度不一,不同诊断算法对CPU的消耗也不同。由此,可以根据各诊断计划所包含的诊断算法的CPU消耗总和确定所述各诊断计划的CPU消耗总量,即为各诊断计划的CPU消耗能力。
本发明提供的一种诊断多路视频图像质量的分组方法,根据各诊断计划中待诊断视频的路数和每个待诊断视频所需的诊断时间确定各诊断计划的总体消耗时间,并根据各诊断计划所包含的诊断算法的CPU消耗总和确定各诊断计划的CPU消耗能力,从而将各诊断计划的CPU消耗能力量化,并准确计算各诊断计划的总体消耗时间,有利于基于各诊断计划的总时间最少且CPU的利用率最高的原则,确定各诊断计划的分组方式,从而提高诊断效率。
基于上述任一实施例,提供一种诊断多路视频图像质量的分组方法,步骤S1中根据CPU消耗峰值以及各诊断计划的总体消耗时间和CPU消耗能力,获得每个诊断计划的初步分组数的步骤进一步包括:其中:gi表示第i个诊断计划的初步分组数;Wi表示第i个诊断计划的总体消耗时间;Ci表示第i个诊断计划的CPU消耗能力;M表示所述CPU消耗峰值;N表示诊断计划的个数。
具体地,当运行的诊断计划个数为N时,假设第1个诊断计划的初步分组数为g1,第2个诊断计划的初步分组数为g2,依次类推,第N个诊断计划的初步分组数为gN;同时假设第1个诊断计划的总体消耗时间为W1,第2个诊断计划的总体消耗时间为W2,依次类推,第N个诊断计划的总体消耗时间为WN。若根据各诊断计划的初步分组数并行执行各诊断计划,由此,第1个诊断计划根据对应的初步分组数并行执行的总耗时为第2个诊断计划根据对应的初步分组数并行执行的总耗时为依次类推,第N个诊断计划根据对应的初步分组数并行执行的总耗时为因此,所有诊断计划总的时间可以用下式表示:
在上式的基础上,假设第一个诊断计划的CPU消耗能力为C1,第二个诊断计划的CPU消耗能力为C2,依次类推,第N个诊断计划的CPU消耗能力为CN,在CPU利用率最高的前提条件下,忽略其他因素对时间的影响,各诊断计划的CPU消耗总和为CPU消耗峰值,由此可得到下式:
s.t.
g1C1+g2C2+…+gNCN=M
其中W1,W2,…,WN和C1,C2,…,CN,以及M、N均为常数。根据上式构造拉格朗日函数,具体为:
根据拉格朗日乘数法,Lg的极值点必定是各个偏导数为0的点。于是,令Lg分别对g1,g2,...,gN,λ求偏导数,并且令偏导数为0,可得到下式:
其中为了简化公式,令可得出:
t的极值为:
t的黑塞矩阵如下:
由以上矩阵可以看出,在极值点处是一个正定矩阵,因此,该极值点是极小值点。
由上述(1)式可知,在CPU利用率最高,且所有诊断计划总的时间最小的条件下,各诊断计划的初步分组数gi的计算公式为:其中,θ是为了简化gi的计算公式而设定的中间参数。可以看出,诊断计划耗时越多,对应的初步分组数就越多;诊断计划的CPU消耗能力越大,对应的初步分组数就越少。同时,在实际过程中,gi必须是大于0的整数,因此,在具体计算时,应将最终的计算结果向上取整数,以获取gi的具体数值,即确定各诊断计划的初步分组数。
本发明提供的一种诊断多路视频图像质量的分组方法,在对多路视频进行诊断时,通过将视频诊断所包含的诊断算法个数及复杂度量化,并将其体现在CPU的消耗上,从而基于多路视频诊断的总时间最少且CPU的利用率最高的原则,根据不同视频诊断所需的不同CPU消耗,确定多路视频诊断的分组方式,从而根据分组方式对多路视频实现并行诊断,充分利用了CPU资源,并有效提高了诊断效率,节省了视频诊断的时间。
基于上述任一实施例,提供一种诊断多路视频图像质量的分组方法,根据所述每个诊断计划的初步分组数和所述每个诊断计划的CPU消耗能力,计算所述CPU的实际消耗的步骤进一步包括:其中:m表示所述CPU的实际消耗;Ci表示第i个诊断计划的CPU消耗能力;gi表示第i个诊断计划的初步分组数;N表示诊断计划的个数。
具体地,根据CPU消耗峰值以及各诊断计划的总体消耗时间和CPU消耗能力,获得每个诊断计划的初步分组数,每个诊断计划在根据对应的初步分组数执行具体的视频诊断时,均需消耗一定的CPU资源,各诊断计划消耗的CPU资源总和,即为CPU的实际消耗。本实施例中,根据每个诊断计划的初步分组数和每个诊断计划的CPU消耗能力,计算CPU的实际消耗,由此可验证此时CPU的实际消耗是否在CPU的负荷范围内。
进一步地,上述CPU的实际消耗的具体计算公式为:其中:m表示所述CPU的实际消耗;Ci表示第i个诊断计划的CPU消耗能力;gi表示第i个诊断计划的初步分组数;N表示诊断计划的个数。例如,现有诊断计划A、B和C,若根据CPU消耗峰值以及诊断计划的总体消耗时间和CPU消耗能力,获得A、B和C三个诊断计划的初步分组数分别为10、5和3,而A、B和C三个诊断计划的CPU消耗能力分别为2、4和14,那么根据上述公式可以计算出此时的CPU实际消耗m=2*10+4*5+14*3=82。
本发明提供的一种诊断多路视频图像质量的分组方法,通过每个诊断计划的初步分组数和每个诊断计划的CPU消耗能力,计算CPU的实际消耗,有利于将CPU的实际消耗控制在CPU消耗峰值的范围内,从而避免CPU超负荷运行,在充分利用CPU资源的同时,对CPU进行了有效保护。
基于上述任一实施例,提供一种诊断多路视频图像质量的分组方法,所述步骤S4后还包括:根据各诊断计划的最终分组结果并行执行各诊断计划,每执行完一个诊断计划后,依据步骤S1至S4所述的方法对剩余的诊断计划进行重新分组。
具体地,在确定各诊断计划的最终分组结果之后,再根据各诊断计划的最终分组结果并行执行各诊断计划。为了充分利用CPU资源,本实施例中,每执行完一个诊断计划后,依据图1所示实施例中的步骤S1~S4的方法对剩余的诊断计划进行重新分组。例如,假设现有A、B和C三个诊断计划,并已分别确定了A、B和C三个诊断计划的最终分组结果,在根据对应的最终分组结果并行执行A、B和C三个诊断计划的过程中,若经过T时间后,A诊断计划中的视频已全部完成诊断,则再分别计算B和C两个诊断计划此时已完成诊断的视频路数,进而分别计算B和C两个诊断计划剩余待诊断视频的路数。根据B和C两个诊断计划剩余待诊断视频的路数和每个待诊断视频所需的诊断时间,重新计算B和C两个诊断计划的总体消耗时间,进而根据CPU消耗峰值以及B和C两个诊断计划各自的总体消耗时间和CPU消耗能力,获得B和C两个诊断计划的初步分组数,也即重复执行步骤S1,执行完步骤S1之后,再依次执行步骤S2~S4,以确定B和C两个诊断计划的最终分组数。依次类推,每执行完一个诊断计划则重复执行上述方法步骤,直至对最后一个诊断计划完成最终的分组。
本发明提供的一种诊断多路视频图像质量的分组方法,根据各诊断计划的最终分组结果并行执行各诊断计划,每执行完一个诊断计划后,再对剩余的诊断计划进行重新分组,充分利用了CPU资源,并有效提高了诊断效率,节省了视频诊断的时间。
为了更好地理解上述各方法实施例的技术方案,现以下述示例进行具体说明:
例如,某诊断系统执行A、B和C三个诊断计划,而该诊断系统最多能执行4个诊断计划。此外,该诊断系统所包含的所有诊断算法如表1所示,同时,A、B和C三个诊断计划所包含的参数具体如表2所示:
表1
诊断算法 | CPU消耗能力 |
黑屏 | 1 |
冻结 | 1 |
亮度异常 | 6 |
偏色 | 7 |
模糊 | 4 |
表2
将上述诊断计划A作为第1个诊断计划;诊断计划B作为第2个诊断计划;诊断计划C作为第3个诊断计划。由表2可知,W1=8000;W2=4000;W3=5000;C1=2;C2=4;C3=14;N=3。
此外,由表1可知,该诊断系统CPU消耗峰值为:M=4*(1+1+6+7+4)=4*19=76;
在gi的计算公式中,为了简化公式,设定中间参数依据上述已知参数,可求得:
假设A、B和C三个诊断计划的初步分组数分别为g1、g2、g3,则根据上述公式(1)可计算得到:
同理可计算得到:g2=4.64,g3=2.78;
鉴于g1、g2、g3均应为正整数,故对上述计算结果分别向上取整,得到g1=10,g2=5,g3=3;
由此,根据公式可计算得到此时CPU的实际消耗m=2*10+4*5+14*3=82;
进一步地,可计算得到CPU的实际消耗和CPU消耗峰值之间的差值s=m-M=6;
鉴于s>0,且g1、g2、g3均不为1,故将g1、g2、g3按照从大到小的排序放置于一个集合中,由此组成集合{g1,g2,g3};
从集合{g1,g2,g3}中的第一个元素开始,因为g1>0,则修正后的g1=10-1=9,s=6-2=4;
又因为s=4>0,且g2>0,则g2=5-1=4,s=4-4=0,此时s=0,满足分组完成条件,故A、B和C三个诊断计划的最终分组结果分别为:g1=9,g2=4,g3=3。
在889s之后,诊断计划A已经完成,诊断计划B剩余的视频路数为:
诊断计划C剩余的视频路数为:
依据上述分组方法对剩余的诊断计划B和C重新分组诊断,首先对诊断计划B和C的各项参数重新进行计算,得到如下表3:
表3
同上,可计算
同上,根据公式(1)可计算得到:
同理,可计算得到:g3=4.40;
对上述计算结果分别向上取整,得到g2=4,g3=5;
同上,可计算此时CPU的实际消耗m=4*4+14*5=86;
进一步地,可计算得到CPU的实际消耗和CPU消耗峰值之间的差值s=m-M=10;
鉴于s>0,且g2、g3均不为1,故将g2、g3按照从大到小的排序放置于一个集合中,由此组成集合{g3,g2};
从集合{g3,g2}中的第一个元素开始,因为g3>0,则修正后的g3=5-1=4,s=10-14=-4;此时已经满足分组完成条件,B和C两个诊断计划的最终分组结果分别为:g2=4,g3=4。
在111s之后诊断计划B也已完成。此时,诊断计划C剩余的视频路数为:
此时只剩下诊断计划C,在充分利用CPU资源的条件下,可将诊断计划C剩余的视频路数分为向下取整,得到分组数为5组,耗时
综上所述,完成A、B和C三个诊断计划大约需要的时间为:
889+111+378=1378s。
然而,现有技术中,并没有对不同诊断计划的CPU消耗能力进行评估,而是将各个诊断计划按序执行、均匀分组。
以上述A、B和C三个诊断计划为例,结合表1中的具体参数可知,现有技术中,将A、B和C三个诊断计划均分为组,向下取整,得到分组数为5组,首先执行诊断计划A,耗时其次执行诊断计划B,耗时最后执行诊断计划C,耗时
因此,一共耗时:1600+800+1000=3400s。
综合上述,对于A、B和C三个诊断计划,利用本发明的分组方法,最终耗时为1378s;而采用现有技术的分组方法,最终耗时为3400s。由此可知,本发明相较于现有技术有效提高了视频诊断的效率,节省了视频诊断的时间。
图2为本发明实施例的一种诊断多路视频图像质量的分组系统的整体结构示意图,如图2所示,本发明提供一种诊断多路视频图像质量的分组系统,包括:分组数计算模块1、CPU消耗计算模块2、集合组建模块3和第一分组数确定模块4,其中:
所述分组数计算模块1,用于根据CPU消耗峰值、各诊断计划的总体消耗时间和各诊断计划的CPU消耗能力,获得每个诊断计划的初步分组数;
所述CPU消耗计算模块2,用于计算CPU的实际消耗,根据所述CPU的实际消耗,获取所述CPU的实际消耗和所述CPU消耗峰值之间的差值s;
所述集合组建模块3,用于当所述差值s大于0且所述各诊断计划的初步分组数不均为1时,将每个所述诊断计划的初步分组数按从大到小的排序放置于一个集合中,所述集合中的各个元素分别对应各个诊断计划的初步分组数;
所述第一分组数确定模块4,用于从所述集合中的第一个元素开始,当该元素对应的初步分组数大于1时,将该元素对应的初步分组数减1,作为该元素对应的修正后的初步分组数,同时将所述差值s与该元素对应的CPU消耗能力的差值,作为修正后的差值s,直至修正后的差值s不大于0,将各元素对应的修正后的初步分组数确定为各诊断计划的最终分组结果。
具体地,本实施例中,在诊断多路视频时,首先,由分组数计算模块1获取CPU消耗峰值以及各诊断计划的总体消耗时间和CPU消耗能力,其中,CPU消耗峰值为计算机在执行最多诊断计划个数且每个诊断计划包含最多诊断算法的情况下,CPU消耗的最大值;各诊断计划的总体时间为各诊断计划诊断完成所包含的全部视频所需的时间;各诊断计划的CPU消耗能力为各诊断计划所包含的所有诊断算法对应的CPU消耗能力的总和。然后,分组数计算模块1再基于CPU利用率最高且各诊断计划的总耗时最小的原则,根据CPU消耗峰值以及各诊断计划的总体消耗时间和CPU消耗能力,获得每个诊断计划的初步分组数。其中,每个诊断计划的初步分组数为大于或等于1的整数。
进一步地,在分组数计算模块1获得了每个诊断计划的初步分组数之后,CPU消耗计算模块2再根据每个诊断计划的初步分组数计算CPU的实际消耗,并根据计算得到的CPU的实际消耗,获取CPU的实际消耗和CPU消耗峰值之间的差值,以确定CPU的实际消耗是否超出了CPU的负荷,也即CPU消耗峰值,从而确保根据每个诊断计划的初步分组数执行各诊断计划所需的CPU能耗在CPU的负荷范围之内,以有效利用CPU,减少对CPU的损耗。
进一步地,将CPU的实际消耗和所述CPU消耗峰值之间的差值作为s,当差值s大于0时,表明CPU处于超负荷状态,此时应对每个诊断计划的初步分组数进行调整。同时,若各诊断计划的初步分组数不均为1,表明每个诊断计划的初步分组数还可以进行调整。在对各诊断计划的初步分组数进行调整的过程中,首先,集合组建模块3把每个诊断计划的初步分组数按从大到小的排序放置于一个集合中,由此,集合中的各个元素分别对应各个诊断计划的初步分组数。
进一步地,第一分组数确定模块4从集合中的第一个元素对应的初步分组数开始,依次对集合中各元素对应的初步分组数进行调整,当该元素对应的初步分组数大于1时,说明此时可以调整该元素对应的初步分组数以适当降低CPU的负荷,由此将该元素对应的初步分组数减1,从而CPU的实际消耗减少,进而将差值s与该元素对应的CPU消耗能力的差值,作为修正后的差值s。在此之后,第一分组数确定模块4重复执行上述操作,直至修正后的差值s不大于0,则证明此时CPU的实际消耗已减少到了CPU的负荷范围内,最后将集合中最终各元素对应的初步分组数确定为各诊断计划的最终分组结果,进而计算机根据最终的分组结果并行执行各诊断计划。一般情况下,在不超过CPU消耗峰值的条件下,计算机一般都能并行执行多个诊断计划,除计算机性能非常差的特殊情况外。
本发明提供的一种诊断多路视频图像质量的分组系统,在对多路视频进行诊断时,通过将视频诊断所包含的诊断算法个数及复杂度量化,并将其体现在CPU的消耗上,从而基于多路视频诊断的总时间最少且CPU的利用率最高的原则,根据不同视频诊断所需的不同CPU消耗,确定多路视频诊断的分组方式,从而根据分组方式对多路视频实现并行诊断,充分利用了CPU资源,并有效提高了诊断效率,节省了视频诊断的时间。
基于上述任一实施例,提供一种诊断多路视频图像质量的分组系统,如图2所示,所述系统还包括:第二分组数确定模块5,用于当所述CPU的实际消耗和所述CPU消耗峰值之间的差值不大于0时,将所述每个诊断计划的初步分组数确定为各诊断计划的最终分组结果。
具体地,在分组数计算模块1获得了每个诊断计划的初步分组数之后,CPU消耗计算模块2再根据每个诊断计划的初步分组数计算CPU的实际消耗,并根据计算得到的CPU的实际消耗,获取CPU的实际消耗和CPU消耗峰值之间的差值,当CPU的实际消耗和CPU消耗峰值之间的差值不大于0时,表明此时不仅各诊断计划总耗时最少,同时CPU的利用率也最高,且没有超出CPU的负荷,由此第二分组数确定模块5将每个诊断计划的初步分组数确定为各诊断计划的最终分组结果,即完成分组。
本发明提供的一种诊断多路视频图像质量的分组系统,在对多路视频进行诊断时,通过将视频诊断所包含的诊断算法个数及复杂度量化,并将其体现在CPU的消耗上,从而基于多路视频诊断的总时间最少且CPU的利用率最高的原则,根据不同视频诊断所需的不同CPU消耗,确定多路视频诊断的分组方式,从而根据分组方式对多路视频实现并行诊断,充分利用了CPU资源,并有效提高了诊断效率,节省了视频诊断的时间。
基于上述任一实施例,提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
根据CPU消耗峰值、各诊断计划的总体消耗时间和各诊断计划的CPU消耗能力,获得每个诊断计划的初步分组数;
计算CPU的实际消耗,根据所述CPU的实际消耗,获取所述CPU的实际消耗和所述CPU消耗峰值之间的差值s;
当所述差值s大于0且所述各诊断计划的初步分组数不均为1时,将每个所述诊断计划的初步分组数按从大到小的排序放置于一个集合中,所述集合中的各个元素分别对应各个诊断计划的初步分组数;
从所述集合中的第一个元素开始,当该元素对应的初步分组数大于1时,将该元素对应的初步分组数减1,作为该元素对应的修正后的初步分组数,同时将所述差值s与该元素对应的CPU消耗能力的差值,作为修正后的差值s,直至修正后的差值s不大于0,将各元素对应的修正后的初步分组数确定为各诊断计划的最终分组结果。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种诊断多路视频图像质量的分组方法,其特征在于,包括:
S1,根据CPU消耗峰值、各诊断计划的总体消耗时间和各诊断计划的CPU消耗能力,获得每个诊断计划的初步分组数;
S2,根据每个所述诊断计划的初步分组数,计算CPU的实际消耗,并根据所述CPU的实际消耗,获取所述CPU的实际消耗和所述CPU消耗峰值之间的差值s;
S3,当所述差值s大于0且所述各诊断计划的初步分组数不均为1时,将每个所述诊断计划的初步分组数按从大到小的排序放置于一个集合中,所述集合中的各个元素分别对应各个诊断计划的初步分组数;
S4,从所述集合中的第一个元素开始,当该元素对应的初步分组数大于1时,将该元素对应的初步分组数减1,作为该元素对应的修正后的初步分组数,同时将所述差值s与该元素对应的CPU消耗能力的差值,作为修正后的差值s,直至修正后的差值s不大于0,将各元素对应的修正后的初步分组数确定为各诊断计划的最终分组结果;
其中,将待诊断视频、诊断算法及诊断算法参数的组合作为一个诊断计划,所述诊断计划的分组数表示对所述诊断计划中的多路待诊断视频的分组数。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2之后还包括:
当所述CPU的实际消耗和所述CPU消耗峰值之间的差值不大于0时,将所述每个诊断计划的初步分组数确定为各诊断计划的最终分组结果。
3.根据权利要求1所述的方法,其特征在于,根据CPU执行的最多诊断计划个数和所有诊断算法的CPU消耗总和确定所述CPU消耗峰值。
4.根据权利要求1所述的方法,其特征在于,根据各诊断计划中待诊断视频的路数和每个待诊断视频所需的诊断时间确定所述各诊断计划的总体消耗时间;根据各诊断计划所包含的诊断算法的CPU消耗总和确定所述各诊断计划的CPU消耗能力。
5.根据权利要求1所述的方法,其特征在于,步骤S1中根据CPU消耗峰值以及各诊断计划的总体消耗时间和CPU消耗能力,获得每个诊断计划的初步分组数的步骤进一步包括:
其中:gi表示第i个诊断计划的初步分组数;Wi表示第i个诊断计划的总体消耗时间;Ci表示第i个诊断计划的CPU消耗能力;M表示所述CPU消耗峰值;N表示诊断计划的个数。
6.根据权利要求1所述的方法,其特征在于,步骤S2中根据所述每个诊断计划的初步分组数和所述每个诊断计划的CPU消耗能力,计算所述CPU的实际消耗,该步骤进一步包括:其中:m表示所述CPU的实际消耗;Ci表示第i个诊断计划的CPU消耗能力;gi表示第i个诊断计划的初步分组数;N表示诊断计划的个数。
7.根据权利要求1~6任一所述的方法,其特征在于,所述步骤S4后还包括:
根据各诊断计划的最终分组结果并行执行各诊断计划,每执行完一个诊断计划后,依据步骤S1至S4所述的方法对剩余的诊断计划进行重新分组。
8.一种诊断多路视频图像质量的分组系统,其特征在于,包括:分组数计算模块、CPU消耗计算模块、集合组建模块和第一分组数确定模块,其中:
所述分组数计算模块,用于根据CPU消耗峰值、各诊断计划的总体消耗时间和各诊断计划的CPU消耗能力,获得每个诊断计划的初步分组数;
所述CPU消耗计算模块,用于根据每个所述诊断计划的初步分组数,计算CPU的实际消耗,并根据所述CPU的实际消耗,获取所述CPU的实际消耗和所述CPU消耗峰值之间的差值s;
所述集合组建模块,用于当所述差值s大于0且所述各诊断计划的初步分组数不均为1时,将每个所述诊断计划的初步分组数按从大到小的排序放置于一个集合中,所述集合中的各个元素分别对应各个诊断计划的初步分组数;
所述第一分组数确定模块,用于从所述集合中的第一个元素开始,当该元素对应的初步分组数大于1时,将该元素对应的初步分组数减1,作为该元素对应的修正后的初步分组数,同时将所述差值s与该元素对应的CPU消耗能力的差值,作为修正后的差值s,直至修正后的差值s不大于0,将各元素对应的修正后的初步分组数确定为各诊断计划的最终分组结果;
其中,将待诊断视频、诊断算法及诊断算法参数的组合作为一个诊断计划,所述诊断计划的分组数表示对所述诊断计划中的多路待诊断视频的分组数。
9.根据权利要求8所述的系统,其特征在于,还包括:第二分组数确定模块,用于当所述CPU的实际消耗和所述CPU消耗峰值之间的差值不大于0时,将所述每个诊断计划的初步分组数确定为各诊断计划的最终分组结果。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710875898.0A CN107613288B (zh) | 2017-09-25 | 2017-09-25 | 一种诊断多路视频图像质量的分组方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710875898.0A CN107613288B (zh) | 2017-09-25 | 2017-09-25 | 一种诊断多路视频图像质量的分组方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107613288A CN107613288A (zh) | 2018-01-19 |
CN107613288B true CN107613288B (zh) | 2019-06-25 |
Family
ID=61058344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710875898.0A Active CN107613288B (zh) | 2017-09-25 | 2017-09-25 | 一种诊断多路视频图像质量的分组方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107613288B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523370A (zh) * | 2011-11-22 | 2012-06-27 | 上海交通大学 | 基于网络传输算法的多摄像头视频异常行为检测方法 |
CN103287464A (zh) * | 2012-02-24 | 2013-09-11 | 中国科学院沈阳计算技术研究所有限公司 | 铁路道口智能视频监控系统及其实现方法 |
CN103702110A (zh) * | 2013-12-24 | 2014-04-02 | 北京航天测控技术有限公司 | 一种多路视频信号质量监测设备 |
CN105242966A (zh) * | 2015-09-28 | 2016-01-13 | 华东师范大学 | 一种面向自主获能异构系统的非精确实时任务调度方法 |
CN105323565A (zh) * | 2015-12-11 | 2016-02-10 | 国网浙江桐乡市供电公司 | 一种变电站的智能化视频故障分析与预警系统 |
CN105979203A (zh) * | 2016-04-29 | 2016-09-28 | 中国石油大学(北京) | 一种多摄像机协同监控方法及装置 |
CN106126385A (zh) * | 2016-06-14 | 2016-11-16 | 电子科技大学 | 一种基于同步数据流压缩的设备异常实时检测方法 |
CN106941531A (zh) * | 2017-03-29 | 2017-07-11 | 核工业理化工程研究院 | 一种基于dsp的多路检测装置及其检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150161449A1 (en) * | 2013-12-11 | 2015-06-11 | Systems Engineering Technologies Corporation | System and method for the use of multiple cameras for video surveillance |
-
2017
- 2017-09-25 CN CN201710875898.0A patent/CN107613288B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523370A (zh) * | 2011-11-22 | 2012-06-27 | 上海交通大学 | 基于网络传输算法的多摄像头视频异常行为检测方法 |
CN103287464A (zh) * | 2012-02-24 | 2013-09-11 | 中国科学院沈阳计算技术研究所有限公司 | 铁路道口智能视频监控系统及其实现方法 |
CN103702110A (zh) * | 2013-12-24 | 2014-04-02 | 北京航天测控技术有限公司 | 一种多路视频信号质量监测设备 |
CN105242966A (zh) * | 2015-09-28 | 2016-01-13 | 华东师范大学 | 一种面向自主获能异构系统的非精确实时任务调度方法 |
CN105323565A (zh) * | 2015-12-11 | 2016-02-10 | 国网浙江桐乡市供电公司 | 一种变电站的智能化视频故障分析与预警系统 |
CN105979203A (zh) * | 2016-04-29 | 2016-09-28 | 中国石油大学(北京) | 一种多摄像机协同监控方法及装置 |
CN106126385A (zh) * | 2016-06-14 | 2016-11-16 | 电子科技大学 | 一种基于同步数据流压缩的设备异常实时检测方法 |
CN106941531A (zh) * | 2017-03-29 | 2017-07-11 | 核工业理化工程研究院 | 一种基于dsp的多路检测装置及其检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107613288A (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427753B (zh) | 基于arima模型的容量预测装置及其控制方法 | |
CN106506266B (zh) | 基于GPU、Hadoop/Spark混合计算框架的网络流量分析方法 | |
CN109587008A (zh) | 检测异常流量数据的方法、装置及存储介质 | |
CN107643983B (zh) | 一种测试数据处理方法及系统 | |
CN109446041B (zh) | 一种服务器压力预警方法、系统及终端设备 | |
CN105677000B (zh) | 动态电压频率调整的系统及方法 | |
US10635765B2 (en) | Cluster drawing on divided display region allocated to cluster | |
CN111047369B (zh) | 一种电力现货市场监测分析装置及系统 | |
CN110276511A (zh) | 一种基于电量与线损关联性的线变关系异常判别方法 | |
CN102364449B (zh) | 一种最小测试用例集的生成方法及系统 | |
CN107679089A (zh) | 一种用于电力传感数据的清洗方法、装置和系统 | |
CN109242363B (zh) | 一种基于多种质量控制模型的全生命周期测试管理平台 | |
CN106341467B (zh) | 基于大数据并行计算的用电信息采集设备状态分析方法 | |
CN107613288B (zh) | 一种诊断多路视频图像质量的分组方法及系统 | |
CN110175124A (zh) | 一种诊断Spark应用的方法及装置 | |
CN110389840A (zh) | 负载消耗预警方法、装置、计算机设备和存储介质 | |
CN109215816B (zh) | 蒸汽发生器传热管完整性评估方法、系统及终端设备 | |
CN109885384A (zh) | 任务并行度优化方法、装置、计算机设备及存储介质 | |
CN106445812B (zh) | 回归测试系统及回归测试方法 | |
CN107729218A (zh) | 一种监控处理计算资源设备的系统及方法 | |
JP7043320B2 (ja) | 状態分析装置および状態分析方法 | |
CN108090865A (zh) | 光学卫星遥感影像在轨实时流式处理方法及系统 | |
CN113778768A (zh) | 重建服务器测试方法、装置、计算机设备和存储介质 | |
CN113744860A (zh) | 一种针对放射设备进行配置决策的评估方法 | |
CN113486586A (zh) | 设备健康状态评估方法、装置、计算机设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 102600 Beijing Daxing District Zhongguancun Science and Technology Park Daxing Biomedical Industry Base, No. 1 Building, 21 Tianrong Street Patentee after: Beijing Century Oriental Zhihui Technology Co.,Ltd. Address before: 102629 Building 1, yard 21, Tianrong street, Daxing biomedical industrial base, Zhongguancun Science and Technology Park, Daxing District, Beijing Patentee before: BEIJING CENTURY DONGFANG COMMUNICATION EQUIPMENT Co.,Ltd. |