显示控制的方法和电子设备与流程

文档序号:32382483发布日期:2022-11-30 03:13阅读:46来源:国知局
显示控制的方法和电子设备与流程

1.本技术涉及电子技术领域,并且更具体地,涉及一种显示控制的方法和电子设备。


背景技术:

2.在投屏的应用场景中,例如,手机投屏到另一电子设备(如,电脑、智慧屏等),即手机中的画面需要实时显示在另一电子设备的屏幕中,则需要保证投屏内容的稳定性、实时性和高流畅度。
3.在投屏过程中,另一电子设备需要对接收到的视频流中的每一视频帧进行渲染和显示,例如,该另一电子设备的屏幕刷新帧率为60hz,即屏幕每间隔16.7ms刷新一次,每次显示一个视频帧,理想情况下,另一电子设备接收的手机的视频流的视频接收帧率也应该是与其屏幕刷新帧率一致,即每16.7ms接收一个视频帧,但是由于视频流传输过程的网络波动等问题,会导致另一电子设备的屏幕刷新帧率和视频流的视频接收帧率不一定完全匹配,当另一电子设备接收的视频接收帧率大于其屏幕刷新帧率时,可能会导致部分视频帧会在渲染显示过程中丢失,造成丢帧问题;或者,当另一电子设备接收的视频接收帧率小于其屏幕刷新帧率时,可能会导致部分视频帧的延时增大。


技术实现要素:

