控制帧率方法和装置与流程

专利2022-06-29  80


本公开涉及控制帧率
技术领域
,具体涉及一种控制帧率方法和装置。
背景技术
:随着企业的个性化要求越来越高,vdi(virtualdesktopinfrastructure,即虚拟桌面基础架构)受到越来越多的企业欢迎。vdi可以通过桌面虚拟化技术,在一台性能强大的服务器上虚拟出若干台虚拟机vm(virtualmachine),用户和管理员可以在该vm中安装操作系统、应用程序等,管理员可以根据需要将一台或多台vm分配给一个或多个用户,而用户桌面上不再需要部署性能强大的个人电脑,而只需要部署一台安全、易管理的零终端,就可以连接到数据中心的vm并使用该vm,通过网络把服务器端的vm传输到客户端并展现给最终用户。由于用户在零终端上的操作,实际是直接对服务器端的vm进行的,键鼠操作的快慢引起的图像变化,不同于视频,有很大的随机性,如果一直保持图像的高帧率采集,虽然可以提升用户体验,但是会造成系统资源的浪费,而且在带宽资源受限的场景下,可能会耗费更多的可用带宽等问题。技术实现要素:本公开的目的在于克服现有技术的不足,提供一种控制帧率方法和装置,该控制帧率方法能够解决无法实现对不同的图像、不同频率的键鼠操作以不同的图像采集帧率进行采集的技术问题。根据本公开实施例的第一方面,提供一种控制帧率方法,该方法包括:判断是否接收到零终端上报的用户事件,其中,一次键鼠发出至收到响应作为一个所述用户事件;若接收到所述用户事件,统计预设时间内的所述用户事件的上报频率;根据所述用户事件的上报频率,在预设的映射表中查询所述用户事件对应的图像采集帧率;其中,所述预设的映射表包括多个上报频率与采集帧率的对应关系;判断当前画面是否有变化;若所述当前画面无变化,则将图像采集帧率调整为查询到的图像采集帧率。在一个实施例中,该方法还包括:若所述当前画面有变化,获取所述当前画面的当前图像采集帧率;判断所述当前画面的当前图像采集帧率是否小于查询到的图像采集帧率;若所述当前画面的当前图像采集帧率小于查询到的图像采集帧率,则将图像采集帧率调整为查询到的图像采集帧率。在一个实施例中,该方法还包括:若所述当前画面的当前图像采集帧率不小于查询到的图像采集帧率,则将图像采集帧率调整为所述当前画面的当前图像采集帧率。在一个实施例中,所述若接收到所述用户事件,统计预设时间内的所述用户事件的上报频率包括:统计预设时间内的所述用户事件的上报次数;根据所述预设时间内的所述用户事件的上报次数,计算所述用户事件的上报频率。在一个实施例中,该方法还包括:若未接收到所述用户事件,判断当前画面是否有变化;若所述当前画面有变化,则按照所述预设的映射表中的最大采集频率进行图像采集;若所述当前画面无变化,则保持当前静态画面,不进行图像采集。在一个实施例中,所述用户事件包括鼠标事件、键盘事件、以及触摸屏事件中至少之一。在一个实施例中,所述判断是否接收到零终端上报的用户事件包括:若所述零终端为windows系统,则通过直接调用windowsapi调用输入事件,或通过调用键鼠驱动,判断是否接收到零终端上报的用户事件;若所述零终端为linux系统,则通过调用键鼠驱动,判断是否接收到零终端上报的用户事件。根据本公开实施例的第二方面,提供一种控制帧率装置,该装置包括:第一判断模块,判断是否接收到零终端上报的用户事件,其中,一次键鼠发出至收到响应作为一个所述用户事件;统计模块,若接收到所述用户事件,统计预设时间内的所述用户事件的上报频率;查询模块,根据所述用户事件的上报频率,在预设的映射表中查询所述用户事件对应的图像采集帧率;其中,所述预设的映射表包括多个上报频率与采集帧率的对应关系;第二判断模块,判断当前画面是否有变化;第一调整模块,若所述当前画面无变化,则将图像采集帧率调整为查询到的图像采集帧率。在一个实施例中,该装置还包括:获取模块,若所述当前画面有变化,获取所述当前画面的当前图像采集帧率;第三判断模块,判断所述当前画面的当前图像采集帧率是否小于查询到的图像采集帧率;第二调整模块,若所述当前画面的当前图像采集帧率小于查询到的图像采集帧率,则将图像采集帧率调整为查询到的图像采集帧率。在一个实施例中,该统计模块包括:统计子模块,统计预设时间内的所述用户事件的上报次数;计算子模块,根据所述预设时间内的所述用户事件的上报次数,计算所述用户事件的上报频率。本公开实施例通过检测零终端上报的用户事件的频次,自适应修改服务端的图像采集帧。如此,在用户操作频次较低的情况下,可以降低图像采集的帧率,减少系统资源抢占、节约带宽资源;在用户操作频次较高的情况下,可以提高图像采集的帧率,避免用户在零终端感知到操作卡顿,提高用户的使用体验。另外,本公开实施例可以在画面变化且用户同时进行键鼠操作的场景下,获取更好体验效果,在仅有用户进行键鼠操作的场景下,在保障用户更好体验的前提下,降低系统负载和传输带宽占用。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1为本公开实施例提供的一种控制帧率方法的流程图。图2为本公开实施例提供的一种控制帧率方法的控制逻辑图。图3为本公开实施例提供的一种控制帧率装置的架构图。图4为本公开实施例提供的一种控制帧率装置的架构图。图5为本公开实施例提供的一种控制帧率装置的架构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。本公开实施例提供一种控制帧率方法,如图1所示,该控制帧率方法包括以下步骤:步骤101、判断是否接收到零终端上报的用户事件,其中,一次键鼠发出至收到响应作为一个所述用户事件;其中,所述用户事件包括用户事件包括鼠标事件、键盘事件、以及触摸屏事件中至少之一。示例性地,鼠标事件包括点击和移动鼠标,其中,点击鼠标包括单击和双击鼠标;键盘事件包括敲击键盘,触摸屏事件包括触摸屏。在一个实施例中,所述判断是否接收到零终端上报的用户事件包括:若所述零终端为windows系统,则通过直接调用windowsapi调用输入事件,或通过调用键鼠驱动,判断是否接收到零终端上报的用户事件;若所述零终端为linux系统,则通过调用键鼠驱动,判断是否接收到零终端上报的用户事件。步骤102、若接收到所述用户事件,统计预设时间内的所述用户事件的上报频率;其中,该预设时间可根据用户场景进行调整,本实施例将预设时间设置为100ms。在一个实施例中,所述若接收到所述用户事件,统计预设时间内的所述用户事件的上报频率包括:统计100ms内的所述用户事件的上报次数;根据所述预设时间内的所述用户事件的上报次数,计算所述用户事件的上报频率。步骤103、根据所述用户事件的上报频率,在预设的映射表中查询所述用户事件对应的图像采集帧率;其中,所述预设的映射表包括多个上报频率与采集帧率的对应关系;示例性地,以图像采集帧率的最高帧率为30帧/s为例,其上报频率与采集帧率/s的对应关系如下表1:表1上报频率/秒采集帧率/秒[0,5)1-5[6,15)6-15[16,30)16-30需要说明的是,若用户事件的上报频率大于30,则以支持的最高频率30帧/s进行传输。步骤104、判断当前画面是否有变化;步骤105、若所述当前画面无变化,则将图像采集帧率调整为查询到的图像采集帧率。图2为公开实施例的控制逻辑图,如图2所示,该方法还包括:步骤201、判断是否接收到零终端上报的用户事件,其中,一次键鼠发出至收到响应作为一个所述用户事件;步骤202、若接收到所述用户事件,统计预设时间内的所述用户事件的上报频率;步骤203、根据所述用户事件的上报频率,在预设的映射表中查询所述用户事件对应的图像采集帧率;步骤204、判断当前画面是否有变化;步骤205、若所述当前画面无变化,则将图像采集帧率调整为查询到的图像采集帧率。在一个实施例中,该方法还包括:步骤206、若所述当前画面有变化,获取所述当前画面的当前图像采集帧率;步骤207、判断所述当前画面的当前图像采集帧率是否小于查询到的图像采集帧率;步骤208、若所述当前画面的当前图像采集帧率小于查询到的图像采集帧率,则将图像采集帧率调整为查询到的图像采集帧率。在一个实施例中,该方法还包括:步骤209、若所述当前画面的当前图像采集帧率不小于查询到的图像采集帧率,则将图像采集帧率调整为所述当前画面的当前图像采集帧率。在一个实施例中,该方法还包括:步骤2020、若未接收到所述用户事件,判断当前画面是否有变化;步骤2011、若所述当前画面有变化,则按照所述预设的映射表中的最大采集频率进行图像采集。步骤2012、若所述当前画面无变化,则保持当前静态画面,不进行图像采集。图3为本公开实施例提供的一种控制帧率装置图,如图3所示,控制帧率装置包括第一判断模块301、统计模块302、查询模块303、第二判断模块304、以及第一调整模块305;其中,第一判断模块301用于判断是否接收到零终端上报的用户事件;统计模块302用于统计预设时间内的所述用户事件的上报频率;查询模块303用于根据所述用户事件的上报频率,在预设的映射表中查询所述用户事件对应的图像采集帧率;第二判断模块304用于判断当前画面是否有变化;第一调整模块305用于则将图像采集帧率调整为查询到的图像采集帧率。图4为本公开实施例提供的一种控制帧率装置图,如图4所示,该装置包括第一判断模块401、统计模块402、查询模块403、第二判断模块404、第一调整模块405、获取模块406、第三判断模块407、以及第二调整模块408,其中,获取模块406用于获取所述当前画面的当前图像采集帧率;第三判断模块407用于判断所述当前画面的当前图像采集帧率是否小于查询到的图像采集帧率;第二调整模块408用于将图像采集帧率调整为查询到的图像采集帧率。图5为本公开实施例提供的一种控制帧率装置图,如图5所示,第一判断模块501、统计模块502、查询模块503、第二判断模块504、以及第一调整模块505;其中,统计模块502包括统计子模块5021和计算子模块5022,统计子模块5021用于统计预设时间内的所述用户事件的上报次数;计算子模块5022用于根据所述预设时间内的所述用户事件的上报次数,计算所述用户事件的上报频率。具体地,服务器判断是否接收到来自零终端上报的用户事件;若未接收到用户事件,也即在未有键盘鼠标动作的情况下,服务器判断当前画面是否有变化(比如播放视频),若当前画面有变化,则按照所支持的最大采集帧率进行图像采集;若当前画面无变化,则保持当前静态画面,暂时不进行图像采集;若接收到用户事件,则服务器在预设时段内,统计用户事件的上报频率,服务器根据用户事件的上报频率,在预设的映射表中查询图像采集帧率;服务器根据用户事件的上报频率,在预设的映射表中查询图像采集帧率;服务器判断当前画面是否有变化;若当前画面无变化,服务器将图像采集帧率调整为查询到的采集帧率,处理结束。若当前画面有变化,服务器获取当前的图像采集帧率;将查询到的采集帧率与当前的图像采集帧率进行对比;若查询到的采集帧率大于或等于当前的图像采集帧率,则将图像的采集帧率,调整为查询到的采集帧率;若查询到的采集帧率小于当前的图像采集帧率,则将图像的采集帧率,调整为当前的图像采集帧率,处理结束。本公开实施例通过检测零终端上报的用户事件的频次,自适应修改服务端的图像采集帧。如此,在用户操作频次较低的情况下,可以降低图像采集的帧率,减少系统资源抢占、节约带宽资源;在用户操作频次较高的情况下,可以提高图像采集的帧率,避免用户在零终端感知到操作卡顿,提高用户的使用体验。另外,本公开实施例可以在画面变化且用户同时进行键鼠操作的场景下,获取更好体验效果,在仅有用户进行键鼠操作的场景下,在保障用户更好体验的前提下,降低系统负载和传输带宽占用。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。当前第1页1 2 3 
技术特征:

1.一种控制帧率方法,其特征在于,所述方法包括:

判断是否接收到零终端上报的用户事件,其中,一次键鼠发出至收到响应作为一个所述用户事件;

若接收到所述用户事件,统计预设时间内的所述用户事件的上报频率;

根据所述用户事件的上报频率,在预设的映射表中查询所述用户事件对应的图像采集帧率;其中,所述预设的映射表包括多个上报频率与采集帧率的对应关系;

判断当前画面是否有变化;

若所述当前画面无变化,则将图像采集帧率调整为查询到的图像采集帧率。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

若所述当前画面有变化,获取所述当前画面的当前图像采集帧率;

判断所述当前画面的当前图像采集帧率是否小于查询到的图像采集帧率;

若所述当前画面的当前图像采集帧率小于查询到的图像采集帧率,则将图像采集帧率调整为查询到的图像采集帧率。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

若所述当前画面的当前图像采集帧率不小于查询到的图像采集帧率,则将图像采集帧率调整为所述当前画面的当前图像采集帧率。

4.根据权利要求1所述的方法,其特征在于,所述若接收到所述用户事件,统计预设时间内的所述用户事件的上报频率包括:

统计预设时间内的所述用户事件的上报次数;

根据所述预设时间内的所述用户事件的上报次数,计算所述用户事件的上报频率。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

