显示切换控制方法及系统、电子设备和存储介质与流程

文档序号:30087450发布日期:2022-05-18 06:21阅读:64来源:国知局
显示切换控制方法及系统、电子设备和存储介质与流程

1.本技术涉及显示控制技术领域,更具体而言,涉及一种显示切换控制方法及系统、电子设备和存储介质。


背景技术:

2.现有技术中,电子产品对于显示的清晰度越来越高,4k、8k一系列高清显示陆续而出,特别地,高清的画面在虚拟现实技术(vr)中能够给人很好的体验,但在显示的过程中,并不是所有画面都需要那么高的清晰度进行显示,有些画面,比如静止的场景画面,并不需要很高的分辨率去支撑,那么所有的画面都以最高标准去显示,就会造成资源,功耗浪费。


技术实现要素:

3.本技术实施方式提供一种显示切换控制方法及系统、电子设备和存储介质。
4.本技术实施方式提供的显示切换控制方法包括:在内核层建立第一缓存和第二缓存并初始化所述第一缓存;在用户层建立第一服务进程和第二服务进程,控制第一服务进程根据所述第一缓存的显示参数对第一图像进行渲染并通过所述第一缓存传输到显示屏进行显示;和根据切换指令初始化所述第二缓存,控制第二服务进程根据所述控制指令的显示参数对第二图像进行渲染并通过所述第二缓存传输到所述显示屏以使所述显示屏切换显示所述第二图像。
5.在某些实施方式中,所述在用户层建立第一服务进程和第二服务进程,控制第一服务进程根据所述第一缓存的显示参数对第一图像进行渲染并通过所述第一缓存传输到显示屏进行显示包括:启动进程管理中心;控制所述进程管理中心创建所述第一服务进程和第二服务进程;和控制所述进程管理中心创建广播通讯接口进程以获取所述显示参数。
6.在某些实施方式中,所述在用户层建立第一服务进程和第二服务进程,控制第一服务进程根据所述第一缓存的显示参数对第一图像进行渲染并通过所述第一缓存传输到显示屏进行显示包括:控制所述第一服务进程按顺序启动surfaceflinger进程、opengl进程和渲染服务进程;和根据所述surfaceflinger进程、所述opengl进程、所述渲染服务进程和所述第一缓存的显示参数对所述第一图像进行渲染。
7.在某些实施方式中,显示切换控制方法包括:根据应用需求确定触发事件,所述触发事件包括属性值和显示参数,所述触发事件的属性值与启动服务项对应;和根据所述触发事件生成所述切换指令。
8.在某些实施方式中,根据切换指令初始化所述第二缓存,控制第二服务进程根据所述第二缓存的显示参数对第二图像进行渲染并通过所述第一缓存传输到所述显示屏以切换所述显示屏显示所述第二图像包括:根据所述切换指令将第一缓存中后缓存的渲染工作转移到第二缓存中的后缓存进行渲染;和将帧缓存地址切换到第二缓存并将第二缓存中后缓存渲染的图像送到第二缓存的前缓存。
9.在某些实施方式中,根据切换指令初始化所述第二缓存,控制第二服务进程根据
所述第二缓存的显示参数对第二图像进行渲染并通过所述第二缓存传输到所述显示屏以切换所述显示屏显示所述第二图像包括:根据所述切换指令重新初始化所述显示屏;和将所述第二缓存中前缓存的所述第二图像传输到所述显示屏进行显示。
10.在某些实施方式中,所述显示切换控制方法包括:根据第一时钟单元信号控制所述显示屏显示所述第一图像;和根据所述切换指令将所述第一时钟单元信号切换到第二时钟单元信号以根据所述第二时钟单元信号控制所述显示屏显示所述第二图像。
11.本技术实施方式提供的显示切换控制系统,包括初始化模块、第一控制模块和第二控制模块,所述初始化模块用于在内核层建立第一缓存和第二缓存并初始化所述第一缓存;所述第一控制模块用于在用户层建立第一服务进程和第二服务进程,控制第一服务进程根据所述第一缓存的显示参数对第一图像进行渲染并通过所述第一缓存传输到显示屏进行显示;和所述第二控制模块用于根据切换指令初始化所述第二缓存,控制第二服务进程根据所述控制指令的显示参数对第二图像进行渲染并通过所述第二缓存传输到所述显示屏以切换所述显示屏显示所述第二图像。
12.本技术实施方式提供的电子设备包括处理器、存储器和存储在存储器上的计算机程序,所述计算机程序被所述处理器执行时实现上述任一实施方式所述的显示切换控制方法。
13.本技术实施方式提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时实现上述任一实施方式所述的显示切换控制方法。
14.本技术实施方式的显示切换控制方法、显示切换控制系统、电子设备和存储介质中,通过修改系统引导程序的引导进程,在开机启动时会通过系统引导程序的引导,同时在内核层创建两个帧缓存,并将第一缓存作为主帧缓存进行初始化,然后在用户层建立与两个帧缓存对应的服务进程,其中,第一服务进程随系统启动,第二服务进程在应用触发变更产生切换指令时启动,初始化第二缓存并渲染第二图像,第二图像渲染完成后,控制显示屏切换显示第二图像。
15.本技术的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实施方式的实践了解到。
附图说明
16.本技术的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
17.图1是本技术实施方式的显示切换控制方法的流程示意图。
18.图2是本技术实施方式的显示切换系统的模块示意图。
19.图3是本技术实施方式的正常显示流程示意图。
20.图4是本技术实施方式的显示切换流程图。
21.图5是本技术实施方式的显示切换控制方法的另一流程示意图。
22.图6是本技术实施方式的显示切换控制方法的又一流程示意图。
23.图7是本技术实施方式的显示切换控制方法的再一流程示意图。
24.图8是本技术实施方式的显示切换控制方法的再一流程示意图。
25.图9是本技术实施方式的显示切换控制方法的再一流程示意图。
26.图10是本技术实施方式的显示切换控制方法的再一流程示意图。
27.图11是本技术实施方式的电子设备的模块示意图。
28.主要元件符号说明:
29.显示切换控制系统10、初始化模块11、第一控制模块12、第二控制模块13、触发模块14、时钟控制模块15、电子设备20、处理器22、存储器24、计算机程序242。
具体实施方式
30.下面详细描述本技术的实施方式,实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。
31.基于安卓(android)系统的显示控制方案中,通常采用的是单帧缓存(framebuffer)架构,系统开机后会在内核层创建一个帧缓存作为虚拟显卡,用于提供用户层绘图使用的窗口;帧缓存创建完成后,系统启动用户层进程,由init进程安排启动线程,按顺序启动surfaceflinger以及opengl以从帧缓存中获取画布大小的参数并在画布上绘制实现图像渲染,然后将渲染好的图像通过帧缓存传输到显示屏进行显示。然而,这样的方案在需要切换显示分辨率时,需要重启进程,重新配置帧缓存以及显示屏,这就导致显示系统有一段时间没有显示画面,不能实现分辨率的实时变换。
32.本技术实施方式提供一种显示切换控制方法用于显示分辨率的切换控制,通过双帧缓存的方式实现显示分辨率的实时变换,使得显示屏在显示分辨率切换过程中画面可以保持流畅显示,从而可以根据画面显示需求选择合适的分辨率进行显示,在需要高清时进行高清显示,需要低清时进行低清显示,在保证画面正常显示的同时可以节省资源。
33.本技术实施方式的显示切换控制方法可以应用于本技术实施方式的显示切换控制系统10,也即是说,本技术实施方式的显示切换控制系统10可以采用本技术实施方式的显示切换控制方法以实现显示分辨率的实时变换。
34.在某些实施方式中,显示切换控制方法包括:
35.步骤s1,在内核层建立第一缓存和第二缓存并初始化第一缓存;
36.步骤s3,在用户层建立第一服务进程和第二服务进程,控制第一服务进程根据第一缓存的显示参数对第一图像进行渲染并通过第一缓存传输到显示屏进行显示;和
37.步骤s5,根据切换指令初始化第二缓存,控制第二服务进程根据控制指令的显示参数对第二图像进行渲染并通过第二缓存传输到显示屏以使显示屏切换显示第二图像。
38.相应的,显示切换控制系统10包括初始化模块11、第一控制模块12和第二控制模块13,步骤s1可以由初始化模块11实现,步骤s3可以由第一控制模块12实现,步骤s5可以由第二控制模块13实现。也即是说,初始化模块11可以用于在内核层建立第一缓存和第二缓存并初始化第一缓存。第一控制模块12可以用于在用户层建立第一服务进程和第二服务进程,控制第一服务进程根据第一缓存的显示参数对第一图像进行渲染并通过第一缓存传输到显示屏进行显示。第二控制模块13用于根据切换指令初始化第二缓存,控制第二服务进程根据控制指令的显示参数对第二图像进行渲染并通过第二缓存传输到显示屏以使显示屏切换显示第二图像。
39.本技术实施方式的显示切换控制方法和显示切换控制系统10中,通过修改系统引
导程序(bootloader)的引导进程,在开机启动时会通过系统引导程序的引导,同时在内核层创建两个帧缓存(即第一缓存和第二缓存),并将第一缓存作为主帧缓存(main_framebuffer)进行初始化,然后在用户层建立与两个帧缓存对应的服务进程,其中,第一服务进程随系统启动,第二服务进程在应用触发变更产生切换指令时启动,初始化第二缓存并渲染第二图像,第二图像渲染完成后,控制显示屏切换显示第二图像。
40.需要说明的是,第一缓存和第二缓存建立好之后,分别赋予这两个帧缓存两个内核地址,比如第一缓存的地址可以是0x00001e,第二缓存的地址可以是0x00001f。
41.进一步地,第二服务进程启动时,系统进行双线程操作,此时,初始化第二缓存并渲染第二图像的过程可以在后台进行,在第二图像渲染完成后再触发更改显示屏配置从而输出第二图像,使得第一图像和第二图像可以无缝切换。例如,第一图像和第二图像的分辨率不同,应用可以触发分辨率切换指令,从而将显示屏显示的第一图像切换为第二图像从而实现分辨率的实时变换。
42.在某些实施方式中,步骤s3包括:
43.步骤s31,启动进程管理中心;和
44.步骤s32,控制进程管理中心创建第一服务进程和第二服务进程;和
45.步骤s33,控制进程管理中心创建广播通讯接口进程以获取显示参数。
46.具体地,步骤s31、步骤s32和步骤s33可以由第一控制模块12实现,也即是说,第一控制模块12可以用于启动进程管理中心;及用于控制进程管理中心创建第一服务进程和第二服务进程,并使待触发进程进入后台运行;以及用于控制进程管理中心创建广播通讯接口进程以获取显示参数。
47.对于安卓系统,除开系统引导进程、init进程等,绝大部分进程是由进程管理中心(zygote)创建,启动进程管理中心并创建第一服务进程和第二服务进程,其中,第一服务进程为正常启动服务进程,第一服务进程可以随系统启动以与第一缓存一同实现第一图像的绘制渲染,第二服务进程为待触发服务进程,第二服务进程可以在应用触发相应事件产生切换控制指令时启动从而与第二缓存一通实现第二图像的绘制渲染。
48.在步骤s33中,创建通信接口进程为socket广播通讯接口进程,socket广播通讯接口进程可以用于实时监控并报告接口中的数据变换。在第一服务进程启动后,会通过socket广播通讯接口进程读取到第一缓存所匹配的显示参数。
49.在某些实施方式中,步骤s3包括:
50.步骤s34,控制第一服务进程按顺序启动surfaceflinger进程、opengl进程和渲染服务进程;和
51.步骤s35,根据surfaceflinger进程、opengl进程、渲染服务进程和第一缓存的显示参数对第一图像进行渲染。
52.具体地,步骤s34和步骤s35可以由第一控制模块12实现,也即是说,第一控制模块12可以用于控制第一服务进程按顺序启动surfaceflinger进程、opengl进程和渲染服务进程,以及用于通过surfaceflinger进程、opengl进程和渲染服务进程根据第一缓存的显示参数对第一图像进行渲染。
53.如此,可以通过surfaceflinger进程创建,然后通过opengl进程创建纹理,在surface对象上循环绘制第一图像,再通过渲染服务进程渲染到第一缓存中,从而通过显示
屏实现第一图像的显示。具体地,surfaceflinger进程和opengl进程相当于显示系统渲染图像的画手和画笔、画布,可以由socket广播通讯接口进程从内核层第一显示帧中读取到显示参数以规定这个画布大小。
54.在某些实施方式中,显示切换控制方法包括:
55.步骤s41,根据应用需求确定触发事件(case);和
56.步骤s42,根据触发事件生成切换指令。
57.其中,所述触发事件包括属性值和显示参数,所述触发事件的属性值与启动服务项对应。
58.具体地,显示切换控制系统10包括触发模块14,步骤s41和步骤s42可以由触发模块14实现。也即是说,触发模块14可以用于根据应用需求确定触发事件,以及用于根据触发事件生成切换指令。
59.可以理解,当用户层的应用需要进行分辨率切换时,根据要切换到的目标分辨率的不同,可以选择不同的显示参数,从而可以设置多个触发事件。对于用户层,不同的触发事件被配置为不同的属性值,这些属性值对应不同的服务启动项。对于内核层,不同的触发事件可以对应不同的显示参数。当用户层确认触发事件后,整个系统的用户层、内核层会同时进行触发事件匹配以及初始化参数,并生成对应的切换指令。
60.在某些实施方式中,步骤s5包括:
61.步骤s51,根据切换指令将第一缓存中后缓存的渲染工作转移到第二缓存中的后缓存进行渲染;和
62.步骤s52,将帧缓存地址切换到第二缓存并将第二缓存中后缓存渲染的图像送到第二缓存的前缓存。
63.具体地,步骤s51和步骤s52可以由第二控制模块13实现。也即是说,第二控制模块13可以用于根据切换指令将第一缓存中后缓存的渲染工作转移到第二缓存中的后缓存进行渲染,以及用于将主帧缓存地址切换到第二缓存并将第二缓存中后缓存渲染的图像送到第二缓存的前缓存。
64.在步骤s51中,第二控制模块13可以启动已经创建好的第二服务进程,并使第二服务进程进入后台运行,第二服务进程启动后会新创建一个surfaceflinger进程,然后surfaceflinger进程会启动新的opengl,同时通过socket广播通讯接口进程读取到触发事件所匹配的显示参数,并完成opengl进程画布大小的初始化配置。此外,socket广播通讯接口进程可以将触发事件传递给内核层,内核层进行触发事件匹配从而将触发事件中的参数赋值给帧缓存驱动,帧缓存驱动会对第二缓存进行初始化配置,配置新的参数大小的视窗(windows)。
65.待底层,用户层都初始化完成后,上报vsync信号,系统会将第一缓存的后缓存(back_framebuffer)的渲染工作转移到第一缓存的后缓存中进行渲染。
66.步骤s52中,待第二缓存的后缓存渲染完成后,内核层会将主帧缓存的地址切换为第二缓存的地址,同时将渲染完的第二图像送到第二缓存的前缓存(front_framebuffer),同时上报vsync信号给底层从而控制底层显示第二图像。
67.在某些实施方式中,步骤s5包括:
68.步骤s53,根据切换指令重新初始化显示屏;和
69.步骤s54,将第二缓存中前缓存的第二图像传输到显示屏进行显示。
70.具体地,步骤s53和步骤s54可以由第二控制模块13实现。也即是说,第二控制模块13可以用于根据切换指令重新初始化显示屏,以及用于将第二缓存中前缓存的第二图像传输到显示屏进行显示。
71.需要说明的是,本技术实施方式的显示屏可以是在带电的时候支持不黑屏初始化操作的显示屏。如此,底层接到vsync信号后,触发之前所匹配到的触发事件并重新初始化显示屏,然后将第二缓存中前缓存渲染好的第二图像送出到显示屏进行显示。
72.在某些实施方式中,显示切换控制方法包括:
73.步骤s30,根据第一时钟单元信号控制显示屏显示第一图像;和
74.步骤s50,根据切换指令将第一时钟单元信号切换到第二时钟单元信号以根据第二时钟单元信号控制显示屏显示第二图像。
75.具体地,显示切换控制系统10包括时钟控制模块15,步骤s30和步骤s50可以由时钟控制模块15实现。也即是说,时钟控制模块15可以用于根据第一时钟单元信号控制显示屏显示第一图像,以及用于根据切换指令将第一时钟单元信号切换到第二时钟单元信号以根据第二时钟单元信号控制显示屏显示第二图像。
76.在底层切换分辨率时,还需要时钟单元的支持,本技术实施方式通过双时钟单元配置,加入一个时钟单元,这个时钟单元在需要进行显示切换控制时启动,不需要进行显示切换控制时暂停。
77.上述描述示出了从第一缓存切换到第二缓存的实施方式,当再需要进行切换时,本技术还可以从第二缓存切换到第一缓存,可以理解,从第二缓存切换到第一缓存可以与第一缓存切换到第二缓存类似,在此不做详细展开。
78.请参阅图,本技术实施方式提供一种电子设备20包括处理器22、存储器24和存储在存储器24上的计算机程序242,计算机程序242被处理器22执行时实现上述任一实施方式的显示切换控制方法。
79.在一个例子中,计算机程序242被处理器22执行时实现以下步骤:
80.步骤s1,在内核层建立第一缓存和第二缓存并初始化第一缓存;
81.步骤s3,在用户层建立第一服务进程和第二服务进程,控制第一服务进程根据第一缓存的显示参数对第一图像进行渲染并通过第一缓存传输到显示屏进行显示;和
82.步骤s5,根据切换指令初始化第二缓存,控制第二服务进程根据控制指令的显示参数对第二图像进行渲染并通过第二缓存传输到显示屏以使显示屏切换显示第二图像。
83.本技术实施方式的电子设备20,由处理器22执行计算机程序242,通过修改系统引导程序的引导进程,在开机启动时会通过系统引导程序的引导,同时在内核层创建两个帧缓存,并将第一缓存作为主帧缓存进行初始化,然后在用户层建立与两个帧缓存对应的服务进程,其中,第一服务进程随系统启动,第二服务进程在应用触发变更产生切换指令时启动,初始化第二缓存并渲染第二图像,第二图像渲染完成后,控制显示屏切换显示第二图像。
84.具体地,一个或多个处理器22可以通过总线耦合至存储器24,存储器24存储有计算机程序242,通过处理器22运行计算机程序242以执行本技术实施方式的显示切换控制方法,可以实现显示分辨率的实时变换。电子设备20可以通过输入/输出接口连接至显示屏以
显示相应的图像。
85.本技术实施方式提供一种可读存储介质存储有计算机程序,计算机程序被一个或多个处理器执行时实现上述任一实施方式的显示切换控制方法。
86.在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”或“一个例子”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
87.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
88.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
89.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
90.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
91.此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
92.尽管上面已经示出和描述了本技术的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施方式进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1