基于Linux电视的图像显示方法及装置
技术领域
本发明实施例涉及Linux电视技术领域,尤其涉及一种基于Linux电视的图像显示方法及装置。
背景技术
Linux电视是指Linux嵌入式系统的电视,Linux电视的硬件能力通常较差,例如,Linux电视的中央处理器(Central Processing Unit,简称CPU)和图形处理器(GraphicsProcessing Unit,简称GPU)的频率较低、且内核数量较少。
在Linux电视中设置有多个预设的图层,每一个图层用于显示不同类型的窗口。在Linux电视进行图像显示的过程中,按照每一个图层的Z序,对多有的图层进行叠加处理,以得到需要显示的图像,并在电视中显示叠加处理得到的图像。然而,由于Linux电视的硬件能力有限,对所有的图层进行叠加处理需要消耗较多的资源,特别是在显示复杂的UI场景时,会使得Linux电视显示的画面出现卡顿,导致Linux电视的图像显示效果较差。
发明内容
本发明实施例提供一种基于Linux电视的图像显示方法及装置,提高了Linux电视的图像显示效果。
第一方面,本发明实施例提供一种基于Linux电视的图像显示方法,包括:
确定至少一个第一图层上需要显示的窗口数量,所述至少一个第一图层用于显示除系统菜单对应的窗口之外的窗口;
确定第二图层的无刷新时长,所述第二图层用于显示所述系统菜单对应的窗口;
根据所述至少一个第一图层上需要显示的窗口数量和所述第二图层的无刷新时长,在所述至少一个第一图层和所述第二图层中确定待显示图层;
在电视上显示所述待显示图层。
在一种可能的实施方式中,根据所述至少一个第一图层上需要显示的窗口数量和所述第二图层的无刷新时长,在所述至少一个第一图层和所述第二图层中确定待显示图层,包括:
根据所述至少一个第一图层上需要显示的窗口数量,确定所述至少一个第一图层的状态,所述至少一个第一图层的状态包括禁用状态和启用状态;
根据所述第二图层的无刷新时长,确定所述第二图层的状态,所述第二图层的状态包括禁用状态和启用状态;
将所述至少一个第一图层和所述第二图层中处于启动状态的图层确定为所述待显示图层。
在另一种可能的实施方式中,所述根据所述至少一个第一图层上需要显示的窗口数量,确定所述至少一个第一图层的状态,包括:
判断在所述至少一个第一图层上需要显示的窗口数量是否大于0;
若是,则确定所述至少一个第一图层的状态为启用状态;
若否,则确定所述至少一个第一图层的状态为禁用状态。
在另一种可能的实施方式中,所述根据所述第二图层的无刷新时长,确定所述第二图层的状态,包括:
判断所述第二图层的无刷新时长是否大于预设阈值;
若是,则确定所述第二图层的状态为禁用状态;
若否,则确定所述第二图层的状态为启用状态。
在另一种可能的实施方式中,确定至少一个第一图层上需要显示的窗口数量之前,还包括:
确定处于运行状态的应用程序、及所述应用程序对应的Z序范围;
根据所述应用程序对应的Z序范围,在所述至少一个第一图层中确定所述应用程序对应的图层;
在所述应用程序对应的图层上显示所述应用程序对应的窗口。
第二方面,本发明实施例提供一种基于Linux电视的图像显示装置,包括第一确定模块、第二确定模块、第三确定模块和显示模块,其中,
所述第一确定模块用于,确定至少一个第一图层上需要显示的窗口数量,所述至少一个第一图层用于显示除系统菜单对应的窗口之外的窗口;
所述第二确定模块用于,确定第二图层的无刷新时长,所述第二图层用于显示所述系统菜单对应的窗口;
所述第三确定模块用于,根据所述至少一个第一图层上需要显示的窗口数量和所述第二图层的无刷新时长,在所述至少一个第一图层和所述第二图层中确定待显示图层;
所述显示模块用于,在电视上显示所述待显示图层。
在一种可能的实施方式中,所述第三确定模块具体用于:
根据所述至少一个第一图层上需要显示的窗口数量,确定所述至少一个第一图层的状态,所述至少一个第一图层的状态包括禁用状态和启用状态;
根据所述第二图层的无刷新时长,确定所述第二图层的状态,所述第二图层的状态包括禁用状态和启用状态;
将所述至少一个第一图层和所述第二图层中处于启动状态的图层确定为所述待显示图层。
在另一种可能的实施方式中,所述第三确定模块具体用于:
判断在所述至少一个第一图层上需要显示的窗口数量是否大于0;
若是,则确定所述至少一个第一图层的状态为启用状态;
若否,则确定所述至少一个第一图层的状态为禁用状态。
在另一种可能的实施方式中,所述第三确定模块具体用于:
判断所述第二图层的无刷新时长是否大于预设阈值;
若是,则确定所述第二图层的状态为禁用状态;
若否,则确定所述第二图层的状态为启用状态。
在另一种可能的实施方式中,所述装置还包括第四确定模块和第五确定模块,其中,
所述第四确定模块用于,在所述第一确定模块确定至少一个第一图层上需要显示的窗口数量之前,确定处于运行状态的应用程序、及所述应用程序对应的Z序范围;
所述第五确定模块用于,根据所述应用程序对应的Z序范围,在所述至少一个第一图层中确定所述应用程序对应的图层;
所述显示模块还用于,在所述应用程序对应的图层上显示所述应用程序对应的窗口。
本发明实施例提供的基于Linux电视的图像显示方法及装置,可以先确定至少一个第一图层上需要显示的窗口数量、以及第二图层的无刷新时长,根据至少一个第一图层上需要显示的窗口数量和第二图层的无刷新时长,在至少一个第一图层和第二图层中确定待显示图层,并在电视上显示待显示图层。在上述过程中,在进行图像显示时,先在所有的图层(至少一个第一图层和第二图层)中确定待显示图层,并对待显示图层进行叠加处理,以实现在电视上显示待显示图层,无需对所有的图层进行叠加处理,减少了叠加处理的图层的数量,减少了对Linux电视的资源消耗,减少了Linux电视显示的画面出现卡顿的情况,进而提高Linux电视的图像显示效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用场景示意图;
图2为本发明实施例提供的基于Linux电视的图像显示方法的流程示意图;
图3为本发明实施例提供的图层叠加示意图;
图4为本发明实施例提供的基于Linux电视的图像显示装置的结构示意图一;
图5为本发明实施例提供的基于Linux电视的图像显示装置的结构示意图二。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的应用场景示意图。请参见图1,在Linux电视中预设有多个图层,每个图层可以显示不同类型的窗口,例如,图层2用于开机过程中的窗口,窗口1用于显示系统菜单对应的窗口,窗口0用于显示第三方应用程序对应的窗口和字幕窗口。对多个图层进行叠加处理,以得到最终在电视上显示的图像。
在本申请中,在进行图像显示时,根据各个图层中当前需要显示的窗口、以及图层的无刷新时长,确定进行叠加处理的图层。无需对所有的图层进行叠加处理,减少了叠加处理的图层的数量,减少了对Linux电视的资源消耗,减少了Linux电视显示的画面出现卡顿的情况,进而提高Linux电视的图像显示效果。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。
图2为本发明实施例提供的基于Linux电视的图像显示方法的流程示意图。请参见图2,该方法可以包括:
S201、确定至少一个第一图层上需要显示的窗口数量。
本发明实施例的执行主体可以为基于Linux电视的图像显示装置(下文简称图像显示装置),该图像显示装置可以设置在Linux电视中,例如,该图像显示装置可以为设置在Linux电视中的图形管理系统(gfxserver)。可选的,该图像显示装置可以通过软件实现,或者,该图像显示装置可以通过软件和硬件的结合实现。
可选的,第一图层显示的窗口包括除系统菜单对应的窗口之外的任意一个窗口。
可选的,第一图层的数量可以为两个。当然,在实际应用过程中,可以根据实际需要设置第一图层的数量,本发明实施例对此不作具体限定。
例如,当第一图层的数量为两个时,其中一个第一图层可以用于显示开机过程中的窗口,另一个第一图层可以用于显示第三方应用程序对应的窗口和字幕窗口。下面,分别对开机过程中的窗口、第三方应用程序对应的窗口、以及字幕窗口进行说明。
针对开机过程中的窗口:可选的,开机过程中的窗口可以由开机过程中的应用程序进行显示。例如,由开机LOGO应用程序显示开机LOGO,由开机动画应用程序显示开机动画。
例如,在电视开始之后,先启动开机LOGO应用程序,以使电视显示开机LOGO,在开机LOGO显示预设时长(例如,预设时长可以为1秒)之后,退出开机LOGO应用程序,并启动开机动画应用程序,以使电视显示开机动画,在电视开机完成之后,退出开机动画应用程序,以取消显示开机动画。
针对第三方应用程序对应的窗口:第三方应用程序对应的窗口是指第三方应用程序在运行过程中需要显示的窗口。
例如,第三方应用程序可以为视频播放应用程序、音乐播放应用程序等。第三方应用程序对应的窗口可以为第三方应用程序的运行界面等。
针对字幕窗口:字幕窗口通常是电视本地的字幕应用程序显示的窗口,本地的字幕应用程序通常用于显示本地多媒体视频对应的字幕。
例如,当下载到电视本地的多媒体视频中不包括字幕时,本地的字幕应用程序根据下载的多媒体视频,自动下载与之匹配的字幕,并在多媒体视频播放的过程中,自动在电视中显示对应的字幕。
需要说明的是,在实际应用过程中,可以根据实际需要设置第一图层的个数、以及每一个第一图层用于显示的窗口类型,本发明实施例对此不作具体限定。
可选的,在确定至少一个第一图层上需要显示的窗口数量之前,还可以先确定处于运行状态的应用程序、及应用程序对应的Z序范围,根据应用程序对应的Z序范围,在至少一个第一图层中确定应用程序对应的图层,并在应用程序对应的图层上显示应用程序对应的窗口。相应的,可以根据应用程序对应的窗口,确定每一个第一图层上需要显示的窗口数量。
其中,Z序用于指示对窗口进行叠加处理时,窗口所处的位置,Z序越大,窗口所处的位置越靠上。例如,假设窗口1的Z序为2000,窗口2的Z需为1800,则在对窗口1和窗口2进行叠加处理时,窗口1位于窗口2的上方。
在本发明实施例中,每个应用程序对应一个Z序范围,该应用程序对应的所有窗口的Z序在该Z序范围内。例如,假设应用程序对应的Z序范围为0-500,则该应用程序对应的所有窗口的Z序均在0-500之间。
一个图层中可以显示多个应用程序中的窗口,而一个应用程序中的窗口通常会在一个图层中显示。可选的,每个图层也可以有其对应的Z序范围,相应的,可以根据应用程序对应的Z序范围,确定应用程序对应的图层。其中,应用程序对应的图层的Z序范围包括应用程序对应的Z序范围。
S202、确定第二图层的无刷新时长。
可选的,第二图层显示的窗口包括系统菜单对应的窗口。
例如,系统菜单可以包括屏幕设置菜单、色彩设置菜单、音量设置菜单等。
在本发明实施例中,对第二图层执行操作即可使得第二图层刷新。用户可以输入操作以实现对系统菜单进行操作,例如,用户可以通过控制设备(例如遥控器)对系统菜单进行操作,以实现对电视进行配置,进而使得第二图层刷新。电视也可以根据实际情况自动对系统菜单进行操作,例如,电视可以自动对系统菜单进行操作,以实现对电视画面的色彩进行配置,进而使得第二图层刷新。
可选的,可以根据如下可行的实现方式获取第二图层的无刷新时长:获取系统菜单的最后刷新时刻;根据系统菜单的最后刷新时刻,获取第二图层的无刷新时长。
其中,对系统菜单的最后刷新时刻是指最后一次对系统菜单进行操作的时刻。
S203、根据至少一个第一图层上需要显示的窗口数量和第二图层的无刷新时长,在至少一个第一图层和第二图层中确定待显示图层。
可选的,可以通过如下可行的实现方式确定待显示图层:根据至少一个第一图层上需要显示的窗口数量,确定至少一个第一图层的状态,根据第二图层的无刷新时长,确定第二图层的状态,将至少一个第一图层和第二图层中处于启动状态的图层确定为待显示图层,其中,至少一个第一图层的状态包括禁用状态和启用状态,第二图层的状态包括禁用状态和启用状态。
在本发明实施例中,可以为每一个图层设置启动状态和禁用状态,并且可以根据实际情况切换图层的状态。
可选的,针对任意一个第一图层,可以判断在该第一图层上需要显示的窗口数量是否大于0;若是,则确定该第一图层的状态为启用状态;若否,则确定该第一图层的状态为禁用状态。
可选的,可以判断第二图层的无刷新时长是否大于预设阈值;若是,则确定第二图层的状态为禁用状态;若否,则确定所述第二图层的状态为启用状态。
S204、在电视上显示待显示图层。
可选的,若待显示图层的数量为1个,则可以直接在电视上显示待显示图层,若待显示图层的数量为多个,则可以对多个待显示图层进行叠加处理,并在电视上显示叠加处理后的图层。
需要说明的是,可以参见现有技术中的方法对待显示图层进行叠加处理,本发明实施例对此不作具体限定。
可选的,当电视还需要播放视频时,则电视可以对视频和待显示图层进行叠加处理,以使电视可以同时显示待显示图层和视频。
本发明实施例提供的基于Linux电视的图像显示方法,可以先确定至少一个第一图层上需要显示的窗口数量、以及第二图层的无刷新时长,根据至少一个第一图层上需要显示的窗口数量和第二图层的无刷新时长,在至少一个第一图层和第二图层中确定待显示图层,并在电视上显示待显示图层。在上述过程中,在进行图像显示时,先在所有的图层(至少一个第一图层和第二图层)中确定待显示图层,并对待显示图层进行叠加处理,以实现在电视上显示待显示图层,无需对所有的图层进行叠加处理,减少了叠加处理的图层的数量,减少了对Linux电视的资源消耗,减少了Linux电视显示的画面出现卡顿的情况,进而提高Linux电视的图像显示效果。
下面,结合图3,通过具体示例,对上述方法实施例所示的技术方案进行详细说明。
图3为本发明实施例提供的图层叠加示意图。请参见图3,包括过程301-过程303。
示例性的,假设电视中包括三个图层,分别记为图层0、图层1和图层2,图层2和图层0为第一图层,图层1为第二图层。其中,在进行图层叠加时,图层2位于最上层,图层0位于最下层。
请参见过程301,在电视开机过程中,首先启动开机LOGO应用程序,并根据开机LOGO应用程序,在电视上显示开机LOGO。由于图层0中需要显示的窗口数量为0,因此将图层0的状态设置为禁用状态。由于系统菜单还未启动,因此将图层1的状态也设置为禁用状态。由于图层2中需要显示的窗口数量大于0,因此将图层2的状态设置为启用状态。由上可知,待显示图层为图层2,相应的,在该过程中,电视直接显示图层2。
在显示开机LOGO预设时长之后,暂停开机LOGO应用程序,并启动开机动画应用程序,并根据开机动画应用程序,在电视上显示开机动画。由于图层0中需要显示的窗口数量为0,因此将图层0的状态设置为禁用状态。由于系统菜单还未启动,因此将图层1的状态也设置为禁用状态。由于图层2中需要显示的窗口数量大于0,因此将图层2的状态设置为启用状态。由上可知,待显示图层为图层2,相应的,在该过程中,电视直接显示图层2。
由上可知,在过程301中,只有图层2的状态为启用状态,因此,只需要显示图层2,无需对三个图层进行叠加处理,减少了对Linux电视的资源消耗,减少了Linux电视显示的画面出现卡顿的情况,进而提高Linux电视的图像显示效果。
请参见过程302,在电视开机启动之后,假设默认启动了第三方应用程序和系统菜单。由于图层0中需要显示的窗口数量大于0,因此将图层0设置为启用状态。由于图层1的无刷新时长小于预设阈值,因此将图层1设置为启用状态。由于图层2中需要显示的窗口数量等于0,因此将图层2设置为禁用状态。由上可知,待显示图层为图层1和图层0,相应的,在该过程中,电视先对图层1和图层0进行叠加处理,再显示叠加处理后的图层和直播视频。
由上可知,在过程302中,只有图层1和图层0的状态为启用状态,因此,只需要对图层1和图层0进行叠加处理,无需对三个图层进行叠加处理,减少了对Linux电视的资源消耗,减少了Linux电视显示的画面出现卡顿的情况,进而提高Linux电视的图像显示效果。
请参见过程303,假设在过程302之后,用户退出第三方应用程序,并打开电视直播,再假设用户长时间没有对系统菜单进行操作、且电视也没有自动对系统菜单进行操作。由于图层0中需要显示的窗口数量等于0,因此将图层0设置为禁用状态。由于图层1的无刷新时长大于预设阈值,因此将图层1设置为禁用状态。由于图层2中需要显示的窗口数量等于0,因此将图层1设置为禁用状态。由上可知,在该过程中没有需要显示的图层,因此,直接显示直播视频即可。
由上可知,在过程303中,图层2、图层1和图层0的状态均为禁用状态,因此,无需显示图层0-图层2,直接显示直播视频即可,无需对三个图层进行叠加处理,减少了对Linux电视的资源消耗,减少了Linux电视显示的画面出现卡顿的情况,进而提高Linux电视的图像显示效果。
图4为本发明实施例提供的基于Linux电视的图像显示装置的结构示意图一。请参见图4,包括第一确定模块11、第二确定模块12、第三确定模块13和显示模块14,其中,
所述第一确定模块11用于,确定至少一个第一图层上需要显示的窗口数量,所述至少一个第一图层用于显示除系统菜单对应的窗口之外的窗口;
所述第二确定模块12用于,确定第二图层的无刷新时长,所述第二图层用于显示所述系统菜单对应的窗口;
所述第三确定模块13用于,根据所述至少一个第一图层上需要显示的窗口数量和所述第二图层的无刷新时长,在所述至少一个第一图层和所述第二图层中确定待显示图层;
所述显示模块14用于,在电视上显示所述待显示图层。
本发明实施例提供的基于Linux电视的图像显示装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述第三确定模块13具体用于:
根据所述至少一个第一图层上需要显示的窗口数量,确定所述至少一个第一图层的状态,所述至少一个第一图层的状态包括禁用状态和启用状态;
根据所述第二图层的无刷新时长,确定所述第二图层的状态,所述第二图层的状态包括禁用状态和启用状态;
将所述至少一个第一图层和所述第二图层中处于启动状态的图层确定为所述待显示图层。
在另一种可能的实施方式中,所述第三确定模块13具体用于:
判断在所述至少一个第一图层上需要显示的窗口数量是否大于0;
若是,则确定所述至少一个第一图层的状态为启用状态;
若否,则确定所述至少一个第一图层的状态为禁用状态。
在另一种可能的实施方式中,所述第三确定模块13具体用于:
判断所述第二图层的无刷新时长是否大于预设阈值;
若是,则确定所述第二图层的状态为禁用状态;
若否,则确定所述第二图层的状态为启用状态。
图5为本发明实施例提供的基于Linux电视的图像显示装置的结构示意图二。在图4所示实施例的基础上,请参见图5,所述装置还包括第四确定模块15和第五确定模块16,其中,
所述第四确定模块15用于,在所述第一确定模块11确定至少一个第一图层上需要显示的窗口数量之前,确定处于运行状态的应用程序、及所述应用程序对应的Z序范围;
所述第五确定模块16用于,根据所述应用程序对应的Z序范围,在所述至少一个第一图层中确定所述应用程序对应的图层;
所述显示模块14还用于,在所述应用程序对应的图层上显示所述应用程序对应的窗口。
本发明实施例提供的基于Linux电视的图像显示装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例方案的范围。