CN119048331A - 图像处理方法、装置、电子设备及可读介质 - Google Patents
图像处理方法、装置、电子设备及可读介质 Download PDFInfo
- Publication number
- CN119048331A CN119048331A CN202410969400.7A CN202410969400A CN119048331A CN 119048331 A CN119048331 A CN 119048331A CN 202410969400 A CN202410969400 A CN 202410969400A CN 119048331 A CN119048331 A CN 119048331A
- Authority
- CN
- China
- Prior art keywords
- buffer
- target
- display
- drawn
- display controller
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明实施例提供一种图像处理方法、装置、电子设备及可读介质,涉及计算机技术领域,该方法中,对至少三个绘制缓冲区中待绘制的缓冲区进行绘制;待绘制的缓冲区包括当前未被显示控制器使用的绘制缓冲区。将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对目标缓冲区进行绘制。否则,按照绘制顺序,将目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制,以及,将显示控制器的显示缓冲区设置为目标缓冲区,直至达到预设停止条件;显示缓冲区用于供显示控制器进行显示。这样,可以提高绘制速度,同时避免图像撕裂问题。
Description
技术领域
本发明实施例涉及计算机技术领域,特别是涉及一种图像处理方法、装置、电子设备及可读介质。
背景技术
图像撕裂指的是显示出来的图像有两帧及以上图像拼接。目前,嵌入式平台中为了避免出现图像撕裂问题,图像绘制芯片进行图像绘制时,需要控制最高绘制速度不超过显示刷新速度。这样,会对图像绘制芯片的帧率造成限制,导致图像绘制芯片的绘制性能无法被充分利用。
因此,如何在避免图像撕裂的同时,提高绘制速度成为亟需解决的技术问题。
发明内容
本发明实施例提供一种图像处理方法、装置、电子设备及可读介质,可以在避免图像撕裂的同时,提高绘制速度。
为了解决上述问题,本发明实施例公开了一种图像处理方法,应用于电子设备,所述电子设备中包括显示控制器以及内存中至少三个绘制缓冲区,所述方法包括:
对所述至少三个绘制缓冲区中待绘制的缓冲区进行绘制;所述待绘制的缓冲区包括当前未被所述显示控制器使用的绘制缓冲区;
将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若所述目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对所述目标缓冲区进行绘制;
否则,按照所述绘制顺序,将所述目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制,以及,将所述显示控制器的显示缓冲区设置为所述目标缓冲区,直至达到预设停止条件;所述显示缓冲区用于供所述显示控制器进行显示。
另一方面,本发明实施例公开了一种图像处理装置,应用于电子设备,所述电子设备中包括显示控制器以及内存中至少三个绘制缓冲区,所述装置包括:
第一绘制模块,用于对所述至少三个绘制缓冲区中待绘制的缓冲区进行绘制;所述待绘制的缓冲区包括当前未被所述显示控制器使用的绘制缓冲区;
第二绘制模块,用于将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若所述目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对所述目标缓冲区进行绘制;
第一设置模块,用于否则,按照所述绘制顺序,将所述目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制,以及,将所述显示控制器的显示缓冲区设置为所述目标缓冲区,直至达到预设停止条件;所述显示缓冲区用于供所述显示控制器进行显示。
又一方面,本发明实施例公开了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行前述的方法。
本发明实施例还公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上述所述的方法。
本发明实施例包括以下优点:本发明实施例提供的图像处理方法中,对至少三个绘制缓冲区中待绘制的缓冲区进行绘制;待绘制的缓冲区包括当前未被显示控制器使用的绘制缓冲区。将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对目标缓冲区进行绘制。否则,按照绘制顺序,将目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制,以及,将显示控制器的显示缓冲区设置为目标缓冲区,直至达到预设停止条件;显示缓冲区用于供显示控制器进行显示。这样,在在嵌入式平台中,绘制完一个缓冲区之后,无需等待显示控制器对当前的显示缓冲区绘制完毕,直接对本次绘制完成的缓冲区或下一缓冲区进行绘制,可以提高绘制速度。同时,将显示控制器的显示缓冲区设置为当前绘制完成的目标缓冲区,并对下一缓冲区进行绘制,可以避免图像撕裂问题。在目标缓冲区之前存在未被使用的已绘制缓冲区的情况下,才再次对目标缓冲区进行绘制,由于当前存在未被使用的已绘制缓冲区,因此,也可以避免图像撕裂问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种图像处理方法的步骤流程图;
图2是本发明实施例提供的一种绘制过程示意图;
图3是本发明实施例提供的一种图像处理装置的框图;
图4是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,结合本发明实施例涉及的一种应用场景进行说明。在嵌入式平台中,需要保持图像绘制芯片的最高帧率与屏幕刷新速度相同,以此来防止出现图像撕裂的问题。也就是说,需要在显示控制器(Display controller,DC)使用完显示缓冲区之后,再对显示缓冲区进行绘制。这样,会对图像绘制芯片的绘制速度造成限制,导致无法充分发挥图像绘制芯片的绘制性能。其中,显示控制器指的是负责管理显示器的组件,显示控制器可以是显示器内部的一部分,也可以是独立于显示器之外的组件,例如,显示控制器可以是一个独立的与显示设备连接的组件。图像绘制芯片可以包括图形处理器(Graphics Processing Unit,GPU)、中央处理器(Central Processing Unit,CPU),显示缓冲区可以是显示控制器所使用的缓冲区,显示控制器每次对显示缓冲区中的数据进行扫描并在屏幕上进行显示。
示例性地,在一种实现方式中,显示控制器使用前缓冲区进行显示,图像绘制芯片在后备缓冲区进行绘制。绘制完成后将后备缓冲区和前缓冲区交换缓冲区地址。然后,等待垂直同步信号到达的情况下,即等待显示控制器对当前的显示缓冲区绘制完毕,才进行下一帧图像的绘制。其中,垂直同步信号是显示控制器在完成当前扫描之后准备显示下一帧图像时生成的。这样会对绘制速度造成限制,导致绘制速度较慢。在未解除帧率限制的情况下,图像绘制芯片每次在接收到垂直同步信号的情况下,才进行绘制,以此避免图像撕裂问题。相应地,在关闭显示控制器的垂直同步信号的情况下,虽然可以避免绘制速度造成限制,但是会造成在显示控制器还未完成对前缓冲区的显示,图像绘制芯片已经开始对前缓冲区进行绘制的情况,进而导致出现图像撕裂,影响显示效果。为此,本发明实施例提供了一种图像处理方法,下面对该方法进行详细说明。
参照图1,示出了本发明实施例提供的一种图像处理方法的步骤流程图,该方法可以应用于电子设备,所述电子设备中包括显示控制器以及内存中的至少三个绘制缓冲区。如图1所示,该图像处理方法具体包括以下步骤:
步骤101、对所述至少三个绘制缓冲区中待绘制的缓冲区进行绘制;所述待绘制的缓冲区包括当前未被所述显示控制器使用的绘制缓冲区。
步骤102、将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若所述目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对所述目标缓冲区进行绘制。
步骤103、否则,按照所述绘制顺序,将所述目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制,以及,将所述显示控制器的显示缓冲区设置为所述目标缓冲区,直至达到预设停止条件;所述显示缓冲区用于供所述显示控制器进行显示。
其中,上述步骤101~步骤103的执行主体可以均为电子设备中的图像绘制芯片。需要说明的是,将所述显示控制器的显示缓冲区设置为所述目标缓冲区的操作,也可以由电子设备中的其他芯片执行,例如,在图像绘制芯片为GPU的情况下,可以基于CPU将显示控制器的显示缓冲区设置为目标缓冲区。待绘制的缓冲区可以具体是:当前未被显示控制器使用且未绘制的缓冲区。其中,对于任一绘制缓冲区而言,如果该绘制缓冲区从未被绘制过,或者之前被绘制但是绘制的内容已经被所有显示控制器扫描并显示,即已经被显示控制器使用,那么可以确定该绘制缓冲区属于未绘制的缓冲区。相应地,如果绘制缓冲区被绘制且绘制的内容正在被使用或者还未被使用,那么可以确定该绘制缓冲区为已绘制缓冲区。对于已绘制缓冲区,该缓冲区可能处于被使用的状态,也可能处于还未被使用的状态。
进一步地,可以在完成对当前的待绘制的缓冲区的绘制操作之后,将该当前的待绘制的缓冲区作为目标缓冲区,即将当前已绘制完成的缓冲区作为目标缓冲区。目标缓冲区之前的缓冲区可以是绘制顺序早于该目标缓冲区的缓冲区。示例性地,可以按照预设的绘制顺序,确定目标缓冲区的上一缓冲区,作为目标缓冲区之前的缓冲区。绘制缓冲区可以位于可供图像绘制芯片使用的内存中,绘制缓冲区的具体数量可以按需设置,在电子设备中可供图像绘制芯片使用的内存大小越大的情况下,绘制缓冲区的数量可以越多,从而为图像绘制芯片提供更多可用的绘制缓冲区,降低显示控制器所使用的缓冲区与图像绘制芯片所绘制的芯片重合的概率,进而降低出现图像撕裂的风险。
假设当前存在4个绘制缓冲区:a、b、c以及d。绘制顺序由早到晚分别为:a-b-c-d。那么在目标缓冲区,即当前已绘制完成的缓冲区为b的情况下,根据既定的绘制顺序,目标缓冲区之前的绘制缓冲区可以为绘制缓冲区a,目标缓冲区的下一缓冲区可以为绘制缓冲区c。需要说明的是,在目标缓冲区为c的情况下,目标缓冲区之前的绘制缓冲区可以为绘制缓冲区a以及绘制缓冲区b,目标缓冲区的下一缓冲区可以为绘制缓冲区d。其中,绘制顺序可以按需预先设置,本发明实施例对此不作限制。需要说明的是,可以对这多个绘制缓冲区进行循环处理,相应地,绘制顺序由早到晚可以表示为:a-b-c-d-a-b-c-d-a-b-c-d……。也就说,对于绘制缓冲区d而言,下一缓冲区可以为绘制缓冲区a,对于绘制缓冲区a而言,上一缓冲区上次循环的缓冲区可以为绘制缓冲区d。
可选的,在一些实施例中,显示控制器可以为多个。相应地,多个显示控制器可以对应多个显示图像内容的屏幕,可以基于这多个显示控制器实现复制屏幕和扩展屏效果。示例性地,这多个显示控制器可以控制各自对应的屏幕显示同一图像,进而实现复制屏幕效果。或者,这多个显示控制器可以控制各自对应的屏幕显示同一图像的不同部分,进而实现扩展屏效果。相应地,绘制缓冲区可以为4个。由于绘制缓冲区会占用内存资源,因此,设置4个绘制缓冲区可以避免内存占用过多的同时,确保有充足的绘制缓冲区以供使用。进一步地,显示缓冲区可以为显示控制器对应的目标寄存器中存储的地址所指示的缓冲区。也就是说,显示控制器是将目标寄存器中存储的地址所指示的绘制缓冲区作为显示缓冲区,显示缓冲区属于绘制缓冲区。
示例性地,显示控制器可以使用目标寄存器中存储的地址,具体的,可以读取目标寄存器中存储的地址,然后扫描该地址中的数据并显示。在显示完成之后,可以再次读取目标寄存器中的地址,并再次扫描读取到的地址中的数据并显示。其中,目标寄存器也可以称为帧缓冲地址寄存器,该帧缓冲地址寄存器可以存储显示缓冲区的物理内存地址。在为帧缓冲地址寄存器写入地址之后,本次写入的地址等最多一个屏幕刷新周期时间,即可被显示控制器读取并使用。例如,在显示控制器刚读取上一次的地址的情况下,本次写入的地址需要等一个屏幕刷新周期时间才会被使用。以屏幕刷新频率为60Hz,fb表示帧缓冲地址寄存器为例,假设写入fb地址时,显示控制器刚刚读取完fb地址,那么新写入的fb地址需要等60分之1秒才能被显示控制器使用。
进一步地,显示缓冲区用于供显示控制器进行显示,显示控制器可以根据帧缓冲地址寄存器里面的地址读取对应的内存中的数据,即读取显示缓冲区中的数据,并对数据进行数模转化(将数字信号转化为模拟信号)后,由对应显示器逐行扫描并显示。将显示控制器的显示缓冲区设置为目标缓冲区的操作,具体可以包括:将所有显示控制器对应的目标寄存器的值,设置为所述目标缓冲区的地址。具体的,可以将目标缓冲区的地址写入每个显示控制器各自对应的目标寄存器,这样,即可实现将所有显示控制器的显示缓冲区的地址设置为目标缓冲区的地址。本发明实施例中,通过修改地址即可实现设置显示缓冲区,进而一定程度上可以确保设置效率。
进一步地,出现图像撕裂的原因是:显示控制器在扫描显示缓冲区的时候,图像绘制芯片又对该显示缓冲区进行绘制,导致该显示缓冲区中被更新了新数据,进而导致显示控制器所对应的屏幕中显示出来的图像有两帧及以上图像的拼接,从而在视觉上造成撕裂问题。如果目标缓冲区之前存在未被使用的已绘制缓冲区,则说明对该目标缓冲区再次进行绘制不会影响到显示控制器正在使用的缓冲区,且当前预留有可供显示控制器使用的缓冲区,即预留有未被使用的已绘制缓冲区,对该目标缓冲区进行绘制不会导致显示控制器使用的数据被更新。因此,可以直接再次对该目标缓冲区进行绘制。这种情况下,在需要设置目标缓冲区的地址时(例如,显示控制器使用完当前的目标缓冲区的地址),可以将显示缓冲区的地址设置为之前存在的未被使用的已绘制缓冲区的地址。这样,可以在避免出现图像撕裂的同时,无需等待即可开始绘制,因此可以提高绘制速度,避免绘制性能受到限制。同时,再次对该目标缓冲区进行绘制的方式,可以节省绘制缓冲区。其中,未被使用的已绘制缓冲区,可以指的是不存在对应的目标寄存器中存储的地址,为该已绘制缓冲区的地址的显示控制器。
在目标缓冲区之前不存在未被使用的已绘制缓冲区,可以将显示控制器的显示缓冲区设置为当前已绘制完成的缓冲区,以供显示控制器使用。例如,将目标寄存器中存储的地址更新为目标缓冲区的地址。同时,将目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,并再次从步骤101开始执行,即再次进行绘制。这样,可以使得显示控制器在后续使用目标缓冲区的过程中,该目标缓冲区中的数据不会被更新,进而避免出现图像撕裂的问题。进一步地,在避免出现图像撕裂的同时,在完成对目标缓冲区的绘制之后,直接去下一缓冲区进行绘制,无需等待即可开始绘制,因此可以提高绘制速度,避免绘制性能受到限制。这样既实现了高效率绘制,也避免了图像显示撕裂问题。
需要说明的是,对目标缓冲区再次进行绘制时,所绘制的内容可以与之前绘制的内容一致,也可以不一致。示例性地,在测试场景中,再次对该目标缓冲区进行绘制,可以是绘制待显示图像中的任一图像。在非测试场景中,再次对该目标缓冲区进行绘制,可以是再次绘制本次绘制的图像。例如,再次进行绘制时,将目标缓冲区中之前绘制的图像作为目标图像,可以向目标缓冲区重新绘制目标图像,或者,可以向目标缓冲区绘制预设图像集中目标图像的下一帧图像,本发明实施例对此不作限制。其中,预设图像集中可以包括预设视频中的视频帧。进一步地,在将目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,并再次进行绘制时,可以是向目标缓冲区绘制预设图像集中目标图像的下一帧图像,直至达到预设停止条件。
预设停止条件可以按需进行设置,例如,预设停止可以为预设图像集中的图像均被绘制,或者,预设停止可以为接收到用户发送的停止绘制指令。
综上所述,本发明实施例提供的图像处理方法中,对至少三个绘制缓冲区中待绘制的缓冲区进行绘制;待绘制的缓冲区包括当前未被显示控制器使用的绘制缓冲区。将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对目标缓冲区进行绘制。否则,按照绘制顺序,将目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制,以及,将显示控制器的显示缓冲区设置为目标缓冲区,直至达到预设停止条件;显示缓冲区用于供显示控制器进行显示。这样,在绘制完一个缓冲区之后,无需等待显示控制器对当前的显示缓冲区绘制完毕,直接对本次绘制完成的缓冲区或下一缓冲区进行绘制,可以提高绘制速度。同时,将显示控制器的显示缓冲区设置为当前绘制完成的目标缓冲区,并对下一缓冲区进行绘制,可以避免图像撕裂问题。在目标缓冲区之前存在未被使用的已绘制缓冲区的情况下,才再次对目标缓冲区进行绘制,由于当前存在未被使用的已绘制缓冲区,因此,也可以避免图像撕裂问题。
可选的,本发明实施例中还可以包括下述步骤:
步骤S21、在所述目标缓冲区的上一缓冲区未被使用的情况下,确定所述目标缓冲区之前存在未被使用的已绘制缓冲区。
步骤S22、在所述目标缓冲区的上一缓冲区已被使用的情况下,确定所述目标缓冲区之前不存在未被使用的已绘制缓冲区。
本发明实施例中,目标缓冲区之前的已绘制缓冲区,可以是该目标缓冲区的上一缓冲区。由于图像绘制芯片是按照绘制顺序进行绘制,因此目标缓冲区的上一缓冲区中包括绘制的内容,目标缓冲区的上一缓冲区为已绘制缓冲区。相应地,如果上一缓冲区未被使用,则可以确定目标缓冲区之前存在未被使用的已绘制缓冲区。反之,如果上一缓冲区被使用,例如,显示控制器已经开始对上一缓冲区中的数据进行扫描,则可以确定目标缓冲区之前不存在未被使用的已绘制缓冲区。
示例性地,以目标缓冲区为b为例,假设之前已绘制完成的绘制缓冲区a还未被使用,那么可以确定目标缓冲区之前存在未被使用的已绘制缓冲区。相应地,后续可以继续再次对绘制缓冲区b进行绘制。反之,如果之前绘制的绘制缓冲区a被使用,则可以确定不存在未被使用的已绘制缓冲区。相应地,后续可以继续对目标缓冲区b的下一缓冲区c作为新的待绘制的缓冲区进行绘制。
本发明实施例中,基于目标缓冲区的上一缓冲区是否被显示控制器开始使用,来确定目标缓冲区之前是否存在未被使用的已绘制缓冲区。本发明实施例中,在上一缓冲区未被使用的情况下,确定目标缓冲区之前存在未被使用的已绘制缓冲区,并再次对目标缓冲区进行绘制,这种情况下,未被使用的上一缓冲区相当于是为显示控制器预留的可供使用的缓冲区。在上一缓冲区被使用的情况下,确定目标缓冲区之前不存在未被使用的已绘制缓冲区,并将下一缓冲区作为新的待绘制的缓冲区进行绘制,这种情况下,目标缓冲区相当于是为显示控制器预留的可供使用的缓冲区。这样,为显示控制器预留一个已绘制完成缓冲区,可以在为显示控制器留有余量的同时,避免占用过多缓冲区资源。
需要说明的是,也可以在目标缓冲区之前存在M个未被使用的已绘制缓冲区的情况下,确定目标缓冲区之前存在未被使用的已绘制缓冲区。在目标缓冲区之前不存在M个未被使用的已绘制缓冲区的情况下,确定目标缓冲区之前存在未被使用的已绘制缓冲区。其中,M可以为大于1的整数。这样,可以预留更多的缓冲区余量。
可选的,本发明实施例中,在上述步骤S21之前还可以包括:
步骤S31、检测针对所述至少三个绘制缓冲区设置的指定变量的值;
步骤S32、在所述指定变量的值为第一数值的情况下,确定所述上一缓冲区未被使用,表示所述目标缓冲区之前存在所述显示控制器未被使用的数据。
步骤S33、在所述指定变量的值为第二数值的情况下,确定所述上一缓冲区已被使用,表示所述绘制缓冲区中的数据已被所述显示控制器使用。
相应地,在将所述目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制的情况下,还可以包括:步骤S41、将所述指定变量的值设置为所述第一数值。
其中,指定变量可以是为这多个绘制缓冲区设置的标志位,指定变量可以表示为VER。第一数值以及第二数值可以是预先设置的,其中,第一数值可以具体用于表示已绘制的上一缓冲区还未被开始使用,第二数值可以具体用于表示已绘制的上一缓冲区已开始被使用。示例性地,第一数值以及第二数值的具体值可以按需以布尔型设置,例如,第一数值可以为1,第二数值可以为0。
相应地,可以在绘制完成之后,判断指定变量VER的值是否等于1,如果VER=1,则说明还有已绘制的图像未被显示,即目标缓冲区之前还有已绘制的缓冲区还未被使用,因此,可以再次对目标缓冲区进行绘制。也就是说,在当前存在未被使用的已绘制缓冲区的情况下,指定变量的值为1。反之,如果指定变量VER=0,则说明没有已绘制的图像未被显示,目标缓冲区之前不存在显示控制器未被使用的数据,即所有的已绘制缓冲区均被显示控制器使用,因此,可以对目标缓冲区的下一缓冲区进行绘制。进一步地,由于此时存在已绘制但是还未被使用的目标缓冲区,因此,可以在将所述目标缓冲区的下一缓冲区作为新的待绘制的缓冲区以再次进行绘制的情况下,将指定变量的值设置为第一数值,将指定变量VER设置为1。这样,可以确保指定变量的值可以准确的表征上一缓冲区的使用情况。使得后续基于指定变量的值即可准确便捷的判断上一缓冲区是否被使用。
需要说明的是,本发明实施例中还可以在完成对下一缓冲区的绘制操作之后,再执行将指定变量的值设置为第一数值的操作。
可选的,在所述上一缓冲区未被使用的情况下,本发明实施例中还可以包括:步骤S51。响应于目标显示控制器生成的第一垂直同步信号,将所有显示控制器的显示缓冲区设置为所述上一缓冲区,并将所述指定变量的值设置为所述第二数值;所述第一垂直同步信号用于表征所述目标显示控制器准备使用所述上一缓冲区,所述目标显示控制器属于多个显示控制器。
进一步地,将所述显示控制器的显示缓冲区设置为所述目标缓冲区的步骤,可以包括:响应于所述目标显示控制器生成的第二垂直同步信号,将所有显示控制器的显示缓冲区设置为所述目标缓冲区,并将所述指定变量的值设置为所述第二数值;所述第二垂直同步信号用于表征所述目标显示控制器准备使用所述目标缓冲区。
本发明实施例中,可以在存在多个显示控制器的情况下,即图像绘制芯片所在的电子设备外接多个显示屏的情况下,使用其中一个显示控制器的垂直同步信号作为缓冲区切换的时机。具体的,目标显示控制器可以是多个显示控制器中预先指定的显示控制器,示例性地,可以任意指定一个显示控制器作为目标显示控制器,本发明实施例对此不作限制。
目标显示器完成对上一缓冲区的上一个缓冲区的显示之后,会准备使用该上一缓冲区。其中,准备使用指的是显示控制器完成显示之后,执行读取目标寄存器的值,以显示该目标寄存器的值所表示地址中的数据并显示。相应地,目标显示控制器会对应生成垂直同步信号,此时生成的垂直同步信号即为第一垂直同步信号。其中,垂直同步信号也可以称为垂直同步中断,垂直同步信号可以表示将缓冲区使用完毕。相应地,响应于该第一垂直同步信号,可以将所有显示控制器对应的目标寄存器的值,设置为上一缓冲区的地址,以实现切换。由于显示控制器是将目标寄存器的值所指示的缓冲区作为显示缓冲区,因此,通过将所有显示控制器对应的目标寄存器的值,设置为上一缓冲区的地址,可以实现将显示控制器使用的缓冲区切换为上一缓冲区。具体的,可以将所有显示控制器对应的目标寄存器的值,设置为上一缓冲区的地址。这样,通过修改地址即可实现设置显示缓冲区,进而一定程度上可以确保设置效率。
由于是在目标显示控制器产生垂直同步信号的情况下,将显示缓冲区切换为上一缓冲区,因此,切换之后,目标寄存器中存储的地址可能不会被所有显示控制器立即使用,但是至少存在目标显示控制器会使用该目标寄存器中存储的地址,即目标显示控制器会对上一缓冲区进行扫描并显示。相应地,这种情况下,在将所有显示控制器的显示缓冲区设置为所述上一缓冲区之前,指定变量的值为第一数值,在生成第一垂直同步信号的情况下,可以将指定变量的值设置为第二数值,即设置VER=0。即可以在垂直同步中断中将指定变量VER赋值0。
进一步地,在上一缓冲区已被使用的情况下,则说明目标寄存器中已经存储了上一缓冲区的地址。在对当前的目标缓冲区绘制完成后,可以继续对下一缓冲区进行绘制,相应地,在对下一缓冲区进行绘制的情况下,当前的绘制完成的目标缓冲区变为新的上一缓冲区。目标显示器完成对上一缓冲区的显示之后,会准备使用该目标缓冲区,相应地,目标显示控制器会对应生成垂直同步信号,此时生成的垂直同步信号即为第二垂直同步信号。本发明实施例中具体可以是在产生第二垂直同步信号的情况下,将目标缓冲区作为所有显示控制器的显示缓冲区。具体的,响应于该第二垂直同步信号,可以将所有显示控制器对应的目标寄存器的值,设置为目标缓冲区的地址,以实现切换。具体的,可以将所有显示控制器对应的目标寄存器的值,设置为目标缓冲区的地址。这样,通过通过修改地址即可实现设置显示缓冲区,进而一定程度上可以确保设置效率。
由于是在目标显示控制器产生垂直同步信号的情况下,将显示缓冲区切换为目标缓冲区,因此,切换之后,可能存在部分显示控制器还未完成对切换之前的显示缓冲区中数据的显示,目标寄存器中存储的地址可能不会被所有显示控制器立即使用,但是至少存在目标显示控制器会使用该目标寄存器中存储的地址,即目标显示控制器会对目标缓冲区进行扫描并显示。相应地,这种情况下,可以将指定变量的值设置为第二数值,即设置VER=0。
在存在多个显示控制器的情况下,以目标显示控制器的垂直同步信号作为切换显示缓冲区的时机,可以为显示缓冲区切换操作提供切换依据,进而方便执行设置显示缓冲区的操作。本发明实施例中,切换显示缓冲区,可以指的是,将各显示控制器对应的目标寄存器中存储的地址均修改为上一缓冲区的地址/目标缓冲区的地址。这样,在修改之后,可以使得每个显示控制器均在各自的显示器上显示上一缓冲区中的数据/目标缓冲区中的数据。同时,本发明实施例中,通过维护指定变量的值,可以使得指定变量的值可以准确的表征绘制缓冲区的使用情况。
其中,即使存在某些显示控制器更早使用完缓冲区,生成了垂直同步信号,但是由于目标显示控制器还未使用完,目标显示控制器还未生成垂直同步信号,此时更早使用完的显示控制器可以先进行等待。
可选的,在上述步骤101之前,本发明实施例中还可以执行下述步骤:
步骤S61、在初始化阶段,创建所述至少三个绘制缓冲区,并对所述至少三个绘制缓冲区中的首位缓冲区进行绘制。
步骤S62、在对所述首位缓冲区绘制完成之后,将所述首位缓冲区的下一缓冲区确定为所述待绘制的缓冲区,并进入所述对所述至少三个绘制缓冲区中的待绘制缓冲区进行绘制的步骤。
具体的,可以在开始执行本发明实施例提供的图像处理方法时,先进行初始化。具体的,初始化时,可以先创建所需的多个绘制缓冲区。其中,首位缓冲区可以是多个绘制缓冲区中按照绘制顺序最先被绘制的缓冲区。示例性地,初始化时可以先创建4个绘制缓冲区:a、b、c以及d。绘制顺序由早到晚分别为:a-b-c-d。那么图像绘制芯片可以先使用a进行绘制。此时,可以将所有显示控制器的显示缓冲区设置为首位缓冲区的上一缓冲区,即所有显示控制器使用绘制缓冲区d。此时,绘制缓冲区d中可以包括预先准备的图像,或者绘制缓冲区d中的数据可以均为0,这样,可以使得各屏幕均显示为黑屏,进而使得用户实际看到的第一帧图像是图像绘制芯片绘制出来的图像,本发明实施例对此不作限制。
在对所述首位缓冲区绘制完成之后,由于此时存在已绘制未使用的首位缓冲区,因此,可以将指定变量设置为第一数值,即标记指定变量的值VER=1。同时,可以将首位缓冲区的下一缓冲区确定为待绘制的缓冲区,并开始执行步骤101。
以存在3个显示控制器:DC0、DC1以及DC2,DC0为目标显示控制器。图2是本发明实施例提供的一种绘制过程示意图。如图2所示,可以先将绘制缓冲区d设置为所有DC的显示缓冲区,即将绘制缓冲区d的地址写入所有显示控制器对应的目标寄存器中。图像绘制芯片先对首位缓冲区a作为目标缓冲区进行绘制,此时指定变量VER=0。在完成对目标缓冲区a的绘制之后,则由于目标缓冲区之前不存在未被使用的已绘制缓冲区,按照所述绘制顺序设置VER=1,并将目标缓冲区a的下一缓冲区b作为待绘制的缓冲区,对下一缓冲区b再次进行绘制。期间如果DC0产生了垂直同步信号,则将所有DC的显示缓冲区均同步设置为目标缓冲区a,并设置指定变量VER=0,以表明至少存在DC0开始使用目标缓冲区a。
在对下一缓冲区b绘制完成之后,将绘制完成的绘制缓冲区b作为目标缓冲区,可以继续判断指定变量VER是否为1。如果指定变量VER=1,则说明期间DC0还未产生垂直同步信号,显示缓冲区还未切换至目标缓冲区b的上一缓冲区a,上一缓冲区a还未被DC0使用,目前还留有一个可供使用的缓冲区余量,即目标缓冲区b之前存在未被使用的已绘制缓冲区。因此,可以继续对目标缓冲区b进行绘制,使目标缓冲区b中的数据被更新。反之,如果VER=0,则说明期间DC0产生了垂直同步信号,显示缓冲区被切换至目标缓冲区b的上一缓冲区a,上一缓冲区a至少被DC0使用。因此,由于目标缓冲区b之前不存在未被使用的已绘制缓冲区,按照所述绘制顺序可以对目标缓冲区b的下一缓冲区c进行绘制,以将目标缓冲区b作为可供使用的缓冲区余量(图2中以此时VER=0,DC0以及DC1已经使用a,DC2仍在使用绘制缓冲区d为例,进行示意)。此时,由于留有一个可供使用的缓冲区余量,因此,可以设置VER=1。需要说明的是,本发明实施例中,以DC0的垂直中断信号作为切换显示缓冲区的依据。在切换显示缓冲区时,是将所有DC的目标寄存器存储的地址均修改为所要切换的缓冲区的地址。各DC可以读取修改后地址,并显示该地址所指示缓冲区中存储的数据。
在对绘制缓冲区c绘制完成之后,可以判断VER是否为1。如果VER=1,则说明期间DC0还未产生垂直同步信号,显示缓冲区还未切换至绘制缓冲区b,绘制缓冲区b还未被使用,目前还留有一个可供使用的缓冲区余量。因此,可以继续对绘制缓冲区c进行绘制。反之,如果VER=0,则说明期间DC0产生了垂直同步信号,显示缓冲区被切换至绘制缓冲区b,绘制缓冲区b至少被DC0使用。因此,可以对绘制缓冲区c的下一缓冲区d进行绘制,以将c作为可供使用的缓冲区余量。(图2中以此时VER=0,DC0以及DC1已经使用绘制缓冲区b,DC2在使用绘制缓冲区a为例,进行示意)此时,由于留有一个可供使用的缓冲区余量,因此,可以设置VER=1。需要说明的是,在对绘制缓冲区c绘制完成之后,如果VER=0,则说明已经产生了两次垂直同步信号,因此,所有DC均已经完成对绘制缓冲区d的使用了。
在对d绘制完成之后,可以判断VER是否为1。如果VER=1,则说明期间DC0还未产生垂直同步信号,显示缓冲区还未切换至c,c还未被使用,目前还留有一个可供使用的缓冲区余量,即绘制缓冲区c。因此,可以继续对d进行绘制。(图2中以此时VER=1,DC0、DC1以及DC2使用b为例,进行示意)。
反之,如果VER=0,则说明期间DC0产生了垂直同步信号,显示缓冲区被切换至绘制缓冲区c,绘制缓冲区c至少被DC0使用。因此,可以对绘制缓冲区d的下一缓冲区a进行绘制,开始新一轮循环,以将绘制缓冲区d作为可供使用的缓冲区余量。此时,由于留有一个可供使用的缓冲区余量,因此,可以设置VER=1。进一步地,在对绘制缓冲区a绘制完成之后,可以判断VER是否为1。如果VER=1,则说明期间DC0还未产生垂直同步信号,显示缓冲区还未切换至绘制缓冲区d,绘制缓冲区d还未被使用,目前还留有一个可供使用的缓冲区余量。因此,可以继续对a进行绘制。反之,如果VER=0,则说明期间DC0产生了垂直同步信号,显示缓冲区被切换至绘制缓冲区d,绘制缓冲区d至少被DC0使用。因此,可以对绘制缓冲区a的下一缓冲区b进行绘制,以将绘制缓冲区a作为可供使用的缓冲区余量。此时,由于留有一个可供使用的缓冲区余量,因此,可以设置VER=1。
本发明实施例中,在多屏幕显示的情况下,设置不同的绘制缓冲区和指定变量,并基于指定变量的值决定是否将显示控制器的显示缓冲区设置为刚绘制完成的缓冲区,确保为显示控制器留有一个可供使用的缓冲区余量。具体的,目标缓冲区之前未被使用的已绘制缓冲区作为预留的缓冲区余量,在目标缓冲区之前存在未被使用的已绘制缓冲区的的情况下,当前对目标缓冲区再次进行绘制不会影响到各个显示控制器正在使用的缓冲区,对该目标缓冲区进行绘制不会导致各个显示控制器使用的数据被更新。因此,可以避免出现图像撕裂。在目标缓冲区之前不存在未被使用的已绘制缓冲区的的情况下,对下一缓冲区进行绘制,相当于该目标缓冲区作为预留的缓冲区余量,由于这种情况下是对下一缓冲区进行绘制,可以使得各个显示控制器在后续使用目标缓冲区的过程中,该目标缓冲区中的数据不会被更新,进而避免出现图像撕裂的问题。且本发明实施例中,避免出现图像撕裂的同时,由于无需等待即可再次进行绘制,因此,可以避免对绘制帧率造成限制,避免损失绘制性能,以及,可以解决避免出现图像撕裂的同时,最高帧率只能和屏幕刷新率相同的问题。
进一步地,在需要对待测绘制芯片进行绘制性能测试时,例如,想测试GPU/CPU绘制图形性能的情况下,在先技术中如果解除帧率限制,则需要关闭显示控制器的垂直同步信号。在未解除帧率限制的情况下,显示控制器每次在接收到垂直同步信号的情况下,才进行绘制,以此避免图像撕裂问题。相应地,在关闭显示控制器的垂直同步信号的情况下,则会导致显示图像出现撕裂问题,影响显示效果。如果不使用屏幕显示,只是在非显示缓冲区进行绘制,导致看不到渲染的内容的方式。
本发明实施例中,可以在避免出现图像撕裂的同时,无需等待即可再次进行绘制,因此,可以避免对绘制帧率造成限制。这样,可以使图像绘制芯片不受屏幕刷新时间的限制,可以高效率的进行绘制,避免限制图像绘制芯片的绘制性能,使得图像绘制芯片的绘制性能可以充分发挥,进而确保测试效果。同时,可以确保用户可以查看到绘制的内容,以及,避免显示图像出现撕裂问题,影响显示效果的问题。
可选的,本发明实施例中,前述绘制操作可以基于所电子设备中的待测绘制芯片执行。相应地,在基于待测绘制芯片进行绘制的情况下,可以采集测试指标,其中,该测试指标用于表征待测绘制芯片的绘制性能。然后,基于测试指标,生成待测绘制芯片的绘制性能测试结果。
参照图3,示出了本发明实施例提供的一种图像处理装置的框图,应用于电子设备,所述电子设备中包括显示控制器以及内存中至少三个绘制缓冲区,如图3所示,该图像处理装置具体包括:
第一绘制模块201,用于对所述至少三个绘制缓冲区中待绘制的缓冲区进行绘制;所述待绘制的缓冲区包括当前未被所述显示控制器使用的绘制缓冲区;
第二绘制模块202,用于将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若所述目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对所述目标缓冲区进行绘制;
第一设置模块203,用于将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若所述目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对所述目标缓冲区进行绘制。
可选的,所述装置还包括:
第一确定模块,用于在所述目标缓冲区的上一缓冲区未被使用的情况下,确定所述目标缓冲区之前存在未被使用的已绘制缓冲区;
第二确定模块,用于在所述目标缓冲区的上一缓冲区已被使用的情况下,确定所述目标缓冲区之前不存在未被使用的已绘制缓冲区。
可选的,所述装置还包括:
检测模块,用于,在所述第一确定模块在所述目标缓冲区的上一缓冲区未被使用的情况下,确定所述目标缓冲区之前存在未被使用的已绘制缓冲区之前,检测针对所述至少三个绘制缓冲区设置的指定变量的值;
第三确定模块,用于在所述指定变量的值为第一数值的情况下,确定所述上一缓冲区未被使用,表示所述目标缓冲区之前存在所述显示控制器未被使用的数据;
第四确定模块,用于在所述指定变量的值为第二数值的情况下,确定所述上一缓冲区已被使用,表示所述绘制缓冲区中的数据已被所述显示控制器使用;
相应地,所述装置还包括:第二设置模块,用于在所述第一设置模块203将所述目标缓冲区的下一缓冲区作为新的待绘制的缓冲区以再次进行绘制的情况下,将所述指定变量的值设置为所述第一数值。
可选的,所述显示控制器为多个;所述装置还包括:第三设置模块,用于在所述上一缓冲区未被使用的情况下,响应于目标显示控制器生成的第一垂直同步信号,将所有显示控制器的显示缓冲区设置为所述上一缓冲区,并将所述指定变量的值设置为所述第二数值;所述第一垂直同步信号用于表征所述目标显示控制器准备使用所述上一缓冲区;
所述第一设置模块203,具体用于:响应于所述目标显示控制器生成的第二垂直同步信号,将所有显示控制器的显示缓冲区设置为所述目标缓冲区,并将所述指定变量的值设置为所述第二数值;所述第二垂直同步信号用于表征所述目标显示控制器准备使用所述目标缓冲区。
可选的,所述显示缓冲区为所述显示控制器对应的目标寄存器中的地址所指示的缓冲区;
所述第三设置模块,具体用于:将所有显示控制器对应的目标寄存器的值,设置为所述上一缓冲区的地址;
所述第一设置模块203,具体还用于:将所有显示控制器对应的目标寄存器的值,设置为所述目标缓冲区的地址。
可选的,所述装置还包括:
创建模块,用于在初始化阶段,创建所述至少三个绘制缓冲区,并对所述至少三个绘制缓冲区中的首位缓冲区进行绘制;
第四设置模块,用于在对所述首位缓冲区绘制完成之后,将所述首位缓冲区的下一缓冲区确定为所述待绘制的缓冲区,并进入所述对所述至少三个绘制缓冲区中的待绘制缓冲区进行绘制的步骤。
综上所述,本发明实施例提供的图像处理装置,对至少三个绘制缓冲区中待绘制的缓冲区进行绘制;待绘制的缓冲区包括当前未被显示控制器使用的绘制缓冲区。将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对目标缓冲区进行绘制。否则,按照绘制顺序,将目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制,以及,将显示控制器的显示缓冲区设置为目标缓冲区,直至达到预设停止条件;显示缓冲区用于供显示控制器进行显示。这样,在绘制完一个缓冲区之后,无需等待显示控制器对当前的显示缓冲区绘制完毕,直接对本次绘制完成的缓冲区或下一缓冲区进行绘制,可以提高绘制速度。同时,将显示控制器的显示缓冲区设置为当前绘制完成的目标缓冲区,并对下一缓冲区进行绘制,可以避免图像撕裂问题。在目标缓冲区之前存在未被使用的已绘制缓冲区的情况下,才再次对目标缓冲区进行绘制,由于当前存在未被使用的已绘制缓冲区,因此,也可以避免图像撕裂问题。
参照图4,是本发明实施例提供的电子设备的结构示意图。如图4所示,所述电子设备包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述实施例的图像处理方法。
本发明实施例提供了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器能够执行前述实施例的图像处理方法。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要指出的是,本申请中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以预测方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种图像处理方法、一种图像处理装置、一种电子设备及一个或多个机器可读介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种图像处理方法,其特征在于,应用于电子设备,所述电子设备中包括显示控制器以及内存中至少三个绘制缓冲区,所述方法包括:
对所述至少三个绘制缓冲区中待绘制的缓冲区进行绘制;所述待绘制的缓冲区包括当前未被所述显示控制器使用的绘制缓冲区;
将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若所述目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对所述目标缓冲区进行绘制;
否则,按照所述绘制顺序,将所述目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制,以及,将所述显示控制器的显示缓冲区设置为所述目标缓冲区,直至达到预设停止条件;所述显示缓冲区用于供所述显示控制器进行显示。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标缓冲区的上一缓冲区未被使用的情况下,确定所述目标缓冲区之前存在未被使用的已绘制缓冲区;
在所述目标缓冲区的上一缓冲区已被使用的情况下,确定所述目标缓冲区之前不存在未被使用的已绘制缓冲区。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
检测针对所述至少三个绘制缓冲区设置的指定变量的值;
在所述指定变量的值为第一数值的情况下,确定所述上一缓冲区未被使用,表示所述目标缓冲区之前存在所述显示控制器未被使用的数据;
在所述指定变量的值为第二数值的情况下,确定所述上一缓冲区已被使用,表示所述绘制缓冲区中的数据已被所述显示控制器使用;
相应地,在将所述目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制的情况下,所述方法还包括:将所述指定变量的值设置为所述第一数值。
4.根据权利要求3所述的方法,其特征在于,所述显示控制器为多个;
在所述上一缓冲区未被使用的情况下,所述方法还包括:响应于目标显示控制器生成的第一垂直同步信号,将所有显示控制器的显示缓冲区设置为所述上一缓冲区,并将所述指定变量的值设置为所述第二数值;所述第一垂直同步信号用于表征所述目标显示控制器准备使用所述上一缓冲区;
所述将所述显示控制器的显示缓冲区设置为所述目标缓冲区,包括:响应于所述目标显示控制器生成的第二垂直同步信号,将所有显示控制器的显示缓冲区设置为所述目标缓冲区,并将所述指定变量的值设置为所述第二数值;所述第二垂直同步信号用于表征所述目标显示控制器准备使用所述目标缓冲区。
5.根据权利要求4所述的方法,其特征在于,所述显示缓冲区为所述显示控制器对应的目标寄存器中的地址所指示的缓冲区;
所述将所有显示控制器的显示缓冲区设置为所述上一缓冲区,包括:将所有显示控制器对应的目标寄存器的值,设置为所述上一缓冲区的地址;
所述将所有显示控制器的显示缓冲区设置为所述目标缓冲区,包括:将所有显示控制器对应的目标寄存器的值,设置为所述目标缓冲区的地址。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在初始化阶段,创建所述至少三个绘制缓冲区,并对所述至少三个绘制缓冲区中的首位缓冲区进行绘制;
在对所述首位缓冲区绘制完成之后,将所述首位缓冲区的下一缓冲区确定为所述待绘制的缓冲区,并进入所述对所述至少三个绘制缓冲区中的待绘制缓冲区进行绘制的步骤。
7.一种图像处理装置,其特征在于,应用于电子设备,所述电子设备中包括显示控制器以及内存中至少三个绘制缓冲区,所述装置包括:
第一绘制模块,用于对所述至少三个绘制缓冲区中待绘制的缓冲区进行绘制;所述待绘制的缓冲区包括当前未被所述显示控制器使用的绘制缓冲区;
第二绘制模块,用于将当前已绘制完成的缓冲区作为目标缓冲区,按照预设的绘制顺序,若所述目标缓冲区之前存在未被使用的已绘制缓冲区,则再次对所述目标缓冲区进行绘制;
第一设置模块,用于否则,按照所述绘制顺序,将所述目标缓冲区的下一缓冲区作为新的待绘制的缓冲区,以再次进行绘制,以及,将所述显示控制器的显示缓冲区设置为所述目标缓冲区,直至达到预设停止条件;所述显示缓冲区用于供所述显示控制器进行显示。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于在所述目标缓冲区的上一缓冲区未被使用的情况下,确定所述目标缓冲区之前存在未被使用的已绘制缓冲区;
第二确定模块,用于在所述目标缓冲区的上一缓冲区已被使用的情况下,确定所述目标缓冲区之前不存在未被使用的已绘制缓冲区。
9.一种电子设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行如权利要求1至6中任一项所述的方法。
10.一个或多个机器可读介质,其特征在于,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410969400.7A CN119048331A (zh) | 2024-07-18 | 2024-07-18 | 图像处理方法、装置、电子设备及可读介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410969400.7A CN119048331A (zh) | 2024-07-18 | 2024-07-18 | 图像处理方法、装置、电子设备及可读介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN119048331A true CN119048331A (zh) | 2024-11-29 |
Family
ID=93580742
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410969400.7A Pending CN119048331A (zh) | 2024-07-18 | 2024-07-18 | 图像处理方法、装置、电子设备及可读介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN119048331A (zh) |
-
2024
- 2024-07-18 CN CN202410969400.7A patent/CN119048331A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2020507244A (ja) | 画像円滑性向上方法および装置 | |
| US9984651B2 (en) | Method and apparatus for displaying composition screen image by composing screen images of operating systems (OSs) | |
| US20180084302A1 (en) | Method and apparatus for content insertion during video playback, and storage medium | |
| JP3636672B2 (ja) | 表示処理装置 | |
| JPH0863135A (ja) | 情報処理装置 | |
| CN112399095A (zh) | 视频处理方法、装置和系统 | |
| CN111866408A (zh) | 图形处理芯片及视频解码显示方法 | |
| WO2015161809A1 (en) | Picture splitting method and apparatus, and picture loading method and apparatus | |
| CN106156132B (zh) | 图片加载显示方法和装置 | |
| CN118151786A (zh) | 绘制方法、电子设备和可读存储介质 | |
| JPH07271344A (ja) | グラフィック表示装置 | |
| CN113835526B (zh) | 显示设备的控制方法、显示设备及介质 | |
| CN114916106B (zh) | 控制灯带显示的方法、灯带控制器及可读存储介质 | |
| CN114153416B (zh) | 一种显示控制的方法及相关装置 | |
| CN119048331A (zh) | 图像处理方法、装置、电子设备及可读介质 | |
| CN109819329B (zh) | 一种窗口显示方法及智能电视 | |
| CN115699726B (zh) | 数据处理装置及其控制方法、显示装置 | |
| JP2015109592A (ja) | 画像合成装置及び画像合成プログラム | |
| US7999814B2 (en) | Information processing apparatus, graphics processor, control processor and information processing methods | |
| US12542952B1 (en) | Methods and systems for synchronizing rendering of video frames during scrubbing | |
| WO2018058368A1 (zh) | 系统性能提升方法、系统性能提升装置及显示装置 | |
| CN115827073A (zh) | 独立显卡和集显同时显示的处理方法、设备、存储介质 | |
| CN120183360B (zh) | 一种多屏显示方法及多屏显示系统 | |
| CN113066450B (zh) | 图像显示方法,装置,电子设备及存储介质 | |
| JP3152099B2 (ja) | 地図表示装置 |
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 |