4.本技术提供一种显示控制的方法和电子设备,该技术方案可以控制视频帧的显示,提升了投屏过程中的实时性、清晰度和流畅度。
5.第一方面,提供了一种显示控制的方法,所述方法应用于第一电子设备,所述方法包括:所述第一电子设备接收第二电子设备发送的视频帧;所述第一电子设备对所述视频帧进行解码,得到解码后的目标视频帧;所述第一电子设备将所述目标视频帧放入第一缓存队列中;所述第一电子设备根据第一预设条件确定是否渲染并显示所述目标视频帧,其中,所述第一电子设备对所述目标视频帧渲染并显示的时间间隔与所述第一电子设备的屏幕刷新时间间隔相同。
6.基于本技术实施例,第一电子设备可以对解码后的目标视频帧进行主动控制,并根据预设条件确定是否渲染并显示该目标视频帧,当确定渲染并显示该目标视频帧时,该第一电子设备对该目标视频帧渲染并显示的时间间隔与其屏幕刷新时间间隔相同或基本相同,从而可以对该目标视频帧进行精准控制,提升投屏的显示帧率、实时性、清晰度和流畅度。
7.结合第一方面,在第一方面的一种实现方式中,所述第一电子设备根据第一预设条件确定是否渲染并显示所述目标视频帧,包括:所述第一电子设备确定所述目标视频帧在所述第一缓存队列中停留的第一时长;若所述第一时长大于第一阈值,则将所述目标视频帧丢弃。
8.基于本技术实施例,当目标视频帧在第一缓存队列中停留的第一时长大于第一阈值时,意味着该目标视频帧在第一缓存队列中停留的时间较长,延迟较大,此时可将该目标
视频帧丢弃,从而有利于保证投屏的实时性。
9.结合第一方面,在第一方面的一种实现方式中,所述方法还包括:若所述第一时长小于或等于所述第一阈值,则所述第一电子设备确定所述第一缓存队列中缓存的视频帧的第一数量;若所述第一数量大于第二阈值,则将所述目标视频帧丢弃;若所述第一数量小于或等于第二阈值,则所述第一电子设备确定渲染并显示所述目标视频帧。
10.基于本技术实施例,当第一缓存队列的缓存量大于第二阈值时,意味着第一缓存队列中缓存的视频帧的数量较多,则可能会造成后续解码的视频帧进入不了该第一缓存队列中,因此,在这种情况下将该目标视频帧丢弃,使得第一缓存队列中的缓存的视频帧的数量在合适的范围之内,避免后续解码的视频帧进入不了该第一缓存队列,从而可以提升投屏的实时性和流畅度。
11.结合第一方面,在第一方面的一种实现方式中,所述第一电子设备确定渲染并显示所述目标视频帧,包括:所述第一电子设备在第二时长之后渲染并显示所述目标视频帧。
12.应理解,该第二时长可以为0,也可以为其他值,具体可以和第一缓存队列中的视频帧的数量以及屏幕的刷新时间间隔相关。
13.基于本技术实施例,当第一电子设备确定渲染并显示该目标视频帧时,可能是立即渲染并显示该目标视频帧,也可能是在一段时间之后渲染并显示。该技术方案可以主动控制该目标视频帧的渲染和显示,以提升投屏的显示帧率。
14.结合第一方面,在第一方面的一种实现方式中,在所述第一电子设备将所述目标视频帧放入第一缓存队列中之前,所述方法还包括:所述第一电子设备确定所述目标视频帧在所述第一缓存队列中需要停留的第一时长;若所述第一时长大于第一阈值,则将所述目标视频帧丢弃。
15.基于本技术实施例,第一电子设备可以在将目标视频帧放入缓存队列之前,预先判断如果将目标视频帧放入缓存队列中,其需要停留的第一时长,当该第一时长大于第一阈值,可以将该目标视频帧丢弃。该技术方案可以避免目标视频帧在第一缓存队列中停留的时间较长、延迟较大,从而有利于保证投屏的实时性。
16.结合第一方面,在第一方面的一种实现方式中,所述方法还包括:若所述第一时长小于或等于第一阈值,则所述第一电子设备确定所述第一缓存队列中缓存的视频帧的第一数量;若所述第一数量大于第二阈值,则将所述目标视频帧丢弃;若所述第一数量小于或等于第二阈值,则将所述目标视频帧放入所述第一缓存队列中。
17.基于本技术实施例,当第一缓存队列的缓存量大于第二阈值时,意味着第一缓存队列中缓存的视频帧的数量较多,则可能会造成后续解码的视频帧进入不了该第一缓存队列中,因此,在这种情况下将该目标视频帧丢弃,使得第一缓存队列中的缓存的视频帧的数量在合适的范围之内,避免后续解码的视频帧进入不了该第一缓存队列,从而可以提升投屏的实时性和流畅度。
18.结合第一方面,在第一方面的一种实现方式中,所述第一电子设备根据第一预设条件确定是否渲染并显示所述目标视频帧,包括:在所述目标视频帧在第一缓存队列中停留所述第一时长之后,所述第一电子设备渲染并显示所述目标视频帧。
19.应理解,该第一时长也可以为0。
20.基于本技术实施例,当该目标视频帧被放入第一缓存队列之后,可以在第一时长
之后被送至第一电子设备的显示模块中渲染和显示。该技术方案可以主动控制该目标视频帧的渲染和显示,以提升投屏的显示帧率。
21.结合第一方面,在第一方面的一种实现方式中,所述方法还包括:所述第一电子设备确定第三预设数量的目标视频帧从解码至渲染并显示在所述第一电子设备的屏幕上的第一平均用时;若所述第一平均用时大于第三阈值,则降低所述第一电子设备的屏幕刷新帧率。
22.应理解,该第三预设数量可以是30、20等,该第三阈值可以是20ms、18ms等,该第三预设数量的目标视频帧可以是连续的,也可以是间隔的。
23.基于本技术实施例,当一定数量的目标视频帧从解码至显示在第一电子设备中的平均用时大于第三阈值时,意味着该多帧视频帧的延迟较大,则此时第一电子设备可以对屏幕刷新帧率做降帧处理,即降低屏幕刷新帧率,从而可以避免投屏的延迟过大,提升投屏的实时性和流畅性。
24.结合第一方面,在第一方面的一种实现方式中,在所述降低所述第一电子设备的屏幕刷新帧率之前,所述方法还包括:所述第一电子设备确定当前的屏幕刷新帧率处于原始屏幕刷新帧率。
25.基于本技术实施例,在第一电子设备降低屏幕刷新帧率之前,可以判断当前的屏幕刷新帧率是处于原始大小的,该技术方案可以避免第一电子设备多次降帧,造成帧率较低的现象。
26.结合第一方面,在第一方面的一种实现方式中,所述方法还包括:在间隔第四预设数量的目标视频帧之后,所述第一电子设备继续确定所述第三预设数量的目标视频帧从解码至渲染并显示在所述第一电子设备的屏幕上的第二平均用时;若所述第二平均用时小于或等于第四阈值,则提高所述第一电子设备的屏幕刷新帧率。
27.基于本技术实施例,在间隔预设数量的目标视频帧之后,第一电子设备继续确定第三预设数量的目标视频帧从解码至渲染并显示在所述第一电子设备的屏幕上的平均用时,当该平均用时小于第四阈值时,意味着该多帧目标视频帧的延迟较小,则此时第一电子设备可以提高屏幕刷新帧率,以显示更多的视频帧,从而可以提升投屏画面的清晰度。
28.结合第一方面,在第一方面的一种实现方式中,在所述提高所述第一电子设备的屏幕刷新帧率之前,所述方法还包括:所述第一电子设备确定当前的屏幕刷新帧率小于所述原始屏幕刷新帧率。
29.基于本技术实施例,在第一电子设备提高屏幕帧率之前需确定当前的屏幕刷新帧率小于该原始屏幕刷新帧率。
30.第二方面,提供了一种电子设备,包括一个或多个处理器;一个或多个存储器;该一个或多个存储器存储有一个或多个计算机程序,该一个或多个计算机程序包括指令,当该指令被一个或多个处理器执行时,使得如上述第一方面及其任一种可能的实现方式中的显示控制的方法被执行。
31.第三方面,提供一种芯片,所述芯片包括处理器和通信接口,所述通信接口用于接收信号,并将所述信号传输至所述处理器,所述处理器处理所述信号,使得如上述第一方面及其任一种可能的实现方式中的显示控制的方法被执行。
32.第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计
算机指令,当所述计算机指令在电子设备上运行时,使得电子设备执行如上述第一方面及其任一种可能的实现方式中的显示控制的方法。
33.第五方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如上述第一方面及其任一种可能的实现方式中的显示控制的方法。
附图说明
34.图1是本技术实施例可以应用的场景的示意图。
35.图2是本技术实施例提供的一种投屏显示的示意图。
36.图3是本技术实施例提供的另一种投屏显示的示意图。
37.图4是本技术实施例提供的一种电子设备对视频帧进行显示控制的示意性流程图。
38.图5是本技术实施例提供的另一种电子设备对视频帧进行显示控制的示意性流程图。
39.图6是本技术实施例提供的一种显示控制的方法的示意图。
40.图7是本技术实施例提供的一种显示控制的方法的示意图。
41.图8是本技术实施例提供的一种显示控制的方法的示意性流程图。
42.图9是本技术实施例提供的一种显示控制的方法的示意性流程图。
具体实施方式
43.下面将结合附图,对本技术中的技术方案进行描述。
44.本技术实施例中显示控制方法可以应用于智能手机、平板电脑、笔记本电脑、个人计算机(personal computer,pc)、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)车载设备、可穿戴设备等电子设备中,本技术实施例对电子设备的具体类型不作任何限制。
45.在介绍本技术实施例的技术方案之前,首先对本技术中涉及的一些专业术语做简单的介绍。
46.视频接收帧率:是用于测量接收显示帧数的量度。单位为每秒接收的帧数(frames per second,fps)或赫兹(hz)。在一些可能的实施例中,视频为在第一电子设备上编码后发送到第二电子设备的,视频接收帧率可以指第二电子设备每秒钟接收的帧数。
47.刷新帧率:指图像在屏幕上更新的速度,也即屏幕上的图像每秒钟出现的次数,单位是赫兹,刷新频率越高,屏幕上图像闪烁感就越小,稳定性也就越高。在一些可能的实施例中,刷新帧率指第二电子设备的刷新帧率,例如,第二电子设备每秒钟显示60帧图像。
48.wifi-p2p:定义为wifi点对点(peer to peer,p2p),也可以称为wifi直连(wifi direct),可以允许无线网络中的设备无需通过无线路由器即可相互连接,进行数据的传输。
49.图1是本技术实施例可以应用的场景的示意图。如图1所示,第一电子设备100a可以是手机,第二电子设备100b可以是pc,本技术实施例中以手机向pc投屏为例进行说明。
50.参见图1,手机屏幕正在显示华为视频的画面110,当手机向pc投屏时,将画面110
显示在pc的屏幕中,pc的屏幕中的显示区域121中可以显示画面110的内容。可选地,在显示区域121的上方还可以包括标题栏部分122,该标题栏部分可以包括应用的名称“华为视频”,以及用于控制界面显示的最小化、最大化和关闭的控件等。
51.因此,为了保证用户体验,需要保证手机的画面110可以稳定、实时和流畅的显示在pc的屏幕中。
52.图2是本技术实施例提供的一种投屏显示的示意图。
53.如图2所示,电子设备200a可以是手机,电子设备200b可以是pc。本技术实施例中以手机向pc投屏为例进行说明。在一些实施例中,手机与pc可以通过wifi-p2p的连接方式建立连接,在另一些实施例中,手机和pc还可以通过无线局域网(wireless local area networks,wlan)、蓝牙、超宽带(ultra wide band,uwb)、有线连接等连接方式建立连接。
54.参见图2,在投屏的过程中,手机端的图像绘制模块210获取手机的视频流每一帧的画面之后,调用编码器220对视频流进行编码,例如,使用h.264编码对视频流进行编码,然后将编码后的视频流通过wi-fi模块230(如wi-fi芯片)发送至pc端。
55.pc端中的wi-fi模块240接收到该编码后的视频流之后,将该编码后的视频流发送至pc的投屏业务的图像接收模块250,该图像接收模块250调用解码器260对该视频流进行解码(例如,调用芯片层的硬件处理器进行解码),解码器260将解码后的视频流发送至图像显示模块270,图像显示模块270对该视频流中的视频帧进行渲染并显示在pc屏幕中。
56.在上述投屏的过程中,pc需要对接收到的视频流中的每一帧进行渲染和显示,且pc的屏幕具有一定的屏幕刷新帧率,例如,该屏幕刷新帧率为60hz,即pc的屏幕每间隔16.7ms刷新一次,每次显示一个视频帧,理想情况下,pc接收的手机的视频流的视频接收帧率也应该是与pc的屏幕刷新帧率一致,即每16.7ms接收一个视频帧,但是由于视频流传输过程的网络波动等问题,会导致pc的屏幕刷新帧率和接收的手机的视频流的视频接收帧率可能是不同的。因此,当pc接收的视频接收帧率大于pc的屏幕刷新帧率时,可能会导致手机的部分视频帧在pc的显示渲染过程中丢失,造成pc显示的清晰度下降,或者当pc接收的视频接收帧率小于pc的屏幕刷新帧率时,可能会导致部分视频帧在pc的显示渲染过程中时延较大。
57.有鉴于此,本技术实施例提供一种显示控制方法,该技术方案通过主动控制视频帧的显示,可以提升投屏过程中的实时性、清晰度和流畅度。
58.图3是本技术实施例提供的另一种投屏显示的示意图。
59.如图3所示,电子设备300a可以是手机,电子设备300b可以是pc。本技术实施例中以手机向pc投屏为例进行说明,手机与pc可以通过wifi-p2p的连接方式建立连接。
60.参见图3,在投屏的过程中,手机端的图像绘制模块310获取手机的视频流每一帧的画面之后,调用编码器320对视频流进行编码,例如,使用h.264编码对视频流进行编码,然后将编码后的视频流通过wi-fi模块330(如wi-fi芯片)发送至pc端。
61.pc端中的wi-fi模块340接收到该编码后的视频流之后,将该编码后的视频流发送至pc的投屏业务的图像接收模块350,该图像接收模块350调用解码器360对该视频流进行解码(例如,调用芯片层的硬件处理器进行解码),解码器360将解码后的视频流发送至显示控制模块370,该显示控制模块370可以控制该解码后的视频流中的视频帧的显示方式,该显示控制模块370将控制后的视频帧发送至图像显示模块380,图像显示模块370对该视频
流进行渲染并显示在pc屏幕中。
62.具体地,上述的显示控制模块370可以将解码后的视频流中的视频帧丢弃,或者,延迟发送至图像显示模块380,或者立即发送至图像显示模块380等等。
63.该显示控制模块370中可以包括决策模块,以执行上述决策。
64.图4是本技术实施例提供的一种电子设备对视频帧进行显示控制的示意性流程图。该方法可以包括步骤401至步骤407。本技术实施例中,以pc的屏幕刷新帧率为60hz为例进行说明,则pc屏幕的两次刷新时间间隔为16.7ms。
65.该实施例中,手机向pc投屏,即手机的屏幕内容显示在pc的屏幕中。当pc接收到手机的视频流的内容之后,可以对该视频流中的视频帧进行解码,对于解码后的视频帧可以执行如下步骤。
66.401,pc接收待渲染的目标视频帧。
67.示例性地,该步骤中,pc中的显示控制模块接收解码器发送的解码后的目标视频帧,并对该目标视频帧进行主动控制,如将该目标视频帧放入第一缓存队列中,或者将该目标视频帧丢弃。
68.402,判断目标视频帧在第一缓存队列中将要停留的第一时长是否大于第一阈值。
69.其中,该第一阈值可以是根据pc的屏幕刷新帧率计算得到,例如,pc的屏幕刷新帧率为60hz,则该第一阈值可以是18ms、20ms等。
70.若目标视频帧在第一缓存队列中将要停留的第一时长大于第一阈值,则转到步骤404。
71.在一些示例中,若pc分别在第0ms、7ms和15ms分别接收到第一目标视频帧、第二目标视频帧和第三目标视频帧。在第一目标视频帧在进入第一缓存队列中时,由于第一缓存队列中没有其他视频帧,则该第一目标视频帧可以直接被送至显示模块渲染和显示。在第一目标视频帧显示的过程中,pc在第7ms接收到第二目标视频帧,则在第7ms时,将该第二目标视频帧放入第一缓存队列中,由于第一缓存队列每间隔16.7ms将队列中缓存的视频帧送至显示模块中渲染和显示,所以第二目标视频帧需要在第一缓存队列中停留16.7ms-7ms=9.7ms。pc在15ms接收到第三目标视频帧,此时,pc屏幕显示的视频帧为第一目标视频帧,第一缓存队列中有第二目标视频帧等待显示,则第三目标视频帧需要在第一缓存队列中停留1.7ms+16.7ms=18.4ms。若该第一阈值为18ms,则pc将该第三目标视频帧丢弃。
72.应理解,上述的第0ms、第7ms和第15ms仅仅是相对的概念,不应对本技术造成任何限定。对于第三目标视频帧之后的其他视频帧,可以参见上述描述,为了简洁不再赘述。
73.403,若目标视频帧在第一缓存队列中将要停留的第一时长小于或等于第一阈值,则判断该第一缓存队列的缓存量是否大于第二阈值。
74.示例性地,该第二阈值可以是5帧、2帧、1帧等。
75.在该目标视频帧在第一缓存队列中将要停留的第一时长小于或等于第一阈值的情况下,若该第一缓存队列的缓存量大于第二阈值,则转到步骤404。
76.本技术实施例中,当第一缓存队列中已经缓存了大于第二阈值数量的视频帧时,意味着该目标视频帧需要在该第二阈值数量的视频帧之后进行渲染和显示,例如,该第二阈值为2帧,pc的屏幕刷新帧率为60hz,则pc屏幕每次刷新的时间为16.7ms,第一缓存队列中缓存的视频帧的数量为3帧,则该目标视频帧需要在50.1ms之后才能进行渲染和显示,即
使该目标视频帧进入第一缓存队列时,处在第一缓存队列最前方的视频帧被送去渲染和显示,则该目标视频帧仍需在33.4ms之后才能进行渲染和显示,仍然延迟较高,给用户带来的直观感受就是画面有卡顿现象,因此,为了避免发生卡顿现象或减轻卡顿现象,可以将该目标视频帧做丢弃处理。
77.本技术实施例对于步骤402、步骤403的先后顺序不予限定,如步骤403也可以在步骤402之前,或者步骤402与步骤403同步进行。
78.应理解,该步骤402、步骤403可以为可选步骤。
79.404,将目标视频帧丢弃。
80.在一种可能的实现方式中,将目标视频帧放入第一缓存队列中,若目标视频帧在第一缓存队列的将要停留的第一时长大于第一阈值,则将该目标视频帧丢弃。
81.本技术实施例中,当目标视频帧在第一缓存队列的将要停留的第一时长大于第一阈值时,意味着该目标视频帧需要在一定的延迟时长之后进行渲染和显示,若延迟较大,会造成画面卡顿现象。而将该目标视频帧丢弃,可以避免画面卡顿或减轻画面卡顿,保证画面的实时性和流畅度。
82.在另一种可能的实现方式中,若第一缓存队列的缓存量大于第二阈值,则将该目标视频帧丢弃。
83.具体地,若第一缓存队列中已经有若干视频帧等待渲染并显示,当该pc接收到该目标视频帧时,若第一缓存队列中缓存的视频帧的数量大于第二阈值,例如该第二阈值为2帧,则将该目标视频帧丢弃。
84.405,若该第一缓存队列中缓存的视频帧的数量小于或等于第二阈值,则将该目标视频帧放入第一缓存队列中。
85.该步骤中,若第一缓存队列的缓存量小于或等于第一阈值,则将该目标视频帧放入第一缓存队列中,该目标视频帧可以较快的送至显示模块中渲染和显示,从而可以减少该目标视频帧的延时。
86.406,将该目标视频帧在第一缓存队列中停留第一时长。
87.该步骤中,该第一时长可以和第一缓存队列中缓存的视频帧的数量相关。
88.示例性地,若该pc接收该目标视频帧时,距离接收目标视频帧的前一帧的时间为8ms,则该目标视频帧不能够立即被发送至显示模块中显示,因为和pc屏幕的刷新时间不吻合,则该pc可以将该目标视频帧放入第一缓存队列中,在屏幕下次刷新时,将该目标视频帧送至显示模块中显示,也就是说,该目标视频帧需要在第一缓存队列中停留8.7ms。
89.可选地,上述步骤401至步骤406可以由pc中的显示控制模块来执行。
90.可选地,在一些实施例中,pc可以直接将目标视频帧放入第一缓存队列中,然后再判断是否将目标视频帧丢弃,可以通过判断该目标视频帧在第一缓存队列中停留的时长以及该第一缓存队列中缓存的视频帧的数量大小,若目标视频帧在第一缓存队列中停留的时长大于第一阈值,则可以将该目标视频帧丢弃,若其在第一缓存队列中停留的时长小于或等于第一阈值,则可以继续判断该第一缓存队列中缓存的视频帧的数量大小是否大于第二阈值,若大于第二阈值,则可以将该目标视频帧丢弃,若小于或等于第二阈值,则可以将该目标视频帧放入第一缓存队列中。
91.应理解,本技术对上述判断目标视频帧在第一缓存队列中停留的时长与第一阈值
的关系、第一缓存队列中缓存的视频帧的数量大小与第二阈值的关系的顺序不予限定。
92.407,渲染目标视频帧。
93.示例性地,该步骤中,目标视频帧可以在合适的时间被发送至pc的显示模块中,该显示模块对该目标视频帧进行渲染并显示。
94.应理解,本技术实施例对于步骤405至步骤407的先后顺序不予限定。
95.基于本技术实施例,第二电子设备可以对解码后的目标视频帧进行主动控制,通过判断目标视频帧在缓存队列中的停留时长和队列中的缓存量大小,可以决定将该目标视频帧丢弃或放入该缓存队列中。该技术方案可以避免画面卡顿或减轻画面卡顿,保证画面的实时性和流畅度。
96.图5是本技术实施例提供的另一种电子设备对视频帧进行显示控制的示意性流程图。该方法可以包括步骤501至步骤506。本技术实施例中,以pc的屏幕刷新帧率为60hz为例进行说明,则pc屏幕的两次刷新时间间隔为16.7ms。
97.501,pc从第一缓存队列中取出待渲染的目标视频帧。
98.应理解,在该实施例中,解码后的目标视频帧首先会被送至第一缓存队列中,然后pc从该第一缓存队列中将该目标视频帧取出送至显示模块渲染、显示,或者将该目标视频帧丢弃。
99.502,判断目标视频帧在第一缓存队列的停留时长是否大于第一阈值。
100.示例性地,可以记录该目标视频帧进入第一缓存队列的时刻t1,和该目标视频帧被取出的时刻t2,则该目标视频帧在第一缓存队列中的停留时长为t=t2-t1,当该时长t大于第一阈值时,显示控制模块将该目标视频帧丢弃,当该时长t小于或等于第一阈值时,将继续判断第一缓存队列中缓存的视频帧的数量与第二阈值之间的关系。
101.该第一阈值可以是18ms、20ms等。
102.该步骤中,当目标视频帧在第一缓存队列中的停留时长大于第一阈值时,意味着该目标视频帧在第一缓存队列中等待较长的时间,此时可将该目标视频帧丢弃,从而有利于保证投屏的实时性。
103.503,若目标视频帧在第一缓存队列的停留时长小于或等于第一阈值,则判断该第一缓存队列的缓存量是否大于第二阈值。
104.在一个示例中,若目标视频帧在第一缓存队列的停留时长小于或等于第一阈值,且第一缓存队列中缓存的视频帧的数量大于第二阈值,则将该目标视频帧丢弃。
105.在另一个示例中,若目标视频帧在第一缓存队列的停留时长小于或等于第一阈值,且第一缓存队列中缓存的视频帧的数量小于或等于第二阈值,则将该目标视频帧送至显示模块渲染显示或者让该目标视频帧等待一段时间之后,送至显示模块渲染显示。
106.示例性地,该第二阈值可以是5帧、2帧、1帧等。
107.应理解,本技术实施例对于步骤502、503的先后顺序不予限定,例如,步骤503也可以在步骤502之前,或者步骤502、503也可以同步进行。
108.应理解,步骤502、步骤503可以为可选步骤。
109.该步骤中,当第一缓存队列的缓存量大于第二阈值时,意味着第一缓存队列中缓存的视频帧的数量较多,则可能会造成后续解码的视频帧进入不了该第一缓存队列中,因此,在这种情况下将该目标视频帧丢弃,使得第一缓存队列中的缓存的视频帧的数量在合
适的范围之内,避免后续解码的视频帧进入不了该第一缓存队列,从而可以提升投屏的实时性和流畅度。
110.504,将目标视频帧丢弃。
111.在一种可能的实现方式中,若目标视频帧在第一缓存队列的停留时长大于第一阈值,则将该目标视频帧丢弃。
112.示例性地,若显示控制模块分别在第0ms、7ms和15ms分别接收到第一目标视频帧、第二目标视频帧和第三目标视频帧,分别记录第一目标视频帧、第二目标视频帧和第三视频帧进入第一缓存队列和出第一缓存队列中的时间。对于第一目标视频帧来说,由于在进入第一缓存队列中时,第一缓存队列中没有其他视频帧,则该第一目标视频帧在进入第一缓存队列时即被取出,也就是说,该第一目标视频帧在第一缓存队列停留的时长为0,此时第一缓存队列中缓存的视频帧也为0,则该第一目标视频帧被送至显示模块中渲染和显示。在第一目标视频帧显示的过程中,显示控制模块在第7ms接收到第二目标视频帧时,将该第二目标视频帧放入第一缓存队列中,由于此时pc的屏幕显示的视频为第一目标视频帧,则第二目标视频帧需要在第一缓存队列中停留16.7ms-7ms=9.7ms,若该9.7ms大于第一阈值,则将该第二目标视频帧丢弃,若该9.7ms小于或等于第一阈值,此时,第一缓存队列中除了第二目标视频帧以外没有其他视频帧,则该第一缓存队列中缓存的视频帧的数量为0,则让该第二目标视频帧等待一段时间后送至显示模块中渲染和显示。显示控制模块在15ms接收到第三目标视频帧,此时,pc屏幕显示的视频帧为第一目标视频帧,第一缓存队列中有第二目标视频帧等待显示,则第三目标视频帧需要在第一缓存队列中停留1.7ms+16.7ms=18.4ms,若该18.4ms大于第一阈值,则将该第三目标视频帧丢弃,若该18.4ms小于或等于第一阈值,则第一缓存队列中的缓存的视频帧为第二目标视频帧,即缓存的视频帧的数量为1帧,此时可以判断该1与第二阈值之间的关系,若1大于第二阈值,则将该第三目标视频帧丢弃。
113.应理解,上述的第0ms、第7ms和第15ms仅仅是相对的概念,不应对本技术造成任何限定。
114.对于第三目标视频帧之后的其他视频帧,可以参见上述描述,为了简洁不再赘述。
115.505,若该第一缓存队列中缓存的视频帧的数量小于或等于第二阈值,则将该目标视频帧在第二时长之后送至显示模块中。
116.该步骤中,该目标视频帧在第二时长之后,被送至显示模块中渲染和显示。该第二时长也可以为0。
117.示例性地,若pc接收该目标视频帧时,距离接收目标视频帧的前一帧的渲染时间为8ms,则该目标视频帧不能够立即被发送至显示模块中显示,因为和pc屏幕的刷新时间不吻合,则pc可以让该目标视频帧在8.7ms之后被送至显示模块中渲染和显示;或者,该目标视频帧先被送至显示模块中,但不会立即渲染和显示,而是等待8.7ms之后进行渲染和显示。
118.应理解,该技术方案中,pc可以调用系统接口将目标视频帧发送至显示模块中,则该调用系统接口将目标视频帧送至显示模块的时间间隔与pc屏幕的刷新时间间隔基本保持一致,例如,该时间间隔可以表示为:屏幕刷新时间(16.7ms)-(调用睡眠函数的时间戳-调用上一帧渲染的时间戳)。
119.应理解,上述步骤501至步骤505,可以由pc的显示控制模块来执行。
120.506,渲染目标视频帧。
121.应理解,该步骤中,目标视频帧可以在合适的时间被发送至pc的显示模块中,该显示模块对该目标视频帧进行渲染并显示。
122.或者,该目标视频帧直接被发送至显示模块中,该显示模块对该目标视频帧进行渲染并显示。
123.可选地,步骤506也可以在步骤505之前。
124.应理解,该技术方案中,pc可以通过系统接口将目标视频帧发送至显示模块中,则调用系统接口将目标视频帧送至显示模块的时间间隔与pc屏幕的刷新时间间隔基本保持一致,例如,该时间间隔可以表示为:屏幕刷新时间间隔(16.7ms)-调用系统接口所需时间-x,其中x为调整值,一般为正值,是由于睡眠函数不精确增加的一个值。
125.基于本技术实施例,电子设备可以对解码后的目标视频帧进行主动控制,通过判断目标视频帧在缓存队列中的停留时长和队列中的缓存量大小,可以决定将该目标视频帧丢弃或送至显示模块中显示。该技术方案可以避免画面卡顿或减轻画面卡顿,保证画面的实时性和流畅度。
126.图6是本技术实施例提供的一种显示控制的方法的示意图。
127.如图6所示,以pc的屏幕刷新帧率为60hz为例进行说明,则pc屏幕的两次刷新之间的时间间隔为16.7ms,即每一视频帧显示的时间为16.7ms。对于接收视频帧来说,为了和pc屏幕的刷新率之间匹配,理想情况下,pc接收的两个视频帧之间的时间间隔也为16.7ms,则可以实现不丢帧,也能够保证实时性和流畅度。但是,pc的接收的两个视频帧之间的时间间隔由于各种原因,不能做到每两个视频帧之间的间隔为16.7ms,例如,某一视频帧的时长可能会小于或等于16.7ms,或者大于16.7ms。
128.例如,在第7ms接收到一个视频帧,此时pc屏幕在之后的16.7ms时间内只显示该视频帧,在这个过程中,pc在第15ms又接收到一个视频帧时,该新接收到的视频帧会被丢弃,造成丢帧现象。
129.参见图6,在投屏过程中,对于pc接收到的视频帧来说,第0个视频帧可以理解为初始视频帧,即pc显示投屏内容之前的初始视频帧,该初始视频帧的时长可以是16.7ms,也可能大于16.7ms。
130.在一种可能的实现方式中,参见图6中的(a),在目标视频帧进入第一缓存队列之前,pc可以预先确定该目标视频帧在第一缓存队列中将要停留的时长和第一缓存队列缓存的视频帧的数量大小判断是否将目标视频帧放入第一缓存队列中或直接丢弃。
131.具体地,显示控制模块接收的第1个视频帧与第2个视频帧的时间间隔为16.7ms,显示控制模块将该第1个视频帧放入第一缓存队列中,由于该第一缓存队列中除了该第1个视频帧之外没有其他视频帧,即该第1个视频帧在第一缓存队列中的停留时长为0,且该第一缓存队列中缓存的视频帧的数量为0,则可以直接将该第一缓存队列中的第1个视频帧直接送至显示模块中渲染和显示。显示控制模块接收的第2个视频帧与第3个视频帧的时间间隔为7ms,此时该第2个视频帧在第一缓存队列中的停留时长为0,且该第一缓存队列中缓存的视频帧的数量为0,则将该第2个视频帧放入第一缓存队列中,然后将该第2个视频帧送至显示模块中渲染和显示。在这个过程中,显示控制模块又接收到第3个视频帧,该第3个视频
帧与第4个视频帧的时间间隔为8ms,由于此时pc屏幕正在显示的视频帧为第2个视频帧,此时,该第3个视频帧将在第一缓存队列中缓存9.7ms,第一缓存队列中的缓存的视频帧的数量为0,若该9.7ms小于第一阈值,则将该第3个视频帧放入第一缓存队列中,等待pc屏幕下一次刷新时,将该第3个视频帧送至显示模块中渲染和显示,若在第3个视频帧缓存过程中,显示控制模块接收到第4个视频帧,此时pc屏幕显示的视频帧仍为第2个视频帧,第一缓存队列中又缓存有第3视频帧,则此时显示控制模块可以根据该第4个视频帧将要在第一缓存队列中的停留时长和第一缓存队列中的缓存的视频帧的数量大小,决定是将该第4个视频帧丢弃或者是放入第一缓存队列中。
132.例如,该显示控制模块判断第4个视频帧将要在第一缓存队列中的停留时长大于第一阈值,则将该第4个视频帧丢弃。又如,若显示控制模块判断该第4个视频帧将要在第一缓存队列中的停留时长小于或等于第一阈值,则继续判断该第一缓存队列的缓存的视频帧的数量,若该第一缓存队列中的缓存的视频帧的数量大于第二阈值,则将该第4个视频帧丢弃。
133.在另一种可能的实现方式中,参见图6中的(b),pc将解码后的视频帧直接放入第一缓存队列中,并可以根据目标视频帧在第一缓存队列中的停留时长和第一缓存队列中缓存的视频帧的数量大小判断将目标视频帧送至显示模块中渲染和显示,或是直接丢弃。
134.例如,pc的显示控制模块可以记录目标视频帧进入第一缓存队列和出第一缓存队列的时刻,则可以计算出该目标视频帧在第一缓存队列中停留的时间,若该目标视频帧在第一缓存队列中停留的时长大于第一阈值,则将该目标视频帧丢弃,即不送至显示模块中渲染和显示,若该目标视频帧在第一缓存队列中停留的时长小于或等于第一阈值,则需继续判断该第一缓存队列中缓存的视频帧的数量与第二阈值之间的关系,若该第一缓存队列中缓存的视频帧的数量大于第二阈值,则将该目标视频帧丢弃,若该第一缓存队列中缓存的视频帧的数量小于或等于第二阈值,则将该目标视频帧送至显示模块中渲染并显示或者使该目标视频帧睡眠后送至显示模块中渲染和显示。
135.具体地,pc的显示控制模块将接收到的视频帧放入第一缓存队列中,示例性地,第1个视频帧与第2个视频帧的时间间隔为16.7ms,显示控制模块将该第1个视频帧放入第一缓存队列中,由于该第一缓存队列中除了该第1个视频帧之外没有其他视频帧,即该第1个视频帧在第一缓存队列中的停留时长为0,且该第一缓存队列中缓存的视频帧的数量为0,则可以直接将该第一缓存队列中的第1个视频帧直接送至显示模块中渲染和显示。显示控制模块接收的第2个视频帧与第3个视频帧的时间间隔为7ms,此时该第2个视频帧在第一缓存队列中的停留时长为0,且该第一缓存队列中缓存的视频帧的数量为0,则可以直接将该第一缓存队列中的第2个视频帧直接送至显示模块中渲染和显示。在pc显示第2个视频帧的过程中,显示控制模块接收到第3个视频帧、第4个视频和第5个视频帧,且第3个视频帧与第4个视频帧的间隔为5ms,第4个视频帧与第5个视频帧的时间间隔为3ms。由于pc屏幕每16.7ms刷新一帧,所以,该第3个视频帧将在第一缓存队列中缓存9.7ms,此时第一缓存队列中的缓存的视频帧的数量为0。在第3个视频帧缓存的过程中,第4个视频帧和第5个视频帧将被放入该第一缓存队列中,则在显示控制模块将该第3个视频帧送至显示模块时,可以判断该第3个视频帧在第一缓存队列中停留的时长9.7ms与第一阈值的关系,若该9.7ms大于第一阈值,则将该第3个视频帧丢弃,若该9.7ms小于或等于第一阈值,则判断第一缓存队列
中缓存的视频帧的数量与第二阈值之间的关系,此时,第一缓存队列中缓存了第4个视频帧、第5个视频帧,则缓存的视频帧的数量为2,若2大于第二阈值,则将该第3个视频帧丢弃,若2小于或等于第二阈值,则将该第3个视频帧送至显示模块渲染和显示。
136.应理解,对于第3个视频帧之后的其他视频帧的处理可以参见上述描述,为了简洁不再赘述。
137.还应理解,上述实施例中,pc也可以先判断第一缓存队列中的数量与第二阈值的关系,再判断目标视频帧在第一缓存队列中的停留时长与第一阈值的关系,或者同时判断,本技术实施例对此不予限定。
138.本技术实施例中,pc可以通过系统接口将该目标视频帧送至显示模块中。
139.基于本技术实施例,pc可以对解码后的视频帧进行主动控制,通过判断目标视频帧将要在缓存队列中的停留时长和队列中的缓存量大小,可以决定将视频帧丢弃或显示。该技术方案可以避免画面卡顿或减轻画面卡顿,保证画面的实时性和流畅度。
140.基于上述实施例,在手机和pc在wifi-p2p连接的情况下,手机向pc投屏时,以pc的屏幕刷新帧率为60hz为例,应用本技术的显示控制方法的技术方案,可以将丢帧率从17.12%降低至8.6%,即pc端从原来能够显示49帧提升至可以显示54帧,提升了投屏的实时性、清晰度和流畅度。
141.应理解,本技术实施例中,pc的屏幕刷新帧率也可以为90hz或120hz或其他帧率,本技术实施例对此不予限定。
142.图7是本技术实施例提供的另一种显示控制的方法的示意图。
143.如图7所示,以pc的屏幕刷新帧率为60hz为例进行说明,则pc屏幕的两次刷新之间的时间间隔为16.7ms,即每一视频帧显示的时间为16.7ms。对于接收视频帧来说,为了和pc屏幕的刷新率之间匹配,理想情况下,pc接收的两个视频帧之间的时间间隔也为16.7ms,则可以实现不丢帧,也能够保证实时性和流畅度。但是,pc的显示控制模块接收的两个视频帧之间的时间间隔由于各种原因,不能做到每两个视频帧之间的间隔为16.7ms,例如,某一视频帧的时长可能会小于或等于16.7ms,或者大于16.7ms。
144.参见图7,在投屏过程中,对于pc接收到的视频帧来说,第0个视频帧可以理解为初始视频帧,即pc显示投屏内容之前的初始视频帧,该初始视频帧的时长可以是16.7ms,也可能大于16.7ms。
145.在一种可能的实现方式中,在目标视频帧进入第一缓存队列之前,pc可以预先确定该目标视频帧在第一缓存队列中将要停留的时长和第一缓存队列缓存的视频帧的数量大小判断是否将目标视频帧放入第一缓存队列中或直接丢弃。
146.具体地,pc的显示控制模块接收到第1个视频帧与第2视频帧的时间间隔为16.7ms,显示控制模块将该第1个视频帧放入第一缓存队列中,由于该第一缓存队列中除了该第1个视频帧之外没有其他视频帧,即该第1个视频帧在第一缓存队列中的停留时长为0,且该第一缓存队列中缓存的视频帧的数量为0,则可以直接将该第一缓存队列中的第1个视频帧直接送至显示模块中渲染和显示。16.7ms之后,显示控制模块接收到第2个视频帧,显示控制模块接收的第2个视频帧与第3个视频帧的时间间隔为30ms,显示控制模块在接收该第2个视频帧时,此时该第2个视频帧在第一缓存队列中的停留时长为0,且该第一缓存队列中缓存的视频帧的数量为0,将其放入第一缓存队列中,然后将该第2个视频帧送至显示模
块中渲染和显示,由于pc屏幕每隔16.7ms刷新一次,而显示控制模块在接收到第2个视频帧之后30ms才接收到第3个视频帧,所以第2个视频帧会在pc屏幕上显示两个16.7ms的时长,在第2个视频帧处在第二个16.7ms显示的过程中,显示控制模块接收到第3个视频帧时,判断当前第2个视频帧已经显示超过了16.7ms,则第3个视频帧时不会在缓存队列中停留,而是直接送去下一个显示模块,由显示模块自主控制下一次的屏幕刷新渲染,显示控制模块可以判断该第3个视频帧在第一缓存队列中的停留时长与第一阈值的关系以及第一缓存队列中缓存的视频帧的数量大小,确定是否将该第3个视频帧放入第一缓存队列中或直接丢弃。对于之后的其他的视频帧,同样需要根据其在第一缓存队列中将要停留的时长和第一缓存队列缓存的视频帧的数量大小判断是否将目标视频帧放入第一缓存队列中或直接丢弃,为了简洁,不再赘述。
147.在另一种可能的实现方式中,pc将解码后的视频帧直接放入第一缓存队列中,并可以根据目标视频帧在第一缓存队列中的停留时长和第一缓存队列中缓存的视频帧的数量大小判断将目标视频帧送至显示模块中渲染和显示,或是直接丢弃。
148.基于本技术实施例,pc可以对解码后的视频帧进行主动控制,通过判断目标视频帧在缓存队列中的停留时长和队列中的缓存量大小,可以决定将视频帧丢弃或送至显示模块中渲染和显示。该技术方案可以避免画面卡顿或减轻画面卡顿,保证画面的实时性和流畅度。
149.图8是本技术实施例提供的一种显示控制的方法的示例性流程图。该方法中,以手机向pc投屏为例进行说明,该方法可以包括步骤601至步骤604。
150.601,接收解码后的目标视频帧。
151.示例性地,pc中的wifi模块接收手机发送的视频流,并发送至pc的投屏业务的图像接收模块,该图像接收模块调用解码器对该视频流中的视频帧进行解码,显示控制模块接收该视频帧。
152.602,将解码后的目标视频帧送至显示模块中渲染和显示。
153.603,确定第三预设数量的目标视频帧从解码至送至显示模块中渲染并显示的平均用时。
154.其中,该第三预设数量的目标视频帧可以是连续的视频帧,也可以是间隔的视频帧。
155.示例性地,该第三预设数量可以是30帧、25帧等。
156.604,若平均用时大于第三阈值,则降低pc的屏幕刷新帧率。
157.例如,可以将pc的屏幕刷新帧率降至原来的一半,或降低至原来的三分之二等。
158.可选地,若该pc的屏幕刷新帧率已经降低过一次,则即使该平均用时大于第三阈值,也保持该pc的屏幕刷新帧率不变。
159.可选地,该方法还可以包括步骤605至步骤606:
160.605,每间隔第四预设数量的目标视频帧执行一次步骤603。
161.在一些实施例中,该第四预设数量可以是20帧,第三预设数量可以是30帧,步骤603中记录了从第1个目标视频帧至第30个目标视频帧从解码至送至显示模块中渲染显示的平均用时,然后执行步骤604,然后可以间隔20个视频帧之后,即从第50个目标视频帧开始,记录从第50个目标视频帧至第80个目标视频帧从解码至送至显示模块中渲染显示的平
均用时,接着执行步骤604,依次循环。
162.应理解,当再次执行步骤604时,若pc已经处于降帧状态,即当前屏幕刷新帧率已经小于原始的屏幕刷新帧率,则无需继续降低pc的屏幕刷新帧率。或者,也可以进行多次降帧。
163.该第四预设数量还可以是15帧等。
164.可选地,每间隔一段时间之后,执行一次步骤603。例如,间隔600ms、500ms执行一次步骤603。
165.606,若平均用时小于或等于第四阈值,则提高pc的屏幕刷新帧率。
166.例如,可以将pc的屏幕刷新帧率提高至原始值,或者提升一部分,本技术实施例对此不予限定。
167.可选地,若平均用时小于或等于第四阈值,则可以先判断pc的屏幕刷新帧率是否低于原始屏幕刷新帧率,若是,则提高pc的屏幕刷新帧率,若不是,则保持pc的屏幕刷新帧率不变。
168.基于本技术实施例,当连续多帧视频帧从解码至送显的平均用时大于预设值时,表示该多帧视频帧的延迟较大,则此时pc可以对屏幕刷新帧率做降帧处理,即降低屏幕刷新帧率,从而可以避免投屏的延迟过大,提升投屏的实时性和流畅性。
169.图9是本技术实施例提供的一种显示控制的方法的示意性流程图。该方法可以应用于第一电子设备中,如图9所示,该方法可以包括步骤910至步骤940。
170.910,第一电子设备接收第二电子设备发送的视频帧。
171.本技术实施例以第二电子设备向第一电子设备投屏为例进行说明,示例性地,该第一电子设备可以是前文中所述的pc,该第二电子设备可以是前文中所述的手机,在手机向pc投屏时,pc接收手机发送的编码后视频帧。
172.920,第一电子设备对该视频帧进行解码,得到解码后的目标视频帧。
173.应理解,第一电子设备接收的视频帧为编码后的视频帧,可以通过解码器对该视频帧进行解码,以得到解码后的目标视频帧。
174.示例性地,如图2所示,pc端中的wi-fi模块240接收到该编码后的视频流之后,将该编码后的视频流发送至pc的投屏业务的图像接收模块250,该图像接收模块250调用解码器260对该视频流进行解码(例如,调用芯片层的硬件处理器进行解码)。
175.930,第一电子设备将该目标视频帧放入第一缓存队列中。
176.在一些实施例中,第一电子设备直接将该目标视频帧直接放入第一缓存队列中。在另一些实施例中,第一电子设备可以在将目标视频帧放入第一缓存队列之前进行一些判断,决定是否将该目标视频帧放入第一缓存队列中。
177.940,第一电子设备根据第一预设条件确定是否渲染并显示该目标视频帧,其中,第一电子设备对该目标视频帧渲染并显示的时间间隔与第一电子设备的屏幕刷新时间间隔相同。
178.在一些实施例中,在第一电子设备直接将该目标视频帧放入第一缓存队列中时,该第一预设条件可以是该目标视频帧在第一缓存队列中的停留时长,和/或,该第一预设条件可以是该第一缓存队列中缓存的目标视频帧的数量。
179.在另一些实施例中,当第一电子设备根据一些条件确定将该目标视频帧放入第一
缓存队列中时,该第一预设条件可以是该目标视频帧在第一缓存队列中的停留时长,即第一电子设备确定是立即渲染并显示该目标视频帧,还是在缓存一定时长之后渲染并显示该目标视频帧。
180.该步骤中,第一电子设备确定渲染并显示该目标视频帧时,对该目标视频帧渲染并显示的时间间隔与第一电子设备的屏幕刷新时间间隔相同。
181.示例性地,第一电子设备中的显示控制模块将该目标视频帧送至显示模块中渲染并显示的时间间隔与第一电子设备的屏幕刷新时间间隔相同或基本相同。该显示控制模块可以通过调用系统接口将该目标视频帧送至显示模块中显示,则该显示控制模块调用系统接口的时间间隔与第一电子设备的屏幕刷新时间间隔相同或基本相同。
182.示例性地,参见图6,该第一缓存队列中的视频帧每间隔16.7ms将一个视频帧送至显示模块中显示,pc的屏幕刷新时间间隔为16.7ms。
183.基于本技术实施例,第一电子设备可以对解码后的目标视频帧进行主动控制,并根据预设条件确定是否渲染并显示该目标视频帧,当确定渲染并显示该目标视频帧时,该第一电子设备对该目标视频帧渲染并显示的时间间隔与其屏幕刷新时间间隔相同或基本相同,从而可以对该目标视频帧进行精准控制,提升投屏的显示帧率、实时性、清晰度和流畅度。
184.可选地,所述第一电子设备根据第一预设条件确定是否渲染并显示所述目标视频帧,包括:所述第一电子设备确定所述目标视频帧在所述第一缓存队列中停留的第一时长;若所述第一时长大于第一阈值,则将所述目标视频帧丢弃。
185.示例性地,可以记录该目标视频帧在进入第一缓存队列的时刻以及出第一缓存队列的时刻,从而可以确定该目标视频帧在第一缓存队列中停留的第一时长,并确定该第一时长是否大于第一阈值,当该第一时长大于第一阈值时,将该目标视频帧丢弃,例如,该第一阈值可以是18ms、20ms等。
186.基于本技术实施例,当目标视频帧在第一缓存队列中停留的第一时长大于第一阈值时,意味着该目标视频帧在第一缓存队列中停留的时间较长,延迟较大,此时可将该目标视频帧丢弃,从而有利于保证投屏的实时性。
187.可选地,所述方法还包括:若所述第一时长小于或等于所述第一阈值,则所述第一电子设备确定所述第一缓存队列中缓存的视频帧的第一数量;若所述第一数量大于第二阈值,则将所述目标视频帧丢弃;若所述第一数量小于或等于第二阈值,则所述第一电子设备确定渲染并显示所述目标视频帧。
188.示例性地,该第二阈值可以是5帧、2帧、1帧等。
189.当第一缓存队列中缓存的视频帧的第一数量大于第二阈值时,意味着第一缓存队列中缓存的视频帧的数量较多,延迟较大,则可能会造成后续解码的视频帧进入不了该第一缓存队列中,因此,在这种情况下将该目标视频帧丢弃,使得第一缓存队列中的缓存的视频帧的数量在合适的范围之内,避免后续解码的视频帧进入不了该第一缓存队列,从而可以提升投屏的实时性和流畅度。
190.可选地,所述第一电子设备确定渲染并显示所述目标视频帧,包括:所述第一电子设备在第二时长之后渲染并显示所述目标视频帧。
191.应理解,该第二时长也可以为0,例如,该缓存队列中除了该目标视频帧之外,并未
有其他视频帧,则此时可以直接将该目标视频帧送至显示模块中渲染并显示。
192.在一些实施例中,该第二时长可以不为0,例如,该缓存队列中在目标视频帧之前,还存在有其他视频帧,则该目标视频帧将在一段时间之后才能被送至显示模块中渲染并显示。
193.基于本技术实施例,当第一电子设备确定渲染并显示该目标视频帧时,可能是立即渲染并显示该目标视频帧,也可能是在一段时间之后渲染并显示。该技术方案可以主动控制该目标视频帧的渲染和显示,以提升投屏的显示帧率。
194.可选地,在所述第一电子设备将所述目标视频帧放入第一缓存队列中之前,所述方法还包括:所述第一电子设备确定所述目标视频帧在所述第一缓存队列中需要停留的第一时长;若所述第一时长大于第一阈值,则将所述目标视频帧丢弃。
195.示例性地,该第一阈值可以是18ms、20ms等。
196.本技术实施例中,在将目标视频帧放入第一缓存队列之前,可以预先判断其在第一缓存队列中需要停留的第一时长,当该第一时长大于第一阈值,可以将该目标视频帧丢弃。该技术方案可以避免目标视频帧在第一缓存队列中停留的时间较长、延迟较大,从而有利于保证投屏的实时性。
197.可选地,所述方法还包括:若所述第一时长小于或等于第一阈值,则所述第一电子设备确定所述第一缓存队列中缓存的视频帧的第一数量;若所述第一数量大于第二阈值,则将所述目标视频帧丢弃;若所述第一数量小于或等于第二阈值,则将所述目标视频帧放入所述第一缓存队列中。
198.示例性地,该第二阈值可以是5帧、3帧、2帧等。
199.基于本技术实施例,当第一缓存队列的缓存量大于第二阈值时,意味着第一缓存队列中缓存的视频帧的数量较多,则可能会造成后续解码的视频帧进入不了该第一缓存队列中,因此,在这种情况下将该目标视频帧丢弃,使得第一缓存队列中的缓存的视频帧的数量在合适的范围之内,避免后续解码的视频帧进入不了该第一缓存队列,从而可以提升投屏的实时性和流畅度。
200.可选地,所述第一电子设备根据第一预设条件确定是否渲染并显示所述目标视频帧,包括:在所述目标视频帧在第一缓存队列中停留所述第一时长之后,所述第一电子设备渲染并显示所述目标视频帧。
201.应理解,该第一时长也可以为0,例如,该缓存队列中仅有该目标视频帧。
202.基于本技术实施例,当该目标视频帧被放入第一缓存队列之后,可以在第一时长之后被送至第一电子设备的显示模块中渲染和显示。该技术方案可以主动控制该目标视频帧的渲染和显示,以提升投屏的显示帧率。
203.可选地,所述方法还包括:所述第一电子设备确定第三预设数量的目标视频帧从解码至渲染并显示在所述第一电子设备的屏幕上的第一平均用时;若所述第一平均用时大于第三阈值,则降低所述第一电子设备的屏幕刷新帧率。
204.应理解,该第三预设数量可以是30、20等,该第三阈值可以是20ms、18ms等,该第三预设数量的目标视频帧可以是连续的,也可以是间隔的。
205.示例性地,该第一平均用时可以是步骤603、604平均用时,当该平均用时大于第三阈值时,第一电子设备可以降低其屏幕刷新帧率。例如,将该屏幕刷新帧率降低至原来的一
半或三分之二等。
206.基于本技术实施例,当一定数量的目标视频帧从解码至显示在第一电子设备中的平均用时大于第三阈值时,意味着该多帧视频帧的延迟较大,则此时第一电子设备可以对屏幕刷新帧率做降帧处理,即降低屏幕刷新帧率,从而可以避免投屏的延迟过大,提升投屏的实时性和流畅性。
207.可选地,在所述降低所述第一电子设备的屏幕刷新帧率之前,所述方法还包括:所述第一电子设备确定当前的屏幕刷新帧率处于原始屏幕刷新帧率。
208.基于本技术实施例,在第一电子设备降低屏幕刷新帧率之前,可以判断当前的屏幕刷新帧率是处于原始大小的,该技术方案可以避免第一电子设备多次降帧,造成帧率较低的现象。
209.可选地,若第一电子设备的屏幕刷新帧率已经降低过一次,则即使该第一平均用时大于第三阈值,也保持该第一电子设备的屏幕刷新帧率不变。
210.可选地,所述方法还包括:在间隔第四预设数量的目标视频帧之后,所述第一电子设备继续确定所述第三预设数量的目标视频帧从解码至渲染并显示在所述第一电子设备的屏幕上的第二平均用时;若所述第二平均用时小于或等于第四阈值,则提高所述第一电子设备的屏幕刷新帧率。
211.该第一预设数量可以是20帧、15帧等,该第四阈值可以是10ms、15ms等。
212.在另一些实施例中,还可以在间隔预设时间之后,该第一电子设备继续确定第三预设数量的目标视频帧从解码至渲染并显示在第一电子设备的屏幕上的第二平均用时。例如,该预设时间可以是600ms,500ms等。
213.本技术实施例中,可以将第一电子设备的屏幕刷新帧率提高至原始值,或者提升一部分,本技术实施例对此不予限定。
214.基于本技术实施例,在间隔预设数量的目标视频帧之后,第一电子设备继续确定第三预设数量的目标视频帧从解码至渲染并显示在所述第一电子设备的屏幕上的平均用时,当该平均用时小于第四阈值时,意味着该多帧目标视频帧的延迟较小,则此时第一电子设备可以提高屏幕刷新帧率,以显示更多的视频帧,从而可以提升投屏画面的清晰度。
215.可选地,在所述提高所述第一电子设备的屏幕刷新帧率之前,所述方法还包括:所述第一电子设备确定当前的屏幕刷新帧率小于所述原始屏幕刷新帧率。
216.基于本技术实施例,在第一电子设备提高屏幕帧率之前需确定当前的屏幕刷新帧率小于该原始屏幕刷新帧率。
217.本技术实施例还提供一种电子设备,包括一个或多个处理器;一个或多个存储器;该一个或多个存储器存储有一个或多个计算机程序,该一个或多个计算机程序包括指令,当该指令被一个或多个处理器执行时,使得如前文中任一种可能的实现方式中所述的显示控制的方法被执行。
218.本技术实施例还提供一种芯片,所述芯片包括处理器和通信接口,所述通信接口用于接收信号,并将所述信号传输至所述处理器,所述处理器处理所述信号,使得如前文中任一种可能的实现方式中所述的显示控制的方法被执行。
219.本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现
上述实施例中的显示控制的方法。
220.本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的显示控制的方法。
221.另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的显示控制的方法。
222.其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
223.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
224.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
225.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
226.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
227.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
228.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
229.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1