若未接收到所述用户事件,判断当前画面是否有变化;

若所述当前画面有变化,则按照所述预设的映射表中的最大采集频率进行图像采集;

若所述当前画面无变化,则保持当前静态画面,不进行图像采集。

6.根据权利要求1-5任一项所述的方法,其特征在于,所述用户事件包括鼠标事件、键盘事件、以及触摸屏事件中至少之一。

7.根据权利要求1-5任一项所述的方法,其特征在于,所述判断是否接收到零终端上报的用户事件包括:

若所述零终端为windows系统,则通过直接调用windowsapi调用输入事件,或通过调用键鼠驱动,判断是否接收到零终端上报的用户事件;

若所述零终端为linux系统,则通过调用键鼠驱动,判断是否接收到零终端上报的用户事件。

8.一种控制帧率装置,其特征在于,所述装置包括:

第一判断模块,判断是否接收到零终端上报的用户事件,其中,一次键鼠发出至收到响应作为一个所述用户事件;

统计模块,若接收到所述用户事件,统计预设时间内的所述用户事件的上报频率;

查询模块,根据所述用户事件的上报频率,在预设的映射表中查询所述用户事件对应的图像采集帧率;其中,所述预设的映射表包括多个上报频率与采集帧率的对应关系;

第二判断模块,判断当前画面是否有变化;

