一种图层合成方法、装置及终端设备
技术领域
本发明涉及计算机技术,尤其涉及一种图层合成方法、装置及终端设备。
背景技术
Android绘图分为软件绘图和硬件绘图,其中硬件绘图是由图形处理器(GraphicProcessor Unit,简称“GPU”)完成的,相对于软件绘图而言,硬件绘图的功能更强大,绘图效果更好。现有技术中,使用GPU绘图时,通常采用的是分图层处理机制,分图层处理机制是指在对多个待合成的图层进行合成处理时,GPU一次读入一个图层,然后对其读取图层进行合成处理。这种图层合成方式的问题是图层合成效率低。
发明内容
本发明实施例提供的一种图层合成方法、装置及终端设备,用于提高图层合成效率。
第一方面,本发明实施例提供一种非视频模式下的图层合成方法,该方法包括:接收图层合成命令,所述图层合成命令包含多个待合成的图层的地址信息;配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,其中,所述多个数据传输通道与所述多个待合成的图层一一对应;基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述多个待合成的图层的数据;根据所述图层合成命令的指示将获取到的所述多个待合成的图层的数据进行合成处理,得到目标图像。
结合第一方面,在第一种实现方式下,所述所述多个待合成的图层的数目小于或等于所述叠加overlay合成器的数据传输通道的数目,所述配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,其中,所述多个数据传输通道与所述多个待合成的图层一一对应,包括:确定所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系;根据确定的所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息为对应的所述多个待合成的图层的地址信息。
结合第一方面,在第二种实现方式下,所述多个待合成的图层的数目小于或等于所述叠加overlay合成器的数据传输通道的数目,所述图层合成命令还包含所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系;所述配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,包括:根据所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息分别为对应的所述多个待合成的图层的地址信息。
结合第一方面,在第三种实现方式下,所述多个待合成的图层的数目小于或等于所述叠加overlay合成器的数据传输通道的数目,所述多个待合成的图层的地址信息包括预合成图层的地址信息和包含脏数据的图层的地址信息,所述图层合成命令还包含预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,其中,预合成图层为对多个待合成的原始图层中不包含脏数据的图层经过合成得到;所述配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,包括:根据所述预合成图层和所述包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息分别为对应的所述预合成图层和所述包含脏数据的图层的地址信息;所述基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述多个待合成图层的数据,包括:基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述预合成图层的数据和所述包含脏数据的图层的数据;所述根据所述图层合成命令的指示将获取到的所述多个待合成图层的数据进行合成处理,生成目标图像,包括:根据所述图层合成命令的指示将获取到的所述预合成图层的数据和所述包含脏数据的图层的数据进行合成处理,得到所述目标图像。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式或者第一方面的第三种实现方式,在第四种实现方式下,所述多个待合成的图层包括第一图层和第二图层,且所述第一图层和所述第二图层分别包括第一序列行和第二序列行,所述通过所述多个数据传输通道并行地获取所述多个待合成的图层的数据,包括:通过所述多个数据传输通道并行地获取所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行;通过所述多个数据传输通道并行地获取所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行;所述根据所述图层合成命令的指示将获取到的所述多个待合成的图层的数据进行合成处理,得到目标图像,包括:根据所述图层合成命令的指示将获取到的所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行进行合成处理,得到所述目标图像的第一中间图层数据;根据所述图层合成命令的指示将获取到的所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行进行合成处理,得到所述目标图像的第二中间图层数据;根据所述第一中间图层数据和所述第二中间图层数据得到所述目标图像。
第二方面,本发明实施例提供一种图层合成装置,该装置包括:接收单元,用于接收图层合成命令,所述图层合成命令包含多个待合成的图层的地址信息;配置单元,用于配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,其中,所述多个数据传输通道与所述多个待合成的图层一一对应;获取单元,用于基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述多个待合成的图层的数据;合成单元,用于根据所述图层合成命令的指示将获取到的所述多个待合成的图层的数据进行合成处理,得到目标图像。
结合第二方面,在第一种实现方式下,该装置还包括确定单元,所述多个待合成的图层的数目小于或等于所述叠加overlay合成器的数据传输通道的数目,所述确定单元用于确定所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系;所述配置单元具体用于根据确定的所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息为对应的所述多个待合成的图层的地址信息。
结合第二方面,在第二种实现方式下,所述多个待合成的图层的数目小于或等于所述叠加overlay合成器的数据传输通道的数目,所述图层合成命令还包含所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系;所述配置单元具体用于根据所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息分别为对应的所述多个待合成的图层的地址信息。
结合第二方面,在第三种实现方式下,所述多个待合成的图层的数目小于或等于所述叠加overlay合成器的数据传输通道的数目,所述多个待合成的图层的地址信息包括预合成图层的地址信息和包含脏数据的图层的地址信息,所述图层合成命令还包含预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,其中,预合成图层为对多个待合成的原始图层中不包含脏数据的图层经过合成得到;所述配置单元具体用于根据所述预合成图层和所述包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息分别为对应的所述预合成图层和所述包含脏数据的图层的地址信息;所述获取单元具体用于基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述预合成图层的数据和所述包含脏数据的图层的数据;所述合成单元具体用于根据所述图层合成命令的指示将获取到的所述预合成图层的数据和所述包含脏数据的图层的数据进行合成处理,得到所述目标图像。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式或者第二方面的第三种实现方式,在第四种实现方式下,所述多个待合成的图层包括第一图层和第二图层,且所述第一图层和所述第二图层分别包括第一序列行和第二序列行,所述获取单元具体用于通过所述多个数据传输通道并行地获取所述第一图层的第一序列行和所述第二图层的第一序列行,以及具体用于通过所述多个数据传输通道并行地获取所述第一图层的第二序列行和所述第二图层的第二序列行;所述合成单元具体用于根据所述图层合成命令的指示将获取到的所述第一图层的第一序列行和所述第二图层的第一序列行进行合成处理,得到所述目标图像的第一中间图层数据;根据所述图层合成命令的指示将获取到的所述第一图层的第二序列行和所述第二图层的第二序列行进行合成处理,得到所述目标图像的第二中间图层数据;根据所述第一中间图层数据和所述第二中间图层数据得到所述目标图像。
第三方面,本发明实施例还提供一种终端设备,该终端设备包括如上述第第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式或者第二方面的第四种实现方式中任一实现方式所述的图层合成装置、显示控制器和显示屏幕组件,其中所述显示控制器用于将所述图层合成装置得到的目标图像显示在所述显示屏幕组件上。
可见,本发明实施例提供的图层合成方法、装置及终端设备,通过并行地获取所述多个待合成的图层的数据,并将获取到的所述多个待合成的图层的数据进行合成处理得到目标图像,使得图层的合成效率得以提升。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术的图层合成流程图;
图2是现有技术的终端设备的逻辑结构图;
图3a是本发明实施例提供的一种非视频模式下的图层合成方法的流程示意图;
图3b是本发明实施例提供的另一种非视频模式下的图层合成方法的流程示意图;
图3c是本发明实施例提供的非视频模式下的图层合成方法的具体应用示意图;
图4a是本发明实施例提供的一种图层合成装置的结构示意图;
图4b是本发明实施例提供的另一种图层合成装置的结构示意图;
图5a是本发明实施例提供的一种终端设备的结构示意图;
图5b是本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的叠加overlay的概念。
叠加overlay是一种数字视频显示技术,具有图层叠加(alpha blending)功能,一般用于将视频叠加到系统的用户界面(UI,User Interface)上。由于叠加overlay技术在终端产品上的应用很好的解决了视频流畅度问题,所以越来越多的硬件厂商把叠加overlay合成器集成到处理器芯片上。目前厂商集成的叠加overlay合成器一般至少包含两个数据传输通道,分别是视频数据传输通道(video channel)和图像数据传输通道(graphicchannel),叠加overlay合成器将通过所述视频数据传输通道获取的视频叠加到通过所述图像数据传输通道获取的图形上,生成叠加结果并将所述叠加结果输出到显示设备上。
这种集成了叠加overlay合成器的图像处理器在执行常规的图层合成操作时,需要经过下述步骤:请参阅图1所示,共有四个待合成的图层,分别是layer0、layer1、layer2和layer3,GPU调用其内部的G2D模块对所述四个待合成的图层做合成处理,所述合成处理的方法具体为:所述G2D先读入layer0并将layer0放到一个帧缓存区内,再读入layer1,接着回读layer0与layer1进行合成得到第一合成结果,并将所述第一合成结果放置在帧缓存区,接着读入layer2,回读所述第一合成结果与layer2进行合成得到第二合成结果,并将所述第二合成结果放置在帧缓存区,接着读入layer3,回读所述第二合成结果与所述layer3进行合成得到目标图像,并将所述目标图像放置在帧缓存区。
如图1所示,叠加overlay合成器集成了两个数据传输通道,分别是图像数据传输通道(graphic channel)和视频数据传输通道(video channel),则所述叠加overlay合成器通过所述图像数据传输通道读入所述目标图像,由于本次操作中所述叠加overlay合成器没有通过所述视频数据传输通道读入视频,所以无需再做叠加,而是直接将所述目标图形输出到显示设备上。
实施例一
图3a是本发明实施例提供的一种非视频模式下的图层合成方法的方法流程图。本发明实施例提供的该非视频模式下的图层合成方法可以应用于计算机系统中,该计算机系统可以位于一台物理主机上,也可以分布位于多台物理主机上。具体地,该计算机系统可以位于一台或多台计算机、便携式电脑、手持设备(例如手机,PAD等)、服务器等类型的终端上。
以图2为例介绍本发明实施例提供的非视频模式下的图层合成方法应用的计算节点的逻辑结构。该计算节点可以是终端设备,该终端设备具体可以为一智能手机。如图2所示,该终端设备的硬件层包括中央处理器CPU、图形处理单元GPU、物理内存DDR以及显示控制器等,其中叠加overlay合成器集成在显示控制器内;当然还可以包括输入/输出设备、内存、内存控制器、网络接口等,输入设备可包括键盘、鼠标、触摸屏等,输出设备可包括显示设备如LCD、CRT、全息成像(Holographic)、投影(Projector)等。在硬件层之上是内核驱动层,所述内核驱动层包括显示控制器驱动、图形缓冲区驱动、帧缓冲区驱动、内核图形系统层等。在内核驱动层之上是核心库层,核心库是操作系统的核心部分,包括输入/输出服务、核心服务、图形设备接口以及实现CPU、GPU图形处理的图形引擎(Graphics Engine)等。图形引擎可包括2D引擎、3D引擎、合成器(Composition)、帧缓冲区(Frame Buffer)、EGL等。除此之外,该终端还包括框架层和应用层。框架层可包括图形服务(Graphic Service)、系统核心服务(System service)以及网页服务(Web Service)、用户服务(Customer Service)等(图中未示出)。应用层可包括桌面(launcher)、媒体播放器(Media Player)、浏览器(Browser)等。
以图2为例,本发明实施例提供的图层合成方法,应用于计算节点,该计算节点可以是终端设备,其中,该终端设备的硬件层可包括处理器,(例如中央处理器(CenterProcessing Unit,CPU)、图形处理器(Graphic Processing Unit,GPU))、显示控制器(Display Controller)、内存、内存控制器、输入设备、显示设备等硬件,核心库层(KernelLibrary)可包括输入/输出服务(I/O Service)、核心服务(Kernel Service)及图形引擎(Graphic Engine),应当理解的是,本发明实施例方法的执行主体的逻辑结构可参考图2。
如图3a所示,本发明实施例提供的图层合成方法包括:
S301、接收图层合成命令,所述图层合成命令包含多个待合成的图层的地址信息;
具体的,所述图层合成命令可以是用户通过触摸屏触摸、键盘输入、鼠标点击等方式输入的,本发明实施例对此不做限定。
需要说明的是,所述多个待合成的图层是指两个以上的待合成的图层。
值得注意的是,应用层通知surface flinger开始合成并传入各个图层的信息,包括图层首地址,宽,高,像素格式,裁剪局域等。
S304、配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,其中,所述多个数据传输通道与所述多个待合成的图层一一对应;
其中,所述叠加overlay合成器中的多个数据传输通道具体是指所述叠加overlay合成器中的多个数据传输通道寄存器,所述配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息是指将所述多个待合成的图层的首地址分别写入所述叠加overlay合成器中的多个数据传输通道寄存器中,所述多个待合成的图层与所述多个待合成的图层一一对应。因此,本发明实施例公开的技术方案的应用前提是所述多个待合成的图层的图层数目小于或者等于所述叠加overlay合成器的数据传输通道的数目。
需要说明的是,所述配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,可以是根据预先设置的所述多个数据传输通道与所述多个待合成的图层一一对应关系进行配置的;或者,在所述图层合成命令还包含所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系时,根据所述对应关系配置所述叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息;或者,首先确定所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,然后根据确定的所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息为对应的所述多个待合成的图层的地址信息,值得注意的是,所述确定可以是根据一定的规则确定所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系的,也可以是随机确定所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系的。具体的,只要满足所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间是一一对应的关系,具体怎样配置本发明不做限制性规定。
值得注意的是,所述多个待合成的图层中的每一个图层均位于一段物理地址连续的图形缓冲区内,这是因为叠加overlay合成器本身没有内存管理功能,它只能从内存中一段物理地址连续的分区内读取图层。
S306、基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述多个待合成的图层的数据;
S308、根据所述图层合成命令的指示将获取到的所述多个待合成的图层的数据进行合成处理,得到目标图像。
具体的,根据所述多个数据传输通道寄存器内的存储的所述多个待合成的图层的首地址,同时读入所述多个待合成图层的图层数据。
需要说明的是,所述通过所述多个数据传输通道并行地获取所述多个待合成的图层的数据,根据所述图层合成命令的指示将获取到的所述多个待合成的图层的数据进行合成处理,得到目标图像,是指当所述至少两个需要合成的图层包括第一图层和第二图层,且所述第一图层和所述第二图层分别包括第一序列行和第二序列行时,首先,通过所述多个数据传输通道并行地读入所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行,根据所述图层合成命令的指示将所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行进行合成处理,得到所述目标图像的第一中间图层数据;然后通过所述多个数据传输通道并行地读入所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行,根据所述图层合成命令的指示将所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行进行合成处理,得到所述目标图像的第二中间图层数据;然后依据所述第一中间图层数据和所述第二中间图层数据就能得到所述目标图像。其中,得到所述第一中间图层数据后,还包括将所述第一中间图层数据存储在显示屏LCD的缓存区内;得到所述第二中间图层数据后,还包括将所述第二中间图层数据存储在显示屏LCD的缓存区内;然后根据位于所述显示屏LCD的缓存区的所述第一中间图层数据和所述第二中间图层数据能够得到所述目标图像。进一步的,当所述多个待合成的图层是指三个以上图层时,则对其进行合成时也是首先分别读入每个图层的数据的第一序列行进行合成,然后再分别读入每个图层的数据的第二序列行进行合成,以此类推,直到读完每个图层的数据的最后一个序列行并进行合成后,就能够根据上述合成结果得到所述目标图像。需要说明的是,所述序列行是一个自定义的概念,具体用于表述每次读入的一个图层中的图层数据的多少,实际应用中,所述序列行的大小取决于厂家的定制情况。
另外,需要注意的是,所述生成的目标图像的大小与显示设备的屏幕区域大小相同。
可知,采用本发明实施例提供非视频模式下的图层合成方法,可以同时获取多个待合成的图层,并将所述多个待合成的图层进行合成处理,相对于现有技术中的串行图层合成方式,本发明实施例提供的技术方案提高了图层合成效率,且同时读入多个待合成的图层提高了内存带宽利用率。
实施例二
请参阅附图3b,为本发明实施例提供的另一种非视频模式下的图层合成方法的方法流程图,该非视频模式下的图层合成方法可以应用于计算机系统中,该计算机系统可以位于一台物理主机上,也可以分布位于多台物理主机上。具体地,该计算机系统可以位于一台或多台计算机、便携式电脑、手持设备(例如手机,PAD等)、服务器等类型的终端上。本发明实施例提供的非视频模式下的图层合成方法可以应用于如图2所示的计算节点中。
具体的,本发明实施例所述的非视频模式下的图层合成方法的具体流程如下:
S321、接收图层合成命令,所述图层合成命令包含多个待合成的图层的地址信息,所述多个待合成的图层的地址信息包括预合成图层的地址信息和包含脏数据的图层的地址信息,所述图层合成命令还包含预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,其中,预合成图层为多个待合成的原始图层中不包含脏数据的图层经过合成得到的;
需要说明的是,本发明实施例所述的非视频模式下的图层合成方法,针对的是所述多个待合成的原始图层的数目大于所述叠加overlay合成器的多个数据传输通道的通道数目,所述多个待合成的图层的数目小于或者等于所述叠加overlay合成器的多个数据传输通道的通道数目的情形。在这种情况下,采用本发明实施例所述非视频模式下的图层合成方法进行图层合成时,首先需要从所述多个待合成的原始图层中过滤出包含脏数据的图层;然后使用图形处理器GPU将所述多个待合成的原始图层中不包含脏数据的图层进行合成处理得到所述预合成图层;再将所述预合成图层和所述多个待合成的原始图层中包含脏数据的图层进行合成处理得到目标图像。
其中,从所述多个待合成的原始图层中过滤出包含脏数据的图层,是根据所述多个待合成的原始图层中每一个图层与可视区域的交集是否为空来识别所述图层是否包含脏数据,其中,如果所述图层与可视区域的交集不为空,则确定所述图层包含脏数据;如果所述图层与可视区域的交集为空,则确定所述图层不包含脏数据。所述脏数据是指源系统中的数据不在给定的范围内或对于实际业务毫无意义,或是数据格式非法,以及在源系统中存在不规范的编码和含糊的业务逻辑。当某两个需要做合成的图层存在重叠区域,且所述重叠区域内有alpha值时,则所述两个需要做合成的图层需要做alpha blending。
具体的,参阅附图3c,共有4个待合成的图层,分别是导航栏(Navigation Bar)、状态栏(Status Bar)、壁纸(Wallpaper)和桌面启动器(launcher),其中,所述桌面启动器在所述壁纸之上且所述桌面启动器中包含有脏数据,则所述桌面启动器在与所述壁纸合成时需要做一次alpha混合,而所述导航栏以及所述状态栏均与其他待合成的图层没有重叠区域,即无需做alpha混合。由于附图3c中的叠加overlay合成器仅包含两个数据传输通道,小于所述待合成的图层的数目,所以按照本发明实施例所述的技术方案,首先过滤出不包含脏数据的图层,即所述导航栏、状态栏以及壁纸,然后利用图形处理器GPU将所述不包含脏数据的图层进行合成生成预合成图层。然后,将所述预合成图层和包含脏数据的所述桌面启动器进行合成处理,得到目标图像。
需要说明的是,所述图层合成命令中还包含预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系。
S324、根据所述预合成图层和所述包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息分别为对应的所述预合成图层和所述包含脏数据的图层的地址信息;
其中,所述叠加overlay合成器中的多个数据传输通道具体是指所述叠加overlay合成器中的多个数据传输通道寄存器,所述配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息是指将所述多个待合成的图层的首地址分别写入所述叠加overlay合成器中的多个数据传输通道寄存器中,所述多个待合成的图层与所述多个待合成的图层一一对应。因此,本发明实施例公开的技术方案的应用前提是所述多个待合成的图层的图层数目小于或者等于所述叠加overlay合成器的数据传输通道的数目。
值得注意的是,所述多个待合成的图层中的每一个包含脏数据的图层均位于一段物理地址连续的图形缓冲区内,所述预合成图层被放置在一个物理地址连续的帧缓存区,这是因为叠加overlay合成器本身没有内存管理功能,它只能从内存中一段物理地址连续的分区内读取图层。
所述配置所述多个数据传输通道的地址信息分别为对应的所述预合成图层和所述包含脏数据的图层的地址信息,是根据所述图层合成命令包含的预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系配置的。需要说明的是,所述配置所述多个数据传输通道的地址信息分别为对应的所述预合成图层和所述包含脏数据的图层的地址信息,还可以是依据预先配置的所述预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系进行配置的等,具体的配置依据包括但不限于上述列举的,凡是能够实现上述技术方案的技术手段都在本发明的保护范围之内。
S326、基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述预合成图层的数据和所述包含脏数据的图层的数据;
S328、根据所述图层合成命令的指示将获取到的所述预合成图层的数据和所述包含脏数据的图层的数据进行合成处理,得到所述目标图像。
具体的,根据所述多个数据传输通道寄存器内的存储的所述包含脏数据的图层的首地址以及所述预合成图层的首地址,同时读入所述预合成图层的数据和所述包含脏数据的图层的数据。
需要说明的是,所述通过所述多个数据传输通道并行地获取所述预合成图层的数据和所述包含脏数据的图层的数据,根据所述图层合成命令的指示将获取到的所述预合成图层的数据和所述包含脏数据的图层的数据进行合成处理,得到所述目标图像,是指当所述预合成图层是指第一图层,所述包含脏数据的图层是指第二图层,且所述第一图层和所述第二图层分别包括第一序列行和第二序列行时,首先,通过所述多个数据传输通道并行地读入所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行,根据所述图层合成命令的指示将所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行进行合成处理,得到所述目标图像的第一中间图层数据;然后通过所述多个数据传输通道并行地读入所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行,根据所述图层合成命令的指示将所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行进行合成处理,得到所述目标图像的第二中间图层数据;然后依据所述第一中间图层数据和所述第二中间图层数据就能得到所述目标图像。其中,得到所述第一中间图层数据后,还包括将所述第一中间图层数据存储在显示屏LCD的缓存区内;得到所述第二中间图层数据后,还包括将所述第二中间图层数据存储在显示屏LCD的缓存区内;然后根据位于所述显示屏LCD的缓存区的所述第一中间图层数据和所述第二中间图层数据能够得到所述目标图像。进一步的,当所述多个待合成的图层是指三个以上图层时,则对其进行合成时也是首先分别读入每个图层的数据的第一序列行进行合成,然后再分别读入每个图层的数据的第二序列行进行合成,以此类推,直到读完每个图层的数据的最后一个序列行并进行合成后,就能够根据上述合成结果得到所述目标图像。需要说明的是,所述序列行是一个自定义的概念,具体用于表述每次读入的一个图层中的图层数据的多少,实际应用中,所述序列行的大小取决于厂家的定制情况。
另外,需要注意的是,所述生成的目标图像的大小与显示设备的屏幕区域大小相同。
可知,采用本发明实施例所述的非视频模式下的图层合成方法进行图层合成时,是同时获取多个待合成的图层进行合成处理的,相对于现有技术中一次获取一个图层来说,图层合成效率更好,且内存带宽利用率更好;进一步的,采用本发明实施例提供的技术方案,可以充分利用硬件资源。
实施例三
为更好的实施上述方法实施例,请参阅附图4a,为本发明实施例提供的一种图层合成装置40的结构示意图,本发明实施例提供的图层合成装置40可以应用于如图2所示的终端设备。如图4a所示,该装置包括:接收单元42、配置单元43、获取单元46以及合成单元48。
所述接收单元42,用于接收图层合成命令,所述图层合成命令包含多个待合成的图层的地址信息;
具体的,所述接收单元42接收的所述图层合成命令可以是用户通过触摸屏触摸、键盘输入、鼠标点击等方式输入的,本发明实施例对此不做限定。
需要说明的是,所述多个待合成的图层是指两个以上的待合成的图层。
所述配置单元44,用于配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,其中,所述多个数据传输通道与所述多个待合成的图层一一对应;
其中,所述叠加overlay合成器中的多个数据传输通道具体是指所述叠加overlay合成器中的多个数据传输通道寄存器,所述配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息是指将所述多个待合成的图层的首地址分别写入所述叠加overlay合成器中的多个数据传输通道寄存器中,所述多个待合成的图层与所述多个待合成的图层一一对应。因此,本发明实施例公开的技术方案的应用前提是所述多个待合成的图层的图层数目小于或者等于所述叠加overlay合成器的数据传输通道的数目。
需要说明的是,所述配置单元44配置所述叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,可以是根据预先设置的所述多个数据传输通道与所述多个待合成的图层一一对应关系进行配置的;或者,在所述图层合成命令还包含所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系时,根据所述对应关系配置所述叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息。具体的,只要满足所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间是一一对应的关系,具体怎样配置本发明不做限制性规定。
值得注意的是,所述多个待合成的图层中的每一个图层均位于一段物理地址连续的图形缓冲区内,这是因为叠加overlay合成器本身没有内存管理功能,它只能从内存中一段物理地址连续的分区内读取图层。
所述获取单元46,用于基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述多个待合成的图层的数据;
所述合成单元48,用于根据所述图层合成命令的指示将获取到的所述多个待合成的图层的数据进行合成处理,得到目标图像。
具体的,所述获取单元46根据所述多个数据传输通道寄存器内的存储的所述多个待合成的图层的首地址,同时读入所述多个待合成图层的图层数据。
当所述至少两个需要合成的图层包括第一图层和第二图层,且所述第一图层和所述第二图层分别包括第一序列行和第二序列行时,所述获取单元46获取所述第一图层数据的第一序列行和第二图层数据的第一序列行,然后所述合成单元48将所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行进行合成处理,得到所述目标图像的第一中间图层数据;所述获取单元46获取所述第一图层数据的第二序列行和第二图层数据的第二序列行,然后所述合成单元48将所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行进行合成处理,得到所述目标图像的第二中间图层数据;根据所述第一中间图层数据和第二中间图层数据得到所述目标图像。进一步的,当所述多个待合成的图层是指三个以上图层时,则对其进行合成时也是首先通过获取单元46获取每个图层的数据的第一序列行进行合成,然后再获取每个图层的数据的第二序列行进行合成,以此类推,直到获取每个图层的数据的最后一个序列行并进行合成后,就能够根据上述合成结果得到所述目标图像。需要说明的是,所述序列行是一个自定义的概念,具体用于表述每次读入的一个图层中的图层数据的多少,实际应用中,所述序列行的大小取决于厂家的定制情况。
作为本发明的另一个实施例,参阅附图4b所示的图层合成装置,所述图层合成装置也包括接收单元、配置单元、获取单元和确定单元,所述单元的具体功能参阅上述图层合成装置实施例,此处不再赘述。
值得注意的是,附图4a所示的图层合成装置还包括确定单元43,所述确定单元403用于确定所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系;则对应的,所述配置单元44用于根据确定的所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息为对应的所述多个待合成的图层的地址信息。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,且以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
由此可见,本发明实施例提供的图层合成装置,并行地将所述至少两个需要合成的图层进行合成处理,相对于现有技术中的串行图层合成方式,不仅提高了图层合成效率,且提高了内存带宽利用率。
实施例四
请参阅附图4b,为本发明实施例提供的另一种图层合成装置400的结构示意图,本发明实施例提供的图层合成装置400可以应用于如图2所示的终端设备。如图4b所示,该图层合成装置400包括:
接收单元402,用于接收图层合成命令,所述图层合成命令包含多个待合成的图层的地址信息,所述多个待合成的图层的地址信息包括预合成图层的地址信息和包含脏数据的图层的地址信息,所述预合成图层为对多个待合成的原始图层中不包含脏数据的图层经过合成得到;
需要说明的是,所述图层合成命令还包含预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系。鉴于所述预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,所述多个待合成的图层的数目必须小于或等于所述叠加overlay合成器的数据传输通道的数目。
采用本发明实施例所述图层合成装置进行图层合成时,首先需要从所述多个待合成的原始图层中过滤出包含脏数据的图层;然后使用图形处理器GPU将所述多个待合成的原始图层中不包含脏数据的图层进行合成处理得到所述预合成图层;再将所述预合成图层和所述多个待合成的原始图层中包含脏数据的图层进行合成处理得到目标图像。
其中,从所述多个待合成的原始图层中过滤出包含脏数据的图层,是根据所述多个待合成的原始图层中每一个图层与可视区域的交集是否为空来识别所述图层是否包含脏数据,其中,如果所述图层与可视区域的交集不为空,则确定所述图层包含脏数据;如果所述图层与可视区域的交集为空,则确定所述图层不包含脏数据。所述脏数据是指源系统中的数据不在给定的范围内或对于实际业务毫无意义,或是数据格式非法,以及在源系统中存在不规范的编码和含糊的业务逻辑。当某两个需要做合成的图层存在重叠区域,且所述重叠区域内有alpha值时,则所述两个需要做合成的图层需要做alpha blending。
配置单元404,用于根据所述预合成图层和所述包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息分别为对应的所述预合成图层和所述包含脏数据的图层的地址信息;
其中,所述叠加overlay合成器中的多个数据传输通道具体是指所述叠加overlay合成器中的多个数据传输通道寄存器,所述配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息是指将所述多个待合成的图层的首地址分别写入所述叠加overlay合成器中的多个数据传输通道寄存器中,所述多个待合成的图层与所述多个待合成的图层一一对应。因此,本发明实施例公开的技术方案的应用前提是所述多个待合成的图层的图层数目小于或者等于所述叠加overlay合成器的数据传输通道的数目。
值得注意的是,所述多个待合成的图层中的每一个包含脏数据的图层均位于一段物理地址连续的图形缓冲区内,所述预合成图层被放置在一个物理地址连续的帧缓存区,这是因为叠加overlay合成器本身没有内存管理功能,它只能从内存中一段物理地址连续的分区内读取图层。
需要说明的是,所述配置所述多个数据传输通道的地址信息分别为对应的所述预合成图层和所述包含脏数据的图层的地址信息,除了根据所述图层合成命令包含的预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系进行配置,还可以根据预先配置的所述预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系进行配置的,总之,凡是能够实现上述技术方案的技术手段都在本发明的保护范围之内。
获取单元406用于基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述预合成图层的数据和所述包含脏数据的图层的数据;
具体的,根据所述多个数据传输通道寄存器内的存储的所述包含脏数据的图层的首地址以及所述预合成图层的首地址,同时读入所述预合成图层的数据和所述包含脏数据的图层的数据。
合成单元408,用于根据所述图层合成命令的指示将获取到的所述预合成图层的数据和所述包含脏数据的图层的数据进行合成处理,得到所述目标图像。
需要说明的是,当所述预合成图层是指第一图层,所述包含脏数据的图层是指第二图层,且所述第一图层和所述第二图层分别包括第一序列行和第二序列行时,首先,所述获取单元406通过所述多个数据传输通道并行地获取所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行,所述合成单元408将所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行进行合成处理,得到所述目标图像的第一中间图层数据;然后所述获取单元406并行地读入所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行,所述合成单元408将所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行进行合成处理,得到所述目标图像的第二中间图层数据;然后依据所述第一中间图层数据和所述第二中间图层数据就能得到所述目标图像。进一步的,当所述多个待合成的图层是指三个以上图层时,则对其进行合成时也是首先由所述获取单元406分别获取每个图层的数据的第一序列行进行合成,然后再分别获取每个图层的数据的第二序列行进行合成,以此类推,直到获取每个图层的数据的最后一个序列行并进行合成后,就能够根据上述合成结果得到所述目标图像。需要说明的是,所述序列行是一个自定义的概念,具体用于表述每次读入的一个图层中的图层数据的多少,实际应用中,所述序列行的大小取决于厂家的定制情况。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
可知,采用本发明实施例提供的图层合成装置进行图层合成时,是同时获取多个待合成的图层进行合成处理的,相对于现有技术中一次获取一个图层来说,图层合成效率更好,且内存带宽利用率更好;进一步的,采用本发明实施例提供的技术方案,可以充分利用硬件资源。
实施例五
相应的,参阅附图5a,为本发明实施例提供的一种终端设备50,所述终端设备50的逻辑结构可以参阅附图2,该终端设备50包括图层合成装置52、显示控制器53以及显示屏幕组件55.
所述图层合成装置52用于接收图层合成命令,所述图层合成命令包含多个待合成的图层的地址信息;配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,其中,所述多个数据传输通道与所述多个待合成的图层一一对应;基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述多个待合成的图层的数据;根据所述图层合成命令的指示将获取到的所述多个待合成的图层的数据进行合成处理,得到目标图像。
其中,所述图层合成命令包含多个待合成的图层的地址信息是指所述多个待合成的图层的首地址;所述配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息是指将所述叠加overlay合成器中的多个数据传输通道的地址信息分别配置为所述多个待合成的图层的首地址。再者,所述多个数据传输通道是指多个数据传输通道寄存器,每一个数据传输通道寄存器用于存储一个待合成的图层的首地址。
需要说明的是,所述多个待合成的图层的数目小于或等于所述叠加overlay合成器的数据传输通道的数目,所述图层合成装置52具体用于确定所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系;根据确定的所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息为对应的所述多个待合成的图层的地址信息。
进一步的,在所述图层合成装置52接收的所述图层合成命令还包含所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系时,所述图层合成装置52具体用于根据所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息分别为对应的所述多个待合成的图层的地址信息。
也即,所述图层合成装置52配置所述所述多个数据传输通道的地址信息分别为对应的所述多个待合成的图层的地址信息可以自主确定所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,或者是在所述图层合成命令还包含所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,基于所述图层合成命令中包含的所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系配置所述多个数据传输通道的地址信息分别为对应的所述多个待合成的图层的地址信息。需要说明的是,所述图层合成装置52自主确定所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系时,可以是依据预先设置的规则,也可以是随机设置的,本发明对此不做限制性规定。
值得注意的是,所述多个待合成的图层的数目小于或等于所述叠加overlay合成器的数据传输通道的数目,所述图层合成装置52接收的所述图层合成命令中包含的所述多个待合成的图层的地址信息包括预合成图层的地址信息和包含脏数据的图层的地址信息,所述图层合成命令还包含预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,其中,预合成图层为对多个待合成的原始图层中不包含脏数据的图层经过合成得到的;所述图层合成装置52具体用于根据所述预合成图层和所述包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息分别为对应的所述预合成图层和所述包含脏数据的图层的地址信息;以及具体用于基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述预合成图层的数据和所述包含脏数据的图层的数据;以及具体用于根据所述图层合成命令的指示将获取到的所述预合成图层的数据和所述包含脏数据的图层的数据进行合成处理,得到所述目标图像。
需要说明的是,当图层数大于通道数则无法完全利用overlay合成时利用overlay结合GPU进行合成。首先过滤出脏图层,把没有脏数据的图层先进行GPU合成,合成输出到Framebuffer中,作为一个新的图层B。再把B的首地址设置到overlay的其中一个通道,再和有脏数据的图层进行overlay。送入GPU合成的图层与前一次保存的图层状态进行对比,无变化则跳过GPU合成,否则调用GPU相应的API进行合成,合成好后的数据写入framebuffer,并把framebuffer地址设置到graphic通道中。
具体的,所述多个待合成的图层包括第一图层和第二图层,且所述第一图层和所述第二图层分别包括第一序列行和第二序列行,所述图层合成装置52具体用于通过所述多个数据传输通道并行地获取所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行;通过所述多个数据传输通道并行地获取所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行;以及具体用于根据所述图层合成命令的指示将获取到的所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行进行合成处理,得到所述目标图像的第一中间图层数据;根据所述图层合成命令的指示将获取到的所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行进行合成处理,得到所述目标图像的第二中间图层数据;根据所述第一中间图层数据和所述第二中间图层数据得到所述目标图像。
所述显示控制器53用于将所述目标图像输出显示到所述显示屏幕组件55上。
由此可知,采用本发明实施例提供的终端设备进行图层合成时,是同时获取多个待合成的图层进行合成处理的,不仅提高了图层合成效率,而且提高了内存带宽利用率;进一步的,采用本发明实施例提供的技术方案,可以充分利用硬件资源。
实施例6
相应的,参阅附图5b,为本发明实施例提供一种终端设备,所述终端设备的逻辑结构可以参阅附图2,该终端设备包括至少一个处理器501,例如CPU,至少一个网络接口504,例如物理网卡,或者其他的用户接口503,以及存储器505和至少一个通信总线502。
其中,通信总线502用于实现这些组件之间的连接通信。
网络接口504用于实现该物理主机和网络之间的连接通信,比如该网络接口504可以用于连接物理网卡和/或物理交换机等设备。
可选的,用户接口503,可以包括显示器,键盘或者其他点击设备,例如,鼠标,轨迹球(trackball),触感板或者触感显示屏等。
存储器505可能包括高速随机存取记忆体(RAM,Random AccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,该存储器505还可以包括至少一个位于远离前述处理器501的存储装置。
在一些实施方式中,存储器505存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统5051,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用模块5052,包含各种应用程序,用于实现各种应用业务。
应用模块5052中包括但不限于与虚拟机的数据交换相关的各种单元,比如接收单元、配置单元、获取单元和合成单元等。
具体地,处理器501,用于接收图层合成命令,所述图层合成命令包含多个待合成的图层的地址信息;配置叠加overlay合成器中的多个数据传输通道的地址信息分别为所述多个待合成的图层的地址信息,其中,所述多个数据传输通道与所述多个待合成的图层一一对应;基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述多个待合成的图层的数据;根据所述图层合成命令的指示将获取到的所述多个待合成的图层的数据进行合成处理,得到目标图像。
需要说明的是,所述多个待合成的图层的数目小于或等于所述叠加overlay合成器的数据传输通道的数目。
所述处理器501具体用于确定所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系;根据确定的所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息为对应的所述多个待合成的图层的地址信息。需要说明的是,在所述图层合成命令还包含所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系时,所述处理器501具体用于根据所述多个待合成的图层与叠加overlay合成器中的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息分别为对应的所述多个待合成的图层的地址信息。
进一步的,所述多个待合成的图层的数目小于或等于所述叠加overlay合成器的数据传输通道的数目,所述多个待合成的图层的地址信息包括预合成图层的地址信息和包含脏数据的图层的地址信息,所述图层合成命令还包含预合成图层和包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,其中,预合成图层为对多个待合成的原始图层中不包含脏数据的图层经过合成得到;所述处理器501还用于根据所述预合成图层和所述包含脏数据的图层与所述叠加overlay合成器的多个数据传输通道之间的一一对应关系,配置所述多个数据传输通道的地址信息分别为对应的所述预合成图层和所述包含脏数据的图层的地址信息;基于所述多个数据传输通道的地址信息,通过所述多个数据传输通道并行地获取所述预合成图层的数据和所述包含脏数据的图层的数据;以及根据所述图层合成命令的指示将获取到的所述预合成图层的数据和所述包含脏数据的图层的数据进行合成处理,得到所述目标图像。
需要说明的是,在所述多个待合成的图层包括第一图层和第二图层,且所述第一图层和所述第二图层分别包括第一序列行和第二序列行时,所述处理器501具体用于通过所述多个数据传输通道并行地获取所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行,根据所述图层合成命令的指示将获取到的所述第一图层的数据的第一序列行和所述第二图层的数据的第一序列行进行合成处理,得到所述目标图像的第一中间图层数据;通过所述多个数据传输通道并行地获取所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行,根据所述图层合成命令的指示将获取到的所述第一图层的数据的第二序列行和所述第二图层的数据的第二序列行进行合成处理,得到所述目标图像的第二中间图层数据;然后根据所述第一中间图层数据和所述第二中间图层数据得到所述目标图像。
由此可知,采用本发明实施例提供的终端设备进行图层合成时,是同时获取多个待合成的图层进行合成处理的,相对于现有技术中一次获取一个图层来说,图层合成效率更好,且内存带宽利用率更好;进一步的,采用本发明实施例提供的技术方案,可以充分利用硬件资源。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于图层合成装置和终端设备的实施例而言,由于其基本相似于非视频模式下的图层合成方法的实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。