掌桥专利:专业的专利平台
掌桥专利
首页

刷新率的控制方法及相关装置

文献发布时间:2024-05-31 01:29:11


刷新率的控制方法及相关装置

技术领域

本申请涉及终端技术领域,尤其涉及刷新率的控制方法及相关装置。

背景技术

电子设备中可以配置有机发光二极管(organic light emitting diode,OLED)屏幕,简称OLED屏。

然而一些场景中,电子设备可能会出现OLED屏显示异常,例如出现背光闪烁等问题,降低了用户体验。

发明内容

本申请实施例提供的刷新率的控制方法及相关装置,若屏幕在某个刷新率下,只烧录有部分较低亮度对应的gamma参数,则面板驱动可以不向用户空间上报该可能导致屏幕显示异常的刷新率,而是将该刷新率进行备份。当电子设备处于息屏等需要低分辨率的场景时,面板驱动可以使用备份中的刷新率设置屏幕的刷新率。这样,一方面,用户空间获取不到该刷新率,则不会切换到该刷新率对应的帧率,使得电子设备不会由于用户空间切换该帧率而导致的屏幕显示异常;另一方面,电子设备在判断处于亮度较低的场景时,例如AOD场景,电子设备可以使用备份中的刷新率,从而使得屏幕既可以正常显示,又可以节省电量。

第一方面,本申请实施例提供的刷新率的控制方法,方法包括:

电子设备进入息屏场景,电子设备的第一模块向电子设备的第二模块传递第一消息,第一消息用于指示第二模块设置电子设备的屏幕的刷新率为第一刷新率;第二模块设置屏幕的刷新率为第二刷新率,以及设置屏幕的亮度为第一亮度,其中,第二刷新率小于第一刷新率,第一模块未记录有第二刷新率,第二模块记录有第二刷新率,第一亮度为屏幕在第二刷新率时所支持的亮度。这样,对于屏幕在第二刷新率因缺少部分较高亮度参数的情况,第二模块可以不向第一模块上报第二刷新率,而是将该第二刷新率等信息进行备份,当电子设备处于息屏等需要低分辨率的场景时,第二模块可以使用备份中的第二刷新率设置屏幕的刷新率,省电量;第一模块获取不到该第二刷新率,则不会切换到该第二刷新率对应的帧率,使得电子设备的屏幕可以正常显示。

一种可能的实现中,电子设备进入亮屏场景,第一模块向第二模块传递第二消息,第二消息用于指示第二模块设置屏幕的刷新率为第三刷新率;第二模块设置屏幕的刷新率为第三刷新率,以及设置屏幕的亮度为第二亮度,其中,第二亮度为屏幕在第三刷新率时所支持的亮度。在电子设备处于亮屏场景时,由于屏幕烧录有第三刷新率下各个亮度的gamma参数,不论当前是什么环境光亮度,都可以有刷新率对应的亮度,这样,可以使得电子设备的屏幕所显示的刷新率为第一模块所设置的刷新率,且不会出现屏幕显示异常的问题。

一种可能的实现中,在电子设备启动的过程中,第二模块向第一模块上报屏幕所支持的刷新率;其中,第二模块向第一模块上报屏幕所支持的刷新率中,不包括第二刷新率,第二模块在目标缓存中保存有第二刷新率。这样,当电子设备处于亮度较低的场景时,例如息屏场景,电子设备可以使用备份中的刷新率,从而使得屏幕可以正常显示,还可以节省电量。

一种可能的实现中,第二模块设置屏幕的刷新率为第二刷新率,包括:第二模块基于目标缓存中保存的第二刷新率,设置屏幕的刷新率为第二刷新率。这样,电子设备不会由于第一模块设置该第二刷新率所不支持的亮度而导致屏幕显示异常,使得屏幕能够正常显示,提升屏幕显示的稳定性。

一种可能的实现中,电子设备还包括第三模块,第三模块用于检测电子设备所处的场景,第二模块设置屏幕的刷新率为第二刷新率,之前,还包括:当第三模块检测电子设备进入息屏场景时,设置电子设备所处的场景对应的标识为第一标识,第一标识用于表示电子设备处于息屏场景;基于第二模块获取第一标识,并基于第一标识从目标缓存中获取第二刷新率。当电子设备处于息屏等需要低分辨率的场景时,第二模块可以基于缓存中备份的第二刷新率设置屏幕的刷新率。这样,电子设备可以在低分辨率场景中,例如息屏场景,使用缓存中备份的第二刷新率,使得屏幕既能够正常显示,又可以节省电量。

一种可能的实现中,电子设备中保存有环境光亮度与第二刷新率对应的亮度之间的对应关系,在对应关系中,环境光亮度越大,第二刷新率对应的亮度越大,第二模块设置屏幕的刷新率为第二刷新率,以及设置屏幕的亮度为第一亮度之前,还包括:基于第二模块获取第一环境光亮度;第二模块设置屏幕的刷新率为第二刷新率,以及设置屏幕的亮度为第一亮度,包括:第二模块设置屏幕的刷新率为第二刷新率,以及设置屏幕的亮度为第一亮度,其中,第一亮度为在对应关系中基于第一环境光亮度得到的。这样,第二模块可以根据电子设备当前的环境光亮度设置更为合适的屏幕亮度,提升用户体验。

一种可能的实现中,电子设备还包括第四模块和第五模块,第四模块用于进行窗口的合成和显示,还用于为SurfaceFlinger服务提供硬件支持,第五模块用于和第二模块进行数据交互,电子设备进入息屏场景,第一模块向第二模块传递第一消息,包括:当电子设备进入息屏场景时,基于第一模块调用第一函数,向SurfaceFlinger服务传递第一消息;基于SurfaceFlinger服务调用第二函数,向第四模块传递第一消息,并指示第四模块执行帧率切换流程;基于第四模块调用第三函数,设置第一消息中第一刷新率对应的索引值,并调用第四函数,向第五模块传递第一刷新率对应的索引值,指示第五模块执行送显流程;基于第五模块调用第五函数,获取第一刷新率对应的索引值,并基于第一刷新率对应的索引值确定第一刷新率;在电子设备进入息屏场景的情况下,第五模块调用第六函数,向第二模块传递第二刷新率。这样,第二模块可以使用备份中的第二刷新率,从而实现在息屏场景下,第一模块在不切换第二刷新率的情况下,第二模块可以切换屏幕的刷新率到第二刷新率,且使得屏幕既可以正常显示,又可以节省电量。

一种可能的实现中,电子设备还包括第六模块,第六模块用于提供与显示相关的库函数,第一模块向第二模块传递第一消息之前,还包括:基于第四模块调用第七函数,指示第六模块获取硬件组合抽象层DRM连接器;基于第六模块调用第八函数,指示第五模块获取DRM连接器;基于第五模块获取DRM连接器,并调用第九函数,指示第二模块获取屏幕所支持的刷新率;基于第二模块调用第十函数,从屏幕中获取屏幕所支持的刷新率;基于第五模块、第六模块和第四模块,向第一模块返回屏幕所支持的刷新率,其中,第一模块获取的屏幕所支持的刷新率中,不包括第二刷新率。各个模块间可以通过函数的调用实现模块间的数据交互,这样,第一模块可以获取到屏幕所烧录的刷新率,即面板驱动所支持的刷新率模式,从而依据第二模块所上报的刷新率进行帧率的设置,使得屏幕可以显示所支持的刷新率,减少屏幕出现异常的情况。

一种可能的实现中,第一模块包括帧率管控模块AGP,第二模块包括面板驱动,第四模块包括硬件组合抽象层HWC,第五模块包括显示驱动,和/或,第六模块包括libdrm库。这样,虽然第一模块获取不到第二刷新率,但是在切换刷新率时,第二模块却可以在特定场景中,例如息屏场景,将刷新率切换至第二刷新率。从而既可以减少亮屏场景下第一模块误切换至第二刷新率导致屏幕显示异常的情况,也使得在息屏场景中可以切换到第二刷新率,屏幕能够正常显示,减少电子设备的功耗。

一种可能的实现中,第一函数包括setRefreshRate()函数,第二函数包括setActiveMode()函数,第三函数包括addProperty()函数,第四函数包括crtc_commit()函数,第五函数包括mode_switch()函数,第六函数包括mode_switch_fps_change()函数,第七函数包括drmModeGetConnector()函数,第八函数包括drmIoctl()函数,第九函数包括drm_panel_get_modes()函数,和/或,第十函数包括lcm_get_modes()函数。各个模块可以通过定义不同的函数从而实现相应不同的功能,这样,各个模块间可以通过函数的调用实现模块间的数据交互,各个模块还可以通过函数进行参数的传递和/或参数的获取,从代码逻辑上方便了本申请实施例的方式的实现。

