一种多图层合并的方法、装置、设备以及存储介质与流程

文档序号:17071121发布日期:2019-03-08 23:19阅读:230来源:国知局
一种多图层合并的方法、装置、设备以及存储介质与流程

本发明涉及图像处理技术领域,特别是涉及一种多图层合并的方法、装置、设备以及计算机可读存储介质。



背景技术:

目前,在各种仪器设备中,为更加灵活地显示用户图像交互界面,使用户能在单个画面中直观地看见更丰富的信息,多图层合并策略被广泛地应用。多图层合并及时,可以使多个图像信息经过一定处理,同时显示在一个画面中,例如单独的背景色图像、文本图像和菜单图像等等,可以经过多图层合并操作,成为一个完整的图像,输出到显示设备同时显示出来。

现有的多图层合并策略,一般采取直接合并的方案:待合并的各个图层像素数据被写入到各自对应的缓存中,开始图层合并时,各自对应的数据读取模块将待合并图层的像素数据同步读取出来经过合并处理,上一个图层的所有像素全部合并完后再进行下一个图层的合并,直到所有图层全部合并完毕最终输出合并后的结果图像。

现有技术中,将第一图层与第二图层进行合并时,首先将所述第一图层图层和所述第二图层中在终端的显示区域的第一行像素区域内的像素数据进行合并,得到所述第一行像素区域的间接行像素数据,并将所述第一行像素区域的间接行像素数据写到外部存储空间内。以此类推,将所述第一图层和所述第二图层进行合并时,需要将所述显示区域的每一行像素区域的间接像素数据写入至外部存储内,得到间接合并图层。将第三图层和所述间接合并图层进行合并时,还需要将两个图层在显示区域内同一行像素区域合并后得到间接像素数据写入至外部内存。

综上,当需要合并的图层越多时,每个图层与每个图层之间的间接像素数据就越多。需要所述显示区域的各个行像素区域的间接行像素数据均写到外部存储空间,对大量的像素数据进行存储导致图层合并的处理时间增长,操作繁琐且处理效率低。

除此之外,现有多图层合并技术中,一个图层一般共用相同的透明度,如果要改变合并时对某个图层的透明度处理,一般需要同时改变整个图层的透明比例。因此,现有多图层合并技术无法灵活改变图层中某些像素点的透明比例。

综上所述可以看出,如何提高多图层合并操作的处理效率是目前有待解决的问题。



技术实现要素:

本发明的目的是提供一种多图层合并的方法、装置、设备以及计算机可读存储介质,以解决现有技术中多图层进行合并时需要向外部存储写入的像素数据量大,导致合并效率较低的问题。

为解决上述技术问题,本发明提供一种多图层合并的方法,迭代合并各个待合并图层中的被预设显示区域的第k行像素区域覆盖的有效行像素数据,得到目标图层在所述第k行像素区域的目标像素数据,其中k=1,2,…,m,m为所述预设显示范围的最大行数;将所述第k行像素区域的目标像素数据存储至与所述第k行像素区域对应的存储空间内。

优选地,所述迭代合并各个待合并图层中的被预设显示区域的第k行像素区域覆盖的有效行像素数据,得到目标图层在所述第k行像素区域的目标像素数据包括:

依据待合并图层集合中的各个待合并图层的序号,依据获取当前待合并图层;

判断所述当前待合并图层内是否存在被预设显示区域的第k行像素区域覆盖的当前有效行像素数据;

若是,则将所述当前有效行像素数据与获取到的第k行像素区域的间接行像素数据进行合并,得到更新后的间接行像素数据;

判断所述当前待合并图层的序号是否为最大序号n,其中,所述n为待合并图层的图层总数;

若所述当前待合并图层的序号为所述最大序号n,则输出所述间接行像素数据作为所述第k行像素区域内的目标像素数据。

优选地,所述判断所述当前待合并图层的各个行像素内是否存在被预设显示区域的第k行像素区域覆盖的当前有效行像素数据包括:

通过图层信息表中获取到的所述当前待合并图层的图层坐标和图层大小,计算得到所述当前待合并图层的当前覆盖面积;

判断所述当前覆盖面积是否覆盖所述第k行像素区域;

若所述当前覆盖面积未覆盖所述第k行像素区域,则所述当前覆盖面积中不存在当前有效行像素数据;

若所述当前覆盖面积覆盖所述第k行像素区域,则将所述当前覆盖面积和所述第k行像素区域重合的行像素数据判定为所述当前有效行像素数据。

