图像合成方法、装置及电子设备与流程
未命名
07-14
阅读:126
评论:0
1.本技术实施例涉及图像处理技术领域,尤其涉及一种图像合成方法、装置及电子设备。
背景技术:
2.随着浏览器的广泛应用,决定浏览器图像合成能力的图像合成技术也越来越受到开发人员的关注。
3.现有技术中,主流的图像合成技术主要包括webrender、opengl和basic三种。示例性的,webrender为通过rust编写的基于图形处理器(graphics processing unit,gpu)的2d渲染引擎,主要应用在firefox、web浏览器引擎servo项目和其他图形用户界面(graphical user interface,缩写是gui,又称图形用户接口)框架中。opengl为比较传统的基于cpu的2d渲染引擎,采用即时模式应用程序接口(application program interface,api)来绘制内容。而basic为纯软件渲染模式,在合成图像时不依赖硬件进行加速。
4.然而,上述三种图像合成技术在浏览器中应用时各有利弊,且不能相互兼容,在应用时具有一定的局限性,影响了图像合成的效果。
技术实现要素:
5.本技术提供一种图像合成方法、装置及电子设备,以提高图像合成的效果。
6.第一方面,本技术提供一种图像合成方法,包括:
7.根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台;
8.若所述目标应用平台不是所述预设应用平台,则判断预设应用程序的版本是否不低于预设版本;
9.若所述预设应用程序的版本不低于所述预设版本,则应用第一预设图像合成方式来合成所述待合成图像。
10.可选的,所述根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台,包括:
11.通过对显卡型号的检测来判断待合成图像的目标应用平台是否为预设应用平台。
12.可选的,所述应用第一预设图像合成方式来合成所述待合成图像,包括:
13.获取预先备份的备份更新队列中待更新图像数据的图像码数据;
14.判断所述图像码数据是否在待更新队列中;
15.若所述图像码数据没有在所述待更新队列中,则将所述图像码数据添加至所述待更新队列中,得到新的待更新队列;
16.根据第一预设图像合成方式以及新的待更新队列来合成所述待合成图像。
17.可选的,在所述获取预先备份的备份更新队列中待更新图像数据的图像码数据之前,所述方法还包括:
18.获取待更新队列,并复制所述待更新队列从而得到备份更新队列。
19.可选的,所述方法还包括:
20.若所述图像码数据在所述待更新队列中,则根据第一预设图像合成方式以及所述待更新队列来合成所述待合成图像。
21.可选的,在所述根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台之后,还包括:
22.若所述目标应用平台为所述预设应用平台,则应用第二预设图像合成方式来合成所述待合成图像。
23.可选的,在所述判断预设应用程序的版本是否不低于预设版本之后,还包括:
24.若所述预设应用程序的版本低于所述预设版本,则应用第三预设图像合成方式来合成所述待合成图像。
25.第二方面,本技术提供一种图像合成装置,包括:
26.判断模块,用于根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台;
27.确定模块,用于若所述目标应用平台不是所述预设应用平台,则判断预设应用程序的版本是否不低于预设版本;
28.合成模块,用于若所述预设应用程序的版本不低于所述预设版本,则应用第一预设图像合成方式来合成所述待合成图像。
29.第三方面,本技术提供一种电子设备,包括:处理器、以及与所述处理器通信连接的存储器;
30.所述存储器存储计算机执行指令;
31.所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面中任一图像合成方法。
32.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现第一方面中任一图像合成方法。
33.本技术提供了一种图像合成方法、装置及电子设备,采用该方案之后,可以先根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台,若目标应用平台不是预设应用平台,则判断预设应用程序的版本是否不低于预设版本,并在确定预设应用程序的版本不低于预设版本时,应用第一预设图像合成方式来合成待合成图像,通过针对不同的配置信息分配不同的图像合成方式,提高了图像合成方式应用的灵活性,进而提高了图像合成的效果。
附图说明
34.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
35.图1为本技术实施例提供的图像合成方法的应用系统的架构示意图;
36.图2为本技术实施例提供的图像合成方法的流程示意图;
37.图3为本技术另一实施例提供的图像合成方法的流程示意图;
38.图4为本技术实施例提供的图像合成装置的结构示意图;
39.图5为本技术实施例提供的电子设备的硬件结构示意图。
具体实施方式
40.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
41.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例还能够包括除了图示或描述的那些实例以外的其他顺序实例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
42.现有技术中,浏览器在合成图像时,可以通过图像合成技术来合成,而主流的图像合成技术主要包括webrender、opengl和basic三种,单纯从性能来说,三种图像合成方式为:webrender》opengl》basic。然而每种图像合成方式都有其自身的优点与局限性,示例性的,webrender为通过rust编写的基于gpu的2d渲染引擎,主要应用在firefox、web浏览器引擎servo项目和其他gui框架中。webrender使用的是保留模式api,具体渲染过程可以包括:设置待渲染数据,然后将待渲染数据发送至gpu,再向gpu发出绘制调用请求以进行渲染。opengl为比较传统的基于cpu的2d渲染引擎,采用即时模式api来绘制内容。具体的,即时模式api通常需要一个上下文(context)对象,然后在context对象上设置不同的状态,再根据context对象的状态来实现将项目绘制到屏幕上。而basic为纯软件渲染模式,在合成图像时不依赖硬件进行加速。即上述三种图像合成技术在浏览器中应用时各有利弊,且不能相互兼容,在应用时具有一定的局限性,影响了图像合成的效果。
43.基于上述技术问题,本技术通过针对不同的配置信息分配不同的图像合成方式的技术构思,达到了既提高了图像合成方式应用的灵活性,又提高了图像合成的技术效果。
44.图1为本技术实施例提供的图像合成方法的应用系统的架构示意图,如图1所示,该应用系统可以包括:服务器101,服务器101中部署有目标应用平台102,服务器101可以根据预设检测规则对目标应用平台进行判断,并根据判断结果最终确定要应用的图像合成方式。
45.此外,该应用系统还可以包括数据库103,在确定应用的图像合成方式之后,可以从数据库103中获取待合成的图像数据,并根据确定的图像合成方式对待合成的图像数据进行合成处理,得到待合成图像。
46.下面以具体地实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
47.图2为本技术实施例提供的图像合成方法的流程示意图,本实施例的方法可以由
服务器101执行。如图2所示,本实施例的方法,可以包括:
48.s201:根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台。
49.在本实施例中,不同的应用平台可以支持不同的图像合成方式,因此,可以先根据预设检测规则判断待合成图像的目标应用平台是否为与待应用的图像合成方式对应的预设应用平台。
50.进一步的,可以通过对显卡型号的检测来判断待合成图像的目标应用平台是否为预设应用平台。
51.具体的,预设应用平台的显卡为集成显卡,不支持对显卡性能要求较高的第一预设图像合成方式,因此,在确定目标应用平台待应用的图像合成方式时,可以通过判断目标应用平台是否为预设应用平台的方式来确定目标应用平台能否应用第一预设图像合成方式。
52.可选的,可以通过对显卡型号的检测来判断目标应用平台是否为预设应用平台。对应的,可以预先根据集成显卡对应的显卡型号确定一显卡型号列表,应用该列表中的显卡型号的平台即为预设应用平台。后续再判断目标应用平台是否为预设应用平台时,可以先获取预设应用平台的显卡型号,然后判断该显卡型号是否在预先设置好的显卡型号列表中,若在,则确定目标应用平台为预设应用平台;否则,则确定目标应用平台不是预设应用平台。示例性的,预设应用平台可以为7a嵌入式平台。
53.s202:若目标应用平台不是预设应用平台,则判断预设应用程序的版本是否不低于预设版本。
54.在本实施例中,虽然第一预设图像合成方式的图像合成性能最高,但该第一预设图像合成方式不支持在预设应用平台上合成图像,因此,需要判断目标应用平台是否为预设应用平台。
55.若目标应用平台为预设应用平台,为了提高目标应用平台合成图像时的可行性,可以采用兼容性更高的第二预设图像合成方式来合成待合成图像。此外,在没有显卡设备时,也可以采用兼容性更高的第二预设图像合成方式来合成待合成图像。示例性的,第二预设图像合成方式可以为basic。
56.若目标应用平台不是该预设应用平台,则表明该目标应用平台可以采用第一预设图像合成方式来合成图像。然而,在目标应用平台通过第一预设图像合成方式来合成图像时,可能出现目标应用平台死机的情况,目标应用平台死机的情况与预设应用程序的版本相关联,因此,还可以在确定目标应用平台不是预设应用平台之后,继续对目标应用平台中安装的用于进行图形渲染的预设应用程序的版本进行判断,并在目标应用平台中安装的预设应用程序的版本不低于预设版本时,应用第一预设图像合成方式来合成待合成图像,以减少目标应用平台死机的情况。
57.进一步的,预设应用程序可以为mesa图形库,预设版本可以为18.0。
58.s203:若预设应用程序的版本不低于预设版本,则应用第一预设图像合成方式来合成待合成图像。
59.在本实施例中,在对预设应用程序的版本进行判断之后,若预设应用程序的版本高于或等于预设版本,则可以直接应用第一预设图像合成方式来合成待合成图像。否则,在预设应用程序的版本低于预设版本时,则应用第三预设图像合成方式来合成待合成图像。
示例性的,第一预设图像合成方式可以为webrender,第三预设图像合成方式可以为opengl。此外,第三预设图像合成方式还可以为兼容性更高但性能较低的basic。
60.采用该方案之后,可以先根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台,若目标应用平台不是预设应用平台,则确定预设应用程序的版本是否不低于预设版本,并在确定预设应用程序的版本不低于预设版本时,应用第一预设图像合成方式来合成该待合成图像,通过针对不同的配置信息分配不同的图像合成方式,提高了图像合成方式应用的灵活性,进而提高了图像合成的效果。
61.基于图2的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
62.图3为本技术另一实施例提供的图像合成方法的流程示意图,如图3所示,本实施例的方法s203,可以包括:
63.s301:获取预先备份的备份更新队列中待更新图像数据的图像码数据。
64.s302:判断图像码数据是否在待更新队列中。
65.s303:若图像码数据没有在待更新队列中,则将图像码数据添加至待更新队列中,得到新的待更新队列。
66.s304:根据第一预设图像合成方式以及新的待更新队列来合成待合成图像。
67.在本实施例中,第一预设图像合成方式可以针对较大图像实现图像优化解码,即对于较大的图像,可以分成多个不同的子图像进行存储,且不同的子图像对应不同的图像码数据(即key)。在对图像进行刷新时,可以通过部分刷新(即仅对有更新的key进行刷新)的方式来提高图像数据的处理效率。但在预设应用平台上通过第一预设图像合成方式来部分刷新图像时,会出现部分key无法识别的情况,导致图像刷新时出现问题,只能重新整体刷新图像,降低了图像合成的效率。而出现部分key无法识别的主要原因为在更新图像时,首先会确定待更新的子图像对应的key,并将待更新的子图像对应的key进行存储得到待更新队列,然后根据待更新队列对图像进行刷新,然而部分待更新的key在更新过程中(例如,用户触发更新控件之后,或者定时触发更新功能之后)由于系统bug等原因被从待更新队列中误删除了,导致待更新队列中没有该待更新的key,进而导致图像更新时无法识别key。因此,可以在图像每次更新之前先获取待更新队列,并复制该待更新队列从而得到备份更新队列,然后在图像更新过程中,将备份更新队列中的key与待更新队列中的key一一进行对比,若备份的更新队列中的目标key没有在待更新队列中,则将目标key添加至待更新队列中,得到新的待更新队列,再根据第一预设图像合成方式以及新的待更新队列来合成待合成图像。
68.此外,所述方法还包括:若所述图像码数据在待更新队列中,则可以根据第一预设图像合成方式以及所述待更新队列来合成待合成图像。
69.通过上述方案,完善了应用第一预设图像合成方式来实现图像优化解码的过程,减少了需要刷新完整图像数据的情况,进而提高了数据刷新以及合成的效率。
70.此外,在另一实施例中,所述方法还可以包括:
71.若所述目标应用平台为所述预设应用平台,则应用第二预设图像合成方式来合成所述待合成图像。
72.在本实施例中,若目标应用平台为预设应用平台,则表明应用第一预设图像合成
方式来合成图像时,可能出现目标应用平台死机的情况,为了减少上述情况的发生,可以应用兼容性更高的第二预设图像合成方式来合成待合成图像,既保证了图像合成的效果,也提高了图像合成的效率。
73.基于同样的思路,本说明书实施例还提供了上述方法对应的装置,图4为本技术实施例提供的图像合成装置的结构示意图,如图4所示,本实施例提供的装置,可以包括:
74.判断模块401,用于根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台。
75.在本实施例中,所述判断模块401,进一步用于:
76.通过对显卡型号的检测来判断待合成图像的目标应用平台是否为预设应用平台。
77.确定模块402,用于若所述目标应用平台不是所述预设应用平台,则判断预设应用程序的版本是否不低于预设版本。
78.合成模块403,用于若所述预设应用程序的版本不低于所述预设版本,则应用第一预设图像合成方式来合成所述待合成图像。
79.采用该方案之后,可以先根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台,若目标应用平台不是预设应用平台,则判断预设应用程序的版本是否不低于预设版本,并在确定预设应用程序的版本不低于预设版本时,应用第一预设图像合成方式来合成该待合成图像,通过针对不同的配置信息分配不同的图像合成方式,提高了图像合成方式应用的灵活性,进而提高了图像合成的效果。
80.此外,在另一实施例中,所述合成模块403包括:
81.图像码获取单元,用于获取预先备份的备份更新队列中待更新图像数据的图像码数据;
82.图像码判断单元,用于判断所述图像码数据是否在待更新队列中;
83.图像码添加单元,用于若所述图像码数据没有在所述待更新队列中,则将所述图像码数据添加至所述待更新队列中,得到新的待更新队列;
84.图像合成单元,用于根据第一预设图像合成方式以及新的待更新队列来合成所述待合成图像。
85.所述合成模块403还可以包括备份单元,用于获取待更新队列,并复制所述待更新队列从而得到备份更新队列。
86.此外,所述图像合成单元还用于:
87.若所述图像码数据在所述待更新队列中,则根据第一预设图像合成方式以及所述待更新队列来合成所述待合成图像。
88.此外,在另一实施例中,所述合成模块403,还用于:
89.若所述目标应用平台为所述预设应用平台,则应用第二预设图像合成方式来合成所述待合成图像。
90.此外,在另一实施例中,所述合成模块403,还用于:
91.若所述预设应用程序的版本低于所述预设版本,则应用第三预设图像合成方式来合成所述待合成图像。
92.本技术实施例提供的装置,可以实现上述如图2所示的实施例的方法,其实现原理和技术效果类似,此处不再赘述。
93.图5为本技术实施例提供的电子设备的硬件结构示意图,如图5所示,本实施例提供的电子设备500包括:处理器501、以及与所述处理器通信连接的存储器502。其中,处理器501、存储器502通过总线503连接。
94.在具体实现过程中,处理器501执行所述存储器502存储的计算机执行指令,使得处理器501执行上述方法实施例中的方法。
95.处理器501的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
96.在上述的图5所示的实施例中,应理解,处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
97.存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器。
98.总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
99.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述方法实施例的图像合成方法。
100.本技术实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上所述的图像合成方法。
101.上述的计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、快闪存储器、磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
102.一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(application specific integrated circuits,简称:asic)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
103.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
104.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
技术特征:
1.一种图像合成方法,其特征在于,包括:根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台;若所述目标应用平台不是所述预设应用平台,则判断预设应用程序的版本是否不低于预设版本;若所述预设应用程序的版本不低于所述预设版本,则应用第一预设图像合成方式来合成所述待合成图像。2.根据权利要求1所述的方法,其特征在于,所述根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台,包括:通过对显卡型号的检测来判断待合成图像的目标应用平台是否为预设应用平台。3.根据权利要求1所述的方法,其特征在于,所述应用第一预设图像合成方式来合成所述待合成图像,包括:获取预先备份的备份更新队列中待更新图像数据的图像码数据;判断所述图像码数据是否在待更新队列中;若所述图像码数据没有在所述待更新队列中,则将所述图像码数据添加至所述待更新队列中,得到新的待更新队列;根据第一预设图像合成方式以及新的待更新队列来合成所述待合成图像。4.根据权利要求3所述的方法,其特征在于,在所述获取预先备份的备份更新队列中待更新图像数据的图像码数据之前,还包括:获取待更新队列,并复制所述待更新队列从而得到备份更新队列。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述图像码数据在所述待更新队列中,则根据第一预设图像合成方式以及所述待更新队列来合成所述待合成图像。6.根据权利要求1-5任一项所述的方法,其特征在于,在所述根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台之后,还包括:若所述目标应用平台为所述预设应用平台,则应用第二预设图像合成方式来合成所述待合成图像。7.根据权利要求1-5任一项所述的方法,其特征在于,在所述判断预设应用程序的版本是否不低于预设版本之后,还包括:若所述预设应用程序的版本低于所述预设版本,则应用第三预设图像合成方式来合成所述待合成图像。8.一种图像合成装置,其特征在于,包括:判断模块,用于根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台;确定模块,用于若所述目标应用平台不是所述预设应用平台,则判断预设应用程序的版本是否不低于预设版本;合成模块,用于若所述预设应用程序的版本不低于所述预设版本,则应用第一预设图像合成方式来合成所述待合成图像。9.一种电子设备,其特征在于,包括:处理器、以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至7中任一项所述的图像合成方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的图像合成方法。
技术总结
本申请提供了一种图像合成方法、装置及电子设备,所述方法包括:根据预设检测规则判断待合成图像的目标应用平台是否为预设应用平台;若目标应用平台不是预设应用平台,则判断预设应用程序的版本是否不低于预设版本;若预设应用程序的版本不低于预设版本,则应用第一预设图像合成方式来合成待合成图像。该方案提高了图像合成方式应用的灵活性,进而提高了图像合成的效果。像合成的效果。像合成的效果。
技术研发人员:汪清 余银 黄文君
受保护的技术使用者:龙芯中科(合肥)技术有限公司
技术研发日:2021.12.30
技术公布日:2023/7/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