第二方面,本申请实施例提供一种刷新率的控制装置,该装置可以是电子设备,也可以是电子设备内的芯片或者芯片系统。该装置可以包括处理单元。处理单元用于实现第一方面或第一方面的任意一种可能的实现方式执行的与处理相关的任意方法。当该装置是电子设备时,该处理单元可以是处理器。该装置还可以包括存储单元,该存储单元可以是存储器。该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该电子设备实现第一方面或第一方面的任意一种可能的实现方式中描述的方法。当该装置是电子设备内的芯片或者芯片系统时,该处理单元可以是处理器。该处理单元执行存储单元所存储的指令,以使该电子设备实现第一方面或第一方面的任意一种可能的实现方式中描述的方法。该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该电子设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。

示例性的,处理单元,用于向电子设备的第二模块传递第一消息;还用于设置屏幕的刷新率为第二刷新率,以及设置屏幕的亮度为第一亮度。

一种可能的实现方式中,处理单元,用于向第二模块传递第二消息;还用于设置屏幕的刷新率为第三刷新率,以及设置屏幕的亮度为第二亮度。

一种可能的实现方式中,处理单元,用于向第一模块上报屏幕所支持的刷新率。

一种可能的实现方式中,处理单元,用于基于目标缓存中保存的第二刷新率,设置屏幕的刷新率为第二刷新率。

一种可能的实现方式中,处理单元,用于测电子设备进入息屏场景;还用于设置电子设备所处的场景对应的标识为第一标识;具体还用于基于第一标识从目标缓存中获取第二刷新率。

一种可能的实现方式中,处理单元,用于获取第一环境光亮度;还用于设置屏幕的刷新率为第二刷新率,以及设置屏幕的亮度为第一亮度,其中,第一亮度为基于第一环境光亮度得到的。

一种可能的实现方式中,处理单元,用于调用第一函数,向SurfaceFlinger服务传递第一消息;还用于调用第二函数,向第四模块传递第一消息,并指示第四模块执行帧率切换流程;还用于调用第三函数,设置第一消息中第一刷新率对应的索引值;还用于调用第四函数,向第五模块传递第一刷新率对应的索引值,指示第五模块执行送显流程;还用于调用第五函数,获取第一刷新率对应的索引值,并基于第一刷新率对应的索引值确定第一刷新率;具体还用于调用第六函数,向第二模块传递第二刷新率。

一种可能的实现方式中,处理单元,用于调用第七函数,指示第六模块获取硬件组合抽象层DRM连接器;还用于调用第八函数,指示第五模块获取DRM连接器;还用于获取DRM连接器,并调用第九函数,指示第二模块获取屏幕所支持的刷新率;还用于调用第十函数,从屏幕中获取屏幕所支持的刷新率;具体还用于基于第五模块、第六模块和第四模块,向第一模块返回屏幕所支持的刷新率。

一种可能的实现方式中,第一模块包括帧率管控模块AGP,第二模块包括面板驱动,第四模块包括硬件组合抽象层HWC,第五模块包括显示驱动,和/或,第六模块包括libdrm库。

一种可能的实现方式中,第一函数包括setRefreshRate()函数,第二函数包括setActiveMode()函数,第三函数包括addProperty()函数,第四函数包括crtc_commit()函数,第五函数包括mode_switch()函数,第六函数包括mode_switch_fps_change()函数,第七函数包括drmModeGetConnector()函数,第八函数包括drmIoctl()函数,第九函数包括drm_panel_get_modes()函数,和/或,第十函数包括lcm_get_modes()函数。

第三方面,本申请实施例提供一种电子设备,包括一个或多个处理器和存储器,存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。

第四方面,本申请提供一种芯片或者芯片系统,该芯片或者芯片系统应用于电子设备,该芯片或者芯片系统包括一个或多个处理器和通信接口,通信接口和至少一个处理器通过线路互联,一个或多个处理器用于调用计算机指令以使得电子设备执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。

在一种可能的实现中,本申请中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。

第五方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。

第六方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机程序代码,当计算机程序代码在电子设备上运行时,使得电子设备执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。

应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。

附图说明

图1为本申请实施例提供的一种电子设备的结构示意图;

图2为本申请实施例提供的一种电子设备的软件结构示意图;

图3为本申请实施例提供的一种包括显示数据存储器的OLED屏的示意图;

图4为本申请实施例提供的一种不包括显示数据存储器的OLED屏的示意图;

图5为本申请实施例提供的一种屏幕显示异常的示意图;

图6为本申请实施例提供的一种面板驱动上报刷新率的示意图;

图7为本申请实施例提供的一种刷新率的控制方法的模块交互示意图;

图8为本申请实施例提供的一种获取面板驱动所支持刷新率的模块交互示意图;

图9为本申请实施例提供的一种获取面板驱动所支持刷新率的执行流程示意图;

图10为本申请实施例提供的一种图形显示框架驱动的架构示意图;

图11为本申请实施例提供的一种刷新率的控制方法的执行流程示意图;

图12为本申请实施例提供的另一种刷新率的控制方法的示意图;

图13为本申请实施例提供的一种芯片的结构示意图。

具体实施方式

为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语和技术进行简单介绍:

1、术语

在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。

需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a--c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

2、帧率和刷新率

帧率(frames per second,FPS):是指每秒钟界面显示图像的帧数,以帧每秒(fps)为单位,它代表了界面显示内容的流畅度,通常,帧率越高,界面显示越流畅。

刷新率(refresh rate):是指屏幕每秒更新画面的次数,以赫兹(Hz)为单位,它决定了屏幕是否能够平滑地显示帧图像,如果屏幕的刷新率为60Hz,说明屏幕每秒可以更新60次画面。

可以理解的是,屏幕的刷新率可以随系统中用户空间的帧率切换而在内核空间进行刷新率切换。也就是说,电子设备中帧率的切换会使得刷新率也随之切换。在本申请实施例中,对帧率和刷新率的描述并不进行严格区分,一般地,在用户空间中,或者从用户感知角度,可以描述为帧率,在内核空间中可以描述为刷新率,当然,也可以在用户空间中描述为刷新率,在内核空间中描述为帧率,不作限定。可以理解的是,对帧率和刷新率的区分描述,并不构成对本申请实施例的方法实现上的限定。

3、电子设备

