技术领域本发明涉及显示技术领域,特别是涉及一种图层处理方法及装置。
背景技术:
大屏幕显示设备如智能电视等,其分辨率相对手机、平板电脑等移动设备来说是比较大的,多为1920*1080,1366*768等或以上,由于人眼感知流畅画面的帧频为60fps,因此大屏幕的显示设备,其帧频也应达到60fps,但是大屏幕显示设备具有图形界面更复杂,显示图层更多的特点,对画面的流畅度显示是一个很大的挑战,特别是在分辨率超高清大屏显示上,即使使用超高端的图形处理器(GraphicProcessingUnit,GPU)也很难达到帧频60fps,无法做到图形界面的流畅显示。
技术实现要素:
本发明的目的在于提供一种图层处理方法及装置,能够解决因图形处理器工作负荷过重导致系统图像显示帧率下降,无法流畅显示图像的问题。为实现上述目的,本发明提供一种图层处理方法,用于一图层处理装置,以处理复数个图层,图层处理装置包括一图形处理器及一第一图层处理电路,复数个图层中至少包括第一图层、第二图层、第三图层及第四图层,图层处理方法包括:比较第一图层和第二图层的更新率;当第一图层的更新率大于第二图层的更新率时,以第一图层处理电路处理第一图层,并以图形处理器对第二图层、第三图层及第四图层进行合成处理;以及当第二图层的更新率大于第一图层的更新率时,以第一图层处理电路处理第二图层,并以图形处理器对第一图层、第三图层及第四图层进行合成处理。其中,第一图层为复数个图层中位于最顶层图层和最底层图层中的一个,第二图层为复数个图层中位于最顶层图层和最底层图层中的另一个。其中,图形处理器进行合成处理后的合成图层存储于一帧缓冲器中。其中,方法进一步包括:利用一第二图层处理电路输出帧缓冲器中存储的合成图层,并与第一图层处理电路输出的第一图层或第二图层进行合成处理,以生成一待显示画面。其中,当第一图层的更新率大于第二图层的更新率时,以图形处理器对第二图层、第三图层及第四图层进行合成处理的步骤包括:判断复数个图层中第二图层、第三图层与第四图层与前一帧图像中对应的三个图层相比是否发生更新;若第二图层、第三图层及第四图层均未发生更新,则图形处理器不更新帧缓冲器中存储的合成图层;以及若第二图层、第三图层及第四图层的任一图层发生更新,则利用图形处理器对第二图层、第三图层及第四图层进行合成处理,以更新帧缓冲器中存储的合成图层。其中,当第二图层的更新率大于第一图层的更新率时,以图形处理器对第一图层、第三图层及第四图层进行合成处理的步骤包括:判断复数个图层中第一图层、第三图层与第四图层与前一帧图像对应的三个图层相比是否发生更新;若第一图层、第三图层及第四图层均未发生更新,则图形处理器不更新帧缓冲器中存储的合成图层;以及若第一图层、第三图层及第四图层的任一图层发生更新,则利用图形处理器对第一图层、第三图层及第四图层进行合成处理,以更新帧缓冲器中存储的合成图层。其中,比较第一图层和第二图层的更新率之前包括:累计一预定时间段内第一图层及第二图层的更新次数,每更新一次则将相应的图层的更新率提高,否则降低更新率。其中,累计一预定时间段内第一图层及第二图层的更新次数包括:比较复数个图层的第一图层及第二图层的属性与前一帧图像对应的第一图层及第二图层的属性,判断其是否发生改变;若属性未发生改变,则不改变相应图层的更新次数,否则相应图层的更新次数加一。其中,属性包括内容、位置、大小和透明度中至少一个。为实现上述目的,本发明还提供一种图层处理装置,图层处理装置用于处理复数个图层,复数个图层中至少包括第一图层、第二图层、第三图层及第四图层,图层处理装置包括:一处理器,用于比较第一图层和第二图层的更新率;一第一图层处理电路,耦接于处理器,用于对第一图层及第二图层中更新率较高的图层进行处理;以及一图形处理器,耦接于处理器,用于对第一图层及第二图层中更新率较低的图层、第三图层、第四图层进行合成处理。其中,第一图层为复数个图层中位于最顶层图层和最底层图层中的一个,第二图层为复数个图层中位于最顶层图层和最底层图层中的另一个。其中,图层处理装置还包括帧缓冲器和第二图层处理电路,帧缓冲器的一端与图形处理器连接,帧缓冲器的另一端与第二图层处理电路连接;帧缓冲器用于存储图形处理器进行合成处理后的合成图层;第二图层处理电路用于读取并输出帧缓冲器存储的合成图层。其中,处理器具体用于判断复数个图层中第一图层及第二图层中更新率较低的图层、第三图层与第四图层与前一帧图像中对应的三个图层相比是否发生更新;若第一图层及第二图层中更新率较低的图层、第三图层及第四图层均未发生更新,则使图形处理器不更新帧缓冲器中存储的合成图层;以及若第一图层及第二图层中更新率较低的图层、第三图层及第四图层的任一图层发生更新,则使图形处理器对第一图层及第二图层中更新率较低的图层、第三图层及第四图层进行合成处理,以更新帧缓冲器中存储的合成图层。其中,处理器具体用于累计一预定时间段内第一图层及第二图层的更新次数,每更新一次则将相应的图层的更新率提高,否则降低更新率。其中,处理器具体用于比较复数个图层中第一图层及第二图层的属性与前一帧图像中对应的第一图层及第二图层的属性,判断其是否发生改变;若属性未发生改变,则不改变相应图层的更新次数,否则相应图层的更新次数加一。本发明的有益效果是:区别于现有技术的情况,本发明通过比较第一图层和第二图层的更新率;当第一图层的更新率大于第二图层的更新率时,以第一图层处理电路处理第一图层,并以图形处理器对第二图层、第三图层及第四图层进行合成处理;以及当第二图层的更新率大于第一图层的更新率时,以第一图层处理电路处理第二图层,并以图形处理器对第一图层、第三图层及第四图层进行合成处理。通过这种方式,本发明将复数个图层中更新率较高的第一图层或第二图层不经过图形处理器的合成处理,而是利用第一图层处理电路直接处理输出,其余图层的更新率相对较低,通过图形处理器对这些图层进行合成处理,使得合成处理后的合成图层可以重复使用的概率较高,从而节省图形处理器的合成流程,减轻图形处理器的工作负荷,提高图像显示帧率,使画面流畅显示。附图说明图1是本发明图层处理方法实施例一的流程图;图2是图1中步骤S101之前的具体流程图;图3是图2中累计更新次数的具体流程图;图4是图3中比较复数个图层与前一帧图像的属性的具体流程图;图5是图1中步骤S102的具体流程图;图6是本发明图层处理方法实施例一中省掉了SurfaceFlinger服务的图形处理器合成的流程的示意图;图7是本发明图层处理装置实施例一的结构示意图。具体实施方式为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明所提供的一种图层处理方法及装置做进一步详细描述。如图1所示,本发明图层处理方法实施例一,用于一图层处理装置,以处理复数个图层,图层处理装置包括图形处理器及图层处理电路,复数个图层至少包括第一图层、第二图层、第三图层及第四图层。具体地,以安卓系统的智能电视为例,智能电视包含多个应用程序,每个应用程序可能对应着一个或者多个显示图像,每一显示图像对应多个图层。通常的做法是将多个图层利用图形处理器进行合成处理,合成处理一般是利用安卓系统中的画图模块(Surfaceflinger)服务完成,将合成后的显示图像帧采用映射等方式在屏幕上进行显示,这种做法需要图形处理器不断地进行合成处理,如果合成处理过多会导致图形处理器负荷过重,导致图像显示帧率下降。在安卓系统中,还可以采用硬件直接显示的方式也即Overlay服务进行图层的处理,这种硬件方式需要硬件的支持,通过图层处理电路直接显示需要的图层,无需通过图形处理器进行合成,如果全部采用硬件方式来显示可以大大减轻图形处理器的工作负荷,但实际上,硬件上无法提供这么多的图层处理电路,即使有这么多的图层处理电路,也无法提供显示所需要的带宽。因此,本实施例一中,采用Surfaceflinger服务和Overlay服务混合的方式,一方面可以减少图层处理电路的使用数量,另一方面可以减轻图形处理器的工作负荷。下面具体阐述将哪些图层通过图层处理电路进行处理,哪些图层通过图形处理器进行合成处理。本实施例一的方法包括:首先执行步骤S101:比较第一图层和第二图层的更新率;这里所述的第一图层和第二图层通常是指位于复数个图层中最顶层和最底层的两个图层,如果第一图层是位于最顶层图层,那么第二图层就是位于最底层图层,如果第一图层是位于最底层图层,那么第二图层就是位于最顶层图层。对位于最顶层和位于最底层的图层进行更新率判断,一方面是由于在显示图像的所有图层中,位于最顶层或最底层的图层通常都很活跃,需要经常更新;另一方面是考虑最终合成的显示图像的正确性。这主要是因为显示图像的多个图层之间可能会有重叠,图层在屏幕垂直方向Z轴上有一个顺序Z-order,利用Surfaceflinger服务通过图形处理器对多个图层进行合成时是按照Z-order的顺序进行,如果合成的顺序被破坏掉,一般会导致合成结果的错误。举例来说,假如待显示图像的四个图层,按照Z-order顺序排列为第一图层->第三图层->第四图层->第二图层,合成也是按照这个顺序来完成,如果将第三图层设置为由图层处理电路显示,第一图层、第四图层和第二图层由Surfaceflinger服务通过图形处理器进行合成,图形处理器合成后的内容和图层处理电路的内容再合成到屏幕上显示,那么这四个图层的合成顺序会变为第三图层->第一图层->第四图层->第二图层,与完全由图形处理器合成顺序不一致,可能会导致结果的错误,所以通常选择最顶层的第一图层或最底层的第二图层被图层处理电路直接处理,其余图层通过图形处理器合成,才能满足图层的合成顺序需求,以正确显示最终合成的图像。在其他实施例中,基于不同的考虑元素,这种位于最顶层或最底层的条件并不是必要存在的,通常以能满足用户需求为准。即,如果不造成结果的错误,或结果在接受范围内,也可以不需要这个条件前提。其中,在比较第一图层和第二图层的更新率之前需要统计第一图层和第二图层的更新率,如图2所示,具体统计方法可选为累计第一图层及第二图层在多个显示图像帧的更新次数,每更新一次则将相应的图层的更新率提高,比如加一,否则降低更新率,比如减一。具体地,如图3所示,更新次数可选通过比较复数个图层的第一图层及第二图层的属性与前一帧图像中对应的第一图层及第二图层的属性,判断其是否发生改变;若属性未发生改变,则不改变相应图层的更新次数,否则相应图层的更新次数加一。每一图层在屏幕上都有它的属性,包括内容、位置、大小及透明度中的至少一个,在应用程序改变时,这些属性都有可能发生变化,属性通常以数值的形式进行存储。前一帧图像中每一图层的属性数值存储在缓存图层中,与复数个图层中每一图层的相应的属性数值进行比较,如图4所示,若属性中有任一项数值不相等,则认为该图层属性发生改变,其更新次数加一,若属性中所有数值都相等,则认为该图层未发生改变,不改变其更新次数。同样地,可以设置属性数值的阈值范围,相互比较后在属性数值阈值范围内的图层,认为其未发生改变,不改变其更新次数,否则更新次数加一。利用上述方法对复数个图层中的第一图层和第二图层与前一帧图像中对应的第一图层和第二图层的属性进行比较,得到第一图层和第二图层的更新次数,进而得到第一图层和第二图层的更新率。当第一图层的更新率大于第二图层的更新率时,执行步骤S102:以第一图层处理电路处理第一图层,并以图形处理器对第二图层、第三图层及第四图层进行合成处理;具体地,本实施例一利用第一图层处理电路将更新率较高的第一图层直接处理等待显示,利用图形处理器将更新率较低的第二图层及第三图层、第四图层进行合成处理,合成处理后的合成图层存储在帧缓冲器中,存储在帧缓冲器中的合成图层需要利用第二图层处理电路输出,并与第一图层处理电路处理的第一图层再进行合成处理,以生成复数个图层。其中,如图5所示,以图形处理器对第二图层、第三图层及第四图层进行合成处理的步骤包括:步骤S11:判断复数个图层的第二图层、第三图层与第四图层与前一帧图像中对应的三个图层相比是否发生更新;具体判断过程可参阅图4,分别比较第二图层、第三图层、第四图层与前次显示图像帧对应的三个图层的属性,若相应图层的属性中的任一数值发生改变,则相应图层发生更新,否则图层没有发生更新。前面提到,在比较第一图层和第二图层的更新率之前,需要累计第一图层和第二图层的更新次数,在这个过程中通常会对第一图层和第二图层是否发生更新做出判断,如果在步骤S11之前已经得知第二图层是否发生更新,则此处可以不用重复判断;如果第二图层发生更新,则无需继续对第三图层、第四图层是否发生更新进行判断,否则继续对第三图层、第四图层是否发生更新进行判断。步骤S12:第二图层、第三图层及第四图层均未发生更新,则图形处理器不更新帧缓冲器中存储的合成图层;复数个图层与前一帧图像相比,其利用图形处理器进行合成处理的多个图层并未发生更新,因此可以直接使用帧缓冲器中存储的前一帧图像的合成图层,而不用重新进行一次合成处理,同时由于第二图层、第三图层、第四图层的更新率较低,需要图形处理器重新合成的概率较低,从而大大减小图形处理器的工作负荷。步骤S13:若第二图层、第三图层及第四图层的任一图层发生更新,则利用图形处理器对第二图层、第三图层及第四图层进行合成处理,以更新帧缓冲器中存储的合成图层。复数个图层的第二图层、第三图层及第四图层的任一图层发生更新时,其合成后的合成图层都会发生改变,无法直接利用帧缓冲器中存储的前一帧图像的合成图层,因此需要利用图形处理器重新进行合成处理。当第二图层的更新率大于第一图层的更新率时,执行步骤S103:以第一图层处理电路处理第二图层,并以图形处理器对第一图层、第三图层及第四图层进行合成处理。步骤S103与步骤S102的具体流程相类似,在次不再赘述。利用本发明图层处理方法实施例一,在多个复数个图层中“被更新的是第一图层,其他图层基本上不变化”的情况下,后续每一帧显示图像的合成流程变为图6所示的流程,图6虚线部分表示省掉了SurfaceFlinger服务的图形处理器合成的流程,直接通过第二图层处理电路输出存储的合成图层。实验测试表明,上述优化方法基本上对所有场景的显示图像的帧率都有不同程度的提高,最高帧率能提高100%。需要说明的是,本发明图层处理方法实施例一,以复数个图层的四个图层为例,进行详细说明,应该可以理解,这里的第一、第二、第三、第四仅仅是对复数个图层的四个图层的标注,在其他实施例中,复数个图层还可包括更多的图层,如第一至第五图层、第一至第六图层等等;比较第一图层和第二图层的更新率是指通过比较复数个图层中两个更新率较大的图层,通常是指复数个图层中的最顶层图层和最低层图层,使这两者中更新率较大的图层直接利用图层处理电路处理,其余图层利用图形处理器进行合成处理,从而实现提高显示图像帧率的目的。本发明图层处理装置实施例一,用于处理复数个图层,复数个图层至少包括第一图层、第二图层、第三图层及第四图层,如图7所示,本实施例一包括:处理器21、图形处理器23、第一图层处理电路22,帧缓冲器24、第二图层处理电路25,处理器21分别与图形处理器23和第一图层处理电路22耦接,图形处理器23与帧缓冲器24的一端连接,帧缓冲器24的另一端与第二图层处理电路25连接。处理器21用于比较第一图层和第二图层的更新率;第一图层处理电路22用于对第一图层及第二图层中更新率较高的图层进行处理;图形处理器23用于对第一图层及第二图层中更新率较低的图层、第三图层、第四图层进行合成处理;帧缓冲器24用于存储图形处理器23进行合成处理后的合成图层;第二图层处理电路25用于输出帧缓冲器24存储的合成图层。处理器21对第一图层和第二图层进行更新率比较,这里的第一图层和第二图层是一种泛指,通常是指复数个图层所有图层中更新率较高的两个图层,一般来说,第一图层可选为复数个图层中位于最顶层图层和最底层图层中的一个,第二图层可选为复数个图层中位于最顶层图层和最底层图层中的另一个,这样选取可使最终合成的复数个图层得以正确显示。第一图层处理电路22输出处理的图层后,通常需要与第二图层处理电路25输出的合成图层再进行合成处理,以生成复数个图层。其中,处理器21具体用于判断复数个图层的第一图层及第二图层中更新率较低的图层、第三图层与第四图层与前一帧图像中对应的三个图层相比是否发生更新;若第一图层及第二图层中更新率较低的图层、第三图层及第四图层均未发生更新,则使图形处理器23不更新帧缓冲器24中存储的合成图层;否则若第一图层及第二图层中更新率较低的图层、第三图层及第四图层的任一图层发生更新,则利用图形处理器23对第一图层及第二图层中更新率较低的图层、第三图层及第四图层进行合成处理,以更新帧缓冲器24中存储的合成图层。具体地,当第一图层的更新率大于第二图层的更新率时,利用第一图层处理电路22对第一图层进行处理,利用图形处理器23对第二图层、第三图层、第四图层进行合成处理,在进行合成处理时,需要处理器21对这三个图层进行前后显示图像帧的比较,判断其是否发生更新;如果第二图层、第三图层及第四图层均未发生更新,则处理器21发出命令使第二图层处理电路25直接输出帧缓冲器24中存储的合成图形,而不需要经过图形处理器23的合成处理,减轻图形处理器23的工作负荷;否则,处理器21发出命令使图形处理器23对第二图层、第三图层及第四图层进行合成处理,更新帧缓冲器24中存储的合成图层,从而使第二图层处理电路24输出更新后的合成图层。当第二图层的更新率大于第一图层的更新率时,与上述过程类似,此处不再赘述。其中,处理器21具体用于累计一预定时间内第一图层及第二图层的更新次数,每更新一次则将相应的图层的更新率提高,否则降低更新率。其中,处理器21具体用于比较复数个图层的第一图层及第二图层的属性与前一帧图像中对应的第一图层及第二图层的属性,判断其是否发生改变;若属性未发生改变,则不改变相应图层的更新次数,否则相应图层的更新次数加一。具体地,通过处理器21统计第一图层和第二图层的更新率,再进行比较,从而选取更新率较大的图层,以使得后续图形处理器23重新合成更新的图层的概率降低,从而大大减小图形处理器23的工作负荷,提高显示图像的帧率,使画面清晰流畅。本发明通过上述实施例详细描述了一种图层处理方法及装置,通过比较第一图层和第二图层的更新率;当第一图层的更新率大于第二图层的更新率时,以第一图层处理电路处理第一图层,并以图形处理器对第二图层、第三图层及第四图层进行合成处理;以及当第二图层的更新率大于第一图层的更新率时,以第一图层处理电路处理第二图层,并以图形处理器对第一图层、第三图层及第四图层进行合成处理。通过这种方式,本发明将复数个图层中更新率较高的第一图层或第二图层不经过图形处理器的合成处理,而是利用第一图层处理电路直接处理输出,其余图层的更新率相对较低,通过图形处理器对这些图层进行合成处理,使得合成处理后的合成图层可以重复使用的概率较高,从而节省图形处理器的合成流程,减轻图形处理器的工作负荷,提高图像显示帧率,使画面流畅显示。以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。