第一调整模块,若所述当前画面无变化,则将图像采集帧率调整为查询到的图像采集帧率。

9.根据权利要求8所述的装置,其特征在于,所述装置还包括:

获取模块,若所述当前画面有变化,获取所述当前画面的当前图像采集帧率;

第三判断模块,判断所述当前画面的当前图像采集帧率是否小于查询到的图像采集帧率;

第二调整模块,若所述当前画面的当前图像采集帧率小于查询到的图像采集帧率,则将图像采集帧率调整为查询到的图像采集帧率。

10.根据权利要求6所述的装置,其特征在于,所述统计模块包括:

统计子模块,统计预设时间内的所述用户事件的上报次数;

计算子模块,根据所述预设时间内的所述用户事件的上报次数,计算所述用户事件的上报频率。

技术总结
本公开提供一种控制帧率方法和装置,涉及控制帧率技术领域。该控制帧率方法包括:判断是否接收到零终端上报的用户事件,其中,一次键鼠发出至收到响应作为一个用户事件;若接收到用户事件,统计预设时间内的用户事件的上报频率;根据用户事件的上报频率,在预设的映射表中查询用户事件对应的图像采集帧率;其中,预设的映射表包括多个上报频率与采集帧率的对应关系;判断当前画面是否有变化;若当前画面无变化,则将图像采集帧率调整为查询到的图像采集帧率。本公开的控制帧率方法能够解无法实现对不同的图像、不同频率的键鼠操作以不同的图像采集帧率进行采集的技术问题。

技术研发人员:许龙龙;范志刚
受保护的技术使用者:西安万像电子科技有限公司
技术研发日:2020.01.09
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-54531.html

最新回复(0)