优选地,所述通过图层信息表中获取到的所述当前待合并图层的图层坐标和图层大小,计算得到所述当前待合并图层的当前覆盖面积包括:

通过计算所述得到所述当前待合并图层的当前覆盖面积;

其中,(rowtop,rowbottom)分别为所述当前待合并图层的中最上一行的行序号和最下一行的行序号;ypixel为所述当前待合并图层中最左上角像素在所述预设显示区域的纵坐标;heightlayer为所述当前待合并图层的总高度。

优选地,所述将所述当前有效行像素数据与获取到的第k行像素区域的间接行像素数据进行合并,得到更新后的间接行像素数据包括:

依据r、g、b三个颜色通道对所述当前有效行像素数据和所述间接行像素数据进行像素点合并操作。

优选地,所述各个待合并图层的各个像素点携带各自透明度数据,以便于在不改变整个初始图层的透明比例的情况下,实现对所述初始图层中像素点的透明比例的改变。

本发明还提供了一种多图层合并的装置,包括:

合并模块,用于迭代合并各个待合并图层中的被预设显示区域的第k行像素区域覆盖的有效行像素数据,得到目标图层在所述第k行像素区域的目标像素数据,其中k=1,2,…,m,m为所述预设显示范围的最大行数;

存储模块,用于将所述第k行像素区域的目标像素数据存储至与所述第k行像素区域对应的存储空间内。

优选地,所述合并装置具体用于:

依据待合并图层集合中的各个待合并图层的序号,依据获取当前待合并图层;

判断所述当前待合并图层内是否存在被预设显示区域的第k行像素区域覆盖的当前有效行像素数据;

若是,则将所述当前有效行像素数据与获取到的第k行像素区域的间接行像素数据进行合并,得到更新后的间接行像素数据;

判断所述当前待合并图层的序号是否为最大序号n,其中,所述n为待合并图层的图层总数;

若所述当前待合并图层的序号为所述最大序号n,则输出所述间接行像素数据作为所述第k行像素区域内的目标像素数据。

本发明还提供了一种多图层合并的设备,包括:

存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种多图层合并的方法的步骤。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种多图层合并的方法的步骤。

本发明所提供的多图层合并的方法,在对多个待合并图层进行合并时,判断所述各个待合并图层是否存在被预设显示区域的第k行像素区域覆盖的有效行像素数据。迭代合并各个待合并图层中被所述第k行像素区域覆盖的有效行像素数据,得到目标图层在所述第k行像素区域的目标像素数据。所述目标图层为所述各个待合并图层合并后得到的图层。其中k=1,2,…,m,m为所述预设显示范围的最大行数。当k=1时,将第一待合并图层中被所述预设显示区域中第一行像素区域覆盖的行像素数据,与第二待合并图层中被所述第一行像素区域覆盖的行像素进行合并。将合并得到的间接行像素区域与下一图层中被所述第一行像素区域覆盖的行像素数据合并,得到新的间接行像素数据。将各个待合并图层中被所述第一行像素区域覆盖的各个行像素数据迭代合并后,得到所述预设显示区域的第一行像素区域的目标像素数据。并将所述目标数据写入至与所述第一行像素区域对应的外部存储空间内。

本发明所提供的方法,利用一行一行合并的方式,得到所述预设显示区域中某一行像素区域的目标像素数据后,才将所述目标像素数据存储于外部存储空间内。相对于现有技术,只需将目标图层中每一行的目标像素数据写入存空间,而不需要将大量的间接像素数据写入存储空间内,大大节省了处理时间,提高了多图层合并的处理效率。相应的本发明所提供的装置、设备和计算机存储介质也具有上述有益效果。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的多图层合并的方法的第一种具体实施例的流程图;

图2为本发明所提供的多图层合并的方法的第二种具体实施例的流程图;

图3为本发明所提供的一种像素点数据的组成结构;

图4为本发明所提供的fpga模型示意图;

图5为本发明实施例提供的一种多图层合并的装置的结构框图。

具体实施方式

本发明的核心是提供一种多图层合并的方法、装置、设备以及计算机可读存储介质,提高了多图层合并的处理效率。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明所提供的多图层合并的方法的第一种具体实施例的流程图;具体操作步骤如下:

步骤s101:迭代合并各个待合并图层中的被预设显示区域的第k行像素区域覆盖的有效行像素数据,得到目标图层在所述第k行像素区域的目标像素数据,其中k=1,2,…,m,m为所述预设显示范围的最大行数;

