一种多核心CPU视频转码调度方法及系统技术方案

技术编号:7060478 阅读:290 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种多核心CPU视频转码调度方法,属于视频转码领域,在调度方案实施前对转码服务器进行静态压力测试,测量出单个CPU核心所能承受的最大转码任务并发数;调度方案实施开始,初始化所有CPU核心的当前执行任务数为0,判断如果有新转码任务到达,则按照新任务的分配调度方法进行调度;判断如果有转码任务停止,则按照已有任务分配调度方法进行调度;判断如果收到终止所有转码任务的通知,则退出程序,否则重新判断是否有新转码任务到达,进行循环处理。本发明专利技术使得转码任务尽量保持在同一CPU核心中运行,有效提高了CPU?cache的命中率,提升了系统的运算效率,还可以使各个CPU核心之间负载尽可能的均衡。

【技术实现步骤摘要】
一种多核心CPU视频转码调度方法及系统
本专利技术涉及视频转码领域,尤其涉及一种多核心CPU视频转码调度方法及系统。
技术介绍
目前在交通、安防、生产监控、环保等领域有大量的网络监控视频流。这些视频流一般具有较高的分辨率和较大的码率,以便更细致地记录现场情况。然而随着移动互联网的发展,人们希望通过手机也能很方便的观看远程现场情况。由于移动信道传输的带宽有限,以及手机终端的解码能力比较弱,因此需要对原始的监控视频流进行转码,把视频的分辨率、帧率、码率等参数都降低,使得视频可以更流畅的在移动信道传输以及在于机终端解码播放。在目前服务器CPU领域,基本都使用了多核心的架构。多核心CPU具有很强的多任务并发执行能力。由于手机视频所要求的分辨率、码率等参数都不高,转码所需要的运算量不大,在单台服务器上究全可以并发进行多个转码任务。但如果不对这些任务使用硬亲和性(hardaffinity)进行调度,这些转码任务可能不会在固定的CPU核心中运行,尤其是当转码任务并发量大的时候,该现象更为明显。转码进程在多个CPU核心之间米回切换会使得CPU的cache命中率下降,降低系统的整体运行效率,同时也可能导致各个CPU核心之间负载不均衡。
技术实现思路
本专利技术实施例的目的在于提出一种多核心CPU视频转码调度方法,旨在解决现有技术中当转码任务并发量大时,转码任务可能不会在固定的CPU核心中运行,使得CPU的cache命中率下降,系统的整体运行效率不高的问题。本专利技术实施例的方法是这样实现的,一种多核心CPU视频转码调度方法,所述方法包括以下步骤:初始化每一个CPU核心执行任务数为0;判断是否有新转码任务到达,是则进行新转码任务分配调度,否则判断是否有转码任务停止,若判定有转码任务停止,则进行已有任务分配调度,若没有转码任务停止,则返回步骤“判断是否有新转码任务到达,是则进行新转码任务分配调度,否则判断是否有转码任务停止”。优选地,所述多核心CPU视频转码调度方法还包括;判断是否收到终止所有转码任务的通知,是则终止所有转码任务,否则进入步骤“判断是否有新转码任务到达,是则进行新转码任务分配调度,否则判断是否有转码任务停止”。优选地,所述步骤“初始化每一个CPU核心执行任务数为0”之前还包括:测量出单个CPU核心所能承受的最大转码任务并发数。本专利技术实施例的另一目的在于提出一种多核心CPU视频转码调度系统,所述系统包括:CPU核心初始化模块和任务调度模块;所述任务调度模块包括检测单元、新任务分配调度单元、已有任务分配调度单元和转码任务终止单元;CPU核心初始化模块,用于在转码任务调度前,初始化所有CPU核心,初始化每一个CPU核心执行任务数为0;任务调度模块,用于根据对转码任务执行情况的检测结果,执行相应的分配调度方法,当检测为有新转码任务到达时,则进行新转码任务分配调度,当检测为有转码任务停止时,则进行已有任务分配调度,当收到终止所有转码任务的通知时,终止所有转码任务;检测单元,与所述CPU核心初始化模块、新任务分配调度单元、已有任务分配调度单元和转码任务终止单元相连,用于对转码任务的执行情况进行检测,并将检测结果反馈给任务调度模块;新任务分配调度单元,与检测单元和CPU核心初始化模块相连,用于根据检测单元的反馈结果,当有新转码任务到达时,进行新转码任务分配调度;已有任务分配调度单元,与检测单元和CPU核心初始化模块相连,用于根据检测单元的反馈结果,当有转码任务停止,进行已有任务分配调度;转码任务终止单元,与检测单元相连,用于根据检测单元的反馈结果,当收到终止转码任务的通知,终止所有转码任务。本专利技术的有益效果在本专利技术实施例中,转码服务器有两个或两个以上CPU核心,在调度方案实施前对转码服务器进行静态压力测试,测量出单个CPU核心所能承受的最大转码任务并发数;调度方案实施开始,初始化所有CPU核心的当前执行任务数为0,判断如果有新转码任务到达,则按照新任务的分配调度方法进行调度;判断如果有转码任务停止,则按照已有任务分配调度方法进行调度;判断如果收到终止所有转码任务的通知,则退出程序,否则重新判断是否有新转码任务到达,进行循环处理。本专利技术方法使得转码任务尽量保持在同一CPU核心中运行,有效提高了CPUcache的命中率,从而提升了系统的运算效率;同时该方法可以使各个CPU核心之间负载尽可能的均衡。附图说明图1是本专利技术优选实施例一种多核心CPU视频转码调度方法流程图;图2是本专利技术优选实施例有新转码任务时视频转码调度方法流程图;图3是本专利技术优选实施例有新转码任务时,新转码任务分配调度示意图;图4是本专利技术优选实施例有转码任务停止时,视频转码调度方法流程图;图5是本专利技术优选实施例有转码任务停止时,已有转码任务分配调度示意图;图6是本专利技术优选实施例一种多核心CPU视频转码调度系统结构图;图7是图6所示系统中的新任务分配调度单元结构示意图;图8是图6所示系统中的已有任务分配调度单元结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本专利技术进行进一步详细说明,为了便于说明,仅示出了与本专利技术实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本专利技术,并不用以限制本专利技术。在本专利技术方法中,转码服务器有两个或两个以上CPU核心,在调度方案实施前对转码服务器进行静态压力测试,测量出单个CPU核心所能承受的最大转码任务并发数;调度方案实施开始,初始化所有CPU核心的当前执行任务数为0,判断如果有新转码任务到达,则按照新任务的分配调度方法进行调度;判断如果有转码任务停止,则按照已有任务分配调度方法进行调度;判断如果收到终止所有转码任务的通知,则退出程序,否则重新判断是否有新转码任务到达,进行循环处理。本专利技术方法使得转码任务尽量保持在同一CPU核心中运行,有效提高了CPUcache的命中率,从而提升了系统的运算效率;同时该方法可以使各个CPU核心之间负载尽可能的均衡。如图1所示为本专利技术优选实施例一种多核心CPU视频转码调度方法流程图。在进行视频转码调度之前,对转码服务器进行静态压力测试,测量出单个CPU核心所能承受的最大转码任务并发数为C。设本专利技术实施例中的转码服务器共有N个CPU核心,N为自然数。设每一个CPU核心当前执行任务数为Ti,其中1≤i≤N,其中i为CPU核心的编号。所述多核心CPU视频转码调度方法包括以下步骤:S101、初始化所有CPU核心,初始化每一个CPU核心执行任务数Ti为0;S102、判断是否有新转码任务到达,是则进行新转码任务分配调度,否则进入步骤S103;所述新转码任务的数量可以为一个或一个以上,若所述新转码任务的数量为一个以上,则在处理完一个新转码任务的分配调度后,循环返回至步骤S102进行新转码任务是否到达的判断,直至所有新转码任务的分配调度处理完毕。S103、判断是否有转码任务停止,是则进行已有任务分配调度,否则进入步骤S104;转码任务停止的数量可以为一个或一个以上,若所述转码任务停止的数量为一个以上,则根据有一个转码任务停止进行已有任务分配调度后,循环返回至步骤S102,再进入步骤S103进行是否有转码任务停止的判断,直至所有停止的转码任务的分配调度处理完毕。S10本文档来自技高网...
一种多核心CPU视频转码调度方法及系统

