一种帧率稳定输出方法、系统及智能终端与流程

文档序号:27450108发布日期:2021-11-18 00:43阅读:168来源:国知局
一种帧率稳定输出方法、系统及智能终端与流程

1.本发明涉及音视频交互技术领域,尤其涉及一种帧率稳定输出方法、系统、智能终端及计算机可读存储介质。


背景技术:

2.安卓手机投屏将手机屏幕所显示的画面内容实时投射到大屏上进行显示,实现多屏互动的效果,目前安卓开放了virtualdisplay(安卓下的虚拟显示模块,virtualdisplay的使用场景很多,比如录屏,wfd显示等,其作用就是抓取屏幕上显示的内容,virtualdisplay抓取屏幕内容,其实现方式有很多,在api中就提供了imagereader进行读取virtualdisplay里的内容)模块来支持用户捕捉屏幕画面的需求,但virtualdisplay不提供帧率的保障机制,而帧率是实时音视频交互场景中的重要因素,帧率是以帧称为单位的位图图像连续出现在显示器上的频率(速率);如开发者需要实现实时帧率统计等功能,基于安卓的画面刷新逻辑,如果画面不存在内容刷新时,则不产生新的图像数据,也就是说此时virtualdisplay拿不到新的画面内容,帧率就会变成0,这显然不是开发者和用户想要的。
3.因此,现有技术还有待于改进和发展。


技术实现要素:

4.本发明的主要目的在于提供一种帧率稳定输出方法、系统、智能终端及计算机可读存储介质,旨在解决现有技术中安卓手机投屏场景中帧率不稳定的问题。
5.为实现上述目的,本发明提供一种帧率稳定输出方法,所述帧率稳定输出方法包括如下步骤:
6.视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层;
7.视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给视频发送层;
8.视频发送层通过网络模块将压缩编码后的屏幕图像数据发送到远端。
9.可选地,所述的帧率稳定输出方法,其中,所述视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层,之前还包括:
10.预先在所述视频采集层设置一个用于暂时存储数据的数据暂存队列和一个用于设置触发时间的定时器。
11.可选地,所述的帧率稳定输出方法,其中,所述视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层,具体包括:
12.当屏幕刷新时,将最后一帧屏幕图像数据放入所述数据暂存队列,并判断是否有新的屏幕图像数据产生;
13.当检测到有新的屏幕图像数据产生时,所述视频采集层采集新的屏幕图像数据,并将采集到的新的屏幕图像数据发送给所述视频编码层;
14.当未检测到有新的屏幕图像数据产生时,所述定时器驱动所述数据暂存队列取出最后一帧屏幕图像数据发送给所述视频编码层。
15.可选地,所述的帧率稳定输出方法,其中,所述定时器每间隔预设时间触发所述数据暂存队列取出最后一帧屏幕图像数据。
16.可选地,所述的帧率稳定输出方法,其中,所述定时器的回调周期为预设时间/帧率。
17.可选地,所述的帧率稳定输出方法,其中,所述预设时间为1000ms,所述帧率为60帧。
18.可选地,所述的帧率稳定输出方法,其中,所述屏幕图像数据为yuv数据。
19.此外,为实现上述目的,本发明还提供一种帧率稳定输出系统,其中,所述帧率稳定输出系统包括:视频采集层、视频编码层和视频发送层;
20.所述视频采集层用于采集屏幕图像数据,并将所述屏幕图像数据发送给所述视频编码层;
21.所述视频编码层用于接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给所述视频发送层;
22.所述视频发送层用于通过网络模块将压缩编码后的屏幕图像数据发送到远端。
23.此外,为实现上述目的,本发明还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的帧率稳定输出程序,所述帧率稳定输出程序被所述处理器执行时实现如上所述的帧率稳定输出方法的步骤。
24.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有帧率稳定输出程序,所述帧率稳定输出程序被处理器执行时实现如上所述的帧率稳定输出方法的步骤。
25.本发明通过视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层;视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给视频发送层;视频发送层通过网络模块将压缩编码后的屏幕图像数据发送到远端。本发明通过设置计一个数据暂存队列和一个定时器,对每次从虚拟显示模块获取到的最后一帧数据进行暂存,并判断是否有新的屏幕图像数据产生,如果没有就启动定时器驱动软件从数据暂存队列取出最后一帧屏幕图像数据来填补当前的缺少的屏幕图像数据,可以实现任意帧率的稳定输出。
附图说明
26.图1是本发明帧率稳定输出方法的较佳实施例的流程图;
27.图2是本发明帧率稳定输出方法的较佳实施例中整个实施过程的流程示意图;
28.图3是本发明帧率稳定输出系统的较佳实施例的原理示意图;
29.图4为本发明智能终端的较佳实施例的运行环境示意图。
具体实施方式
30.安卓手机投屏将手机屏幕所显示的画面内容实时投射到大屏上进行显示,实现多屏互动的效果,目前安卓开放了virtualdisplay模块来支持用户捕捉屏幕画面的需求,但
virtualdisplay不提供帧率的保障机制,而帧率是实时音视频交互场景中的重要因素,帧率是以帧称为单位的位图图像连续出现在显示器上的频率(速率);如开发者需要实现实时帧率统计等功能,基于安卓的画面刷新逻辑,如果画面不存在内容刷新时,则不产生新的图像数据,也就是说此时virtualdisplay拿不到新的画面内容,帧率就会变成0,这显然不是开发者和用户想要的。
31.因此,为解决安卓手机投屏场景中视频帧率不稳定的问题,本发明创造提供了一种以定时器按照帧率驱动程序从暂存队列中取出上一帧yuv数据,来满足用户对任意帧率稳定输出的方法。
32.为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
33.本发明较佳实施例所述的帧率稳定输出方法,如图1和图2所示,所述帧率稳定输出方法包括以下步骤:
34.步骤s10、视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层。
35.具体地,在所述视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层,之前还包括:预先在所述视频采集层设置一个用于暂时存储数据的数据暂存队列(队列是一种存放数据的工具,从底部开始存数据,存放一个到排尾,数据的访问权就上移一位,取出排头的一个,数据的访问权也上移一位)和一个用于设置触发时间的定时器(用于定时的电子装置)。
36.如图2所示,当屏幕(例如智能手机的屏幕)刷新(刷新频率:即屏幕刷新的速度)时,将最后一帧屏幕图像数据放入所述数据暂存队列(暂时存储),并判断是否有新的屏幕图像数据产生;当检测到有新的屏幕图像数据产生时,所述视频采集层采集新的屏幕图像数据,并将采集到的新的屏幕图像数据发送给所述视频编码层;当未检测到有新的屏幕图像数据产生时,所述定时器驱动所述数据暂存队列取出最后一帧屏幕图像数据发送给所述视频编码层。
37.其中,所述定时器每间隔预设时间触发所述数据暂存队列取出最后一帧屏幕图像数据;所述定时器的回调周期为预设时间/帧率,例如所述预设时间为1000ms,所述帧率为60帧,其中,帧率是以帧称为单位的位图图像连续出现在显示器上的频率(速率),那么所述定时器的回调周期=预设时间/帧率=1000ms/60帧=16.7ms/帧。
38.人类视觉的时间敏感度和分辨率根据视觉刺激的类型和特征而变化,并且在个体之间不同。人类视觉系统每秒可处理10到12个图像并单独感知它们,而较高的速率则被视为运动。当速率高于50hz至90hz时,大多数研究参与者认为调制光(如计算机显示器)稳定。这种调制光的稳定感被称为闪烁融合阈值。然而,当调制光是不均匀的并且包含图像时,闪烁融合阈值可以高得多,数百赫兹。关于图像识别,已经发现人们在不间断的一系列不同图像中识别特定图像,每个图像持续少至13毫秒。视力的持久性有时会导致非常短的单毫秒视觉刺激,其感知持续时间在100毫秒到400毫秒之间。非常短的多个刺激有时被认为是单个刺激,例如10毫秒的绿色闪光,紧接着是10毫秒的红色闪光,被感知为单个黄色闪光。每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可
以得到更流畅、更逼真的动画。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。现代视频格式利用各种帧速率。由于电网的电源频率,模拟电视广播的帧速率为50hz或60hz,有时视频交错,因此可以在相同的可用广播带宽上发送更多的运动信息,有时视频会在25或30fps,每帧加倍。电影几乎普遍以每秒24帧的速度拍摄,无法以其原始帧速率显示,这需要下拉转换,通常导致“抖动”:将每秒24帧转换为每秒60帧,每个奇数帧加倍,每个偶数帧三倍,这会产生不均匀的运动。其他转换具有类似的不均匀帧加倍。较新的视频标准支持每秒120,240或300帧,因此帧可以均匀地乘以常见帧速率,例如24fps电影和30fps视频,以及在300fps显示的情况下25和50fps视频。这些标准还支持原生在较高帧速率下的视频,以及在其原始帧之间具有内插帧的视频。一些现代电影正在试验帧速率高于24fps,例如48和60fps。
39.其中,所述屏幕图像数据表示yuv数据,yuv是一种颜色编码方法,常使用在各个视频处理组件中,yuv在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽;yuv是编译true

