CN114037785A - 图像处理方法及装置 - Google Patents
图像处理方法及装置 Download PDFInfo
- Publication number
- CN114037785A CN114037785A CN202111204017.5A CN202111204017A CN114037785A CN 114037785 A CN114037785 A CN 114037785A CN 202111204017 A CN202111204017 A CN 202111204017A CN 114037785 A CN114037785 A CN 114037785A
- Authority
- CN
- China
- Prior art keywords
- image
- processed
- palette
- frame
- processing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开涉及一种图像处理方法及装置。所述方法包括:获取预设数量的待处理图像;基于所述待处理图像生成调色板;采用所述调色板处理所述待处理图像;将处理后的图像逐帧进行编码。本公开的图像处理方法和装置,基于多帧待处理图像生成调色板,并共用该调色板,有效提高了平均每帧待处理图像的调色板生成效率。此外,通过多线程并行生成调色板,以及并行处理待处理图像,进一步提高了图像处理效率,提高了GIF动图生成效率。
Description
技术领域
本公开一般地涉及计算机技术领域。更具体地,本公开涉及图像处理方法及装置。
背景技术
动态图片(Dynamic Image)是指当一组特定的静态图像以指定的频率切换而产生某种动态效果的图片。常见的动态图片的格式是GIF(Graphics Interchange Format,图像互换格式)。GIF动图具有“体型”小、易于随时安置调用的特点,常用于网页装饰用。
现有技术中,为了生成GIF动图,通常需要基于GIF中的每一帧图像生成一个256色调色板,然后采用该调色板依次遍历该帧图像中的每一个像素点,找到在调色板中与之最接近的颜色,将该像素原本颜色替换成调色板中的颜色,直到处理完这一帧图像然后编码成GIF中的一帧并写入文件。重复这个操作,直到所有帧都编码完成即GIF导出完成。
上述方法存在以下技术问题:1.每一帧图像都需要调用一次调色板生成算法,而且为串行,如果导出帧数比较多,效率比较低;2.使用调色板处理原图像的时候需要依次遍历每一个像素点,如果图像分辨率较高,效率比较低。
因此如何获得一种效率较高的图像处理方法为现有技术中需要解决的问题。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本公开的方案提供了一种图像处理方法及装置。
根据本公开的第一方面,本公开提供了一种图像处理方法,其中,所述方法包括:获取预设数量的待处理图像;基于所述待处理图像生成调色板;采用所述调色板处理所述待处理图像;将处理后的图像逐帧进行编码。
可选地,所述基于所述待处理图像生成调色板包括:判断是否存在空闲线程;若是,则通过所述空闲线程为所述待处理图像生成调色板。
可选地,所述通过所述空闲线程为所述待处理图像生成调色板包括:若存在多个所述空闲线程,则根据预设规则选择其中至少一个所述空闲线程为所述待处理图像生成所述调色板。
可选地,所述采用所述调色板处理所述待处理图像包括:采用所述调色板逐帧处理所述待处理图像。
可选地,所述采用所述调色板逐帧处理所述待处理图像包括:将单帧所述待处理图像按照预设区域划分规则划分为多个区域;采用所述调色板同时对至少两个所述区域进行处理。
可选地,所述图像处理方法还包括:在所述将处理后的图像逐帧进行编码的同时,判断编码获得的文件是否满足预设导出条件;若是,则导出所述文件。
根据本公开的第二方面,本公开提供了一种图像处理装置,其中,所述装置包括:获取模块,其配置为用于获取预设数量的待处理图像;调色板生成模块,其配置为用于基于所述待处理图像生成调色板;处理模块,其配置为用于采用所述调色板处理所述待处理图像;编码模块,其配置为用于将处理后的图像逐帧进行编码。
可选地,所述调色板生成模块用于采取如下方式基于所述待处理图像生成调色板:判断是否存在空闲线程;若是,则通过所述空闲线程为所述待处理图像生成调色板。
可选地,所述调色板生成模块用于采取如下方式通过所述空闲线程为所述待处理图像生成调色板:若存在多个所述空闲线程,则根据预设规则选择其中至少一个所述空闲线程为所述待处理图像生成所述调色板。
可选地,所述处理模块用于采取如下方式处理所述待处理图像:采用所述调色板逐帧处理所述待处理图像。
可选地,所述处理模块用于采取如下方式逐帧处理所述待处理图像:将单帧所述待处理图像按照预设区域划分规则划分为多个区域;采用所述调色板同时对至少两个所述区域进行处理。
可选地,所述图像处理装置还包括导出模块,其配置为用于在所述将处理后的图像逐帧进行编码的同时,判断编码获得的文件是否满足预设导出条件;若是,则导出所述文件。
根据本公开的第三方面,本公开提供了一种电子装置,其中,所述电子装置包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现上述本公开的第一方面的方法。
根据本公开的第四方面,本公开提供了一种计算机可读存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序被执行时,实现上述本公开的第一方面的方法。
本公开的图像处理方法和装置,基于多帧待处理图像生成调色板,并共用该调色板,有效提高了平均每帧待处理图像的调色板生成效率。此外,通过多线程并行生成调色板,以及并行处理待处理图像,进一步提高了图像处理效率,提高了GIF动图生成效率。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出根据本公开的一个实施例的图像处理方法的流程图;
图2是示出根据本公开的一个实施例的图像处理装置的示意性框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
下面结合附图来详细描述本公开的具体实施方式。
本公开提供了一种图像处理方法。参照图1,图1是示出根据本公开的一个实施例的图像处理方法的流程图。如图1中所示,所述方法包括以下步骤S101-S104。步骤S101:获取预设数量的待处理图像。步骤S102:基于所述待处理图像生成调色板。步骤S103:采用所述调色板处理所述待处理图像。步骤S104:将处理后的图像逐帧进行编码。
本公开的图像处理方法,基于多帧待处理图像生成调色板,并共用该调色板,有效提高了平均每帧待处理图像的调色板生成效率。
在步骤S101中,可以获取预设数量的待处理图像。
根据本公开的实施例,为了对图像进行处理,首先应获取待处理图像。该待处理图像可以是通过任何适当途径获取到的,例如可以来自于图库,由设计人员专门设计,或者由视频解码获得等等。
待处理图像的数量可根据实际需要设置或确定,例如,可以根据内存大小确定共用调色板的图像的帧数,进而确定待处理图像的数量;或者,根据预最终获得的GIF动图所需的图像帧数确定待处理图像的数量,等等。本实施例中,优选获取1-4帧待处理图像。
在步骤S102中,可以基于所述待处理图像生成调色板。
根据本公开的实施例,基于所述待处理图像生成调色板,可以是基于多帧待处理图像生成调色板,以便后续共用该调色板来处理该多帧待处理图像。该多帧待处理图像的具体数量可根据实际情况确定,例如,可以根据内存大小确定,也可以根据GIF动图所需的图像数量确定,还可以是结合前述两种影响因素进行确定。
优选地,所述基于所述待处理图像生成调色板包括:判断是否存在空闲线程;若是,则通过所述空闲线程为所述待处理图像生成调色板。
本公开的实施例充分利用CPU(Central Processing Unit)的多核性能,通过多线程并行的方式,可以同时生成多个调色板。具体地,在获取预设数量的待处理图像后,首先判断是否存在空闲线程,若是,则通过该空闲线程为该预设数量的待处理图像生成调色板;若否,则需等待上一个调色板生成任务结束后,将基于该预设数量的待处理图像生成调色板的任务加入刚刚空闲出来的线程中进行处理。
需要说明的是,基于多帧图像生成一个调色板相比于基于单帧图像生成一个调色板,计算过程占用的内存较多,且图像帧数(即共用一个调色板的帧数)越大,占用内容越多。因此,共用调色板的帧数需要根据设备的内存大小来决定。
优选地,所述通过所述空闲线程为所述待处理图像生成调色板包括:若存在多个所述空闲线程,则根据预设规则选择其中至少一个所述空闲线程为所述待处理图像生成所述调色板。
具体地,若根据内存大小,获取的预设数量的待处理图像可以共用一个调色板,则选择其中一个空闲线程为该预设数量的待处理图像生成一个调色板;若内存不足以支持预设数量的待处理图像共用一个调色板,则将该预设数量的待处理图像按照先后顺序分为两组或两组以上,分别由两个或两个以上空闲线程处理,具体分组数量可以结合内存大小及空闲线程数量进行确定。选择空闲线程的规则不限于上述两种,可根据实际情况或需要进行设置。通过多线程并行,同时生成多个调色板,从而最大限度地使用CPU资源,有效提高调色板生成效率。
需要说明的是,生成调色板的方法可以是现有技术中任何一种调色板生成方法,在此不再赘述。
在步骤S103中,可以采用所述调色板处理所述待处理图像。
根据本公开的实施例,采用调色板处理待处理图像,可以是采用步骤S102生成的一个调色板对共用该调色板的多帧待处理图像逐帧进行处理,也可以是采用该调色板对共用该调色板的多帧待处理图像并行进行处理。
调色板实际上是一个有256个表项的RGB颜色表,颜色表的每项是一个24位的RGB颜色值。使用调色板时,在内存中存储的不是24位颜色值,二是调色板的4位或8位的索引。采用调色板处理待处理图像,即将待处理图像中每个像素的颜色替换为调色板中与之最接近的颜色,其中,遍历每个像素、建立调色板索引等的方法均采用现有技术,在此不再赘述。
优选地,所述采用所述调色板处理所述待处理图像包括:采用所述调色板逐帧处理所述待处理图像。即,采用该调色板对共用该调色板的多帧待处理图像按照先后顺序逐帧进行处理,该先后顺序可以是最终预生成的GIF动图中图像的先后顺序。
优选地,所述采用所述调色板逐帧处理所述待处理图像包括:将单帧所述待处理图像按照预设区域划分规则划分为多个区域;采用所述调色板同时对至少两个所述区域进行处理。
具体地,区域划分规则可以根据实际需要设置,例如可以是根据并行处理线程的数量,将该单帧待处理图像平均划分为相应数量的区域;也可以是根据该单帧待处理图像的分辨率对其进行区域划分,使各区域的像素点数量控制在一定范围;还可以根据该单帧待处理图像的色块对其进行区域划分;等等。通过采用调色板对多个区域并行地进行遍历处理,有效降低了每帧图像的处理时间。
在步骤S104中,可以将处理后的图像逐帧进行编码。
根据本公开的实施例,将采用调色板处理后的图像逐帧编码成需要的数据格式,并写入文件。例如,为了获得GIF动图,可将采用调色板处理后的图像逐帧编码成GIF所需要的数据格式写入文件。
作为一种优选的实施例,本公开的图像处理方法还包括:在所述将处理后的图像逐帧进行编码的同时,判断编码获得的文件是否满足预设导出条件;若是,则导出所述文件。
具体地,每编码完成一帧图像,则判断编码获得的文件是否满足预设导出条件,若是,则导出该文件;若否,则继续等待,直至编码获得的文件满足预设导出条件。其中,导出条件可根据实际需要设置,例如可以是该文件所包含的图像数量,也可以是该文件的大小,还可以是该文件的效果,等等。本优选实施例可以用于生成多个GIF动图。
可以理解的是,本公开的图像处理方法可以用于连续处理图像,即前述步骤S101-S104可循环执行,以处理多帧图像,获得多个GIF动图或其他不同数据格式的文件。
本公开还提供了一种图像处理装置。该装置用于执行以上结合图1所描述的图像处理方法实施例中的步骤。
参照图2,图2是示出根据本公开的一个实施例的图像处理装置100的示意性框图。该装置100包括获取模块101、调色板生成模块102、处理模块103和编码模块104。该获取模块101配置为用于获取预设数量的待处理图像。该调色板生成模块102配置为用于基于所述待处理图像生成调色板。该处理模块103配置为用于采用所述调色板处理所述待处理图像。该编码模块104配置为用于将处理后的图像逐帧进行编码。
根据本公开的实施例,所述调色板生成模块102用于采取如下方式基于所述待处理图像生成调色板:判断是否存在空闲线程;若是,则通过所述空闲线程为所述待处理图像生成调色板。
根据本公开的实施例,所述调色板生成模块102用于采取如下方式通过所述空闲线程为所述待处理图像生成调色板:若存在多个所述空闲线程,则根据预设规则选择其中至少一个所述空闲线程为所述待处理图像生成所述调色板。
根据本公开的实施例,所述处理模块103用于采取如下方式处理所述待处理图像:采用所述调色板逐帧处理所述待处理图像。
根据本公开的实施例,所述处理模块103用于采取如下方式逐帧处理所述待处理图像:将单帧所述待处理图像按照预设区域划分规则划分为多个区域;采用所述调色板同时对至少两个所述区域进行处理。
根据本公开的实施例,所述编码模块104用于将采用调色板处理后的图像逐帧编码成需要的数据格式,并写入文件。可以理解的是,对于文件是GIF动图的情况,编码模块104可以是GIF编码器。
作为一种优选实施例,所述图像处理装置还包括导出模块,其配置为用于在所述将处理后的图像逐帧进行编码的同时,判断编码获得的文件是否满足预设导出条件;若是,则导出所述文件。
可以理解的是,关于以上参照图2描述的实施例中的图像处理装置,其中各个模块执行操作的具体方式已经在结合图1所描述的图像处理方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例还提供一种电子装置,其中,所述电子装置包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如下步骤:获取预设数量的待处理图像;基于所述待处理图像生成调色板;采用所述调色板处理所述待处理图像;将处理后的图像逐帧进行编码。
可以理解的是,所述处理器执行所述计算机程序时实现的步骤与上述方法中的各个步骤的实现方式基本一致,具体方式已经在有关图像处理方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在另一方面中,本公开提供一种计算机可读存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序被执行时,实现如下步骤:获取预设数量的待处理图像;基于所述待处理图像生成调色板;采用所述调色板处理所述待处理图像;将处理后的图像逐帧进行编码。
可以理解的是,所述处理器执行所述计算机程序时实现的步骤与上述方法中的各个步骤的实现方式基本一致,具体方式已经在有关图像处理方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”和“第二”、等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。
Claims (14)
1.一种图像处理方法,其中,所述方法包括:
获取预设数量的待处理图像;
基于所述待处理图像生成调色板;
采用所述调色板处理所述待处理图像;
将处理后的图像逐帧进行编码。
2.根据权利要求1所述的图像处理方法,其中,所述基于所述待处理图像生成调色板包括:
判断是否存在空闲线程;若是,则通过所述空闲线程为所述待处理图像生成调色板。
3.根据权利要求2所述的图像处理方法,其中,所述通过所述空闲线程为所述待处理图像生成调色板包括:
若存在多个所述空闲线程,则根据预设规则选择其中至少一个所述空闲线程为所述待处理图像生成所述调色板。
4.根据权利要求1至3中任一项所述的图像处理方法,其中,所述采用所述调色板处理所述待处理图像包括:
采用所述调色板逐帧处理所述待处理图像。
5.根据权利要求4所述的图像处理方法,其中,所述采用所述调色板逐帧处理所述待处理图像包括:
将单帧所述待处理图像按照预设区域划分规则划分为多个区域;
采用所述调色板同时对至少两个所述区域进行处理。
6.根据权利要求1至5中任一项所述的图像处理方法,其中,所述方法还包括:
在所述将处理后的图像逐帧进行编码的同时,判断编码获得的文件是否满足预设导出条件;若是,则导出所述文件。
7.一种图像处理装置,其中,所述装置包括:
获取模块,其配置为用于获取预设数量的待处理图像;
调色板生成模块,其配置为用于基于所述待处理图像生成调色板;
处理模块,其配置为用于采用所述调色板处理所述待处理图像;
编码模块,其配置为用于将处理后的图像逐帧进行编码。
8.根据权利要求7所述的图像处理装置,其中,所述调色板生成模块用于采取如下方式基于所述待处理图像生成调色板:
判断是否存在空闲线程;若是,则通过所述空闲线程为所述待处理图像生成调色板。
9.根据权利要求8所述的图像处理装置,其中,所述调色板生成模块用于采取如下方式通过所述空闲线程为所述待处理图像生成调色板:
若存在多个所述空闲线程,则根据预设规则选择其中至少一个所述空闲线程为所述待处理图像生成所述调色板。
10.根据权利要求7至9中任一项所述的图像处理装置,其中,所述处理模块用于采取如下方式处理所述待处理图像:
采用所述调色板逐帧处理所述待处理图像。
11.根据权利要求10所述的图像处理装置,其中,所述处理模块用于采取如下方式逐帧处理所述待处理图像:
将单帧所述待处理图像按照预设区域划分规则划分为多个区域;
采用所述调色板同时对至少两个所述区域进行处理。
12.根据权利要求7至11中任一项所述的图像处理装置,其中,所述装置还包括导出模块,其配置为用于在所述将处理后的图像逐帧进行编码的同时,判断编码获得的文件是否满足预设导出条件;若是,则导出所述文件。
13.一种电子装置,其中,所述电子装置包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至6中任一项所述的方法。
14.一种计算机可读存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序被执行时,实现如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111204017.5A CN114037785A (zh) | 2021-10-15 | 2021-10-15 | 图像处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111204017.5A CN114037785A (zh) | 2021-10-15 | 2021-10-15 | 图像处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114037785A true CN114037785A (zh) | 2022-02-11 |
Family
ID=80135050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111204017.5A Pending CN114037785A (zh) | 2021-10-15 | 2021-10-15 | 图像处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114037785A (zh) |
-
2021
- 2021-10-15 CN CN202111204017.5A patent/CN114037785A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010527194A (ja) | 動的運動ベクトル分析方法 | |
CN110544291A (zh) | 一种图像渲染方法及装置 | |
CN109272526B (zh) | 图像处理方法、***及电子设备 | |
CN112929672B (zh) | 一种视频压缩方法、装置、设备及计算机可读存储介质 | |
CN105828081A (zh) | 编码方法及编码装置 | |
CN113506305B (zh) | 三维点云数据的图像增强方法、语义分割方法及装置 | |
CN112437307B (zh) | 一种视频编码方法、装置、电子设备及介质 | |
CN114037785A (zh) | 图像处理方法及装置 | |
CN111629211B (zh) | 一种对视频进行转码的方法和装置 | |
US20050219252A1 (en) | Two-dimensional buffer, texture and frame buffer decompression | |
US20220343544A1 (en) | Dividing an astc texture to a set of sub-images | |
US20220044370A1 (en) | Image processing methods | |
CN116843736A (zh) | 场景渲染方法及装置、计算设备、存储介质和程序产品 | |
CN104021579A (zh) | 图片变色方法及装置 | |
CN114416089A (zh) | 页面显示方法、装置、移动终端以及存储介质 | |
CN110119380B (zh) | 一种可缩放矢量图文件的存储、读取方法及装置 | |
CN115190305A (zh) | 在视频编码装置中进行图像处理的方法、装置、介质及*** | |
CN113068050A (zh) | 树形编码块的样点自适应补偿模式确定方法、装置 | |
CN108200433A (zh) | 一种图像压缩和解压缩方法 | |
CN111524215B (zh) | 一种cg画面渲染层的拆分方法 | |
US20230104384A1 (en) | Luma mapping with chroma scaling for gradual decoding refresh | |
CN112053277B (zh) | 一种图像换肤的方法、装置、设备及存储介质 | |
CN117522753A (zh) | 图像处理方法、装置、设备及计算机可读存储介质 | |
CN111986089A (zh) | 特征值整数化的图像存储与比对方法、装置、设备和介质 | |
CN116932118B (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 |