CN114443189B - 一种图像处理方法和电子设备 - Google Patents
一种图像处理方法和电子设备 Download PDFInfo
- Publication number
- CN114443189B CN114443189B CN202110963542.9A CN202110963542A CN114443189B CN 114443189 B CN114443189 B CN 114443189B CN 202110963542 A CN202110963542 A CN 202110963542A CN 114443189 B CN114443189 B CN 114443189B
- Authority
- CN
- China
- Prior art keywords
- function
- rendering
- address
- version
- interception
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种图像处理方法和电子设备,涉及图像处理领域,可以快速准确地获取渲染命令的具体内容,同时在不影响不影响渲染命令的正常执行。具体方案为:拦截应用程序下发的第一渲染命令,该第一渲染命令包括第一函数。根据第一函数的函数标识,以及拦截跳转表,确定该第一函数对应的第一索引值,该拦截跳转表用于指示该第一函数与该第一索引值的对应关系。存储该第一索引值。
Description
技术领域
本申请实施例涉及图像处理领域,尤其涉及一种图像处理方法和电子设备。
背景技术
应用程序可以指示电子设备根据来自应用程序在渲染过程中依次下发的包括多个渲染命令的指令流(或命令流)进行图形渲染,获取对应的图像进行显示。
在一些场景下,电子设备可以根据多个渲染命令的具体内容(如渲染命令对应的函数),对图形渲染进行相应的优化处理,从而达到在不影响显示质量的同时,降低渲染开销的效果。因此,就需要一种方案能够高效准确地获取渲染过程中的所有渲染命令。
发明内容
本申请实施例提供一种图像处理方法和电子设备,可以快速准确地获取渲染命令的具体内容,同时在不影响不影响渲染命令的正常执行。
为了达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种图像处理方法,应用于电子设备,该电子设备运行有应用程序,该应用程序通过下发第一渲染命令,指示该电子设备进行第一渲染操作,该方法包括:拦截应用程序下发的第一渲染命令,该第一渲染命令包括第一函数。根据第一函数的函数标识,以及拦截跳转表,确定该第一函数对应的第一索引值,该拦截跳转表用于指示该第一函数与该第一索引值的对应关系。存储该第一索引值。
基于该方案,提供了一种具体的获取第一渲染命令的具体内容的方案示例。电子设备可以在接收第一渲染命令之前,维护有所有可能调取的函数的拦截跳转表。基于该拦截跳转表,可以计算每个函数对应的索引值,通过存储该索引值,就可以实现对当前调用函数的拦截和记录。比如,在第一函数被携带在第一渲染命令中下发时,电子设备可以根据第一函数的函数标识计算获取第一函数的第一索引值,存储该第一索引值就可以记录该第一函数已经被调用。类似的,对于其他渲染命令中的函数,电子设备也可以基于类似的方案,实现对应函数被调用时的拦截和记录。由此就可以实现对应用程序下发的渲染命令中所有函数的拦截和记录。
在一种可能的设计中,该拦截跳转表存储有该第一函数的函数标识,与索引计算地址的对应关系,该索引计算地址是该电子设备的内存中,存储计算该第一索引值的代码的地址。该根据第一函数的函数标识,以及拦截跳转表,确定该第一函数对应的第一索引值,包括:根据该第一函数的函数标识,从该拦截跳转表中获取该索引计算地址。运行该索引计算地址存储的代码,计算获取该第一索引值。基于该方案,提供了一种确定第一索引值的可能的方案示例。在本示例中,拦截跳转表中可以根据函数标识,如第一函数,查找到对应的计算该第一函数相应的索引值的计算方法。这样,所有函数都可以共享该一个计算代码,通过不同的输入,获取各自对应的索引值。由此可以在获取索引值的同时,降低拦截跳转表存储数据量。
在一种可能的设计中,该拦截跳转表存储有该第一函数的函数标识,与该第一索引值的对应关系。该根据第一函数的函数标识,以及拦截跳转表,确定该第一函数对应的第一索引值,包括:根据该第一函数的函数标识,从该拦截跳转表中获取该第一索引值。基于该方案,提供了一种确定第一索引值的可能的方案示例。在本示例中,拦截跳转表中可以直接存储有各个函数对应的索引值。从而使得电子设备不需要计算,通过查表即可获取各个函数的索引值。
在一种可能的设计中,该拦截跳转表还用于指示该第一函数与内存中存储有第一函数信息的第一地址的对应关系,该第一函数信息包括该第一函数对应的代码。该方法还包括:根据该第一函数的函数标识,以及该拦截跳转表,确定该第一地址,从该第一地址获取该第一函数信息。根据该第一函数信息,执行该第一渲染操作。基于该方案,提供了一种保证第一渲染命令正常执行逻辑的方案示例。在本示例中,拦截跳转表中还可以维护有各个函数对应的函数信息在内存中的存储地址。由此,通过查询该拦截跳转表,就能够获取当前函数对应的函数信息的存储地址,进而从该地址即可获取该函数信息。那么,通过执行该函数信息,如下发给GPU执行该函数信息,即可实现对第一渲染命令的正常执行。
在一种可能的设计中,在该应用程序下发该第一渲染命令之前,该方法还包括:将n个函数信息集加载到内存中,每个该函数信息集包括一个渲染版本对应的所有函数信息,n个函数信息集分别对应n个不同的渲染版本。根据n个该函数信息集在该内存中的存储位置,获取版本跳转表,该版本跳转表包括第一函数信息集的渲染版本,与该第一函数信息集在该内存中的首地址的对应关系,该第一函数信息集包括在该n个函数信息集中。基于该方案,提供了一种应用加载过程中的方案示例。基于加载的数据,即可获取上述示例中的拦截跳转表。示例性的,电子设备可以在应用程序启动后,进行加载的过程中,将flash中存储的所有渲染版本各自对应的函数信息全部加载到内存中,以便后续运行过程中的快速调用。在本示例中,电子设备还可以通过版本跳转表维护加载进来的信息。比如,该版本跳转表可以存储在为渲染线程配置的TLS中。
在一种可能的设计中,该方法还包括:根据该应用程序使用的第二渲染版本,以及该版本跳转表,确定第二函数信息集的在内存中的存储地址,该第二函数信息集与该第二渲染版本对应。根据该第二函数信息集的在内存中的存储地址,获取该拦截跳转表。基于该方案,提供了一种获取拦截跳转表的方案示例。比如,可以根据当前应用程序所要使用的渲染版本,从加载的信息中选取对应版本的数据,填充到拦截跳转表中。由此即可保证在后续应用程序运行过程中,根据该拦截跳转表所调取的数据的准确性。
在一种可能的设计中,该方法还包括:将计算该第一索引值的代码加载到该内存中。基于该方案,提供了一种加载数据的方案。在本示例中,电子设备还可以将用于计算索引值的代码加载到内存中,以便于将存储地址填充到拦截跳转表中,方便后续调用计算索引值。
第二方面,提供一种电子设备,电子设备包括一个或多个处理器和一个或多个存储器;一个或多个存储器与一个或多个处理器耦合,一个或多个存储器存储有计算机指令;当一个或多个处理器执行计算机指令时,使得电子设备执行如上述第一方面以及各种可能的设计中任一种的图像处理方法。
第三方面,提供一种芯片系统,芯片系统包括接口电路和处理器;接口电路和处理器通过线路互联;接口电路用于从存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,芯片系统执行如上述第一方面以及各种可能的设计中任一种的图像处理方法。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质包括计算机指令,当计算机指令运行时,执行如上述第一方面以及各种可能的设计中任一种的图像处理方法。
第五方面,提供一种计算机程序产品,计算机程序产品中包括指令,当计算机程序产品在计算机上运行时,使得计算机可以根据指令执行如上述第一方面以及各种可能的设计中任一种的图像处理方法。
应当理解的是,上述第二方面,第三方面,第四方面,第五方面提供的技术方案,其技术特征均可对应到第一方面及其可能的设计中提供的图像处理方法,因此能够达到的有益效果类似,此处不再赘述。
附图说明
图1为一种渲染命令的下发示意图;
图2为一种渲染数据的加载示意图;
图3为一种函数信息的查找示意图;
图4为一种渲染指令的下发示意图;
图5为本申请实施例提供的一种电子设备的组成示意图;
图6为本申请实施例提供的一种图像处理方法的流程示意图;
图7为本申请实施例提供的一种数据加载的示意图;
图8为本申请实施例提供的一种数据加载的逻辑示意图;
图9为本申请实施例提供的一种代码生成器的工作逻辑示意图;
图10为本申请实施例提供的一种图像处理方法的流程示意图;
图11为本申请实施例提供的一种图像处理方法的流程示意图;
图12为本申请实施例提供的一种索引队列的示意图;
图13为本申请实施例提供的一种指令匹配的逻辑示意图;
图14为本申请实施例提供的一种电子设备的组成示意图;
图15为本申请实施例提供的一种芯片系统的组成示意图。
具体实施方式
电子设备中的应用程序在需要向用户展示图像时,可以指示电子设备通过图形渲染获取需要展示图像的相关数据,从而使得电子设备的显示屏可以根据该相关数据,进行图像的显示。
示例性的,图1示出了一种应用程序指示电子设备进行图形渲染的逻辑示意图。如图1所示,在需要进行图形渲染时,应用程序可以下发该渲染过程中包括的多个渲染命令。比如,应用程序可以依次下发渲染过程1中包括的渲染命令1-渲染命令n。其中,每个渲染命令可以包括一个函数用于实现其功能。电子设备的处理器可以基于接收到的渲染命令(如渲染命令1-渲染命令n中的任一个或多个),向电子设备的具有渲染功能的模块下发对应的指示。在一些实现中,该具有渲染功能的模块可以为电子设备中设置的图形处理器(graphics processing unit,GPU)。例如,处理器可以在接收到渲染命令1时,向GPU下发对应的指示1,该指示1用于指示GPU执行与渲染命令1对应的渲染操作。这样,GPU就可以根据执行对应的渲染操作,由此获取该对应的图像的相关数据。
在一些实现中,渲染命令1中携带函数的形式可以是携带各个函数的标识。比如,该函数的标识可以为函数的函数名等。在该示例中,渲染命令1中可以不包括函数的具体信息。相应的,处理器可以在接收到渲染命令1中携带的函数的标识(如对应的函数1)之后,知晓执行当前渲染操作需要调用的函数1。接着,处理器就可以根据函数名(如函数1),调用对应渲染平台的应用编程接口(application programming interface,API),以便于获取函数名对应的函数的具体信息(如简称为函数信息)。例如,处理器可以根据函数1,获取函数信息1。处理器可以将函数信息1携带在指示1中下发给GPU,以便于GPU可以执行函数信息1,实现对应的渲染操作。在一些实现中,处理器还可以在下发给GPU的指示中,携带各个函数对应的API,而不需要直接将各个函数的函数信息直接下发。这样,GPU可以根据各个函数对应的API,从对应的图形库中获取各个函数信息并执行,由此实现对应的渲染操作。其中,常用的渲染平台可以包括开放图形库(Open Graphics Library,OpenGL),嵌入式系统的开放图形库(OpenGL for Embedded Systems,OpenGL ES),Vulkan等。
为了便于说明,以下示例中,以处理器获取函数信息并携带在渲染指令中,渲染平台为OpenGL为例进行说明。
需要说明的是,目前常用的渲染平台可以包括多个不同的渲染版本。不同的渲染版本中的函数信息可能不同。因此,为了使得执行渲染操作时,电子设备能够快速对渲染命令进行响应。电子设备可以在应用程序加载的过程中,将该应用程序可能需要使用的对应渲染版本的所有函数加载到内存中。
示例性的,结合图2,以各个渲染版本对应的函数信息存储在闪存(flash)中为例。在应用程序的进程被发起之后,电子设备可以执行加载过程。在该加载过程中,电子设备的处理器可以将闪存中存储的各个版本分别对应的函数信息从闪存中加载到内存中。比如,如图2所示,处理器可以将渲染版本1的所有函数信息,渲染版本2的所有函数信息,以及渲染版本3的所有函数信息分别加载到内存中。这些函数信息可以存储在内存中的缓存区域1中。以下示例中,将渲染版本1简称为版本1,将渲染版本2简称为版本2,将渲染版本3简称为版本3。
可以理解的是,在内存中加载了各个版本的函数信息之后,每个版本的数据在内存中可以是连续存储的。也就是说,每个版本的数据可以对应一个首地址。比如,以3个渲染版本的数据被加载到内存中为例。版本1的数据在内存中对应首地址1,版本2的数据在内存中对应首地址2,版本3的数据在内存中对应首地址3。
处理器可以通过设置跳转表,维护各个版本的数据在内存中的存储情况。比如处理器可以设置跳转表,该跳转表中可以包括各个版本与各自对应的在内存中的首地址的对应关系。作为一种示例,以下表1示出了该跳转表的一种示例。
表1
版本信息 | 首地址 |
版本1 | 首地址1 |
版本2 | 首地址2 |
版本3 | 首地址3 |
在一些示例中,该表1对应的跳转表可以存储在线程本地存储(Thread LocalStorage,TLS)中。例如,该TLS可以是应用程序的进程被发起之后,为渲染操作分配的渲染线程在内存中对应的存储空间。
在一些实现中,电子设备还可以在应用程序下发需要使用的渲染版本的信息时,根据表1示出的跳转表,确定与当前需要使用的渲染版本对应的GL API表。该GL API表中可以包括对应渲染版本中,各个函数的函数名与函数信息在内存中的存储地址的对应关系。示例性的,表2示出了一种GL API表的示例。
表2
函数标识 | 函数信息的存储地址 |
函数1 | 地址1 |
函数2 | 地址2 |
…… | …… |
函数n | 地址n |
基于该GL API表,电子设备就可以在应用程序运行过程中,根据应用程序下发的渲染命令对应的函数名,确定该函数信息在内存中的存储位置,进而快速从内存中获取对应的函数信息,以便后续执行。其中,该GL API表可以包括当前应用程序所使用的渲染版本对应的函数信息的存储地址。
示例性的,作为一种示例,图3示出了一种获取函数的函数信息的示例。应用程序可以下发包括函数1的渲染命令1。电子设备(如电子设备的处理器)可以根据该函数1,在已经加载到内存中的GL API表1中进行查找,确定与函数1的函数标识(如函数标识1)对应的地址1。接着,处理器就可以从地址1调取函数1的函数信息1。类似的,在处理器接收到其他函数的渲染命令时,也可以通过GL API表1调取函数信息。在获取渲染命令1中包括的函数的函数信息之后,处理器就可以向GPU下发指示1,在指示1中携带该函数信息1。这样,GPU就可以根据指示1实现对渲染命令1的执行。需要说明的是,目前的大多数渲染过程中,应用程序下发的渲染过程1中的渲染命令(如渲染命令1-渲染命令n)以及处理器根据渲染命令获取函数信息并下发的具体过程对于电子设备的处理器是不可见的。这样,电子设备就无法知晓应用程序所下发的具体的渲染命令中的全部内容(如渲染过程1中包括的全量的函数)。
目前,作为一种可能的处理器向GPU的指示的下发形式,电子设备中可以设置有用于存储指示的指令队列。这样,处理器可以在确定各个渲染命令对应的指示(如称为渲染指令)之后,将渲染指令存储到指令队列中。比如,结合图4,处理器可以在获取渲染指令1之后,不直接向GPU下发该渲染指令1,而是将该渲染指令1存储到指令队列中。在指令队列中存储的渲染指令达到一定数量后,一同下发给GPU进行处理。由此节省下发渲染指令的次数,达到降低功耗的效果。在该过程中,如果想要知晓渲染指令中包括的函数信息,那么电子设备就可以从指令队列中拦截存储的指令队列,由此获取存储的信息即为函数信息。但是,为了避免GPU等待过长时间才能获取来自指令队列的数据,一般而言,指令队列中存储的数据量是非常有限的。因此,通过上述从指令队列中获取渲染指令的函数信息的方案,无法便捷地获取所有下发给GPU的完整的函数信息。
而在实际运行过程中,电子设备了解渲染命令中的全量函数是具有相当大的实际意义的。示例性的,在电子设备知晓各个渲染命令中的函数的情况下,就可以根据渲染命令中包括的函数的类型以及先后顺序,准确地确定当前渲染过程对应的帧图像中包括对象的状态,进而执行对应的优化处理。例如,以当前渲染过程对应的帧图像中包括的对象的状态包括运动和静止为例。电子设备在能够知晓所有渲染命令中的函数的情况下,就能够根据多个函数的类型以及时序,准确地分析确定该对象处于运动或静止的状态。相比于仅仅根据少量函数的信息,如函数名或函数的内参,分析对象的状态的方案,该根据全量指令进行的分析显然可以更加准确。
为了能够快速准确地获取渲染过程中的全量的指令流,本申请实施例提供一种图像处理方法,在不影响渲染命令的执行的同时,能够准确便捷地拦截到渲染命令包括的完整的指令集,该指令集中可以包括渲染命令中包括的函数和/或函数信息。进而使得电子设备可以根据拦截到的完整的指令集执行渲染的优化控制。
以下结合附图对本申请实施例提供的方案进行详细说明。
需要说明的是,本申请实施例提供的图像处理方法,可以应用在用户的电子设备中。该电子设备可以是能够提供网络接入能够的设备。比如,该电子设备可以是手机、平板电脑、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、媒体播放器等具备图形渲染能力的便携式移动设备,该电子设备也可以是智能手表等可穿戴电子设备。本申请实施例对该设备的具体形态不作特殊限制。
示例性的,本申请实施例提供的方案应用的电子设备可以包括处理器,外部存储器接口,内部存储器,通用串行总线(universal serial bus,USB)接口,充电管理模块,电源管理模块,电池,天线1,天线2,移动通信模块,无线通信模块,音频模块,传感器模块,按键,马达,指示器,摄像头,显示屏,以及用户标识模块(subscriber identificationmodule,SIM)卡接口等。其中,传感器模块可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。在一些实施例中,该电子设备还可以包括扬声器,受话器,麦克风,耳机接口等器件用于实现电子设备的音频相关功能。
可以理解的是,上述示例并不构成对电子设备的具体限定。在另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
应当理解的是,电子设备可以通过软件模块实现其内在功能。比如,图5示出了一种电子设备的软件划分示意。为了便于说明,其中还示出了包括硬件组件的硬件层。
示例性的,在如图5所示的示例中,电子设备可以就有分层架构。在该示例中,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,以电子设备运行有(Android)操作系统为例。系统可以分为多层,从上至下分别为应用程序层(简称为应用层),应用程序框架层(简称为框架层),原生C/C++库(或称为系统层),以及硬件层。
其中,应用程序层可以包括一系列应用程序包。应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。在本申请的一些实施例中,应用程序层可以包括向用户提供多媒体流展示功能的应用程序。比如,应用程序层中可以包括各类游戏应用(如等)。又如,应用程序层中还可以包括各类视频应用(如等)。
应用程序框架层为应用程序层的应用程序提供应用编程接口和编程框架。应用程序框架层包括一些预先定义的函数。应用程序框架层可以包括窗口管理器,内容提供器,视图系统,资源管理器,通知管理器,活动管理器,输入管理器等。窗口管理器提供窗口管理服务(Window Manager Service,WMS),WMS可以用于窗口管理、窗口动画管理、表面管理器(surface manager)以及作为输入系统的中转站。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。该数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。资源管理器为应用程序提供各种资源。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知。活动管理器可以提供活动管理服务(Activity Manager Service,AMS),AMS可以用于系统组件(例如活动、服务、内容提供者、广播接收器)的启动、切换、调度以及应用进程的管理和调度工作。输入管理器可以提供输入管理服务(Input Manager Service,IMS),IMS可以用于管理系统的输入,例如触摸屏输入、按键输入、传感器输入等。IMS从输入设备节点取出事件,通过和WMS的交互,将事件分配至合适的窗口。
系统层可以包括多个功能模块。例如:表面管理器,媒体框架(Media Framework),标准C库(Standard C library,libc),嵌入式系统的开放图形库(OpenGL for EmbeddedSystems,OpenGL ES)、Vulkan、SQLite、Webkit等。
结合前述说明,在本示例中,该电子设备中还可以包括硬件层。例如,硬件层中可以包括各项用于实现电子设备功能的硬件部件。比如,该硬件层可以包括用于进行渲染处理的GPU,用于进行数据处理的CPU,以及用于进行数据存储的内存等。又如,硬件层中还可以包括用于存储非易失性数据的闪存等。
在本申请实施例中,为了能够实现对应的功能,在框架层中还可以设置有其他的软件模块。示例性的,如图5所示,框架层中可以设置有拦截模块,数据处理模块,加载模块等。其中,拦截模块,数据处理模块,以及加载模块在工作过程,都可以由硬件层的CPU通过指令控制实现。
本申请实施例提供的方案均可以应用于上述示例中提供的电子设备中。以下以应用层设置有游戏应用,电子设备中的CPU控制实现该方案,该游戏应用下发渲染过程1中的渲染命令为例,对本申请实施例提供的方案进行详细说明。
结合图6,为本申请实施例提供的一种图像处理方法的流程示意图。该方案可以用于游戏应用加载的过程中。如图所示,该方案可以包括:
S601、将各个渲染版本的数据加载到内存中。
示例性的,在游戏应用启动后,可以执行加载过程。在该加载过程中,处理器可以将闪存中存储的各个版本的图形库包括的所有数据加载到内存中。作为一种可能的实现,该过程可以由如图5所示的加载模块在处理器的控制下实施。
以渲染版本包括版本1,版本2,以及版本3为例。处理器可以将版本1对应的所有函数的函数信息(如函数信息a1~函数信息am)加载到内存中。类似的,处理器可以将版本2对应的所有函数的函数信息(如函数信息b1~函数信息bn)加载到内存中。处理器可以将版本3对应的所有函数的函数信息(如函数信息c1~函数信息cp)加载到内存中。
这样,就可以获取如图7所示的在内存中的存储情况。比如,在内存中的地址a1-地址am,可以存储有版本1的函数信息,在内存中的地址b1-地址bn,可以存储有版本2的函数信息,在内存中的地址c1-地址cp,可以存储有版本2的函数信息。
S602、根据内存中存储的各个渲染版本的数据的存储地址,获取版本跳转表。
在本示例中,完成数据的加载之后,处理器可以通过版本跳转表对该加载到内存中的各个版本的数据进行管理。
比如,处理器可以通过控制数据处理模块,获取该版本跳转表。该版本跳转表可以具有如表1所示的组成。也就是说,在该版本跳转表中可以指示不同版本的数据在内存中的存储情况。
结合图7的示例,对版本跳转表进行说明。比如,如图7所示,版本1的数据在内存中首地址可以为地址a1,版本2的数据在内存中首地址可以为地址b1,版本3的数据在内存中首地址可以为地址c1。那么,版本跳转表可以为如下表3的示例。
表3
版本信息 | 首地址 |
版本1 | 地址a1 |
版本2 | 地址b1 |
版本3 | 地址c1 |
这样,根据该表3,电子设备就能够知晓加载进来的数据中,各个版本的函数信息在内存中的存储位置。在一些实施例中,该版本跳转表可以存储在内存中的TLS中。
S603、根据游戏应用下发的当前渲染版本,查询跳转表,确定内存中存储的对应渲染版本的首地址。
在一些实施例中,该步骤可以通过处理器控制数据处理模块实现。
可以理解的是,在游戏应用加载过程中,可以指示处理器其需要使用的渲染版本。在一些实施例中,游戏应用可以只使用一个渲染版本,那么游戏应用就可以向处理器下发需要使用的该渲染版本的信息。比如,以游戏应用需要使用版本1的渲染版本,那么游戏应用就可以将该版本1的信息下发给处理器。在另一些实施例中,游戏应用可能会用到多个渲染版本,那么游戏应用就可以向处理器下发携带这多个渲染版本的信息。比如,以游戏应用需要使用版本1和版本2的渲染版本,那么游戏应用就可以将该版本1和版本2的信息下发给处理器。以下以游戏应用使用版本1为例。
处理器可以根据游戏应用使用的渲染版本,执行数据的对应处理。
比如,结合图8,游戏应用可以下发携带版本1的信息。那么,处理器就可以确定当前游戏应用的运行过程中,需要使用版本1的渲染版本对应的函数信息。
处理器可以根据TLS中存储的版本跳转表,查询当前游戏应用需要使用的版本1对应在内存中的存储位置。比如,如图8所示,处理器可以在版本跳转表中查找到与版本1对应的存储首地址为地址a1。
S604、根据首地址,获取拦截跳转表。
结合图8的示例,基于获取的版本1的首地址,处理器就可以确定当前所要使用的函数信息的具体存储位置。
需要说明的是,为了后续调用某个渲染命令对应函数的函数信息时,可以更加快速准确,在本示例中,处理器可以根据应用所要使用渲染版本(如版本1)的数据的首地址,获取拦截跳转表。该拦截跳转表可以用于指示当前版本1中,不同函数的函数标识(如函数名)与该函数的相关信息的对应关系。
示例性的,该函数的相关信息可以包括:函数的函数信息的存储地址,以及指示函数索引插值的标识。可以看到,不同于前述示例中的GL API表,本示例中提供的拦截跳转表还可以包括指示函数索引插值的标识。
作为一种示例,每个渲染版本中的函数都可以对应一个索引值。例如,可以将一个渲染版本中的所有函数放入同一个结构体,那么每个函数的索引值就可以是在结构体中出现的顺序对应的自然数。比如,结构体中最靠前的函数1的索引值可以为1,结构体中在函数1之后的函数2的索引值就可以为2。
在本申请中,该拦截跳转表可以用于拦截记录渲染过程中包括的全量的渲染命令。比如,电子设备可以通过函数的索引值,记录函数的调用情况。
在本申请的不同实现中,拦截跳转表中可以包括各个函数对应的索引值,或者,计算函数索引值的计算代码的存储地址。
示例性的,以拦截跳转表中可以包括各个函数对应的索引值为例。表4示出了一种拦截跳转表的示例。
表4
函数名 | 存储地址 | 索引插值 |
函数a1 | 地址a1 | a1 |
函数a2 | 地址a2 | a2 |
…… | …… | …… |
函数am | 地址am | am |
以游戏应用使用的渲染版本为版本1为例。结合前述示例,该版本1中包括的函数可以为函数a1~函数am。基于S601的执行,函数a1~函数am对应的函数信息a1~函数信息am就可以被加载到内存中。比如,函数信息的存储地址可以为地址a1~地址am。
那么如表4所示,处理器就可以在拦截跳转表中记录各个函数名与存储对应函数信息的地址的对应关系。比如函数a1对应地址a1,函数a2对应地址a2,函数am对应地址am等。
由此,根据该拦截跳转表,在需要调用函数a1的函数信息a1时,处理器就可以从地址a1获取该函数信息a1。类似的,在需要调用函数a2的函数信息a2时,处理器就可以从地址a2获取该函数信息a2。在需要调用函数am的函数信息am时,处理器就可以从地址am获取该函数信息am。
如表4所示,在本示例中,各个函数名对应的表项还可以指示对应的索引插值。比如,函数a1对应的索引插值可以为a1。函数a2对应的索引插值可以为a2。函数am对应的索引插值可以为am。其中,a1~am可以是不同的自然数。处理器可以通过记录被调用函数的索引插值,实现对调用函数的记录。
可以理解的是,在上述示例中,拦截跳转表中可以携带有各个函数对应的索引插值。而由于一个版本中的函数数量是非常庞大的,因此在拦截跳转表中携带的索引插值的数量也会非常多,由此可能会对内存造成较大的存储压力。
在本申请的另一些实施例中,拦截跳转表还可以通过指示索引插值的计算代码的存储地址,使得处理器也能够根据拦截跳转表获取对应函数的索引插值。
在本示例中,在上述S601的加载过程中,处理器还可以将索引插值的计算代码从闪存中加载到内存中,比如在内存中的存储地址可以称为索引计算地址。那么,拦截跳转表中就可以不携带各个函数对应的索引值,而是通过跳转到索引计算地址,以对应的函数名为输入,通过运行该索引计算地址的代码,计算获取当前函数对应的索引差值。
示例性的,表5示出了又一种拦截跳转表的示例。
表5
根据如表5所示的示例,处理器就可以在应用程序调用函数a1时,从地址a1获取对应的函数信息a1。另外,处理器还可以跳转到索引计算地址对应的代码,输入函数a1,计算获取对应的索引差值(如a1)。类似的,处理器可以在应用程序调用函数a2时,从地址a2获取对应的函数信息a2。另外,处理器还可以跳转到索引计算地址对应的代码,输入函数a2,计算获取对应的索引差值(如a2)。处理器就可以在应用程序调用函数am时,从地址am获取对应的函数信息am。另外,处理器还可以跳转到索引计算地址对应的代码,输入函数am,计算获取对应的索引差值(如am)。
在本申请实施例中,处理器获取拦截跳转表的过程,可以是通过运行对应代码(如称为索引插值代码)实现的。示例性的,该代码可以通过代码生成器生成。
比如,参考图9,代码生成器可以Entries.ini文件为输入,经过处理获取.cpp以及.h文件。其中,Entries.ini文件可以存储有当前渲染版本中,游戏应用在运行过程中可能会调用的所有函数的函数信息。示例性的,该Entries.ini文件可以包括:
GL_ENTRY(void,glActiveShaderProgram,GLuint pipeline,GLuint program)
GL_ENTRY(void,glActiveShaderProgramEXT,GLuint pipeline,GLuintprogram)
GL_ENTRY(void,glActiveTexture,GLenum texture)
…
结合前述说明,该索引插值代码可以用于计算每个函数在结构体中对应的索引值。该指令索引可以用于标识当前函数在结构体中的位置。示例性的,包括各个函数的结构体(如称为GpuApi)可以为:
struct GpuApi{
{GLES API}
};
通过代码生成器处理之后,索引插值代码可以包括用于是通过GetGpuApiIndex(f)来得到函数f在GpuApi中的位置:
#define GetGpuApiIndex(f)(offsetof(struct GpuApi,f)/sizeof(void*))。
由此即可获取索引插值代码,该索引插值代码可以存储在输出的.cpp以及.h文件中。在一些实施例中,处理器在执行S601的过程中将该索引插值代码加载到内存中,以便于在执行S604时,可以将该索引插值代码在内存中的存储地址携带在拦截对照表中。
这样,通过上述图6-图8的方案示例,在游戏加载过程中,处理器就可以在内存中存储有如表4或表5所示的拦截对照表。由此即可对游戏运行过程中的渲染过程中的渲染命令进行全量的拦截记录。
示例性的,请参考图10,电子设备可以通过该方案实现在游戏运行过程中,游戏应用下发的全量的渲染命令的拦截记录。
以应用程中运行的游戏应用下发渲染命令为例。游戏应用可以在需要进行图形渲染时,下发该渲染过程中的多个渲染命令。以其中一个渲染命令(如渲染命令1)为例。该渲染命令1中可以包括函数a1。拦截模块以及数据处理模块可以在CPU的控制下,实现以下功能。
拦截模块可以用于拦截渲染命令,并将渲染命令全量交由数据处理模块进行处理。可以理解的是,在本示例中,拦截模块可以将来自游戏应用的所有渲染命令都进行拦截,并将拦截的渲染命令传输给数据处理模块。作为一种示例,拦截模块可以根据当前接收到的命令是否与渲染线程相关,判断该命令是否是渲染命令。如果当前命令是需要调用渲染线程执行的命令,那么表明该命令是渲染命令,那么拦截模块就可以对其进行拦截,并将拦截获取的渲染命令传输给数据处理模块。对应的,如果当前命令不需调用渲染线程执行,那么表明该命令不是渲染命令,那么拦截模块就可以不对其进行拦截。
数据处理模块具有对来自拦截模块的数据执行分析处理的能力。
作为一种示例,数据处理模块可以在接收到包括函数a1的渲染命令1之后,从内存中调取拦截跳转表。以该拦截跳转表具有如表5所示的组成为例。数据处理模块可以在拦截跳转表中查找函数a1。那么数据处理模块就可以根据命中项(即函数a1所在的表项)确定函数a1对应的函数信息a1在内存中的存储地址。比如,结合表5,根据拦截跳转表,数据处理模块可以确定对应的索引计算地址,那么数据处理模块就可以调用该地址指向的内存中的代码(如索引计算代码),并以函数a1的相关参数为输入,计算获取对应的索引值(如索引1)。
在一些实现中,在内存中还可以配置有索引队列,该索引队列可以用于存储计算获取的索引值。比如,在计算获取索引1之后,数据处理模块还可以将该索引1存储到索引队列中。在每计算一个索引值,数据处理模块就可以将该索引值存储到索引队列中。
根据拦截跳转表,数据处理模块还可以确定函数信息a1存储在地址a1。那么数据处理模块就可以从该地址a1获取该函数信息a1。以便于在后续下发给GPU进行处理。比如携带在渲染指令1中下发给GPU执行对应的渲染操作。
示例性的,以下从指令流的角度,对游戏运行过程中,各个模块之间的交互进行说明。
结合图11,为本申请实施例提供的一种图像处理方法的流程示意图。如图11所示,该方案可以包括:
S1101、游戏应用下发渲染命令1。其中,该渲染命令1可以包括函数a1。
S1102、拦截模块拦截渲染命令1。
S1103、拦截模块向数据处理模块发送渲染命令1携带的函数a1。
S1104、数据处理模块根据内存中的拦截跳转表,确定地址信息1。其中,该地址信息1可以包括地址a1。该地址a1可以存储有函数信息a1。该地址信息1中还可以包括索引计算地址。
S1105A、数据处理模块从地址a1获取函数信息a1。
S1105B、数据处理模块向GPU下发渲染指令1,该渲染指令1中可以包括函数信息a1。
S1105C、GPU执行渲染指令1对应的操作。由此就实现了对渲染命令1的执行。
此外,还可以通过如下过程,实现对渲染命令1的拦截记录。
S1106A、数据处理模块运行索引计算地址的代码计算获取索引1。该索引1可以是与函数a1对应的索引值。
S1106B、数据处理模块在内存中的索引队列中存储该索引1。
这样,游戏应用对于函数a1的调用,就被记录到了索引队列中。
上述图11为以一个渲染命令为对象进行的说明的,可以理解的是,在渲染过程(如渲染过程1)中,可以包括多个渲染命令(如渲染命令1-渲染命令n)。这样,在完成这多个渲染命令的调用后,在索引队列中就可以存储有对应的索引值。比如,渲染命令1包括的函数a1的索引值为索引1,渲染命令2包括的函数a2的索引值为索引2,渲染命令n包括的函数an的索引值为索引n。图12示出了完成渲染命令1~渲染命令n的调用后,索引队列中的数据记录情况。可以看到,在该索引队列中可以存储有全量的渲染命令包括的函数对应的索引值。由此就实现了对渲染过程中全量命令的拦截记录。
在一些实现中,通过分析该指令集,电子设备就可以实现对渲染过程的优化。
示例性的,电子设备可以通过预设指令序列和拦截获取的指令集之间的指令匹配,确定当前拦截的命令对应图形的特征。
比如,电子设备中可以预设有人物图形在运动过程中的指令序列。那么,就可以通过分析拦截获取的指令集与该预设指令序列是否匹配,确定拦截的指令对应渲染获取的人物图形是否是处于运动的状态。
作为一种示例,图13示出了一种指令匹配的示意图。如图13所示,预设指令序列可以为29-16-1001-1001-1001-944-16-201。也就是说,具有该指令序列片断的指令集所渲染获取人物图形是处于运动的状态。电子设备可以针对拦截获取的索引队列中的指令集对应的索引值,从第一个索引值开始匹配。如果当前索引值与预设指令序列的第一个索引值不同,那么开始第二索引值的匹配。当拦截获取的指令集中的第二个索引值与预设指令序列的第一个索引值相同,则表明该函数匹配。接着电子设备就可以进行指令集中的第三个索引值与预设指令序列的第二个索引值的匹配。以此类推,直到在拦截获取的指令集中匹配到与预设指令序列完全匹配的片断,或者在所有指令集中所有的索引值中都没有找到匹配的片断为止。
可以理解的是,在拦截获取的指令集中匹配到与预设指令序列完全匹配的片断的情况下,则表明指令匹配成功。即当前拦截的指令集所渲染获取的人物图形是处于运动的状态。对应的,在所有指令集中所有的索引值中都没有找到匹配的片断的情况下,则表明指令匹配失败,即当前拦截的指令集所渲染获取的人物图形是处于非运动的状态(如静止状态)。
在一些实施例中,电子设备执行上述指令匹配时,可以是使用针对特定场景下拦截获取的指令集进行的。应当理解的是,对于一帧图像的渲染,可以包括对多个RenderPass的渲染。每个RenderPass可以对应一个帧缓冲(Framebuffer)。一般而言,RenderPass(0)上可以进行用户界面的绘制。而不会在RenderPass(0)上执行人物图像的绘制。另外,由于人物图像的绘制较为复杂,因此使用到的函数数量一般较多。因此,电子设备可以使用当前帧图像中的所有针对不同RenderPass的拦截获取的指令集中,拦截到函数最多的一个或几个的指令集,与预设指令序列进行指令匹配。从而降低指令匹配次数,快速获取匹配结果。在一些示例中,拦截到函数最多的指令集,对应的RenderPass的绘制命令(Drawcall)最多,也可以将该RenderPass的渲染称为主场景渲染。也就是说,电子设备可以将主场景渲染过程中拦截获取的指令集,与预设指令序列进行指令匹配,从而确定当前帧图像中的人物图像是否在运动状态。
根据该判断结果,电子设备就可以执行对应的渲染优化。示例性的,在一些示例中,如果确定任务图像处于运动状态,则电子设备就可以采用较低的渲染精度对人物图像及其附近的对象进行渲染,从而降低渲染过程中对功耗的开销。在另一些示例中,如果确定任务图像处于非运动状态(如静止状态),则电子设备就可以采用较高的渲染精度对人物图像及其附近的对象进行渲染,从而向用户展示高精度的画面质量。
上述主要从电子设备的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对其中涉及的设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图14示出了的一种电子设备1400的组成示意图。如图14所示,该电子设备1400可以包括:处理器1401和存储器1402。该存储器1402用于存储计算机执行指令。示例性的,在一些实施例中,当该处理器1401执行该存储器1402存储的指令时,可以使得该电子设备1400执行上述实施例中任一种所示的图像渲染方法。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
图15示出了的一种芯片系统1500的组成示意图。该芯片系统1500可以包括:处理器1501和通信接口1502,用于支持相关设备实现上述实施例中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,用于保存电子设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。需要说明的是,在本申请的一些实现方式中,该通信接口1502也可称为接口电路。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在上述实施例中的功能或动作或操作或步骤等,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。
Claims (9)
1.一种图像处理方法,其特征在于,应用于电子设备,所述电子设备运行有应用程序,所述应用程序通过下发第一渲染命令,指示所述电子设备进行第一渲染操作,所述方法包括:
拦截应用程序下发的第一渲染命令,所述第一渲染命令包括第一函数;
根据第一函数的函数标识,以及拦截跳转表,确定所述第一函数对应的第一索引值,所述拦截跳转表用于指示所述第一函数与所述第一索引值的对应关系;
存储所述第一索引值;
所述拦截跳转表还用于指示所述第一函数与内存中存储有第一函数信息的第一地址的对应关系,所述第一函数信息包括所述第一函数对应的代码;所述方法还包括:
根据所述第一函数的函数标识,以及所述拦截跳转表,确定所述第一地址,从所述第一地址获取所述第一函数信息;
根据所述第一函数信息,执行所述第一渲染操作。
2.根据权利要求1所述的方法,其特征在于,所述拦截跳转表存储有所述第一函数的函数标识,与索引计算地址的对应关系,所述索引计算地址是所述电子设备的内存中,存储计算所述第一索引值的代码的地址;
所述根据第一函数的函数标识,以及拦截跳转表,确定所述第一函数对应的第一索引值,包括:
根据所述第一函数的函数标识,从所述拦截跳转表中获取所述索引计算地址;
运行所述索引计算地址存储的代码,计算获取所述第一索引值。
3.根据权利要求1所述的方法,其特征在于,所述拦截跳转表存储有所述第一函数的函数标识,与所述第一索引值的对应关系;
所述根据第一函数的函数标识,以及拦截跳转表,确定所述第一函数对应的第一索引值,包括:
根据所述第一函数的函数标识,从所述拦截跳转表中获取所述第一索引值。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在所述应用程序下发所述第一渲染命令之前,所述方法还包括:
将n个函数信息集加载到内存中,每个所述函数信息集包括一个渲染版本对应的所有函数信息,n个函数信息集分别对应n个不同的渲染版本;
根据n个所述函数信息集在所述内存中的存储位置,获取版本跳转表,所述版本跳转表包括第一函数信息集的渲染版本,与所述第一函数信息集在所述内存中的首地址的对应关系,所述第一函数信息集包括在所述n个函数信息集中。
5.根据权利要求4所述方法,其特征在于,所述方法还包括:
根据所述应用程序使用的第二渲染版本,以及所述版本跳转表,确定第二函数信息集的在内存中的存储地址,所述第二函数信息集与所述第二渲染版本对应;
根据所述第二函数信息集的在内存中的存储地址,获取所述拦截跳转表。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将计算所述第一索引值的代码加载到所述内存中。
7.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器和一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器存储有计算机指令;
当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-6中任一项所述的图像处理方法。
8.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-6中任一项所述的图像处理方法。
9.一种芯片系统,其特征在于,所述芯片系统包括接口电路和处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从存储器接收信号,并向所述处理器发送信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述芯片系统执行如权利要求1-6中任一项所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110963542.9A CN114443189B (zh) | 2021-08-20 | 2021-08-20 | 一种图像处理方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110963542.9A CN114443189B (zh) | 2021-08-20 | 2021-08-20 | 一种图像处理方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114443189A CN114443189A (zh) | 2022-05-06 |
CN114443189B true CN114443189B (zh) | 2023-01-13 |
Family
ID=81362403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110963542.9A Active CN114443189B (zh) | 2021-08-20 | 2021-08-20 | 一种图像处理方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443189B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115937380A (zh) * | 2021-08-24 | 2023-04-07 | 荣耀终端有限公司 | 图形渲染方法、装置及存储介质 |
CN115861511B (zh) * | 2022-12-30 | 2024-02-02 | 格兰菲智能科技有限公司 | 绘制命令的处理方法、装置、系统和计算机设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770433B (zh) * | 2008-12-30 | 2012-01-11 | 意法半导体研发(上海)有限公司 | 通用驱动方法和通用驱动设备 |
WO2019071600A1 (zh) * | 2017-10-13 | 2019-04-18 | 华为技术有限公司 | 一种图像处理方法及装置 |
CN111724293B (zh) * | 2019-03-22 | 2023-07-28 | 华为技术有限公司 | 图像渲染方法及装置、电子设备 |
CN113129202B (zh) * | 2020-01-10 | 2023-05-09 | 华为技术有限公司 | 数据传输方法、装置及数据处理系统、存储介质 |
CN113256779B (zh) * | 2021-07-05 | 2021-11-19 | 广州中望龙腾软件股份有限公司 | 一种基于OpenGL指令的渲染运行方法及系统 |
-
2021
- 2021-08-20 CN CN202110963542.9A patent/CN114443189B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114443189A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868785B2 (en) | Application program page processing method and device | |
CN103914205B (zh) | 一种智能终端的文件缩略图展示方法和装置 | |
US11853820B2 (en) | Cross-process communication method, apparatus, and device | |
CN114443189B (zh) | 一种图像处理方法和电子设备 | |
US10310722B2 (en) | Method and electronic device for controlling scroll speed of content | |
CN110020300B (zh) | 一种浏览器页面合成方法及终端 | |
WO2023160167A1 (zh) | 一种图像处理方法、电子设备及存储介质 | |
CN111389014A (zh) | 游戏资源数据监控方法、装置、计算机设备和存储介质 | |
US20180196584A1 (en) | Execution of multiple applications on a device | |
US20140136664A1 (en) | Resource based mobile device application streaming | |
CN110362371B (zh) | 视图层级的控制方法、装置及系统、计算机设备及介质 | |
CN111694629A (zh) | 信息展示方法、装置和电子设备 | |
US20160019602A1 (en) | Advertisement method of electronic device and electronic device thereof | |
CN110659024B (zh) | 图形资源转换方法、装置、电子设备及存储介质 | |
US8892693B2 (en) | Enabling fragment-based mobile device application streaming | |
CN110908629A (zh) | 电子设备操作方法、装置、电子设备和存储介质 | |
CN117557701A (zh) | 一种图像渲染方法和电子设备 | |
CN113900740A (zh) | 加载多项列表数据的方法及装置 | |
CN115437551A (zh) | 数据克隆的方法、设备、存储介质及计算机程序产品 | |
CN113384893A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
KR102577184B1 (ko) | 전자 장치 및 그의 동작 방법 | |
CN112506592A (zh) | 页面加载时长的确定方法、装置、设备和存储介质 | |
WO2024051471A1 (zh) | 一种图像处理方法和电子设备 | |
WO2023093212A1 (zh) | 一种图像处理方法及电子设备 | |
CN110489068B (zh) | 一种数据显示方法及其设备、存储介质、应用服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |