合并图层的方法及装置转让专利

申请号 : CN201510869063.5

文献号 : CN105447813B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王彦杰朱辰阳

申请人 : 上海兆芯集成电路有限公司

摘要 :

一种合并图层的方法及装置,该合并图层的方法包括:在一当前帧中接收多个图层;根据一覆盖顺序分配序号至上述图层;判断一第一图层和一第二图层在一期间内是否发生变化;当上述第一图层和上述第二图层未发生变化时,将上述第一图层和上述第二图层合并在一起;以及根据上述序号依一序号顺序显示上述图层,其中上述第一图层和上述第二图层为相邻图层。本发明能够提高装置运作的效率,还可达到省电的效果。

权利要求 :

1.一种合并图层的方法,其特征在于,包括:在一当前帧中接收多个图层;

根据一覆盖顺序分配序号至上述图层;

判断一第一图层和一第二图层在一期间内是否发生变化;

当上述第一图层和上述第二图层未发生变化时,将上述第一图层和上述第二图层合并在一起;以及根据上述序号依一序号顺序显示上述图层,其中,上述第一图层和上述第二图层为相邻图层,且判断在上述期间内上述当前帧中的上述第一图层和上述第二图层是否发生变化的步骤包括:判断是否接收一几何形变标志;

当未接收上述几何形变标志时判断对应上述第一图层的缓冲器及对应上述第二图层的缓冲器是否变化;以及当对应上述第一图层的上述缓冲器及对应上述第二图层的上述缓冲器未变化时,则判断上述第一图层和上述第二图层并无发生变化。

2.根据权利要求1所述的合并图层的方法,其特征在于,根据上述覆盖顺序分配上述序号至上述图层的步骤包括:判断一当前图层是否覆盖至少一图层;

当上述当前图层未覆盖上述至少一图层时,分配一起始序号至上述当前图层,其中上述起始序号为一最小序号;以及当上述当前图层覆盖上述至少一图层时,分配一第一序号至上述当前图层,其中上述第一序号为上述至少一图层的序号中最大序号的一下一序号。

3.根据权利要求2所述的合并图层的方法,其特征在于,上述序号顺序为一递增顺序。

4.根据权利要求2所述的合并图层的方法,其特征在于,上述合并图层的方法还包括:根据上述序号将上述图层分为多个群组;以及对应上述群组分别产生一群组列表。

5.根据权利要求1所述的合并图层的方法,其特征在于,在上述当前帧中接收上述图层之前,上述合并图层的方法还包括:判断一更新时间是否超过一预设值;以及当上述更新时间超过上述预设值时,触发更新上述当前帧。

6.一种合并图层的方法,其特征在于,包括:在一当前帧中接收多个图层;

根据一覆盖顺序分配序号至上述图层;

根据一方式分配每一上述图层的权重;

根据上述序号及一权重大小建立一图层顺序;

判断一第一图层和一第二图层在一期间内是否发生变化;以及当上述第一图层和上述第二图层未发生变化时,将上述第一图层和上述第二图层合并在一起;

其中,上述第一图层和上述第二图层为相邻图层,且判断在上述期间内上述当前帧中的上述第一图层和上述第二图层是否发生变化的步骤包括:判断是否接收一几何形变标志;

当未接收上述几何形变标志时判断对应上述第一图层的缓冲器及对应上述第二图层的缓冲器是否变化;以及当对应上述第一图层的上述缓冲器及对应上述第二图层的上述缓冲器未变化时,则判断上述第一图层和上述第二图层并无发生变化。

7.根据权利要求6所述的合并图层的方法,其特征在于,根据上述覆盖顺序分配上述序号至上述图层的步骤包括:判断一当前图层是否覆盖至少一图层;

当上述当前图层未覆盖上述至少一图层时,分配一起始序号至上述当前图层,其中上述起始序号为一最小序号;以及当上述当前图层覆盖上述至少一图层时,分配一第一序号至上述当前图层,其中上述第一序号为上述至少一图层的序号中最大序号的一下一序号。

8.根据权利要求7所述的合并图层的方法,其特征在于,上述序号顺序为一递增顺序。

9.根据权利要求7所述的合并图层的方法,其特征在于,上述合并图层的方法还包括:根据上述序号将上述图层分为多个群组;以及对应上述群组分别产生一群组列表,

其中每一群组列表的图层依照Z轴从小到大排列。

10.根据权利要求9所述的合并图层的方法,其特征在于,根据上述序号及上述权重大小建立上述图层顺序的步骤包括:在对应上述起始序号的一起始群组中的图层根据上述权重由大到小的顺序重新排序;

判断其余群组中的一第一群组列表的一最后一图层的权重是否大于一权重阈值;

当上述最后一图层的权重大于上述权重阈值时,在上述第一群组列表中的图层根据上述权重由大到小的顺序重新排序;以及当上述最后一图层的权重不大于上述权重阈值时,在上述第一群组列表中的图层根据上述权重由小到大的顺序重新排序。

11.根据权利要求10所述的合并图层的方法,其特征在于,上述合并图层的方法还包括:判断上述图层的一图层数量是否超过一串流数量;

当上述图层数量超过上述串流数量时,根据上述权重大小及上述图层顺序找寻至少一两相邻图层;以及合并上述至少一两相邻图层。

12.根据权利要求6所述的合并图层的方法,其特征在于,上述方式为一位区块传送性能。

13.根据权利要求6所述的合并图层的方法,其特征在于,上述方式为判断上述第一图层和上述第二图层是否为无变化图层。

14.根据权利要求6所述的合并图层的方法,其特征在于,在上述当前帧中接收上述图层之前,上述合并图层的方法还包括:判断一更新时间是否超过一预设值;以及当上述更新时间超过上述预设值时,触发更新上述当前帧。

15.一种用于合并图层的装置,其特征在于,包括:一控制电路;

一处理器,安装至上述控制电路中;以及一存储器,安装至上述控制电路中并且耦接至上述处理器;

其中上述处理器配置用以执行一储存于上述存储器中的程序码以使一HWcomposer执行:在一当前帧中接收多个图层;

根据一覆盖顺序分配序号至上述图层;

判断一第一图层和一第二图层在一期间内是否发生变化;

当上述第一图层和上述第二图层未发生变化时,将上述第一图层和上述第二图层合并在一起;以及根据上述序号依一序号顺序显示上述图层,其中,上述第一图层和上述第二图层为相邻图层,且判断在上述期间内上述当前帧中的上述第一图层和上述第二图层是否发生变化的步骤包括:判断是否接收一几何形变标志;

当未接收上述几何形变标志时,判断对应上述第一图层的缓冲器及对应上述第二图层的缓冲器是否变化;以及当对应上述第一图层的上述缓冲器及对应上述第二图层的上述缓冲器未变化时,则判断上述第一图层和上述第二图层并无发生变化。

16.根据权利要求15所述的合并图层的装置,其特征在于,根据上述覆盖顺序分配上述序号至上述图层的步骤包括:判断一当前图层是否覆盖至少一图层;

当上述当前图层未覆盖上述至少一图层时,分配一起始序号至上述当前图层,其中上述起始序号为一最小序号;以及当上述当前图层覆盖上述至少一图层时,分配一第一序号至上述当前图层,其中上述第一序号为上述至少一图层的序号中最大序号的一下一序号。

17.根据权利要求16所述的合并图层的装置,其特征在于,上述序号顺序为一递增顺序。

18.根据权利要求16所述的合并图层的装置,其特征在于,上述处理器还执行上述程序码以使上述HWcomposer执行:根据上述序号将上述图层分为多个群组;以及对应上述群组分别产生一群组列表。

19.根据权利要求15所述的合并图层的装置,其特征在于,在上述当前帧中接收上述图层之前,上述处理器还执行上述程序码以使上述HWcomposer执行:判断一更新时间是否超过一预设值;以及当上述更新时间超过上述预设值时,触发更新上述当前帧。

20.一种用于合并图层的装置,其特征在于,包括:一控制电路;

一处理器,安装至上述控制电路中;以及一存储器,安装至上述控制电路中并且耦接至上述处理器;

其中上述处理器配置用以执行一储存于上述存储器中的程序码以使一HWcomposer执行:在一当前帧中接收多个图层;

根据一覆盖顺序分配序号至上述图层;

根据一方式分配每一上述图层的权重;

根据上述序号及一权重大小建立一图层顺序;

判断一第一图层和一第二图层在一期间内是否发生变化;以及当上述第一图层和上述第二图层未发生变化时,将上述第一图层和上述第二图层合并在一起;

其中,上述第一图层和上述第二图层为相邻图层,且判断在上述期间内上述当前帧中的上述第一图层和上述第二图层是否发生变化的步骤包括:判断是否接收一几何形变标志;

当未接收上述几何形变标志时,判断对应上述第一图层的缓冲器及对应上述第二图层的缓冲器是否变化;以及当对应上述第一图层的上述缓冲器及对应上述第二图层的上述缓冲器未变化时,则判断上述第一图层和上述第二图层并无发生变化。

21.根据权利要求20所述的合并图层的装置,其特征在于,根据上述覆盖顺序分配上述序号至上述图层的步骤包括:判断一当前图层是否覆盖至少一图层;

当上述当前图层未覆盖上述至少一图层时,分配一起始序号至上述当前图层,其中上述起始序号为一最小序号;以及当上述当前图层覆盖上述至少一图层时,分配一第一序号至上述当前图层,其中上述第一序号为上述至少一图层的序号中最大序号的一下一序号。

22.根据权利要求21所述的合并图层的装置,其特征在于,上述序号顺序为一递增顺序。

23.根据权利要求21所述的合并图层的装置,其特征在于,上述处理器还执行上述程序码以使上述HWcomposer执行:根据上述序号将上述图层分为多个群组;以及对应上述群组分别产生一群组列表,

其中每一群组列表的图层依照Z轴从小到大排列。

24.根据权利要求23所述的合并图层的装置,其特征在于,根据上述序号及上述权重大小建立上述图层顺序的步骤包括:在对应上述起始序号的一起始群组中的图层根据上述权重由大到小的顺序重新排序;

判断其余群组中的一第一群组列表的一最后一图层的权重是否大于一权重阈值;

当上述最后一图层的权重大于上述权重阈值时,在上述第一群组列表中的图层根据上述权重由大到小的顺序重新排序;以及当上述最后一图层的权重不大于上述权重阈值时,在上述第一群组列表中的图层根据上述权重由小到大的顺序重新排序。

25.根据权利要求24所述的合并图层的装置,其特征在于,上述处理器还执行上述程序码以使上述HWcomposer执行:判断上述图层的一图层数量是否超过一串流数量;

当上述图层数量超过上述串流数量时,根据上述权重大小及上述图层顺序找寻至少一两相邻图层;以及合并上述至少一两相邻图层。

26.根据权利要求20所述的合并图层的装置,其特征在于,上述方式为一位区块传送性能。

27.根据权利要求20所述的合并图层的装置,其特征在于,上述方式为判断上述第一图层和上述第二图层是否为无变化图层。

28.根据权利要求20所述的合并图层的装置,其特征在于,在上述当前帧中接收上述图层之前,上述处理器还执行上述程序码以使上述HWcomposer执行:判断一更新时间是否超过一预设值;以及当上述更新时间超过上述预设值时,触发更新上述当前帧。

说明书 :

合并图层的方法及装置

技术领域

[0001] 本发明有关于一种合并图层的方法及装置,且特别有关于一种应用于Android平台中合并图层的方法及装置。

背景技术

[0002] 在移动装置的领域中,多媒体视频播放功能已经成为一项不可缺少的需求。
[0003] 在现有应用于Android平台的多媒体视频播放系统中。Hwcomposer按照SurfaceFlinger所传送的图层依序进行处理。传统的实现方式是Hwcomposer依照z轴坐标依次处理每个图层,再以重叠(overlay)、位区块传送(blit)及回退(fallback)的优先顺序标记每个图层的处理方式。然而,此种方式的缺点是必须根据SurfaceFlinger所传送图层的顺序进行处理。
[0004] 当源图层的数量大于显示接口单元(Display interface unit,DIU)所支持的串流数量时,源图层则需要进行合并。为了保证覆盖顺序的正确性,合并仅能在相邻图层之间进行。传统方式可能会按照z轴坐标从最高的图层开始依次向下合并,或者按照z轴坐标从最低图层开始依次向上合并,直到图层数量满足串流数量为止。这种方式的缺点也是需依赖于图层的z轴顺序,因此这种合并可能不是性能最优的方式。
[0005] 此外,传统的Hwcomposer会大量的使用串流以达到性能的最优化。然而,显示接口单元的耗电量与所使用的串流数量呈正相关,因而导致耗电量提高。
[0006] 如上所述,一种用于应用于Android平台中显示及合并图层的新方法是可以期待的。

发明内容

[0007] 本发明提供一种合并图层的方法及装置。
[0008] 本发明提出一种合并图层的方法,包括:在一当前帧中接收多个图层;根据一覆盖顺序分配序号至上述图层;判断一第一图层和一第二图层在一期间内是否发生变化;当上述第一图层和上述第二图层未发生变化时,将上述第一图层和上述第二图层合并在一起;以及根据上述序号依一序号顺序显示上述图层;其中上述第一图层和上述第二图层为相邻图层。
[0009] 本发明提出一种合并图层的方法,包括:在一当前帧中接收多个图层;根据一覆盖顺序分配序号至上述图层;根据一方式分配每一上述图层的权重;根据上述序号及一权重大小建立一图层顺序;判断一第一图层和一第二图层在一期间内是否发生变化;以及当上述第一图层和上述第二图层未发生变化时,将上述第一图层和上述第二图层合并在一起;其中上述第一图层和上述第二图层为相邻图层。
[0010] 本发明提出一种合并图层的装置,上述装置包括:一控制电路;一处理器,安装至上述控制电路中;以及一存储器,安装至上述控制电路中并且耦接至上述处理器;其中上述处理器配置用以执行一储存于上述存储器中的程序码以使一HWcomposer执行:在一当前帧中接收多个图层;根据一覆盖顺序分配序号至上述图层;判断一第一图层和一第二图层在一期间内是否发生变化;当上述第一图层和上述第二图层未发生变化时,将上述第一图层和上述第二图层合并在一起;以及根据上述序号依一序号顺序显示上述图层;其中上述第一图层和上述第二图层为相邻图层。
[0011] 本发明提出一种合并图层的装置,上述装置包括:一控制电路;一处理器,安装至上述控制电路中;以及一存储器,安装至上述控制电路中并且耦接至上述处理器;其中上述处理器配置用以执行一储存于上述存储器中的程序码以使一HWcomposer执行:在一当前帧中接收多个图层;根据一覆盖顺序分配序号至上述图层;根据一方式分配每一上述图层的权重;根据上述序号及一权重大小建立一图层顺序;判断一第一图层和一第二图层在一期间内是否发生变化;以及当上述第一图层和上述第二图层未发生变化时,将上述第一图层和上述第二图层合并在一起;其中上述第一图层和上述第二图层为相邻图层。
[0012] 本发明能够提高装置运作的效率,还可达到省电的效果。
[0013] 为使本发明的上述和其他目的、特征和优点能更明显易懂,下文特举出较佳实施例,并配合所附图式,作详细说明如下。

附图说明

[0014] 图1是表示根据本发明一实施例所述的通讯装置的简化功能方块图。
[0015] 图2是根据本发明一实施例中表示图1中执行程序码的简化功能方块图。
[0016] 图3是显示根据本发明一实施例所述的Android系统的输出屏幕原理框架的示意图。
[0017] 图4是显示根据本发明一实施例所述的显示图层的方法流程图。
[0018] 图5是显示根据本发明一实施例所述的HWcomposer根据一覆盖顺序分配序号至图层的示意图。
[0019] 图6是显示根据本发明一实施例所述的显示图层的方法流程图。
[0020] 图7是显示根据本发明一实施例所述的合并图层的方法流程图。
[0021] 图8是显示根据本发明一实施例所述的合并图层的方法流程图。
[0022] 其中,附图中符号的简单说明如下:
[0023] 100 通讯装置
[0024] 102 输入装置
[0025] 104 输出装置
[0026] 106 控制电路
[0027] 108 中央处理器
[0028] 110 存储器
[0029] 112 程序码
[0030] 114 收发器
[0031] 200 应用层
[0032] 202 第三层
[0033] 204 第二层
[0034] 206 第一层
[0035] 300 示意图
[0036] 301~304 应用
[0037] 311~314 图层
[0038] 320 Surfaceflinger
[0039] 322 HWcomposer
[0040] 331~333 帧缓冲器
[0041] 340 显示接口单元
[0042] 350 显示器
[0043] 400 方法流程图
[0044] S405、S410、S415 步骤
[0045] 600 方法流程图
[0046] S605、S610、S615、S620、S625 步骤
[0047] 700 方法流程图
[0048] S705、S710、S715、S720、S725 步骤
[0049] 800 方法流程图
[0050] S805、S810、S815、S820、S825、S830、S835 步骤。

具体实施方式