本申请实施例的电子设备也可以为任意形式的终端设备,例如,电子设备可以包括:手机(mobile phone)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mobileinternet device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(session initiation protocol,SIP)电话、无线本地环路(wirelesslocal loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的电子设备或者未来演进的公用陆地移动通信网络(public land mobilenetwork,PLMN)中的电子设备等,本申请实施例对此并不限定。

作为示例而非限定,在本申请实施例中,该电子设备还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。

此外,在本申请实施例中,电子设备还可以是物联网(internet of things,IoT)系统中的电子设备,IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。

本申请实施例中的电子设备也可以称为:用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。

在本申请实施例中,电子设备或各个网络设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(centralprocessing unit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。

示例性的,图1示出了电子设备的结构示意图。

电子设备可以包括处理器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,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。

可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以包括硬件,软件或软件和硬件的组合实现。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

本申请实施例中,AP 也可以理解为系统级芯片(system on chip,SOC),也可以称为片上系统。SOC可以将待显示的图像传递给面板进行送显。

处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从上述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。例如本申请实施例中,处理器110可以用于上报面板驱动所支持的刷新率、进行刷新率的切换以及备份刷新率等。

在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,SIM卡接口,和/或USB接口等。

可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序等。存储数据区可存储电子设备使用过程中所创建的数据等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备的各种功能应用以及数据处理。例如本申请实施例中,内部存储器121可以用于存储备份的刷新率,还可以用于存储获取刷新率以及切换刷新率等的相关代码。

电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器120,显示屏194,以及无线通信模块160等供电。在一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。本申请实施例中,电源管理模块141可以检测电子设备的亮屏状态和灭屏状态等,还可以向内核态传递电子设备进入亮屏状态或灭屏状态的消息,从而实现屏幕刷新率的切换。

电子设备通过GPU、显示屏194以及AP等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和AP。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。

显示屏194用于显示图像,视频等。显示屏194包括显示面板,简称面板。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。本申请实施例中,显示屏194可以包括 OLED屏。

图2是本申请实施例的电子设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,Android系统可以包括用户态、硬件抽象层(hardware abstraction layer,HAL)和内核态。

用户态也可以称为用户空间,用户态可以理解为应用程序运行时所处的环境,应用程序可以访问自己的内存空间和部分系统资源;用户态也可以理解为应用程序所执行的任务。其中,用户态可以包括应用层以及子系统动态链接库等。

应用层也可以称为应用程序层,应用层中可以包括一系列应用程序包。应用程序包可以包括办公、浏览器、社交等应用程序。应用程序包可以包括系统应用和三方应用。

子系统动态链接库可以包括应用程序接口(application programminginterface,API)模块。本申请实施例中,该API模块可以包括SurfaceFlinger服务和帧率管控模块等。

一些场景中,SurfaceFlinger服务也可以称为图形图像模块。SurfaceFlinger服务可以负责应用程序的图形合成和图像渲染工作,并进行界面显示,例如SurfaceFlinger服务可以管理应用程序窗口的创建、显示、更新和销毁等。

一些场景中,帧率管控模块也可以称为加速图形接口(accelerate graphicalport,AGP)或加速图像接口,AGP可以提供一种接口规范,使3D图形在电子设备上以更快的速度显示。为了便于描述,后续本申请实施例均以AGP进行描述。

HAL层可以是对硬件驱动的一个封装,为用户态中应用程序的调用提供统一接口。HAL层可以隐藏各种与硬件有关的细节,例如I/O接口、中断控制器以及多处理器通信机制等。当用户态与硬件通信时,可以通过调用HAL层中的相关接口实现硬件驱动的相关功能。例如本申请实施例中,HAL层可以包括硬件组合抽象层(hwcomposer,HWC)和用户空间库libdrm等。

HWC是Android系统中可以进行窗口(Layer)合成和显示的模块,HWC可以为SurfaceFlinger服务提供硬件支持。

libdrm提供了直接渲染管理器(direct rendering manager,DRM)驱动的用户空间接口。用户或应用程序可以调用libdrm所提供的库函数,访问显示相关的资源。libdrm还可以用于管理图像硬件设备,将内核空间中的相关功能封装成一个或多个API,进而用户空间的应用程序可以调用这些API来驱动硬件设备实现画面显示。

内核态也可以称为内核空间,内核态可以理解为操作系统运行时所处的环境,操作系统可以访问电子设备的系统资源;内核态也可以理解为操作系统执行的任务。其中,内核态可以包括显示驱动、摄像头驱动、音频驱动等。

本申请实施例中,显示驱动中可以包括DRM驱动和面板驱动(panel driver)等,显示驱动可以调用面板驱动的钩子函数(hook函数),从而实现与面板驱动的交互。

DRM驱动可以理解为一种图形渲染架构的驱动,在内核空间中可以负责与面板驱动的交互,管理显示输出和缓存区(buffer)的分配。电子设备可以基于DRM驱动提供的API实现3D图像的渲染、视频解码和/或GPU计算等。

一些场景中,面板驱动也可以称为模组驱动、显示模组驱动、液晶模组或液晶显示模组(liquid crystal display module,LCM)驱动。不同的硬件厂商可以对应有不同的面板驱动。为了便于描述,后续本申请实施例均以面板驱动进行描述。

可选的,内核态中还可以包括执行体,该执行体可以包括进程管理器、虚拟内存管理器、I/O管理器、电源管理器、系统事件驱动节点等,具体可参照相关技术,在此不再赘述。

需要说明的是,本申请实施例仅以安卓系统举例来说明,在其他操作系统中(例如Windows系统,IOS系统等),只要各个功能模块实现的功能和本申请的实施例类似,也能实现本申请的方案。

电子设备中可以配置有OLED屏,如图3所示,OLED屏中可以包括显示数据存储器(dispaly random access memory,dispaly RAM)和亮度补偿存储器(demura randomaccess memory,demura RAM)。一些场景中,显示数据存储器也可以称为显示内存或显示存储器,为了便于描述,后续本申请实施例均以显示数据存储器进行描述。

其中,显示数据存储器可以用来存储屏幕显示图像所需的相关数据,显示数据存储器可以存储完整的图像数据。

亮度补偿存储器可以用来存储屏幕显示图像所需的图像效果参数,该图像效果参数可以用来校准待显示的图像,从而提高图像显示质量,该图像效果参数可以包括gamma参数、亮度参数等,亮度补偿存储器可以存储图像的部分数据。

OLED屏可以实现全屏的息屏显示(always on display,AOD),简称全屏AOD,OLED屏也可以实现局部的息屏显示,简称局部AOD或传统AOD。这样,可以为用户提供更多的选择,提高屏幕显示多样性,从而提升用户体验。

全屏AOD可以理解为在电子设备灭屏后,电子设备可以点亮整个屏幕的像素点,从而可以在整个屏幕上可以显示图像,该屏幕上的图像可以包括系统默认设置的图像或用户自定义设置的图像等;该屏幕上的一些区域还可以显示时间、日期、电量、天气和/或推送消息等信息,方便用户便捷查看;该屏幕上的某个区域还可以显示指纹图像,该指纹图像可以用于提示用户指纹解锁的位置。本申请实施例对OLED屏采用全屏AOD时屏幕上所显示的内容不作限定。

局部AOD可以理解为在电子设备灭屏(灭屏也可以理解为息屏)后,电子设备可以点亮屏幕的部分像素点,而屏幕的另一部分像素点不会被点亮。其中,屏幕中像素点被点亮的部分可以显示图像、时间、日期、电量、天气、推送消息和/或指纹图像等信息。屏幕中像素点不被点亮的部分可以呈现黑色,从而减少电子设备的耗电量。本申请实施例对OLED屏采用局部AOD时屏幕上所显示的内容不作限定。

可能的实现中,全屏AOD和局部AOD均可以采用command方式或video方式显示图像,即全屏AOD可以采用command方式或video方式显示图像,局部AOD分别也可以采用command方式或video方式显示图像。

采用command方式时, SOC在获取到SurfaceFlinger 服务合成的待显示的图像后,可以通过显示串行接口(display serial interface,DSI)将图像的像素数据传输至屏幕集成电路(integrated circuit,IC)的显示数据存储器中,进而,屏幕IC可以基于显示数据存储器中存储的图像,在屏幕上进行送显。

采用video方式时, SOC在获取到SurfaceFlinger 服务合成的待显示的图像后,可以通过DSI接口将图像的像素数据传输至屏幕,而无需传输至屏幕IC的显示数据存储器中。

可以理解的是,若电子设备的界面显示内容未发生变化,在采用command方式时,由于显示数据存储器中存储有图像,因此,SOC可以不用持续在显示数据存储器中存储图像;而采用video方式时,由于SOC不在显示数据存储器中存储图像,因此,SOC需要持续给面板传递图像进行送显。

在一些电子设备中,为了降低成本,会将OLED屏的显示数据存储器(dispaly RAM)去掉,如图4所示,电子设备中可以不带有显示数据存储器。

然而,由于显示数据存储器可以存储完整的图像数据,而亮度补偿存储器只能存储图像的部分数据,且采用command方式时,SOC需要在显示数据存储器中存储图像,若将显示数据存储器去掉,电子设备无法采用command方式,通过显示数据存储器实现全屏AOD。因此,电子设备需要采用video方式既实现全屏AOD,又实现局部AOD。

在采用video方式实现全屏AOD或局部AOD中,屏幕厂商(后续简称为屏厂)会为OLED屏所支持的每一档刷新率烧录不同亮度下对应的gamma参数,该gamma参数可以用来优化不同刷新率下OLED屏能够正常显示的效果。可以理解的是,若某档刷新率没有烧录某个亮度下的gamma参数,当电子设备使用该没有烧录的亮度时,OLED屏会显示异常,例如OLED屏可能会出现背光闪烁等问题,降低用户体验。

在屏幕亮度较高时,例如亮屏显示时,由于使用低刷新率会使得屏幕上图像的显示效果较差,因此,在电子设备亮屏的情况下,使用低刷新率的场景较少。其中,低刷新率可以包括30赫兹(Hz),也可以包括其他较低的刷新率,本申请实施例不作限定。

为了降低电子设备的成本,屏厂在给OLED屏烧录gamma参数时,会针对性地裁剪掉一些亮度对应的gamma参数。例如,对于30Hz 的刷新率,屏厂仅会烧录30Hz对应的较低亮度的gamma参数,以用于在局部AOD等场景中使用,而不会烧录30Hz对应的较高亮度的gamma参数。其中,本申请实施例中,较低亮度可以包括60尼特(nit)以及60nit以下的亮度,例如5nit、30nit和60nit等;较高亮度可以包括60nit以上的亮度,例如90nit、200nit和600nit等。可以理解的是,亮度的高低还可以有其他的划分方式,本申请实施例不作限定。

可以理解的是,对于全屏AOD来说,由于屏幕采用30Hz刷新率显示图像的效果明显较差,为了不影响用户体验,全屏AOD场景通常不会使用30Hz来显示图像。为了便于描述,以及贴合实际场景,后续本申请实施例均以局部AOD的场景为例进行描述。若全屏AOD使用30Hz刷新率,则也适用于本申请实施例的方法。

示例性的,下述表1示出了局部AOD场景下,一种可能的烧录gamma参数的方案。

可以理解的是,在烧录gamma参数时,烧录的gamma参数越多,屏幕显示图像的色彩效果越好,用户的视觉体验也越好。对于一些电子设备来说,出于成本等因素的考虑,烧录的gamma参数的条数是固定的,例如本申请实施例以电子设备能够烧录24条gamma参数为例进行说明。具体电子设备可以烧录的gamma参数的条数,本申请实施例不作限定。

表1中,60Hz、90Hz和120Hz 均可以对应有多个亮度下的gamma参数,例如包括5nit、10nit 、30nit、60nit、90nit、200nit和600nit的gamma参数。这样,在亮屏显示时,电子设备可以基于环境光亮度等因素,使用不同亮度的gamma参数,从而提高屏幕显示图像的效果,提升用户的视觉体验。

可以理解的是,在不需要30Hz 刷新率的场景下,60Hz、90Hz和120Hz 还可以分别对应有650nit亮度的gamma参数。而在需要30Hz 刷新率的场景下,由于电子设备能够烧录的gamma参数的条数是固定的,因此,屏长可以选择不烧录60Hz、90Hz和120Hz下650nit的gamma参数,而是选择烧录30Hz下5nit、30nit和60nit的gamma参数,从而方便屏幕亮度较暗,例如局部AOD场景下使用。至于60Hz、90Hz和120Hz下650 nit的亮度,则可以使用其他亮度对应的gamma参数拟合得到。

表1

从表1中可知,对于30 Hz的刷新率,对应有3档亮度,分别为5nit、30nit和60nit。可以看到,这3档所对应的亮度均较小,适合在屏幕亮度较低的环境下使用,例如局部AOD的场景。在屏幕亮度较高的环境下,例如亮度在90nit、200nit或600 nit时,屏厂没有为30 Hz的刷新率烧录对应的gamma参数,使得电子设备在亮屏显示时,刷新率只有处于60Hz以及60Hz以上时,屏幕可以正常显示,刷新率处于30Hz时,屏幕会显示异常。

图5示出了电子设备的屏幕显示异常的示意图。

可以理解的是,不同的刷新率可以对应为不同的模式。示例性的,60Hz刷新率可以对应模式1(MODE1),90Hz刷新率可以对应模式2(MODE2),120Hz刷新率可以对应模式3(MODE3),30Hz刷新率可以对应模式4(MODE4)。具体刷新率与模式的对应关系,本申请实施例不作限定。

当用户空间的帧率管控模块(AGP)切换到模式1(MODE1)、模式2(MODE2)或模式3(MODE3)时,内核空间的显示驱动可以根据模式1确定需要切换的刷新率为60Hz,或者,显示驱动可以根据模式2确定需要切换的刷新率为90Hz,或者,显示驱动可以根据模式3确定需要切换的刷新率为120Hz。由于硬件侧的面板中烧录有60Hz、90Hz和120Hz的各个亮度对应的gamma参数,可以满足屏幕显示的需要,因此,电子设备的屏幕可以正常显示图像。

而在亮屏显示的情况下,当AGP切换到模式4(MODE4)时,显示驱动可以根据模式3确定需要切换的刷新率为30Hz。然而,由于在30 Hz刷新率下没有烧录较高亮度的gamma参数,例如较高亮度可以包括90nit、200nit或600nit等,导致30 Hz刷新率对应的gamma参数的数值缺失,使得电子设备的屏幕显示异常。也可以理解为,若某一档位刷新率的部分亮度对应gamma参数有缺失,则在用户空间进行帧率切换时,屏幕无法在该档位刷新率的部分亮度下正常显示。

虽然可以在AGP中实现对模式4(MODE4)的拦截,来避免屏幕切换至30Hz的刷新率,但是在某些AGP未正常运行的情况下,根据最新安卓版本的策略,用户空间的帧率会切换至从屏幕获取到的最低档位刷新率对应的帧率,因此并不能完全避免切换至30Hz刷新率出现的显示异常。

有鉴于此,本申请实施例提供的刷新率的控制方法,若屏幕在某个刷新率下,只烧录有部分较低亮度对应的gamma参数,则面板驱动可以不向用户空间上报该可能导致屏幕显示异常的刷新率,而是将该刷新率进行备份。当电子设备处于息屏等需要低分辨率的场景时,面板驱动可以使用备份中的刷新率设置屏幕的刷新率。这样,一方面,用户空间获取不到该刷新率,则不会切换到该刷新率对应的帧率,使得电子设备不会由于用户空间切换该帧率而导致的屏幕显示异常;另一方面,电子设备在判断处于亮度较低的场景时,例如AOD场景,电子设备可以使用备份中的刷新率,从而使得屏幕既可以正常显示,又可以节省电量。

示例性的,如图6所示,面板驱动所支持的刷新率可以包括60Hz、90Hz、120Hz和30Hz,可以理解的是,面板驱动所支持的刷新率也可以称为面板驱动所支持的刷新率模式(support_mode)。面板驱动可以获取面板驱动所支持的刷新率模式,还可以设置默认刷新率,例如默认刷新率可以为60Hz。其中,本申请实施例对默认刷新率和面板驱动所支持的刷新率模式不作限定。

面板驱动可以调用drm_mode_probe_add(panel->connect, support_mode)函数,向显示驱动上报面板所支持的刷新率模式时,例如面板驱动可以上报60Hz、90Hz和120Hz。

然而,由于30 Hz没有烧录亮度较高的gamma参数,例如90nit、200nit或600nit等亮度对应的gamma参数,可能会导致在屏幕亮度较高时,屏幕显示异常。因此,面板驱动不会向显示驱动以及AGP上报30 Hz,面板驱动可以将30Hz对应的模式进行备份,该30Hz对应的模式可以用结构体表示,该结构体中可以包括30Hz刷新率、显示驱动参数以及切换刷新率的指令等信息。当然,该30Hz对应的模式也可以采用其他方式表示。具体备份的位置,可以由电子设备预先设置,例如可以备份在内核空间中的某个路径下,包括存储在显示驱动中的某个路径下,或者存储在DRM驱动中的某个路径下,本申请实施例不作限定。

可以理解的是,gamma参数是烧录在屏幕里的,可以不进行备份。在屏幕切换至30Hz刷新率时,屏幕IC可以加载gamma参数。

图7示出了本申请实施例的刷新率的控制方法示意图。

由于面板驱动不会向显示驱动以及AGP上报30 Hz,因此,用户空间的帧率管控模块(AGP)可以设置的刷新率模式中不包括30 Hz模式。例如AGP可以设置模式1(MODE1)、模式2(MODE2)和模式3(MODE3)。其中,模式1可以对应的刷新率为60Hz,模式2可以对应的刷新率为90Hz,模式3可以对应的刷新率为120Hz。

当AGP需要切换模式1、模式2或模式3时,内核空间的显示驱动可以先判断当前是否为局部AOD场景。具体判断当前是否为局部AOD场景的实现方式,可以参照下述图11对应实施例的步骤 S1101中的相关描述,在此不做赘述。

若当前不是局部AOD场景,则显示驱动可以根据模式1确定需要切换的刷新率为60Hz,或者,显示驱动可以根据模式2确定需要切换的刷新率为90Hz,或者,显示驱动可以根据模式3确定需要切换的刷新率为120Hz。

若当前是局部AOD场景,说明屏幕所需的亮度较低,且用户对于屏幕的亮度和刷新率要求不是很高,若屏幕使用60Hz或60Hz以上的刷新率,电子设备的功耗会相对较高,比较耗电,因此,在局部AOD场景下,使用30 Hz的刷新率更为合适。但是,由于面板驱动没有将30Hz上报给显示驱动,则显示驱动可以从备份的模式中获取30Hz对应的显示驱动参数及切换刷新率的指令等。显示驱动可以向屏幕IC传递切换刷新率的指令,在屏幕IC接收到切换至30Hz的指令后,可以加载30Hz对应的gamma参数。这样,可以使得在30 Hz刷新率没有烧录亮度较高的gamma参数的情况下,当电子设备处于局部AOD场景时,不论用户空间切换哪个刷新率模式,电子设备的屏幕均可以正常显示。

也就是说,电子设备的内核层可以对特定场景所使用的刷新率做隔离,例如特定场景所使用的刷新率可以包括AOD场景所使用的30 Hz刷新率。可以理解的是,对于可能导致电子设备的屏幕显示异常的刷新率,也适用于本申请实施例的方法。在不向用户空间上报该刷新率的情况下,使得内核层中的面板驱动可以在特定场景中切换至该刷新率。这样,虽然用户空间可以获取到60Hz、90Hz、120Hz等刷新率,获取不到30 Hz刷新率,但是在切换刷新率时,却可以在特定场景中切换至该被隔离的刷新率(30 Hz)。从而既可以减少一些场景中误切换至该刷新率导致屏幕显示异常的情况,也使得在特定场景中可以切换到该刷新率,且屏幕能够正常显示。

可能的实现中,30 Hz刷新率可以烧录5nit、30nit和60nit对应的gamma参数,也可以烧录其他亮度下对应的gamma参数,本申请实施例不作限定。电子设备可以基于当前的环境光亮度确定使用哪个亮度对应的gamma参数。

可能的实现中,电子设备中保存有环境光亮度与30 Hz刷新率对应的亮度之间的对应关系。例如,在局部AOD场景中,若当前环境光亮度相对较亮,则电子设备可以使用60nit对应的gamma参数;若当前环境光亮度相对较暗,则电子设备可以使用5 nit或30 nit的gamma参数;具体电子设备使用哪一套gamma参数,本申请实施例不作限定。这样,电子设备可以根据当前的环境光亮度设置更为合适的屏幕亮度,提升用户体验。

图8示出了电子设备中获取面板驱动所支持刷新率的模块交互示意图。

在电子设备的开机过程中,电子设备中的各个模块可以进行初始化,从而方便后续各个模块间的交互。示例性的,电子设备的应用程序接口模块中的SurfaceFlinger服务和帧率管控模块(AGP)可以分别执行初始化动作,电子设备的HAL层中的硬件组合抽象层(HWC)可以执行初始化动作,内核层中的DRM驱动和面板驱动也可以分别执行初始化动作。

在各个模块完成初始化后,SurfaceFlinger服务可以调用HWC提供的函数获取面板驱动所支持的刷新率。可能的实现中,HWC可以调用用户空间库(libdrm)中提供的函数来获取面板驱动所支持的刷新率,libdrm可以调用DRM驱动的相关函数,指示DRM驱动获取面板驱动所支持的刷新率,进而,DRM驱动可以与面板驱动进行交互,从而获取面板驱动所支持的刷新率。

当电子设备需要进行帧率切换时,AGP会调用SurfaceFlinger服务的相关接口,指示SurfaceFlinger服务执行帧率切换的相关流程。可以理解的是,在帧率切换的流程中,模块间的交互过程同上述获取面板驱动所支持的刷新率的流程类似,SurfaceFlinger服务需要调用HWC提供的函数,HWC可以调用libdrm提供的函数,libdrm可以调用DRM驱动的相关函数,进而,DRM驱动可以与面板驱动进行交互,从而实现帧率到刷新率的切换。

图9示出了电子设备中各个模块获取面板驱动所支持刷新率的过程示意图。具体过程可以包括(1)内核层的初始化、(2)DRM连接器的获取和(3)面板驱动所支持的刷新率的获取。

(1)内核层的初始化。

在电子设备的开机过程中,内核层中的各个模块可以进行初始化。可能的实现中,显示驱动可以执行module_init()函数来进行初始化,显示驱动还可以调用dsi_display_bind()函数,实现显示驱动和面板驱动的绑定,从而方便后续显示驱动和面板驱动之间的交互。面板驱动则可以执行lcdkit_init()函数进行初始化。

本申请实施例中,在显示驱动和面板驱动均完成初始化,且两者绑定成功后,可以理解为内核层的初始化完成或启动完成。

(2)DRM连接器的获取。

如图10所示,DRM驱动中可以包括帧缓存(Framebuffer)、电子束控制器(cathoderay tube controller,CRTC)、编码器(Encoder)和DRM连接器(Connector)等。

其中,帧缓存可以用于存储屏幕上每个像素点的颜色信息。电子束控制器可以用于将帧缓存中的图像数据输出到面板驱动上,并控制面板驱动的显示模式、分辨率、刷新率等参数。编码器可以用于将电子束控制器输出的图像信号转换成一定格式的数字信号。DRM连接器可以负责硬件设备的接入,以及屏幕参数的获取等,还可以用于将编码器输出的信号传递给面板驱动,并与面板驱动建立连接。

可以理解的是,上述DRM驱动中各个模块的概念可以理解为各个硬件模块所对应的抽象的软件概念,并非硬件本身。当然,DRM驱动中还可以包括更多或更少的模块,本申请实施例不作限定。

本申请实施例中,电子设备获取面板驱动所支持刷新率的过程可以理解为将面板驱动所支持刷新率添加到Connector的probed mode列表中的过程。其中,若刷新率为特定场景下需要使用的刷新率,例如特定场景包括局部AOD场景,该刷新率可以为较低的刷新率,例如30Hz,则电子设备不会将该较低的刷新率添加到Connector的probed mode列表中,而是将其备份在预设的目录下。

在电子设备的开机过程中,HWC也可以执行初始化动作。

可能的实现中,在HWC和内核层均初始化完成之后,HWC可以调用initDrmResource()函数,用于初始化DRM驱动的资源。HWC还可以调用drmModeGetConnector()函数,指示libdrm获取DRM连接器。

libdrm可以执行_drmModeGetConnector()函数,并进一步调用drmIoctl(fd,DRM_IOCTL_MODE_GET_CONNECTOR,&conn)函数,从显示驱动获取DRM连接器。

显示驱动可以执行drm_mode_getconnector()函数,获取DRM连接器。显示驱动还可以进一步调用drm_panel_get_modes()函数,获取面板驱动所支持的刷新率。

(3)面板驱动所支持的刷新率的获取。

可能的实现中,面板驱动可以调用lcm_get_modes()函数来获取面板驱动所支持的各个刷新率对应的模式,其中,模式中可以包括刷新率对应的显示驱动参数以及切换刷新率的命令等。

根据之前的描述可知,面板驱动所支持的刷新率也可以称为面板驱动所支持的刷新率模式(support_mode)。面板驱动可以将面板驱动所支持的刷新率模式,通过drm_mode_probed_add(panel->connector, support_mode)函数添加到列表里,并通过显示驱动和libdrm,返回给HWC。例如,面板驱动可以上报的support_mode 包括60Hz、90Hz和120Hz,则HWC可以获取到面板驱动所支持的刷新率模式包括60Hz、90Hz和120Hz。这样,用户空间可以准确的获取屏幕所烧录的刷新率,即面板驱动所支持的刷新率模式,从而依据面板驱动所上报的刷新率进行帧率的设置,使得屏幕可以显示所支持的刷新率,减少屏幕出现异常的情况。

可以理解的是,若未采用本申请实施例的方法,则面板驱动所支持的刷新率模式还可以包括30Hz。然而,本申请实施例中,由于没有烧录30 Hz对应的亮度较高的gamma参数,例如90nit、200nit或600nit对应的gamma参数,导致30 Hz对应的gamma参数存在数值缺失,面板驱动不会向显示驱动上报30Hz的刷新率。因此,显示驱动获取的面板驱动所支持的刷新率模式不包括30Hz,则HWC也获取不到30Hz模式。

可以理解的是,屏幕的刷新率可以随用户空间帧率的切换而在内核层进行刷新率切换并设置刷新率。示例性的,以局部AOD场景中需要切换刷新率到30Hz为例,在采用video方式时,SOC需要以30Hz刷新率进行刷新,SOC还需要调用基于MIPI协议的DSI接口向IC传递指令,该指令用于指示让屏幕显示局部AOD,并将刷新率切换为30Hz。

图11示出了本申请实施例的刷新率的控制方法的过程示意图。

S1101、帧率管控模块(AGP)设置帧率。

AGP可以启动帧率刷新线程FrameRefreshThread,该线程中可以执行setRefreshRate()函数,指示SurfaceFlinger服务设置帧率。

可能的实现中,AGP可以依赖于电子设备的帧率切换管控策略来执行setRefreshRate()函数。为了便于描述,后续将帧率切换管控策略简称为切帧策略。

可以理解的是,电子设备处于不同的场景时,切帧策略可以不同。示例性的,电子设备处于游戏场景时,切帧策略可以提高电子设备的帧率,此时,AGP可以执行setRefreshRate()函数,将电子设备的屏幕切换到较高刷新率进行显示,例如刷新率为120Hz。电子设备处于文字预览或进入局部AOD场景时,切帧策略可以降低电子设备的帧率,此时,AGP也可以执行setRefreshRate()函数,将电子设备的屏幕切换到较低刷新率进行显示,例如刷新率为60Hz。当然,切帧策略也可以根据预置的白名单确定电子设备的屏幕所需要的刷新率,本申请实施例不作限定。

可能的实现中,电子设备中的电源管理模块可以检测电子设备是否进入亮屏状态、灭屏状态、全屏AOD场景或局部AOD场景等。若当前电子设备进入局部AOD场景,则电源管理模块可以向AGP发送消息,用于指示当前电子设备进入局部AOD场景,则AGP可以执行步骤S1101,启动帧率刷新线程FrameRefreshThread,并执行setRefreshRate()函数,进行帧率的设置。

示例性的,电源管理模块可以调用设置电源模式函数setPowerMode(),向AGP传递电子设备进入局部AOD场景的消息。其中,该函数中可以包括power_mode字段,该字段的不同取值可以表示电子设备的屏幕当前所处的状态。

可以理解的是,power_mode字段可以用整型、字符串或枚举等数据类型表示,本申请实施例不作限定。例如,以power_mode字段为整型为例,当power_mode字段取值为0时,可以表示电子设备的屏幕处于灭屏状态;当power_mode字段取值为1时,可以表示电子设备的屏幕进入局部AOD场景,等等。具体power_mode字段的取值和屏幕所处的状态,可以由电子设备预先设置,本申请实施例不作限定。

示例性的,当电子设备的屏幕处于灭屏状态,并进入局部AOD场景时,电源管理模块可以先执行一次setPowerMode()函数,设置power_mode字段为0,用于表示屏幕当前进入灭屏状态;电源管理模块还可以再执行一次setPowerMode()函数,并设置power_mode字段为1,用于表示屏幕进入局部AOD场景。

可能的实现中,电子设备中保存有环境光亮度与各个刷新率对应的亮度之间的对应关系。电子设备可以根据当前环境光亮度来设置屏幕的亮度。

例如以刷新率为60Hz为例,若当前环境光亮度相对较亮,则电子设备可以使用亮度较高的gamma参数,例如亮度较高的gamma参数可以包括60nit以及60nit以上的gamma参数;若当前环境光亮度相对较暗,则电子设备可以使用亮度较低的gamma参数,例如亮度较低的gamma参数可以包括60nit以下的gamma参数;具体使用哪一套gamma参数,本申请实施例不作限定。这样,电子设备可以根据当前的环境光亮度设置更为合适的屏幕亮度,提升用户体验。

S1102、SurfaceFlinger服务执行切帧流程。

SurfaceFlinger服务在获取到设置帧率的指示后,可以调用setActiveMode()函数,从而执行切帧流程。

S1103、HWC设置刷新率对应的索引值。

HWC可以执行addProperty()函数,设置刷新率对应的索引值。可能的实现中,该索引值可以用DISP_MODE_IDX字段表示。当然,该索引值还可以定义为其他字段,本申请实施例不作限定。

示例性的,60Hz对应的索引值可以为0,90Hz对应的索引值可以为2,120Hz对应的索引值可以为1。例如,若SurfaceFlinger服务指示HWC设置刷新率为60Hz,则HWC可以将索引值DISP_MODE_IDX字段设置为0,并执行步骤S1104。其中,刷新率对应的索引值也可以设置为其他值,例如,60Hz对应的索引值可以为0,90Hz对应的索引值可以为1,120Hz对应的索引值可以为2等,本申请实施例不作限定。

可以理解的是,若未采用本申请实施例的方法,则HWC还可以设置30Hz对应的索引值。例如,30Hz对应的索引值可以为3,具体30Hz对应的索引值,本申请实施例不作限定。这时,HWC能够设置的索引值的最大值就是被添加到Connector的probed mode列表的数量减一,示例性的,以probed mode列表中的数量为m为例,由于列表从0开始计数,因此,索引值的最大值为m-1。

然而,本申请实施例中,由于面板驱动不会上报30Hz的刷新率,因此,则HWC也获取不到30Hz模式,进而HWC也不会设置30Hz对应的索引值。这时,电子设备可以使用某个大于或等于m的值作为30Hz对应的索引值,并进行备份。

当电子设备处于局部AOD模式时,HWC可以设置60Hz、90Hz等刷新率对应的索引值,但是不会设置30Hz对应的索引值。显示驱动在判断出当前为局部AOD场景后,可以从备份中获取30 Hz对应的模式,并基于30 Hz对应的模式切换屏幕刷新率。这样,可以使得在30 Hz刷新率下没有烧录亮度较高的gamma参数的情况下,当电子设备处于局部AOD场景时,不论用户空间切换哪个帧率模式,电子设备的屏幕均可以正常显示。

电子设备可以根据当前环境光亮度来设置30 Hz对应的gamma参数。例如,若当前环境光亮度相对较亮,则电子设备可以使用60nit对应的gamma参数;若当前环境光亮度相对较暗,则电子设备可以使用5 nit或30 nit的gamma参数;具体电子设备使用哪一套gamma参数,本申请实施例不作限定。

S1104、HWC向显示驱动送显。

HWC可以执行crtc_commit()函数,向显示驱动送显。可能的实现中,每一帧图像的送显需要执行一次crtc_commit()函数。

可以理解的是,与图9对应的实施例中的流程类似,在HWC向显示驱动送显的流程中,可以经过libdrm。例如,HWC可以先调用libdrm提供的函数,进而libdrm可以调用显示驱动的函数。

S1105、显示驱动获取刷新率对应的索引值。

显示驱动通过mode_switch()函数可以获取到刷新率对应的索引值,即DISP_MODE_IDX字段,并执行步骤S1106。

S1106、显示驱动获取有效的刷新率模式。

显示驱动可以向get_available_mode()函数传递入参DISP_MODE_IDX,并执行该函数,具体代码可以包括get_available_mode(DISP_MODE_IDX)。

通过该函数,显示驱动可以根据DISP_MODE_IDX字段判断对应的刷新率。例如,若DISP_MODE_IDX字段为0,则显示驱动可以判断对应的刷新率为60Hz;若DISP_MODE_IDX字段为2,则显示驱动可以判断对应的刷新率为90Hz;若DISP_MODE_IDX字段为1,则显示驱动可以判断对应的刷新率为120Hz;此外,若当前电子设备为AOD场景或需要较低刷新率的场景,则显示驱动可以使用30Hz刷新率,并执行步骤S1107。

S1107、显示驱动切换刷新率。

显示驱动可以执行mode_switch_fps_change()函数,指示面板驱动将屏幕刷新率设置为60Hz,显示驱动还可以更新CRTC中的相关参数,以及向IC下发对应的刷新率模式,从而实现刷新率的切换,并执行步骤S1108。可以理解的是,对于video方式,显示驱动也需要切换刷新率为60Hz。

S1108、显示驱动返回结果。

在显示驱动和面板驱动切换刷新率成功后,显示驱动可以向HWC返回送显状态(commit state)。该送显状态可以包括送显成功和送显失败。其中,该送显状态可以用整型、字符串或布尔型等数据类型标识。

示例性的,以送显状态的数据类型为整型为例,送显成功时可以用0标识,送显失败时可以用非0的整型数据标识;或者,送显成功时可以用其他整型数据标识,送显失败时可以用除该整型数据之外的数据标识,具体送显状态的标识方式,本申请实施例不作限定。

本申请实施例中,由于电子设备开机过程中,显示驱动没有将30Hz上报给用户空间的帧率管控模块,帧率管控模块无法感知30Hz,因此,帧率管控模块会在其他刷新率对应的模式之间进行切换。当电子设备切换至局部AOD场景时,显示驱动可以判断当前是局部AOD场景,屏幕需要切换至30Hz。但是,显示驱动可以指示面板驱动使用备份中的30Hz,从而实现在局部AOD场景下,用户空间的帧率管控模块在不切换30Hz的情况下,内核空间的显示驱动可以切换屏幕的刷新率到30Hz,且使得屏幕既可以正常显示,又可以节省电量。

下面通过具体的实施例对本申请实施例的方法进行详细说明。下面的实施例可以相互结合或独立实施,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

图12示出了本申请实施例的刷新率的控制方法。方法包括:

S1201、电子设备进入息屏场景,电子设备的第一模块向电子设备的第二模块传递第一消息,第一消息用于指示第二模块设置电子设备的屏幕的刷新率为第一刷新率。

本申请实施例中,息屏场景可以理解为上述实施例中的息屏显示AOD场景。

第一模块可以用于设置电子设备屏幕的刷新率,例如第一模块可以包括电子设备中的帧率管控模块AGP。第二模块可以用于设置屏幕的刷新率和屏幕的亮度,例如第二模块可以包括电子设备中的面板驱动。具体帧率管控模块AGP和面板驱动的相关介绍可以参照上述图2对应实施例中的相关描述,帧率管控模块AGP和面板驱动之间的交互过程可以参照上述图7、图8、图9,和/或图11对应实施例中的相关描述,不再赘述。

第一刷新率可以理解为可以在亮屏场景下使用的刷新率,若电子设备在息屏场景时采用第一刷新率,则电子设备的功耗相对较高,较为耗电。例如,第一刷新率可以包括60Hz、90Hz或120Hz等,本申请实施例不作限定。

S1202、第二模块设置屏幕的刷新率为第二刷新率,以及设置屏幕的亮度为第一亮度,其中,第二刷新率小于第一刷新率,第一模块未记录有第二刷新率,第二模块记录有第二刷新率,第一亮度为屏幕在第二刷新率时所支持的亮度。

本申请实施例中,第二刷新率可以理解为可以在息屏场景或需要刷新率较低的场景下使用的刷新率。若电子设备在息屏场景时采用第二刷新率,则电子设备的功耗相对较低,较为省电。例如,第二刷新率可以包括30Hz等,本申请实施例不作限定。

第一亮度可以是在息屏场景下,电子设备根据当前所处的环境光亮度确定的,屏幕在第二刷新率时所支持的亮度中包括第一亮度,例如第一亮度可以包括5nit、30nit或60nit等,本申请实施例不作限定。具体根据环境光亮度设置第一亮度的方式,可以参照图7对应实施例,和/或图11对应实施例的步骤S1103中的相关描述,不再赘述。

若屏幕在第二刷新率下,只烧录有部分较低亮度对应的gamma参数,则第二模块可以不向第一模块上报第二刷新率,而是将该第二刷新率等信息进行备份,当电子设备处于息屏等需要低分辨率的场景时,第二模块可以使用备份中的第二刷新率设置屏幕的刷新率。这样,一方面,第一模块获取不到该第二刷新率,则不会切换到该第二刷新率对应的帧率,使得电子设备不会由于该第二刷新率没有对应的较高亮度的gamma参数而导致的屏幕显示异常;另一方面,电子设备在判断处于亮度较低的场景时,例如AOD场景,电子设备可以使用备份中的第二刷新率,从而使得屏幕既可以正常显示,又可以节省电量。

可选的,在图12对应的实施例的基础上,方法还可以包括:电子设备进入亮屏场景,第一模块向第二模块传递第二消息,第二消息用于指示第二模块设置屏幕的刷新率为第三刷新率;第二模块设置屏幕的刷新率为第三刷新率,以及设置屏幕的亮度为第二亮度,其中,第二亮度为屏幕在第三刷新率时所支持的亮度。

本申请实施例中,第三刷新率可以理解为可以在亮屏场景下使用的刷新率,例如,第三刷新率可以包括60Hz、90Hz或120Hz等,本申请实施例不作限定。第三刷新率和第一刷新率可以相同,也可以不同。

第二亮度可以是电子设备根据当前所处的环境光亮度确定的,屏幕在第三刷新率时所支持的亮度中包括第二亮度,例如第二亮度可以包括5nit、10nit 、30nit、60nit、90nit、200nit或600nit等,本申请实施例不作限定。具体电子设备根据环境光亮度设置亮度的方式,可以参照上述图11对应实施例的步骤S1101中的相关描述,不再赘述。

在电子设备处于亮屏场景时,由于屏幕烧录有第三刷新率下各个亮度的gamma参数,不论当前是什么环境光亮度,都可以有刷新率对应的亮度,这样,可以使得电子设备的屏幕所显示的刷新率为第一模块所设置的刷新率,且不会出现屏幕显示异常的问题。

可选的,在图12对应的实施例的基础上,方法还可以包括:在电子设备启动的过程中,第二模块向第一模块上报屏幕所支持的刷新率;其中,第二模块向第一模块上报屏幕所支持的刷新率中,不包括第二刷新率,第二模块在目标缓存中保存有第二刷新率。

本申请实施例中,第二模块向第一模块上报屏幕所支持的刷新率的过程可以参照图8和/或图9对应实施例中的相关描述,不再赘述。其中,第二模块在目标缓存中保存有第二刷新率也可以理解为第二模块将第二刷新率备份。具体第二刷新率备份的具体位置,可以由电子设备预先设置,例如第二刷新率可以存储在内核空间的某个路径下,包括存储在显示驱动中的某个路径下,或者存储在DRM驱动中的某个路径下,本申请实施例不作限定。

这样,当电子设备处于亮度较低的场景时,例如息屏场景,电子设备可以使用备份中的刷新率,从而使得屏幕可以正常显示,还可以节省电量。

可选的,在图12对应的实施例的基础上,第二模块设置屏幕的刷新率为第二刷新率,可以包括:第二模块基于目标缓存中保存的第二刷新率,设置屏幕的刷新率为第二刷新率。

本申请实施例中,对于某个可能导致屏幕显示异常的刷新率,第二模块可以不将该刷新率上报给第一模块,第二模块可以将该刷新率进行备份。这样,电子设备不会由于第一模块设置该第二刷新率所不支持的亮度而导致屏幕显示异常,使得屏幕能够正常显示,提升屏幕显示的稳定性。

可选的,在图12对应的实施例的基础上,电子设备还包括第三模块,第三模块用于检测电子设备所处的场景,第二模块设置屏幕的刷新率为第二刷新率之前,还可以包括:当第三模块检测电子设备进入息屏场景时,设置电子设备所处的场景对应的标识为第一标识,第一标识用于表示电子设备处于息屏场景;基于第二模块获取第一标识,并基于第一标识从目标缓存中获取第二刷新率。

本申请实施例中,第三模块可以包括图11对应实施例中的电源管理模块。具体电源管理模块检测电子设备所处的场景的实现方式可以参照步骤S1101中的相关描述,不再赘述。

电子设备所处的场景对应的标识可以用图11对应实施例中的power_mode字段表示,第一标识可以理解为power_mode字段的取值,例如第一标识可以包括图11对应实施例中power_mode字段取值为1的情况。具体第一标识的取值,本申请实施例不作限定。

当电子设备处于息屏等需要低分辨率的场景时,第二模块可以基于缓存中备份的第二刷新率设置屏幕的刷新率。这样,电子设备可以在低分辨率场景中,例如息屏场景,使用缓存中备份的第二刷新率,使得屏幕既能够正常显示,又可以节省电量。

可选的,在图12对应的实施例的基础上,电子设备中保存有环境光亮度与第二刷新率对应的亮度之间的对应关系,在对应关系中,环境光亮度越大,第二刷新率对应的亮度越大,第二模块设置屏幕的刷新率为第二刷新率,以及设置屏幕的亮度为第一亮度之前,还可以包括:基于第二模块获取第一环境光亮度;第二模块设置屏幕的刷新率为第二刷新率,以及设置屏幕的亮度为第一亮度,可以包括:第二模块设置屏幕的刷新率为第二刷新率,以及设置屏幕的亮度为第一亮度,其中,第一亮度为在对应关系中基于第一环境光亮度得到的。

本申请实施例中,第一环境光亮度可以为对应关系中任一环境光亮度,可以为较暗的环境光亮度,也可以为较亮的环境光亮度。

基于环境光亮度设置刷新率的实现方式可以参照图7和/或图11对应实施例中的相关描述,不再赘述。这样,第二模块可以根据电子设备当前的环境光亮度设置更为合适的屏幕亮度,提升用户体验。

可选的,在图12对应的实施例的基础上,电子设备还包括第四模块和第五模块,第四模块用于进行窗口的合成和显示,还用于为SurfaceFlinger服务提供硬件支持,第五模块用于和第二模块进行数据交互,电子设备进入息屏场景,第一模块向第二模块传递第一消息,可以包括:当电子设备进入息屏场景时,基于第一模块调用第一函数,向SurfaceFlinger服务传递第一消息;基于SurfaceFlinger服务调用第二函数,向第四模块传递第一消息,并指示第四模块执行帧率切换流程;基于第四模块调用第三函数,设置第一消息中第一刷新率对应的索引值,并调用第四函数,向第五模块传递第一刷新率对应的索引值,指示第五模块执行送显流程;基于第五模块调用第五函数,获取第一刷新率对应的索引值,并基于第一刷新率对应的索引值确定第一刷新率;在电子设备进入息屏场景的情况下,第五模块调用第六函数,向第二模块传递第二刷新率。

本申请实施例中,第四模块可以包括图11对应实施例中的硬件组合抽象层HWC,第五模块可以包括图11对应实施例中的显示驱动,不再赘述。

具体的,第一模块调用第一函数的实现可以参照步骤S1101中步骤S1101的相关描述,第一函数可以包括setRefreshRate()函数。SurfaceFlinger服务调用第二函数的实现可以参照步骤S1102中的相关描述,第二函数可以包括setActiveMode()函数。第四模块调用第三函数的实现可以参照步骤S1103中的相关描述,第三函数可以包括addProperty()函数。第四模块调用第四函数的实现可以参照步骤S1104中的相关描述,第四函数可以包括crtc_commit()函数。第五模块调用第五函数的实现可以参照步骤S1105中的相关描述,第五函数可以包括mode_switch()函数。第五模块调用第六函数的实现可以参照步骤S1106和步骤S1107中的相关描述,第六函数可以包括mode_switch_fps_change()函数,不再赘述。

由于电子设备开机过程中,显示驱动没有将第二刷新率上报给第一模块,第一模块无法感知第二刷新率,因此,第一模块会在其他刷新率对应的模式之间进行切换。当电子设备切换至息屏场景时,屏幕需要切换至第二刷新率。这样,第二模块可以使用备份中的第二刷新率,从而实现在息屏场景下,第一模块在不切换第二刷新率的情况下,第二模块可以切换屏幕的刷新率到第二刷新率,且使得屏幕既可以正常显示,又可以节省电量。

可选的,在图12对应的实施例的基础上,电子设备还包括第六模块,第六模块用于提供与显示相关的库函数,第一模块向第二模块传递第一消息之前,还可以包括:基于第四模块调用第七函数,指示第六模块获取硬件组合抽象层DRM连接器;基于第六模块调用第八函数,指示第五模块获取DRM连接器;基于第五模块获取DRM连接器,并调用第九函数,指示第二模块获取屏幕所支持的刷新率;基于第二模块调用第十函数,从屏幕中获取屏幕所支持的刷新率;基于第五模块、第六模块和第四模块,向第一模块返回屏幕所支持的刷新率,其中,第一模块获取的屏幕所支持的刷新率中,不包括第二刷新率。

本申请实施例中,第六模块可以包括图9对应实施例中的libdrm库,不再赘述。

具体的,第四模块调用第七函数的实现可以参照图9对应实施例中的(2)DRM连接器的获取中的相关描述,第七函数可以包括drmModeGetConnector()函数。第六模块调用第八函数的实现可以参照图9对应实施例中的(2)DRM连接器的获取中的相关描述,第八函数可以包括drmIoctl()函数。第五模块调用第九函数的实现可以参照图9对应实施例中的(2)DRM连接器的获取中的相关描述,第九函数可以包括drm_panel_get_modes()函数。第二模块调用第十函数的实现可以参照图9对应实施例中的(3)面板驱动所支持的刷新率的获取中的相关描述,第十函数可以包括lcm_get_modes()函数,不再赘述。

各个模块间可以通过函数的调用实现模块间的数据交互,这样,第一模块可以获取到屏幕所烧录的刷新率,即面板驱动所支持的刷新率模式,从而依据第二模块所上报的刷新率进行帧率的设置,使得屏幕可以显示所支持的刷新率,减少屏幕出现异常的情况。

可选的,在图12对应的实施例的基础上,第一模块包括帧率管控模块AGP,第二模块包括面板驱动,第四模块包括硬件组合抽象层HWC,第五模块包括显示驱动,和/或,第六模块包括libdrm库。

本申请实施例中,各个模块的介绍可以参照图2对应实施例中的相关描述,不再赘述。通过模块间的交互,例如包括SurfaceFlinger服务可以调用HWC提供的函数,HWC可以调用libdrm提供的函数,libdrm可以调用DRM驱动的相关函数,DRM驱动可以与面板驱动进行交互,从而实现帧率到刷新率的切换。

这样,虽然第一模块获取不到第二刷新率,但是在切换刷新率时,第二模块却可以在特定场景中,例如息屏场景,将刷新率切换至第二刷新率。从而既可以减少亮屏场景下第一模块误切换至第二刷新率导致屏幕显示异常的情况,也使得在息屏场景中可以切换到第二刷新率,屏幕能够正常显示,减少电子设备的功耗。

可选的,在图12对应的实施例的基础上,第一函数包括setRefreshRate()函数,第二函数包括setActiveMode()函数,第三函数包括addProperty()函数,第四函数包括crtc_commit()函数,第五函数包括mode_switch()函数,第六函数包括mode_switch_fps_change()函数,第七函数包括drmModeGetConnector()函数,第八函数包括drmIoctl()函数,第九函数包括drm_panel_get_modes()函数,和/或,第十函数包括lcm_get_modes()函数。

本申请实施例中,各个模块可以通过定义不同的函数从而实现相应不同的功能,这样,各个模块间可以通过函数的调用实现模块间的数据交互,各个模块还可以通过函数进行参数的传递和/或参数的获取,从代码逻辑上方便了本申请实施例的方式的实现。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对实现该方法的装置进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

如图13示为本申请实施例提供的一种芯片的结构示意图。芯片1300包括一个或两个以上(包括两个)处理器1301、通信线路1302、通信接口1303和存储器1304。

在一些实施方式中,存储器1304存储了如下的元素:可执行模块或者数据结构,或者他们的子集,或者他们的扩展集。

上述本申请实施例描述的方法可以应用于处理器1301中,或者由处理器1301实现。处理器1301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1301可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器1301可以实现或者执行本申请实施例中的公开的各处理相关的方法、步骤及逻辑框图。

结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。其中,软件模块可以位于随机存储器、只读存储器、可编程只读存储器或带电可擦写可编程存储器(electricallyerasable programmable read only memory,EEPROM)等本领域成熟的存储介质中。该存储介质位于存储器1304,处理器1301读取存储器1304中的信息,结合其硬件完成上述方法的步骤。

处理器1301、存储器1304以及通信接口1303之间可以通过通信线路1302进行通信。

在上述实施例中,存储器存储的供处理器执行的指令可以采用计算机程序产品的形式实现。其中,计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。

本申请实施例还提供一种计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站的站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站的站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。

本申请实施例还提供一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。

作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compactdisc read-only memory,CD-ROM)、RAM、ROM、EEPROM或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,DSL或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(CD),激光盘,光盘,数字通用光盘(digital versatile disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

相关技术
  • 一种拉丝机控制的方法、驱动控制系统及相关装置
  • 响铃控制方法及相关装置
  • 电磁干扰控制方法及相关装置
  • 一种车辆速度控制方法及其相关装置
  • 拍照控制方法及相关装置
  • 刷新率调整方法及相关装置
  • 自适应刷新率的场色序显示驱动方法、装置及相关设备
技术分类

06120116626104