专利名称:Ip软电话语音及视频流媒体实时保证方法
技术领域:
本发明涉及基于IP的语音及多媒体传输,更具体而言涉及IP软电话语音及视频 流媒体实时保证方法。
背景技术:
IP软电话技术一直是因特网(Internet)大规模普及发展以来的大热门,而制约 IP软电话语音及视频流媒体传输质量的因素不外乎两点,其一就是IP软电话赖以生存的 网络环境,不当的网络搭建、网关、路由上出现的阻塞、延迟都会很明显的影响到语音质量; 另一个就是IP软电话工作所在的计算机运行环境,这其中包括硬件环境和软件环境。内存 大小、CPU运算能力、声卡采集速度和质量等等都是属于硬件环境范畴,而软件环境主要是 指终端对语音的采集和传输进程都必须通过操作系统调配。操作系统对于运行在其上的各 个进程的调配方式是依照各个进程所拥有的优先级,优先级越高就越早越长时间的抢占系 统资源。在现今时代背景下,网络技术和计算机技术的高速发展,使得原先困扰IP软电话 技术发展的网络因素和计算机硬件环境因素大幅度弱化了,在通常情况下软件环境是比较 顺畅的,IP软电话语音及视频流媒体实时得以实现。然而当软件环境出现异常时,IP软电话语音及视频流媒体的实时就无法保证了, 会出现延迟甚至中断情况。之所以会发生这种情况,是因为目前的语音及视频的采集和传 输进程大都是采用用户级优先级,在多任务抢占式CPU分配方式下,不可避免的会遇到当 其他进程出现问题将CPU资源完全占用后系统又无法正常释放的情况,在这种情况下,就 会造成因语音及视频的采集和传输进程因为无法及时占用到足够的CPU资源而影响其功 能的使用。
发明内容
鉴于传统IP软电话语音及视频流媒体传输的上述缺陷,本发明的目的在于提供 一个可靠的方案,以确保IP软电话语音及视频流媒体的数据在任何情况下都可以传输畅 通,而不会受到CPU 100%的影响而出现中断传输或延迟传输的情况。本发明提供的拥有系统级优先级外壳、配置动态实时优先级方案,适用于需要确 保进程运行稳定性的各种情况。提升进程优先级,使采集和传输处理永远可以预占用一定 量的CPU资源,就是解决问题的关键所在。将语音及视频的采集和传输进程封装为拥有系统级优先级的进程,封装后的进程 将不再需要与其他用户级优先级的进程抢占CPU资源,系统就会为其预留一定的CPU资源, 以确保在任何情况下都不影响其正常工作。而且如果在系统级优先级的基础上,再增加动 态变更进程外壳优先级的能力(实时动态调配优先级,除了系统级优先级以外,对于用户 级优先级同样有效),就可避免除死机等操作系统崩溃以外的所有异常情况影响自有软件 进程的正常工作。
本发明通过系统级优先级和实时优先级的双保险,来确保IP软电话语音及视频 流媒体的实时畅通,给IP软电话的使用者较好的使用感受。实时优先级与普通优先级的最 大区别在于相同优先级进程的运行不按照时间片轮转,而是先运行的进程就先控制CPU,如 果它不主动放弃控制,同级或低优先级的进程就无法运行。根据本发明,提供一种IP软电话语音及视频流媒体实时保证方法,其特征在于 采用了系统级优先级的进程外壳来封装IP软电话语音及视频流媒体服务的内核线程;使 用动态实时优先级调配方案,确保系统级优先级的进程外壳的优先级总维持在高于或持平 于用户级优先级进程;使IP软电话语音及视频流媒体服务永远可以预占用一定量的CPU资 源,从而确保IP软电话语音及视频流媒体的实时畅通。根据本发明的优选实施例,其中将IP软电话语音及视频流媒体服务的内核线程 封装为拥有系统级优先级的进程,封装后的进程将不再需要与其他用户级优先级的进程抢 占CPU资源,系统就会为其预留一定的CPU资源,以确保在任何情况下都不影响IP软电话 语音及视频流媒体服务的内核线程正常工作。根据本发明的优选实施例,其中在系统级优先级的基础上,再增加动态变更进程 外壳优先级的能力,从而避免除操作系统崩溃以外的所有异常情况影响自有软件进程的正
常工作。根据本发明的优选实施例,其中所述实时优先级的特征在于相同优先级进程的 运行不按照时间片轮转,而是先运行的进程就先控制CPU,如果它不主动放弃控制,同级或 低优先级的进程就无法运行。本发明的技术关键在于1.采用了系统级优先级的进程外壳来封装IP软电话语音及视频流媒体服务的内 核线程;2.使用动态实时优先级调配方案,确保系统级优先级的进程外壳的优先级总维持 在高于或持平于用户级优先级进程;本发明确保在任何条件下都可以确保IP软电话语音及视频流媒体实时效果,即 便是在CPU占用率100%的极端条件下,仍可以保持通话语音及视频的流畅。虽然在下文中将结合一些示例性实施及使用方法来描述本发明,但本领域技术人 员应当理解,并不旨在将本发明限制于这些实施例。反之,旨在覆盖包含在所附的权利要求 书所定义的本发明的精神与范围内的所有替代品、修正及等效物。本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并 且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可 以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书,权利要 求书,以及附图中所特别指出的结构来实现和获得。
图1示出了本发明的系统构架图;以及图2示出了根据本发明的IP软电话语音及视频流媒体实时保证方法的流程图。
具体实施例方式下面结合附图对本发明的具体实施方式
作进一步的详细描述。需要注意的是,根据本发明的呼叫中心两级交换方法的实施方式仅仅作为例子,但本发明不限于该具体实施方式
。图1示出了本发明的系统架构图。如图1所示,整个保证方法就是由这个具有动态实时变动优先级能力的系统级优先级的进程外壳实现的。通过将IP软电话语音及视频 流媒体服务(主要是语音及视频的采集和传输)内核线程封装在一个系统级优先级的进程 外壳中,使得操作系统在对待IP软电话语音及视频流媒体服务(主要是语音及视频的采集 和传输)内核线程的申请系统资源时,会优先于其他用户级优先级进程而提前分配系统资 源。而动态实时变动优先级能力,就确保了在某个用户级优先级进程由于内部产生无穷循 环或出现线程阻塞等极端情况下,用户级优先级进程被系统提高优先级后,系统级优先级 的进程外壳可以相应的提高优先级,而保证进程外壳在申请系统资源时的优势。我们采用优先级最高的系统级进程作为IP软电话语音及视频流媒体服务(主要 是语音及视频的采集和传输)内核的外壳,动态实时变动优先级,使其一直高于或持平于 用户级优先级的进程,确保系统在正常情况下不使其他进程侵占此进程的CPU资源,这样 就确保了传输的流畅性,使得语音及视频质量始终维持在一个可接受的范围。换言之,动态实时优先级调配方案就是确保进程整体优先级高于其他用户级优先 级进程,从而确保被封装其中的内核线程总可以占用到一定量的CPU资源。具体而言,在该 实施例中,我们采用系统级优先级的进程外壳,并配置动态实时优先级方案提升IP软电话 语音及视频流媒体服务(主要是语音及视频的采集和传输)的内核线程的优先级,使采集 和传输处理永远可以预占用一定量的CPU资源,从而确保IP软电话语音及视频流媒体的实 时畅通。由此,该实施例确保了在任何条件下都可以确保IP软电话语音及视频流媒体实时 效果,即便是在CPU 100%的极端条件下,仍可以保持通话语音及视频的流畅,给IP软电话 的使用者较好的使用感受。动态实时变动优先级可以确保线程的优先级始终保持在16以上,而且线程的运 行不按照时间片轮转,而是先运行的线程就先控制CPU,如果它不主动放弃控制,同级或低 优先级的线程就无法运行。这样就确保了在一个连续的时间段内,将无意外的可以保有一 定量的CPU时间,以维系采集和传输线程的连续正常运行。当出现高优先级的线程时,采集 和传输线程会动态调高线程优先级,以确保其优先级的优势地位不变。本发明提供的拥有系统级优先级外壳、配置动态实时优先级方案,适用于需要确 保进程运行稳定性的各种情况。提升进程优先级,使采集和传输处理永远可以预占用一定 量的CPU资源,就是解决问题的关键所在。将语音及视频的采集和传输进程封装为拥有系统级优先级的进程,封装后的进程 将不再需要与其他用户级优先级的进程抢占CPU资源,系统就会为其预留一定的CPU资源, 以确保在任何情况下都不影响其正常工作。而且如果在系统级优先级的基础上,再增加动 态变更进程外壳优先级的能力(实时动态调配优先级,可以对系统级优先级进行动态调 配,同时对于用户级优先级同样有效),就可避免除死机等操作系统崩溃以外的所有异常情 况影响自有软件进程的正常工作。进程是依靠线程工作的,每个线程都会被赋予一个从0 (最低)到31 (最高)的优 先级号码。当系统确定将哪个线程分配给CPU的时候,它首先观察优先级为31的线程,并以循环的方式对它们进行系统调用。如果优先级为31的线程可以调度,那么就赋予该线程一个CPU时间片。在该线程的时间片结束的时候,系统要查看是否还有另一个优先级为31 的线程可以运行,如果有,它将允许该线程被赋予CPU时间片。只有优先级为31的线程是可以调度的,系统就绝对不会将优先级为0到30的线 程分配给CPU。这种情况称为渴求调度(starvation)。这里存在个问题,是否低优先级的线 程永远得不到调用,因为在任何一个时间段内,系统中的大多数线程是不能调用的。例如 如果主线程调用GetMessage函数,而系统发现没有线程可以供它使用,那么系统就暂停进 程的线程运行,释放该线程的剩余时间片,并且立即将CPU分配给另一个等待运行的线程, 高优先级的线程会抢占低优先级的线程。虽然系统级优先级和用户级优先级在同等优先级条件下,拥有系统级优先级的线 程会先得到CPU时间,但是当有大量拥有用户级优先级的高优先级线程等待CPU时间时,拥 有系统级优先级的线程一样无法抢占到CPU时间片。故而本发明通过系统级优先级和实时优先级的双保险,来确保IP软电话语音及 视频流媒体的实时畅通,给IP软电话的使用者较好的使用感受。实时优先级与普通优先级的最大区别在于相同优先级进程的运行不按照时间片 轮转,而是先运行的进程就先控制CPU,如果它不主动放弃控制,同级或低优先级的进程就 无法运行。图2示出了根据本发明的IP软电话语音及视频流媒体实时保证方法的流程图。参见图2,动态实时调控进程外壳的优先级的方式就是首先定时遍历系统进程列 表,然后比较本进程(在该具体实施方式
中,特指系统级优先级的进程外壳;只有与系统级 优先级进程配合,才能达到100%预占用CPU时间片的效果)优先级和其他用户级优先级进 程,如果发现有高于本进程优先级的,则立刻将本进程优先级调高。如果未发现有高于本进 程优先级的,则比较所有的用户级优先级进程的优先级是否有高于16的,如果存在优先级 高于16的,则保持本进程优先级不变;如果全部低于16,则动态调低本进程优先级。需要注意的是,16是一个分水岭,一般的用户级进程都不会超过16,系统会在 0-15这个范围内分配优先级,只有当用户级进程长时间无法获取到CPU时间片时,系统才 会暂时调高其优先级,使之超过16。而我们采用系统级进程,系统开始分配优先级就是在 16-31的范围内。动态调低本进程的优先级不能低于16,但是具体调低到多少,要看现有用户级优 先级进程中最大优先级是多少,然后将本进程的优先级在16-20这个范围内取值,只要保 证其取值高于最大用户级优先级即可。因为正常情况下的用户级优先级的进程都不会超过 8,这样只需将本进程(即系统级优先级的进程外壳)的优先级维持在16即可;当存在超过 8的用户级优先级的进程,每提升2点,系统级优先级的进程外壳的优先级就提升1点。这样做的好处,就是确保进程外壳的优先级始终动态保持在较高的优先级,使得 系统级优先级的进程外壳在参与到系统的资源分配时,始终占据优势,从而确保IP软电话 语音及视频流媒体服务(主要是语音及视频的采集和传输)内核线程始终可以被分配到 CPU时间片,以确保其运行的连贯性和稳定性。之所以不始终将进程外壳的优先级保持在一 个很高的水平,是防止其影响到操作系统的正常工作。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。 这样,倘若本发 明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含 这些改动和变型在内。
权利要求
一种IP软电话语音及视频流媒体实时保证方法,其特征在于采用了系统级优先级的进程外壳来封装IP软电话语音及视频流媒体服务的内核线程;使用动态实时优先级调配方案,确保系统级优先级的进程外壳的优先级总维持在高于或持平于用户级优先级进程;使IP软电话语音及视频流媒体服务永远可以预占用一定量的CPU资源,从而确保IP软电话语音及视频流媒体的实时畅通。
2.根据权利要求1所述的方法,其中将IP软电话语音及视频流媒体服务的内核线程 封装为拥有系统级优先级的进程,封装后的进程将不再需要与其他用户级优先级的进程抢 占CPU资源,系统就会为其预留一定的CPU资源,以确保在任何情况下都不影响IP软电话 语音及视频流媒体服务的内核线程正常工作。
3.根据权利要求1或2所述的方法,其特征在于在系统级优先级的基础上,再增加动态 变更进程外壳优先级的能力,从而避免除操作系统崩溃以外的所有异常情况影响自有软件 进程的正常工作。
4.根据权利要求1所述的方法,其中所述实时优先级的特征在于相同优先级进程的运行不按照时间片轮转,而是先运行的进程就先控制CPU,如果它不 主动放弃控制,同级或低优先级的进程就无法运行。
全文摘要
本发明涉及一种IP软电话语音及视频流媒体实时保证方法。采用系统级优先级外壳,并配置动态实时优先级方案提升进程优先级,使采集和传输处理永远可以预占用一定量的CPU资源,从而确保IP软电话语音及视频流媒体的实时畅通。本发明确保在任何条件下都可以确保IP软电话语音及视频流媒体实时效果,即便是在CPU 100%的极端条件下,仍可以保持通话语音及视频的流畅,给IP软电话的使用者较好的使用感受。
文档编号H04L29/06GK101815143SQ20101003390
公开日2010年8月25日 申请日期2010年1月6日 优先权日2010年1月6日
发明者不公告发明人 申请人:北京讯鸟软件有限公司