[0051] 为了让本发明的目的、特征、及优点能更明显易懂,下文特举出较佳实施例,并配合所附图示图1至图8,做详细的说明。本发明说明书提供不同的实施例来说明本发明不同实施方式的技术特征。其中,每一实施例中的各元件的配置为说明之用,并非用以限制本发明。且实施例中图式标号的部分重复,是为了简化说明,并非意指不同实施例之间的关联性。
[0052] 图1是表示根据本发明一实施例所述的通讯装置的简化功能方块图。在图1中,通讯装置100可用以具体化为一使用者设备(UE)(或存取终端(AT))。通讯装置100可包括一输入装置102、一输出装置104、一控制电路106、一中央处理器(Central Processing Unit,CPU)108、一存储器110、一程序码112、一收发器114。控制电路106在存储器110中通过中央处理器108执行程序码112,并以此控制在通讯装置100中所进行的操作。通讯装置100可利用输入装置102(例如键盘或数字键)接收使用者输入信号;也可由输出装置104(例如屏幕或喇叭)输出图像及声音。收发器114在此用作接收及发送无线信号,将接收的信号送往控制电路106,以及以无线方式输出控制电路106所产生的信号。
[0053] 图2是根据本发明一实施例中表示图1中执行程序码112的简化功能方块图。此实施例中,执行程序码112包括一应用层200、一第三层202以及一第二层204,并且与第一层206耦接。第三层202一般执行无线电资源控制。第二层204一般执行链路控制。第一层206一般负责实体连接。
[0054] 本发明实施例所提供的通讯装置可以用于实施本发明所示的各实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节请参照图 图所示的本发明各实施例。
[0055] 图3是显示根据本发明一实施例所述的Android系统的输出屏幕原理框架的示意图300。如图3所示,以Android系统为例,从使用者开始在通讯装置如手机上通过各个应用程序(以下简称为应用)绘制图像到该图像显示在显示幕上的过程,具体可以包括以下步骤。
[0056] 首先,在应用(Application)层中,各个应用301~304按照自己的应用设计情况,各自单独执行绘制(Render)操作,并在绘制操作处理完成后,各应用将绘制的图层(Layer)311~314发送给应用框架(Framework)层的负责刷新屏幕的Surfaceflinger 320。
[0057] 其次,在应用框架层中,系统可以通过内核(Kernel)层(图未显示)向显示接口单元(Display interface unit,DIU)340查询可使用的串流(stream)。举例来说,HWcomposer 322向显示接口单元340查询到可使用3个串流331~333,Surfaceflinger 320根据应用所配置信息来处理图层,例如哪个图层应该置底、哪个图层应该置顶、哪个图层采用透底效果等。接着,Surfaceflinger 320通过HWcomposer322将其中某些应用绘制的多个图层合并到一起,传输到串流331上,再将剩余的某些图层合并到一起,传输到串流332上,最后将剩余的所有图层合并到一起,传输到串流333上。最终,显示接口单元340接收串流331~333,再将所有串流331~333的图像合成为一图像帧。值得注意的是,于一些实施例中,显示接口单元340可使用的串流数还可被扩充为多于三个或少于三个,因此本发明并不局限于图3所示的实施方式。
[0058] 最后,显示接口单元340传输图像帧给显示装置350(包括显示控制器和显示屏幕)。举例但不局限于,LCD硬件(包括LCD控制器和LCD显示屏幕),以显示最终的图像。
[0059] 具体地说明,HWcomposer 322及显示接口单元340执行图层处理的步骤可通过在通讯装置的中央处理器(Central Processing Unit,CPU)中使用演算法实现合并策略,再驱使在通讯装置的图形处理器(Graphic Processing Unit,GPU)来实现合并操作。
[0060] 图4是显示根据本发明一实施例所述的显示图层的方法流程图400。值得注意的是,此方法流程由图3中的HWcomposer 322所执行。在步骤S405中,HWcomposer接收由应用(Application)所绘制的多个图层。接着,在步骤S410中,HWcomposer根据一覆盖顺序分配序号至上述图层。在步骤S415中,HWcomposer根据上述序号依一序号顺序显示上述图层。
[0061] 更具体的说明,在步骤S410中HWcomposer根据一覆盖顺序分配序号至上述图层的步骤。HWcomposer可先判断一当前图层是否覆盖至少一图层。当判断上述当前图层未覆盖上述至少一图层时,HWcomposer分配一起始序号至上述当前图层,其中上述起始序号为一最小序号。或是,当判断上述当前图层覆盖上述至少一图层时,HWcomposer分配一第一序号至上述当前图层,其中上述第一序号为上述至少一图层的序号中最大序号的一下一序号。
[0062] 图5是显示根据本发明一实施例所述的HWcomposer根据一覆盖顺序分配序号至图层的示意图。假设源图层按照Z轴坐标从低到高的顺序是A→B→C→D→E→F。如图5所示,图层C覆盖了图层B、图层D覆盖了图层B及图层C、图层F覆盖了图层E。在图5中,由于图层A、B及E未覆盖其他图层,因此HWcomposer分配一起始序号0至图层A、B及E,其中此起始序号为一最小序号。图层C仅覆盖图层B,因此HWcomposer分配序号1至图层C。图层D覆盖了图层B及C,因此HWcomposer分配图层D所覆盖图层B及C的序号中最大序号(即,序号1)的下一序号(即,序号2)至图层D。图层F仅覆盖图层E,HWcomposer分配序号1至图层F。因此,图层根据序号递增的排列为A、B、E→C、F→D。值得注意的是,同一序号的图层并没有先后的顺序。因此,对于序号0而言,HWcomposer先处理图层A或图层E并无影响。
[0063] 在一实施例中,HWcomposer还可依据序号将图层分为多个群组,并且对应上述群组分别产生一群组列表。在此实施例中,HWcomposer依据序号产生的群组列表如表格1.1~1.3所示。值得注意的是,在群组列表中,图层可依照Z轴从小到大排列。
[0064] 表格1.1
[0065]序号 图层
0 A、B、E
[0066] 表格1.2
[0067]序号 图层
1 C、F
[0068] 表格1.3
[0069]序号 图层
2 D
[0070] 图6是显示根据本发明一实施例所述的显示图层的方法流程图600。值得注意的是,此方法流程由图3中的HWcomposer 322所执行。在步骤S605中,HWcomposer接收由应用(Application)所绘制的多个图层。接着,在步骤S610中,HWcomposer根据一覆盖顺序分配序号至上述图层。在步骤S615中,HWcomposer根据一方式分配每一图层的权重。在一实施例中,HWcomposer可利用一位区块传送(BLIT)性能分配图层权重。图层的位区块传送性能越低则权重越高,其中上述位区块传送性能可与图像格式、尺寸、图层是否为视频图像等等相关。一般而言。图像尺寸越大,则越难执行位区块传送。在另一实施例中,HWcomposer可判断两相邻图层是否发生变化。倘若两相邻图层为无变化(undirty)图层,则HWcomposer可分配最小的权重至上述两相邻图层。
[0071] 回到步骤S620,HWcomposer根据上述序号及一权重大小建立一图层顺序。在步骤S625中,HWcomposer依照上述图层顺序显示上述图层。
[0072] 在此实施例中,步骤S610与前面图4的步骤S410说明相同,在此不再重复赘述。而在步骤S620中HWcomposer根据序号及权重大小建立一图层顺序的步骤可详细描述如下。HWcomposer将对应起始序号的一起始群组中的图层按照权重由大到小的顺序重新排序。针对其余群组,HWcomposer判断其余群组中每一群组列表的一最后一图层的权重是否大于一阈值。当群组列表中最后一图层的权重大于上述权重阈值时,在此群组列表中的图层根据权重由大到小的顺序重新排序。当群组列表中最后一图层的权重不大于上述权重阈值时,在此群组列表中的图层根据上述权重由小到大的顺序重新排序。
[0073] 以图5为例,假设图层A~F的权重分别为1、2、6、5、4、3。HWcomposer在根据序号产生群组列表后,可依权重大小对每一群组进行再排序。在起始序号0的起始群组中,HWcomposer按照权重由大到小的顺序对起始群组中的图层A、B、E重新排序,产生新的群组列表,如表格2.1所示。
[0074] 表格2.1
[0075]序号 图层
0 E、B、A
[0076] 而其余群组,HWcomposer则需判断每一群组列表的一最后一图层的权重是否大于一权重阈值。在此例子中,假设权重阈值为3。在表格1.2中群组序号1的群组列表的一最后一图层F的权重为3,不大于权重阈值。因此,HWcomposer按照权重由小到大的顺序对群组序号1的群组列表中的图层C、F重新排序,产生新的群组列表,如表格2.2所示。同理,群组序号2的群组列表如表格2.3所示。
[0077] 表格2.2
[0078]序号 图层
1 F、C
[0079] 表格2.3
[0080]序号 图层
2 D
[0081] 如上述表格2.1~2.3所示,HWcomposer根据上述序号及权重大小所建立的图层顺序为E、B、A→F、C→D。
[0082] 在另一实施例中,在显示上述图层前,HWcomposer还可判断上述图层的一图层数量是否超过显示接口单元所支持的一串流数量。当图层数量超过串流数量时,HWcomposer则根据权重大小及图层顺序找寻至少一两相邻图层,并合并至少一两相邻图层。
[0083] 以表格2.1~2.3为例,图层顺序为E、B、A→F、C→D。假设显示接口单元所支持的串流数量为4。由于图层数量为6,因此HWcomposer判断图层需至少经过两次合并。在此例子中,HWcomposer挑选权重最小且相邻的图层进行合并。在第一次合并中,HWcomposer挑选权重分别为2及1且相邻的图层B、A进行合并。在第二次合并中,HWcomposer可在将图层B、A合并后的图层与相邻图层F进行合并。通过此种方式,HWcomposer可将图层权重较大的图层E、C、D以重叠(overlay)的方式显示,而图层B、A、F则以位区块传送(BLIT)的方式显示,以达到性能最佳化的效果。
[0084] 图7是显示根据本发明一实施例所述的合并图层的方法流程图700。值得注意的是,此方法流程由图3中的HWcomposer 322所执行。在步骤S705中,HWcomposer在一当前帧中接收多个图层。在步骤S710中,HWcomposer根据一覆盖顺序分配序号至上述图层。在步骤S715中,HWcomposer判断一第一图层和一第二图层在一期间内是否发生变化。当HWcomposer判断第一图层和第二图层未发生变化时(步骤S715中的“否”),在步骤S720中,将第一图层和第二图层合并在一起,其中第一图层和第二图层为相邻图层。最后,在步骤S725中,HWcomposer根据上述序号依一序号顺序显示上述图层。当HWcomposer判断第一图层和第二图层发生变化时(步骤S715中的“是”),在步骤S725中,则不合并第一图层及第二图层,直接根据上述序号依一序号顺序显示上述图层。
[0085] 在此实施例中,步骤S710与前面图4的步骤S410说明相同,在此不再重复赘述。值得注意的是,在步骤S715中,HWcomposer可依照下列方式判断第一图层和第二图层在一期间内是否发生变化。HWcomposer可先判断是否接收由Surfaceflinger所传送的一几何形变标志。若未接收到几何形变标志,HWcomposer则可判断对应一第一图层的缓冲器及一第二图层的缓冲器是否变化。当判断对应第一图层的缓冲器及对应第二图层的缓冲器皆未变化时,HWcomposer则判断第一图层和第二图层并无发生变化,并可执行合并第一图层和第二图层的动作。
[0086] 图8是显示根据本发明一实施例所述的合并图层的方法流程图800。值得注意的是,此方法流程由图3中的HWcomposer 322所执行。在步骤S805中,HWcomposer在一当前帧中接收多个图层。在步骤S810中,HWcomposer根据一覆盖顺序分配序号至上述图层。在步骤S815中,HWcomposer根据一方式分配每一上述图层的权重。在步骤S820中,HWcomposer根据上述序号及一权重大小建立一图层顺序。在步骤S825中,HWcomposer判断一第一图层和一第二图层在一期间内是否发生变化,其中第一图层和第二图层为相邻图层。当HWcomposer判断第一图层和第二图层未发生变化时(步骤S825中的“否”),在步骤S830中,将第一图层和第二图层合并在一起。否则,在步骤S835中,HWcomposer不合并第一图层和第二图层。
[0087] 在此实施例中,步骤S810与前面图4的步骤S410说明相同,步骤S815与前面图6的步骤S615说明相同,步骤S820与前面图6的步骤S620说明相同,步骤S825与前面图7的步骤S715说明相同,在此不再重复赘述。
[0088] 在一实施例中,在执行方法流程图700及方法流程图800之前,HWcomposer还可判断一更新时间是否超过一预设值。当更新时间超过上述预设值时,HWcomposer则触发更新上述当前帧。
[0089] 利用上述图7及图8的方法,HWcomposer可将无变化图层(undirty layer)进行合并。无变化图层可以位区块传送(BLIT)的方式显示,而有变化的图层可以重叠(overlay)的方式显示。举例来说,假设有4个图层,若上述4个图层都以重叠方式显示,则需4个串流。但若在此4个图层中,有3个相邻图层皆为无变化图层,则HWcomposer仅需使用2个串流即可显示上述图层。当无变化的图层在前一帧已合并过时,在当前帧中HWcomposer可继续使用在前一帧合并后的图层,以避免再次执行位区块传送的动作,提高性能效率。
[0090] 此外,在图1中的中央处理器108也可执行程序码112以执行上述实施例所述的动作和步骤,或其它在说明书中内容的描述。
[0091] 因此,通过本发明的一种显示及合并图层的方法及装置,根据覆盖顺序及权重调整图层的顺序,提高装置运作的效率,此外,本发明还将无变化的图层进行合并以及设置一预设值以更新当前帧,可有效减少显示接口单元所使用的串流数量,进而达到省电的效果。
[0092] 以上实施例使用多种角度描述。显然这里的教示可以以多种方式呈现,而在范例中揭露的任何特定架构或功能仅为一代表性的状况。根据本文的教示,本领域技术人员应理解在本文呈现的内容可独立利用其他某种型式或综合多种型式作不同呈现。举例说明,可遵照前文中提到任何方式利用某种装置或某种方法实现。一装置的实施或一种方式的执行可用任何其他架构、或功能性、又或架构及功能性来实现在前文所讨论的一种或多种型式上。
[0093] 本领域技术人员将了解信息及信号可用多种不同科技及技巧展现。举例,在以上描述所有可能引用到的数据、指令、命令、信息、信号、位、符号、以及码片(chip)可以伏特、电流、电磁波、磁场或磁粒、光场或光粒、或以上任何组合所呈现。
[0094] 本领域技术人员还会了解在此描述各种说明性的逻辑区块、模块、处理器、装置、电路、以及演算步骤与以上所揭露的各种情况可用的电子硬件(例如用来源编码或其他技术设计的数字实施、类比实施、或两者的组合)、各种形式的程序或与指示作为连结的设计码(在内文中为方便而称作“软件”或“软件模块”)、或两者的组合。为清楚说明此硬件及软件间的可互换性,多种具描述性的元件、方块、模块、电路及步骤在以上的描述大致上以其功能性为主。不论此功能以硬件或软件型式呈现,将视加注在整体系统上的特定应用及设计限制而定。本领域技术人员可为每一特定应用将描述的功能以各种不同方法作实现,但此实现的决策不应被解读为偏离本文所揭露的范围。
[0095] 此外,多种各种说明性的逻辑区块、模块、及电路以及在此所揭露的各种情况可实施在集成电路(integrated circuit,IC)、存取终端、存取点;或由集成电路、存取终端、存取点执行。集成电路可由一般用途处理器、数字信号处理器(Digital Signal Processor,DSP)、特定应用集成电路(application specific integrated circuit,ASIC)、现场可编程门列(field programmable gate array,FPGA)或其他可编程逻辑装置、离散门(discrete gate)或晶体管逻辑(transistor logic)、离散硬件元件、电子元件、光学元件、机械元件、或任何以上的组合的设计以完成在此文内所描述的功能;并可能执行存在于集成电路内、集成电路外、或两者皆有的执行码或指令。一般用途处理器可能是微处理器,但也可能是任何常规处理器、控制器、微控制器、或状态机。处理器可由计算机设备的组合所构成,例如:数字信号处理器(DSP)及一微计算机的组合、多组微计算机、一组至多组微计算机以及一数字信号处理器核、或任何其他类似的配置。
[0096] 在此所揭露程序的任何具体顺序或分层的步骤纯为一举例的方式。基于设计上的偏好,必须了解到程序上的任何具体顺序或分层的步骤可在此文件所揭露的范围内被重新安排。伴随的方法权利要求以一示范例顺序呈现出各种步骤的元件,也因此不应被本发明说明书所展示的特定顺序或阶层所限制。
[0097] 本发明的说明书所揭露的方法和演算法的步骤,可以直接通过执行一处理器直接应用在硬件以及软件模块或两者的结合上。一软件模块(包括执行指令和相关数据)和其它数据可储存在数据存储器中,像是随机存取存储器(Random Access Memory,RAM)、快闪存储器(flash memory)、只读存储器(Read-Only Memory,ROM)、可抹除可规化只读存储器(EPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、暂存器、硬盘、可携式硬盘、光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字视频光盘(Digital Video Disc,DVD)或在此领域现有技术中任何其它计算机可读取的储存介质格式。一储存介质可耦接至一机器装置,举例来说,像是计算机/处理器(为了说明方便,在本说明书以处理器来表示),上述处理器可通过来读取信息(像是程序码),以及写入信息至储存介质。一储存介质可整合一处理器。一特殊应用集成电路(ASIC)包括处理器和储存介质。一使用者设备则包括一特殊应用集成电路。换句话说,处理器和储存介质以不直接连接使用者设备的方式,包含于使用者设备中。此外,在一些实施例中,任何适合计算机程序的产品包括可读取的储存介质,其中可读取的储存介质包括一或多个所揭露实施例相关的程序码。而在一些实施例中,计算机程序的产品可以包括封装材料。
[0098] 权利要求书中用以修饰元件的“第一”、“第二”、“第三”等序数词的使用本身不暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
[0099] 以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。