【技术保护点】
1.一种多核心CPU视频转码调度方法,其特征在于,所述方法包括以下步骤:初始化每一个CPU核心执行任务数为0;判断是否有新转码任务到达,是则进行新转码任务分配调度,否则判断是否有转码任务停止,若判定有转码任务停止,则进行已有任务分配调度,若没有转码任务停止,则返回步骤“判断是否有新转码任务到达,是则进行新转码任务分配调度,否则判断是否有转码任务停止”。

【技术特征摘要】
1.一种多核心CPU视频转码调度方法,其特征在于,所述方法包括以下步骤:初始化同一转码服务器所包括的每一个CPU核心执行任务数为0;判断是否有新转码任务到达,是则将所述新转码任务绑定到当前执行任务数最少的、且当前执行任务数小于CPU核心所能承受的最大转码任务并发数的CPU核心中执行,否则判断是否有转码任务停止,若判定有转码任务停止,则找出当前执行任务数最多的、且当前执行任务数与有转码任务停止的CPU核心的当前执行任务数的差值大于1的CPU核心,从找出的所述CPU核心中解除绑定任一转码任务,将解除绑定的所述转码任务绑定到所述有转码任务停止的CPU核心中执行,若没有转码任务停止,则返回步骤“判断是否有新转码任务到达,是则将所述新转码任务绑定到当前执行任务数最少的、且当前执行任务数小于CPU核心所能承受的最大转码任务并发数的CPU核心中执行,否则判断是否有转码任务停止”。2.如权利要求1所述的多核心CPU视频转码调度方法,其特征在于,所述方法还包括:判断是否收到终止所有转码任务的通知,是则终止所有转码任务,否则进入步骤“判断是否有新转码任务到达,是则将所述新转码任务绑定到当前执行任务数最少的、且当前执行任务数小于CPU核心所能承受的最大转码任务并发数的CPU核心中执行,否则判断是否有转码任务停止”。3.如权利要求1所述的多核心CPU视频转码调度方法,其特征在于,所述步骤“初始化同一转码服务器所包括的每一个CPU核心执行任务数为0”之前还包括:测量出单个CPU核心所能承受的最大转码任务并发数。4.如权利要求1所述的多核心CPU视频转码调度方法,其特征在于,所述将所述新转码任务绑定到当前执行任务数最少的、且当前执行任务数小于CPU核心所能承受的最大转码任务并发数的CPU核心中执行包括以下步骤:从各个CPU核心中,找出当前执行任务数最少的CPU核心j,满足Tj=min{Ti,1≤i≤N},其中j为CPU核心的编号,Tj为编号为j的CPU核心当前执行任务数,i为CPU核心的编号,Ti为编号为i的CPU核心当前执行任务数,N为转码服务器的CPU核心数量,N为自然数;判断Tj=C是否成立,是则结束调度,否则启动新转码任务,将新转码任务绑定到CPU核心j中执行,其中C为单个CPU核心所能承受的最大转码任务并发数;Tj←Tj+1,其中“←”表示赋值。5.如权利要求1所述的多核心CPU视频转码调度方法,其特征在于,所述找出当前执行任务数最多的、且当前执行任务数与有转码任务停止的CPU核心的当前执行任务数的差值大于1的CPU核心,从找出的所述CPU核心中解除绑定任一转码任务,将解除绑定的所述转码任务绑定到所述有转码任务停止的CPU核心中执行包括以下步骤:找出待结束转码任务所绑定的CPU核心k,k为CPU核心编号;结束所述待结束转码任务,更新Tk←Rk-1,其中“←”表示赋值,Tk为编号为k的CPU核心当前执行任务数;从各个CPU核心中,找出当前执行任务数最多的CPU核心j,满足Tj=max{Ti,1≤i≤N},其中j为CPU核心的编号,Tj为编号为j的CPU核心当前执行任务数,i为CPU核心的编号,Ti为编号为i的CPU核心当前执行任务数,N为转码服务器的CPU核心数量,N为自然数;判断Tj-Tk≥2是否成立,否则结束调度,是则从CPU核心j中取出一转码任务,将取出的转码任务从CPU核心j中解除绑定;将取出的转码任务重新绑定到CPU核心k中;更新Tk←Tk+1,Tj←Tj-1,其中“←”表示赋值。6.一种多核心CPU视频转码调度系统,其特征在于,所述系统包括:所述系统包括CPU核心初始化模块和任务调度模块;所述任务调度模块包括...

【专利技术属性】
技术研发人员:叶迎宪
申请(专利权)人:深圳市融创天下科技股份有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1