所述预设显示区域可以为移动终端的显示屏的范围。例如预设显示区域为手机显示屏,则所述预设显示区域的第k行像素区域则为手机显示屏的第1行像素区域至第m行像素区域内的任一行像素区域;其中m为所述手机显示屏的最大行数。

可以利用fpga实现本实施所提供的多图层合并的方法。在所述fpga的内部构建一个用于实现多图层合并的数字电路系统。所述数字电路系统中包括待合并图层信息表单元、图层像素数据读取单元、图层行数据缓存单元和图层行像素合并单元。所述待合并图层信息表单元用于配置和存储各个待合并图层的信息,包括:所述待合并图层当前是否参与合并;所述待合并图层在所述预设显示区域中的坐标;所述待合并图层的大小(长度和宽度);所述待合并图层是否应用全局透明度(使用全局透明度则该待合并图层全部像素点合并时使用统一的透明度,而不使用各个像素点自带透明度),所述待合并图层的全局透明度参数等。

所述图层像素数据读取单元用于从外部存储中将图层合并所需行像素数据读取出来,存储到图层行数据缓存中,等待后续合并处理。所述图层行数据缓存单元内部主要有两个ram,一个用于存各个待合并储图层的行像素临时合并结果数据。另一个ram用于存储新的待合并图层行像素数据。图层行像素合并单元负责将图层行数据缓存单元中的行像素数据进行合并处理,合并处理过程需要符合对应图层信息的设置。

在本实施例中,依据所述各个待合并图层的序号依次判断所述各个待合并图层是否存在被预设显示区域的第k行像素区域覆盖的有效行像素。

以k=1为例,计算第一待合并图层的覆盖面积,判断所述第一待合并图层的覆盖面积是否覆盖了所述预设显示区域的第一行像素区域,若是,则将所述第一待合并图层中覆盖所述第一行像素区域的行像素作为所述第一行像素区域的间接行像素数据。

计算第二待合并图层的覆盖面积,并对所述第二待合并图层的覆盖面积是否覆盖了所述预设显示区域的第一行像素区域,若没有覆盖,说明所述第二待合并图层在所述第一行像素区域内无有效行像素;则继续对第三待合并图层进行判断。若所述第二待合并图层覆盖了所述预设显示区域,则将所述第二待合并图层中覆盖所述第一行像素区域的行像素与作为所述间接行像素数据合并;作为所述第一行像素区域的间接行像素数据。综上,迭代合并所述各个待合并图层在所述显示区域的第一行像素区域内的有效像素数据,得到所述待合并图层进行合并后得到目标图像中第一行像素区域内的目标像素数据。

步骤s102:将所述第k行像素区域的目标像素数据存储至与所述第k行像素区域对应的存储空间内。

依次获取所述预设显示区域内所述第一行像素区域至所述第m行像素区域的目标像素数据,并将各行目标像素数据组合得到所述目标图层。本实施例解决了现有技术进行多图层合并时,需要在整个图层合并完成后,再与下一图层进行合并时需要对过多的间接像素数据进行存储,导致处理时间过长、效率低的问题。本实施例通过行合并的方式,得到所述预设显示区域的某一行像素区域的目标像素数据后,对所述目标像素数据进行存储;大大减少了写操作,提高了多图层合并的处理效率。

基于上述实施例,在本实施例中,所述待合并图层的各个像素点各自透明度数据,以便于在不改变整个初始图层的透明比例的情况下,实现对所述初始图层中像素点的透明比例的改变。请参考图2,图2为本发明所提供的多图层合并的方法的第二种具体实施例的流程图;具体操作步骤如下:

步骤s201:依据待合并图层集合中的各个待合并图层的序号,依据获取当前待合并图层;

在本实施例所提供的待合并图层中的各个像素点携带各自的透明读alpha参数,可以支持灵活处理图层中各个像素点的透明比例。

待合并图层中的各个像素点数据可采用32bit表示,其中包含8bit的透明度数据和24bitrgb数据,格式如图3所示。

需要说明的是,使用全局透明度则该图层全部像素点合并时使用统一的透明度,而不使用各个像素点自带透明度。

步骤s202:判断所述当前待合并图层内是否存在被预设显示区域的第k行像素区域覆盖的当前有效行像素数据;

在本实施例中,通过图层信息表中获取到的所述当前待合并图层的图层坐标和图层大小,计算得到所述当前待合并图层的当前覆盖面积;判断所述当前覆盖面积是否覆盖所述第k行像素区域。

若所述当前覆盖面积没有覆盖所述第k行像素区域,则返回执行步骤s201,依据所述各个待合并图层的序号,选取下一待合并图层作为当前图层。