color颜色空间(color space)的种类,y'uv,yuv,ycbcr,ypbpr等专有名词都可以称为yuv,彼此有重叠。“y”表示明亮度(luminance或luma),也就是灰阶值,“u”和“v”表示的则是色度(chrominance或chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
40.y'uv的发明是由于彩色电视与黑白电视的过渡时期。黑白视频只有y(luma,luminance)视频,也就是灰阶值。到了彩色电视规格的制定,是以yuv/yiq的格式来处理彩色电视图像,把uv视作表示彩度的c(chrominance或chroma),如果忽略c信号,那么剩下的y(luma)信号就跟之前的黑白电视频号相同,这样一来便解决彩色电视机与黑白电视机的兼容问题。y'uv最大的优点在于只需占用极少的带宽。因为uv分别代表不同颜色信号,所以直接使用r与b信号表示色度的uv。也就是说uv信号告诉了电视要偏移某象素的的颜色,而不改变其亮度。或者uv信号告诉了显示器使得某个颜色亮度依某个基准偏移。uv的值越高,代表该像素会有更饱和的颜色。彩色图像记录的格式,常见的有rgb、yuv、cmyk等。彩色电视最早的构想是使用rgb三原色来同时传输。这种设计方式是原来黑白带宽的3倍,在当时并不是很好的设计。rgb诉求于人眼对色彩的感应,yuv则着重于视觉对于亮度的敏感程度,y代表的是亮度,uv代表的是彩度(因此黑白电影可省略uv,相近于rgb),分别用cr和cb来表示,因此yuv的记录通常以y:uv的格式呈现。
41.步骤s20、视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给视频发送层。
42.其中,图像压缩编码(数据压缩编码指编码后信息的长度较于原始信息要短)可分为两类:一类压缩是可逆的,即从压缩后的数据可以完全恢复原来的图像,信息没有损失,称为无损压缩编码;另一类压缩是不可逆的,即从压缩后的数据无法完全恢复原来的图像,信息有一定损失,称为有损压缩编码。在满足一定保真度的要求下,对图像数据的进行变换、编码和压缩,去除多余数据减少表示数字图像时需要的数据量,以便于图像的存储和传输。即以较少的数据量有损或无损地表示原来的像素矩阵的技术,也称图像编码。
43.具体地,所述视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行
压缩编码,进行压缩编码便于进行数据的传输,提高数据传输效率,并将压缩编码后的屏幕图像数据发送给视频发送层。
44.步骤s30、视频发送层通过网络模块将压缩编码后的屏幕图像数据发送到远端。
45.具体地,所述视频发送层通过网络模块(例如wifi模块)将压缩编码后的屏幕图像数据发送到远端(例如发送到智能电视进行投屏显示,智能电视是基于internet应用技术,具备开放式操作系统与芯片,拥有开放式应用平台,可实现双向人机交互功能,集影音、娱乐、数据等多种功能于一体,以满足用户多样化和个性化需求的电视产品,其目的是带给用户更便捷的体验,目前已经成为电视的潮流趋势;智能电视,是具有全开放式平台,搭载了操作系统,用户在欣赏普通电视内容的同时,可自行安装和卸载各类应用软件,持续对功能进行扩充和升级的新电视产品。智能电视能够不断给用户带来有别于,使用有线数字电视接收机(机顶盒)的、丰富的个性化体验)。
46.进一步地,如图2所示,本发明的帧率稳定输出方法流程为:
47.(1)流程开始;
48.(2)当屏幕刷新时,所述视频采集层将最后一帧屏幕图像数据放入所述数据暂存队列,并判断是否有新的屏幕图像数据产生;
49.(3)当检测到有新的屏幕图像数据产生时,所述视频采集层采集新的屏幕图像数据,并将采集到的新的屏幕图像数据发送给所述视频编码层;
50.(4)当未检测到有新的屏幕图像数据产生时,所述定时器驱动所述数据暂存队列取出最后一帧屏幕图像数据发送给所述视频编码层;
51.(5)所述视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给视频发送层;
52.(6)所述视频发送层通过网络模块将压缩编码后的屏幕图像数据发送到远端;
53.(7)结束。
54.在本发明实施之前,如果智能手机屏幕内容没有刷新,例如智能手机屏幕显示一个静止画面,且用户未触碰触摸屏(触摸屏,touch panel又称为“触控屏”、“触控面板”,是一种可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果;触摸屏作为一种最新的电脑输入设备,它是简单、方便、自然的一种人机交互方式,它赋予了多媒体以崭新的面貌,是极富吸引力的全新多媒体交互设备,主要应用于公共信息的查询、工业控制、军事指挥、电子游戏、多媒体教学等),此时基于安卓的渲染逻辑,不产生新的数据,这时候采集模块不再向下级输送数据,最终就导致接收端的帧率为0,通过本发明的方法可完美保障帧率的稳定输出。
55.本发明的视频采集层是数据的产生层,往往需要产生数据的稳定、持续,也就是本发明所解决的当前痛点,数据产生后送往视频编码层进行数据的编码压缩,最后由视频发送层把编码后的数据发送出去,本发明在视频采集层设计了一个数据暂存队列和一个定时器,当没有新的数据产生时,由定时器来驱动程序从暂存队列中循环取出数据(并非删除)来填补当前的帧率缺失,达到了稳定输出视频数据的目的,本发明直接带来的效果是帧率的稳定输出,不会因屏幕无数据产生,而导致采集节点无数据向下级模块输送。
56.进一步地,如图3所示,基于上述帧率稳定输出方法,本发明还相应提供了一种帧
率稳定输出系统,其中,所述帧率稳定输出系统包括:视频采集层51、视频编码层52和视频发送层53;
57.所述视频采集层51用于采集屏幕图像数据,并将所述屏幕图像数据发送给所述视频编码层52;
58.所述视频编码层52用于接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给所述视频发送层53;
59.所述视频发送层53用于通过网络模块将压缩编码后的屏幕图像数据发送到远端。
60.具体地,预先在所述视频采集层51设置一个用于暂时存储数据的数据暂存队列和一个用于设置触发时间的定时器。
61.具体地,当屏幕刷新时,所述视频采集层51将最后一帧屏幕图像数据放入所述数据暂存队列,并判断是否有新的屏幕图像数据产生;当检测到有新的屏幕图像数据产生时,所述视频采集层51采集新的屏幕图像数据,并将采集到的新的屏幕图像数据发送给所述视频编码层52;当未检测到有新的屏幕图像数据产生时,所述定时器驱动所述数据暂存队列取出最后一帧屏幕图像数据发送给所述视频编码层52。
62.具体地,所述定时器每间隔预设时间触发所述数据暂存队列取出最后一帧屏幕图像数据;所述定时器的回调周期为预设时间/帧率;所述预设时间为1000ms,所述帧率为60帧。
63.具体地,所述屏幕图像数据为yuv数据。
64.本发明通过设计一个yuv内存暂存区(数据暂存队列)和一个定时器,定时器的触发间隔时间为1000ms/(预设帧率),对每次从virtualdisplay获取到的最后一帧数据进行暂存,并判断是否有新的yuv数据产生,如果没有就启动定时器驱动软件从暂存区拿出最后一帧yuv数据来填补当前的缺少的yuv,通过这样的方式,可以实现任意帧率的稳定输出。
65.图2和图3中从上到下依次是视频采集层、视频编码层、视频发送层,本发明的视频采集层是数据的产生层,往往需要产生数据的稳定、持续,也就是本发明所解决的当前痛点,数据产生后送往视频编码层进行数据的编码压缩,最后由视频发送层把编码后的数据发送出去,本发明在视频采集层设计了一个数据暂存队列和一个定时器,当没有新的数据产生时,由定时器来驱动程序从暂存队列中循环取出数据(并非删除)来填补当前的帧率缺失,达到了稳定输出视频数据的目的。
66.进一步地,如图4所示,基于上述帧率稳定输出方法和系统,本发明还相应提供了一种智能终端,所述智能终端包括处理器10、存储器20及显示器30。图4仅示出了智能终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
67.所述存储器20在一些实施例中可以是所述智能终端的内部存储单元,例如智能终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述智能终端的外部存储设备,例如所述智能终端上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器20还可以既包括所述智能终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述智能终端的应用软件及各类数据,例如所述安装智能终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有帧
率稳定输出程序40,该帧率稳定输出程序40可被处理器10所执行,从而实现本技术中帧率稳定输出方法。
68.所述处理器10在一些实施例中可以是一中央处理器(central processing unit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述帧率稳定输出方法等。
69.所述显示器30在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light

emitting diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述智能终端的信息以及用于显示可视化的用户界面。所述智能终端的部件10

30通过系统总线相互通信。
70.在一实施例中,当处理器10执行所述存储器20中帧率稳定输出程序40时实现以下步骤:
71.视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层;
72.视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给视频发送层;
73.视频发送层通过网络模块将压缩编码后的屏幕图像数据发送到远端。
74.其中,所述视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层,之前还包括:
75.预先在所述视频采集层设置一个用于暂时存储数据的数据暂存队列和一个用于设置触发时间的定时器。
76.其中,所述视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层,具体包括:
77.当屏幕刷新时,将最后一帧屏幕图像数据放入所述数据暂存队列,并判断是否有新的屏幕图像数据产生;
78.当检测到有新的屏幕图像数据产生时,所述视频采集层采集新的屏幕图像数据,并将采集到的新的屏幕图像数据发送给所述视频编码层;
79.当未检测到有新的屏幕图像数据产生时,所述定时器驱动所述数据暂存队列取出最后一帧屏幕图像数据发送给所述视频编码层。
80.其中,所述定时器每间隔预设时间触发所述数据暂存队列取出最后一帧屏幕图像数据。
81.其中,所述定时器的回调周期为预设时间/帧率。
82.其中,所述预设时间为1000ms,所述帧率为60帧。
83.其中,所述屏幕图像数据为yuv数据。
84.本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有帧率稳定输出程序,所述帧率稳定输出程序被处理器执行时实现如上所述的帧率稳定输出方法的步骤。
85.综上所述,本发明提供一种帧率稳定输出方法、系统及智能终端,所述方法包括:视频采集层采集屏幕图像数据,并将所述屏幕图像数据发送给视频编码层;视频编码层接收到所述屏幕图像数据后,将所述屏幕图像数据进行压缩编码,并将压缩编码后的屏幕图像数据发送给视频发送层;视频发送层通过网络模块将压缩编码后的屏幕图像数据发送到
远端。本发明通过设置计一个数据暂存队列和一个定时器,对每次从虚拟显示模块获取到的最后一帧数据进行暂存,并判断是否有新的屏幕图像数据产生,如果没有就启动定时器驱动软件从数据暂存队列取出最后一帧屏幕图像数据来填补当前的缺少的屏幕图像数据,可以实现任意帧率的稳定输出。
86.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
87.当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的计算机可读存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的计算机可读存储介质可为存储器、磁碟、光盘等。
88.应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1