控制屏幕刷新率动态变化的方法及电子设备与流程

文档序号:30491828发布日期:2022-06-22 02:08阅读:568来源:国知局
控制屏幕刷新率动态变化的方法及电子设备与流程

1.本技术涉及显示技术领域,尤其涉及一种控制屏幕刷新率动态变化的方法及电子设备。


背景技术:

2.随着显示屏技术的不断发展,越来越多能够支持高刷新率显示的显示屏应运而生,在运行高帧率应用程序或在滑动操作过程中,通过将显示屏设置为高刷新率模式能够提高画面的流畅度。
3.然而,由于人眼对运动的物体比较敏感,因此在各种动态显示场景中需要较高的屏幕刷新率。当电子设备感应到出现动态显示场景时,可以将当前的屏幕刷新率切换到较高的屏幕刷新率,以满足该动态显示场景的高帧率显示需求。此时,如果屏幕刷新率切换时的延时较长,那么此时屏幕画面会发生错位的撕裂现象,用户也会感受到画面卡顿。


技术实现要素:

4.本技术提供一种控制屏幕刷新率动态变化的方法及电子设备,解决了现有技术中屏幕刷新率动态变化时由于屏幕刷新率切换时的延时较长,导致屏幕画面发生撕裂现象及画面卡顿的问题。
5.为达到上述目的,本技术采用如下技术方案:
6.第一方面,本技术提供一种控制屏幕刷新率动态变化的方法,应用于电子设备,所述电子设备包括显示屏显示驱动集成芯片ddic,所述方法包括:
7.响应于用户的第一操作,识别当前场景类别变化为第一场景类别,所述第一场景类别为静态显示场景或动态显示场景;
8.根据场景识别结果,生成屏幕刷新率切换指令,所述屏幕刷新率切换指令用于指示所述显示屏从当前的第一屏幕刷新率切换到第二屏幕刷新率,所述第二屏幕刷新率为所述第一场景类别对应的屏幕刷新率;
9.在当前帧时段内下发所述屏幕刷新率切换指令到所述ddic,以指示所述ddic切换到所述第二屏幕刷新率;
10.在所述ddic切换到所述第二屏幕刷新率之后,将图像送显周期从第一vsync周期切换为第二vsync周期,所述第一vsync周期对应第一屏幕刷新率,所述第二vsync周期对应所述第二屏幕刷新率。
11.通过本技术提供的方案,在刷新率动态变化场景中,可以不用等待当前vsync周期结束,而是在当前第i帧时段内立即下发(例如通过新增的刷新率设置接口下发)刷新率切换指令。ddic在接收到刷新率切换指令之后,驱动显示屏(例如oled)切换屏幕刷新率,然后ddic返回新的te信号,surfaceflinger在接收到新的te信号之后,启用与切换后的屏幕刷新率对应的新vsync周期。本技术实施例可以通过增加新的通道提升屏幕刷新率的切换速度,例如屏幕刷新率的每一次切换可以保证在1帧之内完成,降低延时,一定程度上避免了
画面卡顿现象。
12.在一些可能的实现方式中,所述电子设备还包括刷新率设置接口;所述方法还包括:在所述当前帧时段内,通过调用所述刷新率设置接口下发所述屏幕刷新率切换指令。
13.在一些可能的实现方式中,所述方法还包括:所述ddic根据所述屏幕刷新率切换指令,控制所述显示屏采用所述第二屏幕刷新率进行刷新显示。
14.在一些可能的实现方式中,在所述ddic切换到所述第二屏幕刷新率之后,所述方法还包括:所述ddic生成te信号,所述te信号用于指示图像送显周期已切换为所述第二vsync周期。
15.在一些可能的实现方式中,所述电子设备还包括surfaceflinger;其中,在所述ddic生成te信号之后,所述方法还包括:所述ddic向所述surfaceflinger上报所述te信号。
16.在一些可能的实现方式中,所述将图像送显周期从第一vsync周期切换为第二vsync周期,包括:所述surfaceflinger将图像送显周期从所述第一vsync周期切换为所述第二vsync周期。
17.在一些可能的实现方式中,所述surfaceflinger将图像送显周期从第一vsync周期切换为第二vsync周期,包括:所述surfaceflinger根据所述te信号,将所述图像送显周期从所述第一vsync周期切换为所述第二vsync周期。
18.在一些可能的实现方式中,在所述将图像送显周期从第一vsync周期切换为第二vsync周期之后,所述方法还包括:所述surfaceflinger按照所述第二vsync周期送显图像。
19.在一些可能的实现方式中,在所述根据场景识别结果,生成屏幕刷新率切换指令之前,所述方法还包括:所述surfaceflinger按照所述第一vsync周期送显图像。
20.在一些可能的实现方式中,所述电子设备还包括驱动显示和硬件合成器hwc;其中,所述ddic向所述surfaceflinger上报所述te信号,包括:所述ddic向所述驱动显示上报所述te信号;所述驱动显示将所述te信号上报给所述hwc;所述hwc将所述te信号上报给所述surfaceflinger。
21.在一些可能的实现方式中,电子设备还包括刷新率决策模块;所述在所述当前帧时段内,通过调用所述刷新率设置接口下发所述屏幕刷新率切换指令到所述ddic,包括:所述刷新率决策模块在所述当前帧时段内,调用所述刷新率设置接口,将所述屏幕刷新率切换指令发送给所述ddic。
22.在一些可能的实现方式中,上述刷新率决策模块在所述当前帧时段内,调用所述刷新率设置接口,将所述屏幕刷新率切换指令发送给所述ddic,包括:所述刷新率决策模块在所述当前帧时段内,通过调用所述刷新率设置接口,将所述屏幕刷新率切换指令发送给显示驱动;所述显示驱动将所述屏幕刷新率切换指令发送给所述ddic。
23.在一些可能的实现方式中,所述根据场景识别结果,生成屏幕刷新率切换指令,包括:所述刷新率决策模块根据所述场景识别结果,生成所述屏幕刷新率切换指令。
24.在一些可能的实现方式中,所述根据场景识别结果,生成屏幕刷新率切换指令,包括:当所述场景识别结果表示当前场景变化为静态显示场景时,生成所述屏幕刷新率切换指令,其中切换后的第二屏幕刷新率低于当前的第一屏幕刷新率;或者,当所述场景识别结果表示当前场景变化为动态显示场景时,生成所述屏幕刷新率切换指令,其中切换后的第二屏幕刷新率高于当前的第一屏幕刷新率。
25.在一些可能的实现方式中,方法还包括:根据所述第二屏幕刷新率,确定所述第二vsync周期。
26.在一些可能的实现方式中,上述根据所述第二屏幕刷新率,确定所述第二vsync周期,包括:当所述第二屏幕刷新率为r赫兹时,确定所述第二vsync周期为1000/r毫秒。
27.在一些可能的实现方式中,第二屏幕刷新率为以下中的任一项:1hz、10hz、30hz、40hz、60hz、90hz、120hz。
28.在一些可能的实现方式中,显示屏为有机发光二极体oled显示屏。
29.第二方面,本技术提供一种控制屏幕刷新率动态变化的装置,该装置包括用于执行上述第一方面中的方法的单元。该装置可对应于执行上述第一方面中描述的方法,该装置中的单元的相关描述请参照上述第一方面的描述,为了简洁,在此不再赘述。
30.其中,上述第一方面描述的方法可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,处理模块或单元、显示模块或单元等。
31.第三方面,本技术提供一种电子设备,所述电子设备包括处理器,处理器与存储器耦合,存储器用于存储计算机程序或指令,处理器用于执行存储器存储的计算机程序或指令,使得第一方面中的方法被执行。
32.例如,处理器用于执行存储器存储的计算机程序或指令,使得该装置执行第一方面中的方法。
33.可选地,处理器为显示驱动集成芯片ddic,该ddic应用于显示屏,该ddic用于执行所述存储器中存储的计算机程序或指令,以执行第一方面中的方法。
34.第四方面,本技术提供一种计算机可读存储介质,其上存储有用于实现第一方面中的方法的计算机程序(也可称为指令或代码)。
35.例如,该计算机程序被计算机执行时,使得该计算机可以执行第一方面中的方法。
36.第五方面,本技术提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。
37.可选地,所述芯片还包括存储器,存储器与处理器通过电路或电线连接。
38.第六方面,本技术提供一种芯片系统,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。
39.可选地,所述芯片系统还包括存储器,存储器与处理器通过电路或电线连接。
40.第七方面,本技术提供一种计算机程序产品,所述计算机程序产品包括计算机程序(也可称为指令或代码),所述计算机程序被计算机执行时使得所述计算机实现第一方面中的方法。
41.可以理解的是,上述第二方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
42.图1为本技术实施例提供的一种送显图像的流程示意图;
43.图2为本技术实施例提供的一种电子设备的结构示意图;
44.图3为本技术实施例提供的控制屏幕刷新率动态变化的方法应用的软件架构示意
图;
45.图4为本技术实施例提供的控制屏幕刷新率动态变化的方法应用的改进后的软件架构示意图;
46.图5为本技术实施例提供的一种控制屏幕刷新率动态变化的方法的流程示意图;
47.图6为本技术实施例提供的改进后的一种控制屏幕刷新率动态变化的方法的流程示意图;
48.图7为本技术实施例提供的改进后的控制屏幕刷新率动态变化的方法与安卓原生流程方法相比的效果示意图。
具体实施方式
49.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
50.当本技术提及术语“第一”或者“第二”等序数词时,除非根据上下文其确实表达顺序之意,否则应当理解为仅仅是起区分之用。术语“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
51.除非另有说明,本文中“/”一般表示前后关联对象是一种“或”的关系,例如,a/b可以表示a或b。术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,在本技术的描述中,“多个”是指两个或两个以上。
52.本技术以下实施例中的术语“用户界面(user interface,ui)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面是通过java、可扩展标记语言(extensible markup language,xml)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别的内容。用户界面常用的表现形式是图形用户界面(graphic user interface,gui),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、widget等可视的界面元素。
53.在介绍本技术提供的控制屏幕刷新率动态变化的方法和电子设备的实施例之前,以下对本技术实施例的部分用语进行解释说明,以便于本领域技术人员理解。
54.1)帧率(frame rate),也称为帧速率,单位为每秒帧个数,记为fps。帧率指显卡(即gpu)在单位秒钟内所生成的图片帧数,也就是说每秒钟内显卡(即gpu)能够渲染并送显的画面数量。例如,帧率可以为30fps或者60fps等。
55.多帧静止的图像快速连续地显示便形成了动态画面,视频的帧速率越大,画面的连贯性就越好,高帧率可以得到更流畅,更逼真的画面,每秒钟帧数越多,所显示的动作就会越流畅,从而也使画面质感越好。
56.2)屏幕刷新率,是屏幕在每秒钟能刷新画面的次数,单位是赫兹(hz)。例如,60hz的屏幕意味着一个屏幕在1秒内可以完成60次刷新显示。同样,120hz的屏幕意味着一个屏幕在1秒内可以完成120次刷新显示,所以刷新率越高,屏幕所能表现出的帧数也就越多。相应地,画面延迟也就越低,流畅度也就越高。
57.3)在用户通过电子设备玩游戏或者看视频等动态显示场景(也称为动效显示场景)的过程中,当显示器的刷新率和帧率不同步时,例如在每秒钟帧数较多(例如90fps或120fps),而刷新率较低(例如30hz)的情况下,会出现画面卡顿,甚至出现屏幕画面错位的撕裂效应(tearing effect,te)。例如这种情况最常发生在每秒60帧数或更高帧率的动态显示场景(例如游戏)。
58.4)垂直同步(记为vsync),用于同步显示器的刷新率和帧率,避免出现屏幕撕裂效应。
59.5)显示屏变频显示方式,指电子设备的屏幕可以支持刷新率在某一范围内动态切换,例如在1hz至120hz之间切换,为电子设备系统中的各个动态显示场景的过程中支持刷新率动态变化提供了基础物理条件,可以实现更加极致的省电效果。
60.下面结合图1说明传统的图像绘制及显示过程。如图1所示,在android(安卓)系统中,图像绘制及显示过程需要经过软件侧、显示驱动集成芯片(display driver integrated circuit,ddic)以及显示屏协同完成。软件侧首先通过应用程序(application,app)进行页面刷新,然后通过surfaceflinger对绘制得到的图层进行图层合成,得到图像数据,然后图像数据经过hwc和显示驱动,进而通过移动行业处理器接口(mobile industry processor interface,mipi)将图像数据送显(写入)ddic。ddic将软件侧送显的图像数据存储在缓存器(buffer)中,并通过扫描(读取)缓存器中的图像数据,控制显示屏(例如oled或者lcd)完成刷新率切换,显示屏进行图像刷新显示(display)。在高刷新率显示场景下,软件侧高频生成图像数据,相应地,显示屏侧根据图像数据进行高频图像刷新,从而提高画面的流畅度。
61.为了避免出现屏幕画面出现撕裂效应,ddic在完成刷新率切换之后,可以按照vsync周期输出te信号,te信号用于指示软件侧发送图像数据,软件侧在监听到te信号上升沿或te信号高电平,且准备好下一帧图像数据时,即向ddic发送下一帧图像数据。
62.也就是说,app执行的图层绘制渲染和surfaceflinger执行的图层合成均是通过vsync周期来控制的,vsync周期决定了用户在屏幕上进行点击或滑动操作后,屏幕所呈现出的画面的变化速度,app和surfaceflinger都必须在接收到te信号后才执行图层绘制操作。
63.由于人眼对运动的物体比较敏感,因此在各种动态显示场景中需要较高的屏幕刷新率。当电子设备感应到出现动态显示场景时,可以将当前的屏幕刷新率切换到较高的屏幕刷新率,以满足该动态显示场景的高帧率显示需求。此时,如果屏幕刷新率切换时的延时较长,那么此时屏幕画面仍然会发生错位的撕裂现象,用户也会感受到画面卡顿。
64.基于此,本技术实施例提供一种控制屏幕刷新率动态变化的方法及电子设备,通过在手机系统底层的改进,以提高用户体验。下面结合具体实施例,先对本技术提供的电子设备进行示例性的说明。
65.参见图2,为本技术实施例提供的一种电子设备的结构示意图。电子设备100可以
包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,触摸传感器180k,环境光传感器180l等。
66.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
67.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器110用于执行本技术实施例中的环境光的检测方法。
68.其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
69.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
70.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
71.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用有机发光二极管(organic light-emitting diode,oled)。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的正整数。
72.其中,电子设备100中可以包括刷新率决策模块,该刷新率决策模块用于实现刷新率动态变化的功能。
73.电子设备可以是搭载ios、android、microsoft或者其它操作系统的便携式终端设备,例如手机、平板电脑、可穿戴设备等,还可以是具有触敏表面或触控面板的膝上型计算机(laptop)、具有触敏表面或触控面板的台式计算机等非便携式终端设备。电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的android系统为例,示例性说明电子设备100的软件结构。
74.图3是本技术实施例的电子设备100的一种软件结构框图。
75.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过
软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层(applications)、应用程序框架层(application framework)、硬件抽象层(hardware abstract layer,hal)以及内核层(kernel)。
76.应用程序层可以包括一系列应用程序包。其中,应用程序可以简称为应用。如图3所示,应用程序层可以包括电子书应用,视频应用,导航应用,游戏应用,滑动动效应用等,本技术实施例对此不做任何限制。
77.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
78.如图3所示,应用程序框架层可以包括刷新率决策模块和surfaceflinger模块。其中,刷新率决策模块可以向surfaceflinger模块通知最新的刷新率,通过surfaceflinger模块将刷新率下发给显示驱动,然后通过显示驱动下发给ddic,然后ddic控制显示器以该刷新率进行图像刷新显示。
79.本技术实施例中,应用程序框架层还可以包括情景感知模块和刷新率决策模块等。其中,情境感知模块,常驻运行或以低功耗形式运行,具有感知外部事实或者环境的能力。情境感知模块可以通过应用程序接口(application programming interface,api)从应用程序层的应用程序或硬件抽象层或内核层来检测相关事件并获取事件的状态,比如检测蓝牙连接、网络连接等。
80.在本技术实施例中,情境感知模块主要作用是监听是否出现动效事件,即根据用户触发的点击操作或者滑动操作,判断当前应用场景是否为动态显示场景,情境感知模块通知业务逻辑处理模块出现动态显示场景。业务逻辑处理模块(如:计算引擎)具有业务逻辑处理能力,可以用于根据动态显示场景的类型,确定适合于该动态显示场景的屏幕刷新率。进一步地,业务逻辑处理模块将当前的屏幕刷新率切换到适合该动态显示场景的屏幕刷新率,实现屏幕分辨率动态变化。
81.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
82.如图3所示,内核层是硬件和软件之间的层。内核层至少包含显示驱动。具体到本技术方案,涉及的硬件可以包括显示驱动集成芯片(display driver integrated circuit,ddic)以及显示屏(例如oled或者lcd)。显示驱动用于驱动ddic完成显示的处理和实现。
83.硬件抽象层可以包括硬件合成模块(hwcomposer,hwc),hwc具有利用硬件完成图像数据组合并显示的功能或能力,具体图像显示可以由多个类如surfaceflinger、hwc、显示屏(panel)等协同完成。
84.hwc是android系统中进行窗口/图层(layer)合成并显示的hal层模块,其实现是特定于设备的,而且通常由显示设备制造商(oem)完成,为surfaceflinger服务提供硬件支持。
85.其中,surfaceflinger提供所有软图层信息给hwc,并询问hwc处理方式。进一步地,hwc根据硬件性能决定是使用硬件图层合成器还是gpu合成;例如,hwc会为每个图层标注合成方式,是通过gpu还是通过hwc合成。一方面,surfaceflinger对需要gpu合成的软图
层进行处理,并将结果递交给hwc做显示;另一方面,需要硬件图层合成器合成的软图层由hwc自行处理。
86.surfaceflinger可以使用三维图形处理库(例如opengl es)合成图层,这需要占用并消耗gpu资源。大多数gpu都没有针对图层合成进行优化,当surfaceflinger通过gpu合成图层时,应用程序无法使用gpu进行自己的渲染。而hwc通过硬件设备进行图层合成,可以减轻gpu的合成压力。
87.但是并非所有情况下hwc都比gpu更高效,例如:当屏幕上没有任何变化时,尤其是叠加层有透明像素并且需要进行图层透明像素混合时。在这种情况下,hwc可以要求部分或者全部叠加层都进行gpu合成,然后hwc持有合成的结果缓存器(buffer),如果surfaceflinger要求合成相同的叠加图层列表,hwc可以直接显示之前合成的结果buffer,这有助于提高待机设备的电池寿命。
88.hwc也提供了vsync事件,用于管理渲染和图层合成时机。
89.在相关技术(如图3所示)中,屏幕刷新率的切换过程包括以下步骤:刷新率决策模块先通知surfaceflinger刷新率切换指令,然后通过surfaceflinger下发该刷新率切换指令到达hwc再到达显示驱动,显示驱动在收到刷新率切换指令后,通知ddic切换到目标刷新率,ddic驱动显示屏(例如oled或者lcd)完成刷新率切换,然后ddic返回新的te信号给显示驱动,显示驱动上报新的te信号,然后surfaceflinger接收到新的te信号,并通知app切换到新的刷新率,这样app和surfaceflinger都必须在接收到te信号后才执行图层绘制操作。
90.图4是本技术实施例提供的电子设备100的改进后的软件结构框图,并示出了本技术实施例改进后的系统层级交互的示意图。改进后的方案可以提高屏幕刷新率动态变化的速率,避免出现上述动态显示场景出现撕裂效应。
91.本技术实施例在系统底层做了改进。如图4所示,本技术方案在图3所示软件架构基础上增加新的通路,增加的通路中采用显示刷新率设置接口(displaysetfps)来实现刷新率切换指令的下发。具体地,刷新率决策模块可以直接通过displaysetfps模块将刷新率切换指令下发给显示驱动。与图3所示的软件架构相比,图4中刷新率切换指令不再通过surfaceflinger下发刷新率切换指令。因此可以不用等待当前vsync周期(记为第一vsync周期,例如8ms)结束,而是在当前第i帧时段内立即下发刷新率切换指令到显示驱动(或者hwc)。然后,显示驱动在第i帧时段内收到刷新率切换指令后,通知ddic切换到目标刷新率,ddic驱动显示屏(例如oled或者lcd)完成刷新率切换。在硬件底层ddic的刷新率切换成功之后,上层surfaceflinger的帧率需要跟随一起切换,因此ddic可以上报te信号给上层,以指示上层切换到新的帧率,即按照新的vsync周期送显图像。ddic返回新的te信号(对应第二vsync周期,例如11ms)给显示驱动;然后显示驱动上报新的te信号。surfaceflinger在接收到新的te信号之后,将vsync周期设置为第二vsync周期。这样,surfaceflinger后续可以按照第二vsync周期下发刷新率切换指令。
92.本技术实施例可以通过增加新的通道提升屏幕刷新率的切换速度,快速完成屏幕刷新率切换,降低延时,一定程度上避免了画面卡顿现象。例如,屏幕刷新率的每一次切换可以保证在1帧之内完成,例如耗时8ms。
93.示例性地,在本技术实施例中,电子设备系统支持的动态显示场景可以包括:应用启动时画面动效显示,应用退出时画面动效显示、返回上级菜单时画面动效显示,和/或在
应用列表上滑动操作时画面动效显示。可以理解,动态显示场景还可以包括其他任意可能的画面动效显示的场景,具体可以根据实际使用需求确定,本技术实施例不作限定。
94.示例性地,在本技术实施例中,刷新率动态变化范围可以包括以下刷新率档位:120hz,90hz,60hz,40hz,30hz,10hz,1hz。
95.以120hz为例,120hz指显示屏每秒刷新120次。对应地,每一次刷新所需时长约为8毫秒(ms)。可以理解,每一帧的显示时长(也称为帧长)可以约为8ms。
96.以90hz为例,90hz指显示屏每秒刷新90次。对应地,每一次刷新所需时长约为11ms。可以理解,每一帧的帧长可以约为11ms。
97.以1hz为例,1hz指显示屏每秒刷新1次。对应地,每一次刷新所需时长为1秒(s)。可以理解,每一帧的帧长可以约为1s。
98.可以理解,屏幕刷新率越大,画面的流畅度越高,这适用于动态显示场景;相反,屏幕刷新率越小,画面的流畅度越低,这适用于静态显示场景。
99.图5示出了安卓(android)系统原生的刷新率切换流程的模块交互示意图。如图5所示,该流程涉及的模块可以包括情景感知模块、刷新率决策模块、surfaceflinger、显示驱动、ddic和显示屏。可以理解,这里所涉及的模块是实现该流程的主要模块,在实际实现时还会包括其他模块,具体可以根据实际使用需求确定,本技术实施例不作限定。如图5所示,该流程可以包括步骤a1至a14。
100.步骤a1,在电子设备接收到用户操作(例如滑动操作)时,情景感知模块可以响应于用户操作,识别显示场景发生变化。
101.可选地,场景识别结果可以包括静态显示场景和动态显示场景。当然,还可以包括划分更详细的场景识别结果,例如静态显示场景,偏静态显示场景,偏动态显示场景以及动态显示场景。
102.步骤a2,情景感知模块将场景识别结果发送给刷新率决策模块。
103.步骤a3,刷新率决策模块根据场景识别结果,确定与场景识别结果对应的刷新率。
104.为了便于说明,将当前的刷新率称为第一刷新率,将与场景识别结果对应的刷新率称为第二刷新率。
105.其中,静态显示场景对应的屏幕刷新率低于动态显示场景对应的屏幕刷新率。
106.示例性地,静态显示场景对应的屏幕刷新率可以为1hz或10hz,动态显示场景对应的屏幕刷新率可以为60hz或90hz或120hz。
107.再示例性地,静态显示场景对应的屏幕刷新率可以为1hz或10hz,偏静态显示场景对应的屏幕刷新率可以为30hz或40hz,偏动态显示场景对应的屏幕刷新率可以为60hz,动态显示场景对应的屏幕刷新率可以为90hz或120hz。
108.步骤a4,刷新率决策模块向surfaceflinger下发刷新率切换指令,该刷新率切换指令用于指示从第一刷新率切换到第二刷新率。
109.刷新率决策模块在接收到用户对电子设备的操作(例如点击事件)后,可以调用surfaceflinger的刷新率设置接口setactivemode。
110.步骤a5,surfaceflinger在第i帧时段内接收到该刷新率切换指令。
111.示例性地,假设当前的第一刷新率为120hz,对应的每一帧时长可以约为8ms。相应地,vsync周期可以设置为8ms。因此,这里第i帧时段可以为8ms。
112.步骤a6,surfaceflinger按照当前的第一vsync周期,在第i帧结束后下发刷新率切换指令。
113.示例性地,第一vsync周期可以为8ms。
114.其中,刷新率切换指令用于指示从当前的第一刷新率切换到第二刷新率。
115.步骤a7,显示驱动在接收到刷新率切换指令之后,将刷新率切换指令下发给ddic。
116.其中,surfaceflinger下发的刷新率切换指令先到达hwc,然后再到达显示驱动,这里为了便于说明,未示出hwc模块。
117.步骤a8,ddic按照刷新率切换指令,从第一刷新率切换为第二刷新率。
118.步骤a9,ddic控制显示屏以第二刷新率进行刷新显示。
119.其中,ddic控制显示屏以90hz的刷新率进行刷新显示,即每秒刷新90次。
120.步骤a10,ddic按照当前的第一vsync周期,在第i+1帧时段结束后上报新的te信号。
121.其中,第一vsync周期为8ms,第i+1帧时段也为8ms。
122.可以理解,为了避免出现屏幕画面出现撕裂效应,ddic可以按照vsync周期输出te信号,te信号用于指示surfaceflinger发送图像数据(送显),surfaceflinger在监听到te信号上升沿或te信号高电平,且准备好下一帧图像数据时,即向ddic发送下一帧图像数据。
123.也就是说,surfaceflinger执行的图层合成均是通过vsync周期来控制的,vsync周期决定了用户在屏幕上进行点击或滑动操作后,屏幕所呈现出的画面的变化速度,surfaceflinger都必须在接收到te信号后才执行送显。
124.需要说明的是,新的te信号先到达显示驱动,然后再到达hwc,然后再到达surfaceflinger。
125.步骤a11,surfaceflinger将vsync周期设置为第二vsync周期,该第二vsync周期对应于第二刷新率。
126.其中,假设第二刷新率为90hz,对应地每一帧时长可以约为11ms。相应地,第二vsync周期可以设置为11ms。
127.步骤a12,surfaceflinger按照第二vsync周期下发刷新率切换指令。
128.步骤a13,显示驱动在接收到该刷新率切换指令之后,将该刷新率切换指令下发给ddic。
129.步骤a14,ddic控制显示屏切换到第i+2帧进行显示。
130.通过图5可知,在每一次刷新率动态变化时,surfaceflinger在接收到刷新率切换指令之后,surfaceflinger仍然先按照当前的第一vsync周期下发刷新率切换指令,例如需要等待约8ms后下发刷新率切换指令,并且ddic也仍然按照当前的第一vsync周期上报te信号,例如需要等待约8ms后上报新的te信号,这样每一次刷新率切换过程可能需要在2帧之内才能完成,耗时约16ms。
131.图6示出了本技术实施例提供的刷新率切换流程的模块交互示意图。如图6所示,该流程涉及的模块可以包括情景感知模块、刷新率决策模块、surfaceflinger、刷新率设置接口、显示驱动、ddic和显示屏。与图5安卓原生流程相比,图6增加了刷新率设置接口。
132.可以理解,这里所涉及的模块是实现该流程的主要模块,在实际实现时还会包括其他模块,具体可以根据实际使用需求确定,本技术实施例不作限定。下面描述在检测到场
景发生变化后如何通过新增的通路触发vsync周期更新、帧率切换以及刷新率切换。如图6所示,该流程可以包括步骤s1至s13。
133.步骤s1,在电子设备接收到用户操作(例如滑动操作)时,情景感知模块可以响应于用户操作,识别显示场景发生变化。
134.可选地,场景识别结果可以包括静态显示场景和动态显示场景。当然,还可以包括划分更详细的场景识别结果,例如静态显示场景,偏静态显示场景,偏动态显示场景以及动态显示场景。
135.步骤s2,情景感知模块将场景识别结果发送给刷新率决策模块。
136.步骤s3,刷新率决策模块根据场景识别结果,确定与场景识别结果对应的刷新率。
137.为了便于说明,将当前的刷新率称为第一刷新率,将与场景识别结果对应的刷新率称为第二刷新率。
138.其中,静态显示场景对应的屏幕刷新率低于动态显示场景对应的屏幕刷新率。
139.示例性地,静态显示场景对应的屏幕刷新率可以为1hz或10hz,动态显示场景对应的屏幕刷新率可以为60hz或90hz或120hz。
140.再示例性地,静态显示场景对应的屏幕刷新率可以为1hz或10hz,偏静态显示场景对应的屏幕刷新率可以为30hz或40hz,偏动态显示场景对应的屏幕刷新率可以为60hz,动态显示场景对应的屏幕刷新率可以为90hz或120hz。
141.步骤s4,刷新率决策模块调用刷新率设置接口(displaysetfps),在当前第i帧时段内立即下发刷新率切换指令,该刷新率切换指令用于指示从第一刷新率切换到第二刷新率。
142.刷新率决策模块在接收到用户对电子设备的操作(例如点击事件或滑动事件)后,调用新增的刷新率设置接口下发刷新率切换指令。
143.步骤s5,刷新率设置接口在第i帧时段内接收到该刷新率切换指令,并在第i帧时段内立即下发刷新率切换指令。
144.由于本技术方案在感应到场景发生变化需要动态切换刷新率时,立即下发刷新率切换指令,这样无需按照当前的第一vsync周期,在第i帧结束后下发刷新率切换指令。示例性地,假设当前的第一刷新率为120hz,对应的每一帧时长可以约为8ms。相应地,第一vsync周期可以设置为8ms。对应的帧率为120fps。因此,第i帧时段可以为8ms。
145.步骤s6,显示驱动在接收到刷新率切换指令之后,将刷新率切换指令下发给ddic。
146.其中,刷新率切换指令先到达hwc,然后再到达显示驱动,这里为了便于说明,未示出hwc模块。
147.步骤s7,ddic根据刷新率切换指令,从第一刷新率切换第二刷新率。
148.步骤s8,ddic控制显示屏以第二刷新率进行刷新显示。
149.示例性地,第二刷新率可以为90hz。
150.步骤s9,ddic上报新的te信号。
151.其中,新的te信号对应第二vsync周期。
152.需要说明的是,新的te信号先到达显示驱动,然后再到达hwc,然后再到达刷新率设置接口,然后再到达surfaceflinger。
153.步骤s10,surfaceflinger根据接收到的te信号,将vsync周期设置为与第二刷新
率对应的第二vsync周期。
154.其中,假设第二刷新率为90hz,对应地每一帧时长可以约为11ms。相应地,第二vsync周期可以设置为11ms,对应的帧率为90fps。这样,surfaceflinger从120fps的帧率切换为90fps的帧率。
155.步骤s11,surfaceflinger按照第二vsync周期送显图像(第i+1帧图像)。
156.步骤s12,显示驱动在接收到该第i+1帧图像之后,将该第i+1帧图像下发给ddic。
157.步骤s13,ddic控制显示屏显示第i+1帧图像。
158.以上通过图5和图6分析了本技术实施例提供的控制屏幕刷新率动态变化的方法在实现时模块交互流程。下面结合图7从帧的角度说明本技术方案相比于相关技术方案的对比图示。
159.图7中的(a)示出了安卓(android)系统原生的刷新率切换示意图。如图7中的(a)所示,假设当前屏幕刷新率为120hz,当前帧记为第i帧,则第i帧的帧长约为8ms。在第i帧时段内,若检测到当前显示场景有变化,需要动态降低刷新率,则刷新率决策模块下发刷新率切换指令给surfaceflinger,例如刷新率切换指令用于指示将屏幕刷新率从120hz切换为90hz。
160.surfaceflinger此时采用的vsync周期为8ms,即surfaceflinger会按照8ms的vsync周期下发刷新率切换指令。在此情况下,如果当i帧时段内有送图,那么需要等待当第i帧结束,第i+1帧开始时,才会下发刷新率切换指令。这样surfaceflinger需要等待约8ms(实际实现时,等待时长可能是1ms至8ms中的任一项,这里以8ms为例)后下发刷新率切换指令到显示驱动。然后,显示驱动在收到刷新率切换指令后,通知ddic驱动显示屏(例如oled或者lcd)切换屏幕刷新率。
161.需要说明的是,ddic也会按照8ms的vsync周期上报te信号。当第i+1帧结束,第i+2帧开始时,ddic返回新的te信号给显示驱动,显示驱动上报新的te信号到surfaceflinger,即需要等待约8ms后上报新的te信号。surfaceflinger在接收到显示驱动上报新的te信号之后,同步开启新的vsync周期(即上述第二vsync周期),第二vsync周期对应第二刷新率90hz,因此第二vsync周期为11ms。
162.这样,从第i+2帧开始,surfaceflinger后续会按照11ms的vsync周期下发刷新率切换指令,相应地,ddic可以控制显示屏以90hz的刷新率进行图像刷新显示。
163.通过图7中的(a)可知,在每一次刷新率动态变化时,surfaceflinger在接收到刷新率切换指令之后,surfaceflinger仍然会先按照当前的第一vsync周期下发刷新率切换指令,例如需要等待约8ms后下发刷新率切换指令,并且ddic也仍然按照当前的第一vsync周期上报te信号,例如需要等待约8ms后上报新的te信号,然后在surfaceflinger接收到新的te信号之后才会设置开启新的vsync周期。这样每一次刷新率切换过程可能需要在2帧之内才能完成,耗时约16ms。
164.再来看图7中的(b),图7中的(b)示出了本技术实施例系统改进后的刷新率切换示意图。如图7中的(b)所示,仍然假设当前屏幕刷新率为120hz,当前帧记为第i帧,则第i帧的帧长约为8ms。在第i帧时段内,若检测到当前显示场景有变化,需要动态降低刷新率,则刷新率决策模块下发刷新率切换指令给surfaceflinger,例如刷新率切换指令用于指示将屏幕刷新率从120hz切换为90hz。
165.surfaceflinger此时采用的vsync周期为8ms,即surfaceflinger会按照8ms的vsync周期下发刷新率切换指令。为了快速切换屏幕刷新率,因此可以在当前的第i帧时段内直接下发刷新率切换指令到显示驱动。然后,当第i帧结束,第i+1帧开始时,ddic返回新的te信号给显示驱动,显示驱动上报新的te信号到surfaceflinger。surfaceflinger在接收到显示驱动上报新的te信号之后,同步开启新的vsync周期(即上述第二vsync周期),第二vsync周期对应第二刷新率90hz,因此第二vsync周期为11ms。
166.这样,从第i+1帧开始,surfaceflinger后续会按照11ms的vsync周期下发刷新率切换指令,相应地,ddic可以控制显示屏以90hz的刷新率进行图像刷新显示。
167.通过图7中的(b)可知,在每一次刷新率动态变化时,在当前的第i帧时段内通过调用本技术方案提供的刷新率设置接口,直接下发刷新率切换指令,ddic根据刷新率切换指令控制显示屏切换屏幕刷新率,然后上报新的te信号,然后在surfaceflinger接收到新的te信号之后会强制设置开启新的vsync周期,确保后续vsync周期稳定。这样每一次刷新率切换过程可能需要在1帧之内才能完成,耗时约8ms。
168.在本技术实施例中,通过构建新的屏幕刷新率切换通路,不用等待vsync同步周期结束,可立即触发刷新率切换指令到hwc以及显示驱动,这样可以在1帧的帧长时间内完成刷新率切换,从而可以减少丢帧而造成的画面卡顿。
169.需要说明的是,以上以120hz刷新率切换到90hz刷新率为例进行说明,可以理解,在实际实现时,可以根据实际使用情况,采用本技术实施例提供的方案,实现在1hz至120hz之间进行刷新率动态变化。
170.在一些实施例中,在感应到无触摸操作后将刷新率逐渐降低,例如将刷新率从120hz—》90hz—》60hz—》40hz—》30hz—》10hz—》1hz。
171.在一些实施例中,在无其他图层的情况下,可以将屏幕刷新率设置为30hz。
172.在一些实施例中,在有其他图层的情况下,可以将屏幕刷新率设置为60hz。
173.本技术实施例中的电子设备可以为移动终端,也可以为非移动终端。示例性的,移动终端可以为手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本或者个人数字助理(personal digital assistant,pda)等,非移动终端可以为个人计算机(personal computer,pc)、电视机(television,tv)、柜员机或者自助机等,本技术实施例不作具体限定。
174.本技术实施例提供的控制屏幕刷新率动态变化的方法的执行主体可以为上述的电子设备,也可以为该电子设备中能够实现该控制屏幕刷新率动态变化的方法的功能模块和/或功能实体,并且本技术方案能够通过硬件和/或软件的方式实现,具体的可以根据实际使用需求确定,本技术实施例不作限定。下面以电子设备为例,结合附图对本技术实施例提供的控制屏幕刷新率动态变化的方法进行示例性的说明。
175.也需要说明的是,在本技术实施例中,“大于”可以替换为“大于或等于”,“小于或等于”可以替换为“小于”,或者,“大于或等于”可以替换为“大于”,“小于”可以替换为“小于或等于”。
176.本文中描述的各个实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本技术的保护范围中。
177.可以理解的是,上述各个方法实施例中由电子设备实现的方法和操作,也可以由
可用于电子设备的部件(例如芯片或者电路)实现。
178.上文描述了本技术提供的方法实施例,下文将描述本技术提供的装置实施例。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
179.上文主要从方法步骤的角度对本技术实施例提供的方案进行了描述。可以理解的是,为了实现上述功能,实施该方法的电子设备包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的保护范围。
180.本技术实施例可以根据上述方法示例,对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有其它可行的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。
181.可选地,在一些实施例中,本技术提供一种芯片,该芯片与存储器耦合,该芯片用于读取并执行存储器中存储的计算机程序或指令,以执行上述各实施例中的方法。
182.可选地,在一些实施例中,本技术提供一种电子设备,该电子设备包括芯片,该芯片用于读取并执行存储器存储的计算机程序或指令,使得各实施例中的方法被执行。
183.可选地,在一些实施例中,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各实施例中的方法。
184.可选地,在一些实施例中,本技术实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各实施例中的方法。
185.在本技术实施例中,电子设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。其中,硬件层可以包括中央处理器(central processing unit,cpu)、内存管理单元(memory management unit,mmu)和内存(也称为主存)等硬件。操作系统层的操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,linux操作系统、unix操作系统、android操作系统、ios操作系统或windows操作系统等。应用层可以包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
186.本技术实施例并未对本技术实施例提供的方法的执行主体的具体结构进行特别限定,只要能够通过运行记录有本技术实施例提供的方法的代码的程序,以根据本技术实施例提供的方法进行通信即可。例如,本技术实施例提供的方法的执行主体可以是电子设备,或者,是电子设备中能够调用程序并执行程序的功能模块。
187.本技术的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本文中使用的术语“制品”可以涵盖可从任何计算机可读器件、载体或介质访问的
计算机程序。例如,计算机可读介质可以包括但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,cd)、数字通用盘(digital versatile disc,dvd)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmable read-only memory,eprom)、卡、棒或钥匙驱动器等)。
188.本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于:无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
189.应理解,本技术实施例中提及的处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
190.还应理解,本技术实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram)。例如,ram可以用作外部高速缓存。作为示例而非限定,ram可以包括如下多种形式:静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
191.需要说明的是,当处理器为通用处理器、dsp、asic、fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)可以集成在处理器中。
192.还需要说明的是,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
193.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的保护范围。
194.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
195.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件
可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。此外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
196.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
197.另外,在本技术各个实施例中的各功能单元可以集成在一个单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
198.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上,或者说对现有技术做出贡献的部分,或者该技术方案的部分,可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,该计算机软件产品包括若干指令,该指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。前述的存储介质可以包括但不限于:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
199.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。
200.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1