通过计算所述得到所述当前待合并图层的当前覆盖面积;

其中,(rowtop,rowbottom)分别为所述当前待合并图层的中最上一行的行序号和最下一行的行序号;ypixel为所述当前待合并图层中最左上角像素在所述预设显示区域的纵坐标;heightlayer为所述当前待合并图层的总高度。

步骤s203:若是,则将所述当前有效行像素数据与获取到的第k行像素区域的间接行像素数据进行合并,得到更新后的间接行像素数据;

在所述当前有效行像素数据与间接行像素数据进行合并时,合并操作按照r/g/b三个颜色通道分别计算,具体计算过程为:

其中,alpha值根据图层信息表中配置来确定,如果使用全局透明度,则alpha值使用图层信息表中的透明度alpha值,否则使用当前合并的像素点自带的alpha值。

阿尔法(alpha)通道是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息。“alpha-blending”按照“alpha”混合向量的值来混合源像素和目标像素的一种图像处理技术一般表示图片的透明度。rgb色彩模式是工业界的一种颜色标准,是通过对红(r)、绿(g)、蓝(b)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色。

如果合并操作分为三个颜色通道分别进行,每个通道值为8比特。以要合并r通道为例:

pixelnew为待合并的像素数据中r通道的值,pixeltemp则为前几个图层合并结果中对应像素数据的r通道值;alphanew为待合并的像素数据中携带的透明度数值,result即为r通道的合并结果,8比特。同样对g通道和b通道都按照这个公式进行合并,只是pixelnew和pixeltemp值分别对应g通道的值和b通道的值。

这个部分是alpha-blending合并的公式,并没有特殊性。

每个像素点三个颜色通道并行计算,产生的三个颜色通道合并结果再拼接为完整的数据转存回临时行像素合并结果缓存,或写入最终合并结果行存储地址。

步骤s204:判断所述当前待合并图层的序号是否为最大序号n,其中,所述n为待合并图层的图层总数;

步骤s205:若所述当前待合并图层的序号不为所述最大序号n,则循环执行所述步骤s201至所述步骤s204,直至所述当前待合并图层的序号为所述最大序号n;

步骤s206:若所述当前待合并图层的序号为所述最大序号n,则输出所述间接行像素数据作为所述第k行像素区域内的目标像素数据。

在本实施例中,在k等于1,执行所述步骤s201至所述步骤s206;当得到所述第一行像素需要的目标像素数据后;判断当前k值是否为所述最大行数m,若不是,则将k设置为k=k+1后,执行所述步骤s201至所述步骤s206,直至得到所述预设显示区域的第m行像素区域的目标像素数据。

如图4所示,在获取所述预设显示区域的目标像素数据时,图层像素数据读取单元每次从图层数据存储单元中逐行读取待合并图层的像素数据,送往图层行数据缓存单元。图层行数据缓存单元使用两个ram来存储待合并的行像素数据,其中ram1用于存储临时行像素合并结果数据,ram2用于存储待合并的新的行像素数据。在合并处理时,从两个ram钟同步读取像素点数据进行合并,合并结果转存到ram1,同时ram2继续存储新的待合并的行像素数据。待所有图层合并完后,ram1中存储的结构即为当前行的最终图层合并结果。

现有技术中,一个待合并图层一般共用相同的透明度,如果要改变合并时对某个待合并图层的透明度处理,一般需要同时改变整个待合并图层的透明比例。而本发明通过特殊图层像素点的数据格式,每个像素点携带各自的透明度alpha参数,可以支持灵活处理图层中各个像素点的透明比例。

请参考图5,图5为本发明实施例提供的一种多图层合并的装置的结构框图;具体装置可以包括:

合并模块100,用于迭代合并各个待合并图层中的被预设显示区域的第k行像素区域覆盖的有效行像素数据,得到目标图层在所述第k行像素区域的目标像素数据,其中k=1,2,…,m,m为所述预设显示范围的最大行数;

存储模块200,用于将所述第k行像素区域的目标像素数据存储至与所述第k行像素区域对应的存储空间内。

本实施例的多图层合并的装置用于实现前述的多图层合并的方法,因此多图层合并的装置中的具体实施方式可见前文中的多图层合并的方法的实施例部分,例如,合并模块100,存储模块200,分别用于实现上述多图层合并的方法中步骤s101和s102,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明具体实施例还提供了一种多图层合并的设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种多图层合并的方法的步骤。

本发明具体实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种多图层合并的方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的多图层合并的方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1