CN102881026A - 一种具有透明度信息的图像的调色板装置与生成方法 - Google Patents
一种具有透明度信息的图像的调色板装置与生成方法 Download PDFInfo
- Publication number
- CN102881026A CN102881026A CN201210290041XA CN201210290041A CN102881026A CN 102881026 A CN102881026 A CN 102881026A CN 201210290041X A CN201210290041X A CN 201210290041XA CN 201210290041 A CN201210290041 A CN 201210290041A CN 102881026 A CN102881026 A CN 102881026A
- Authority
- CN
- China
- Prior art keywords
- image
- color
- value
- pixel
- palette
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种具有透明度信息的图像的调色板装置与生成方法,定义指定的调色板中独立条目的数目为K,对透明度信息的图像的RGB三基色和透明度值进行量化,生成K个带α透明度值的RGB调色板条目,然后求取图像中各像素索引值,最后保存成PNG8图片。本发明实现了RGB三基色和α透明度的量化;在量化过程中考虑了图片中α透明度对RGB三基色显示效果的影响,减少了α透明度值较小时的量化级数,在主观上更合理的分配了调色板条目;当调色板长度较小时,对根据像素频度得到的调色板初值,再进行LBG矢量量化,避免过多颜色由于出现频率小而丢失的现象,有效地减小量化后图像的失真;当调色板长度较大时,在图像量化过程中使用弗洛伊德抖动方法,有效改善图片的主观质量。
Description
技术领域
本发明涉及图像处理领域,特别涉及一种具有透明度信息的图像的调色板装置与生成方法。
背景技术
一幅常用的RGB888格式的彩色图像最多可包含224种颜色。随着计算机图形、图像技术的不断发展,在RGB三色基础上又增加了图像的透明/半透明特性,使图像显示更灵活。例如:20世纪90年代中期开发的PNG图像格式,其PNG32图像采用RGBα8888格式,即R、G、B、α各通道分别使用8bit量化。PNG存储的彩色图像的深度可多达48位,还可以存储多到16位的α通道数据。换句话说,带α通道PNG图像最多可包含的颜色数远远大于224。
由于物理能力限制和经济成本等的原因,一方面,图像显示设备只能显示有限数目的颜色。所以,可在最小的视觉失真的前提下,减少将要显示的图像中的颜色数,即对图像进行色彩量化。另一方面,后续的图像处理、计算机运算效率应用和图像编码和传输方面,对图像的存储量也有要求,也需在最小的视觉失真的前提下,对图像进行色彩量化。例如,对带透明度PNG32的图像,直接存储每个像素的4个通道数据使图像对存储量要求较高。若使用RGB调色板和透明度(tRNS)字段来表示带α通道的PNG图像中的颜色,将其存储为PNG8索引图像,则每个像素点的存储量减少为原来的1/4,明显减少了图片存储量。
现有技术中几种比较常用的典型色彩量化算法如下:
(1)1994年,A. Kruger在文献“Median-cut
color quantization”中[1],提出了中位切割(MCQ)算法。该算法试图选择一个色彩均衡的集合来表示图像, 其基本思想是:将图像的彩色空间用 RGB模型来表示, 彩色立方体的三个维度分别对应RGB三基色中一个颜色分量, 每一根轴的取值范围为为0~255,0对应于黑,255对应于亮度最大。MCQ(中位切割颜色量化)算法按照像素数目平均分布或量化误差最小等准则把RGB色彩空间立方体分成若干个长方体,每个长方体的中心就是一个调色板颜色的最佳位置。这种算法考虑到具体图像的色彩分布, 所得到的图像显示层次感丰富, 所以较为常用。
(2)1996年,D. Clark在文献“Color
quantization using octree”中[2],提出了八叉树(OctreeCut)算法。该算法是利用八叉树数据结构来表示图像色彩空间的一种方法,颜色的RGB分量的二进制编码确定了颜色在八叉树或颜色立方体中的位置,量化过程是简化八叉树,通过将子节点颜色平均值赋予父结点的方式实现, 然后将子结点删除。八叉树量化算法对内存要求较低,且生产图像质量较好。
现有技术缺点:
(1)MCQ算法内存开销大,需要足够的内存作为源图像中每种颜色的计数器。另外,该方法重建的图像局部细节较为模糊,效果不够理想。
(2)八叉树算法中,简化八叉树的过程中,颜色的合并是以像素的频度为准,所以仍会出现某些颜色由于出现频率小而丢失的现象,导致图像显示失真。
(3)上述算法只支持RGB或其他无透明度颜色的量化。虽然中位分割算法作者提出可将算法扩展到更多通道,但是α通道值越小时,对图像颜色的视觉敏感度也相应降低,若只将α通道作为独立的通道加入中位分割量化,则计算量和系统时延都等比增大,使处理成本上升。
发明内容
发明目的:为解决上述现有技术中的技术问题,提供一种具有透明度信息的图像的调色板装置与生成方法。
采用的技术方案:提供了一种具有透明度信息的图像的调色板装置,包括:图像输入单元、图像颜色取值空间分割单元、图像调色板生成单元、图像颜色量化单元、图像输出单元;
所述图像输入单元用于输入一张PNG图片,并判断该图像是否包含透明度信息,只通过含有透明度信息的图像,具体步骤如下:提取PNG图像的IHDR字段信息,包括图片宽、图片高、图片色深、颜色类型,定义颜色类型为ColorType;判断该图像是否包含透明度信息:若ColorType=6,则该图像为带α通道的真彩色图片,满足要求;若ColorType=3,则该图像为真彩色索引图像,再在文件数据中搜索tRNS字段,若文件包含tRNS字段,则该图像包含透明度信息,满足要求;若图像不满足上述两种颜色类型中任何一种情况下,则该图像不包含透明度信息,不满足要求;
所述图像颜色取值空间分割单元用于统计R、G、B、α分量的像素分布直方图,并根据直方图信息分割R、G、B、α颜色取值空间,具体步骤如下:解析输入的PNG图片,得到每个像素点的透明度α和RGB三基色信息,即根据步骤100得到的信息,提取PNG图像IDAT字段信息,即图像颜色信息:若ColorType=6,直接从IDAT中每个像素数据中提取出R、G、B、α分量值;若ColorType=3,则从IDAT中每个像素点数据中提取颜色索引值,再根据颜色索引值到PLET字段中提取该像素的R、G、B分量值,最后在该像素的tRNS字段中提取α分量值;遍历图片,根据步骤210的方法,统计图像中各个颜色分量的像素分布直方图,即R、G、B、α分量不同取值对应的像素数目,分别存储在4×256个计数器中;根据步骤220的统计结果,将各颜色分量分割为8个量化区间,并取区间内所有像素的颜色平均值作为各分量的区间量化值;由于R、G、B、α的取值范围均为[0, 255],以下以
指代各颜色分量来表述它们的区间分割及颜色量化方法;定义k∈[0, 7]且k为整数,对于x∈[0, 255],将其量化为8个值,则定义第k个量化区间的量化代价函数为:
本步骤的核心是搜索最佳量化区间,搜索过程如下:设x∊[0, 255]且num(x)≠0时,对应的最小x值为xlow ,最大值为xup ,将区间[xlow ,xup ]等分8份,作为x最佳量化区间的初值,即[xk_down , xk_up ]初值为[xlow +k(xup -
xlow )/8,xlow +(k+1)(xup -
xlow )/8];分别计算几个代价函数:区间[xk_down , xk_up ]代价函数、区间[xk +1_down , xk +1_up ]的代价函数;区间[xk_down , xk_up -1]代价函数、区间[xk +1_down -1, xk +1_up ]的代价函数;区间[xk_down , xk_up +1]代价函数、区间[xk +1_down +1, xk +1_up ]的代价函数;比较步骤232得到的代价函数的几项和值:+、+和+
,将其中和值最小的取值点作新的区间划分; 重复步骤232和步骤233,调整各个区间的划分,直到区间的划分不再改变为止,即+
>=+且+>=+为止;分别取k=0, 1, …, 7,进行步骤步骤232~步骤234,得到分量的8个量化区间;计算区间映射表map[256],即对于x∊[xk_down , xk_up ],map()=k;根据各颜色分量的量化区间分布,将四维的图像颜色取值空间被分割为4096个子空间;
所述图像调色板生成单元用于根据图像像素在图像颜色取值空间分布情况,计算并输出K个带透明度的图像调色板独立条目,具体步骤如下:遍历图片,根据步骤100得到的信息,提取图像各像素颜色信息,根据每个像素的R、G、B、α值,按照map映射表的规则,映射到4096个子空间中,统计得到每个子空间中像素数目,得到像素的颜色子空间分布直方图;定义指定的调色板长度为K,则将颜色子空间分布直方图按照其像素数目由大到小排列,取排在前面的K个子空间中像素颜色均值为调色板初值;若K≥256,则取步骤2得到的调色板初值为调色板终值;否则,以步骤200中得到的调色板初值为初始质心,以各子空间的像素颜色均值为量化点进行LBG矢量量化[3],得到的最终的调色板值;
所述图像颜色量化单元用于量化图像各像素颜色,输出图像各像素索引值,具体步骤如下:遍历图片,计算像素点颜色与每个调色板颜色的空间距离;若调色板小于256,直接取距离最小的调色板条目序号作为像素索引值,否则,在直接取距离最小的调色板条目作为像素颜色的基础上,使用弗洛伊德-斯坦伯格抖动方法量化图像颜色;
所述图像输出单元用于根据图像调色板生成单元、图像颜色量化单元输出的数据,生成并输出带透明度的PNG8索引图,即将调色板的RGB分量写入PNG8图像PLET字段,再将调色板的α分量相对应的写入PNG8图像tRNS字段,将像素索引值写入PNG8图像IDAT字段,再添加PNG8图像文件的文件头、文件尾,保存PNG8真彩色索引图,输出得到的图像。
一种具有透明度信息的图像的调色板生成方法,包括以下步骤:
步骤100:图像输入单元用于输入一张含透明度的PNG图片,具体步骤如下:
步骤110:提取PNG图像的IHDR字段信息,包括图片宽、图片高、图片色深、颜色类型,定义颜色类型为ColorType;
步骤120:判断该图像是否包含透明度信息:
步骤121:若ColorType=6,则该图像为带α通道的真彩色图片,满足要求;
步骤122:若ColorType=3,则该图像为真彩色索引图像,再在文件数据中搜索tRNS字段,若文件包含tRNS字段,则该图像包含透明度信息,满足要求;
步骤123:若图像不满足上述两种颜色类型中任何一种情况下,则该图像不包含透明度信息,不满足要求;
步骤200:图像颜色取值空间分割单元,用于统计R、G、B、α分量的像素分布直方图,并根据直方图信息分割R、G、B、α颜色取值空间,具体步骤如下:
步骤210:解析输入的PNG图片,得到每个像素点的透明度α和RGB三基色信息,即根据步骤100得到的信息,提取PNG图像IDAT字段信息,即图像颜色信息:
步骤211:若ColorType=6,直接从IDAT中每个像素数据中提取出R、G、B、α分量值;
步骤212:若ColorType=3,则从IDAT中每个像素点数据中提取颜色索引值,再根据颜色索引值到PLET字段中提取该像素的R、G、B分量值,最后在该像素的tRNS字段中提取α分量值;
步骤220:遍历图片,根据步骤210的方法,统计图像中各个颜色分量的像素分布直方图,即R、G、B、α分量不同取值对应的像素数目,分别存储在4*
256个计数器中;
步骤230:根据步骤220的统计结果,将各颜色分量分割为8个量化区间,并取区间内所有像素的颜色平均值作为各分量的区间量化值;
本步骤的核心是搜索最佳量化区间,搜索过程如下:
步骤231:设x∊[0, 255]且num(x)≠0时,对应的最小x值为xlow ,最大值为xup ,将区间[xlow ,xup ]等分8份,作为x最佳量化区间的初值,即[xk_down , xk_up ]初值为[xlow +k(xup -
xlow )/8,xlow +(k+1)(xup -
xlow )/8];
步骤232:分别计算几个代价函数:区间[xk_down , xk_up ]代价函数、区间[xk +1_down , xk +1_up ]的代价函数;区间[xk_down , xk_up -1]代价函数、区间[xk +1_down -1, xk +1_up ]的代价函数;区间[xk_down , xk_up +1]代价函数、区间[xk +1_down +1, xk +1_up ]的代价函数;
步骤240:计算区间映射表map[256],即对于x∊[xk_down , xk_up ],map()=k;
步骤250:根据各颜色分量的量化区间分布,将四维的图像颜色取值空间被分割为4096个子空间;
步骤300:调色板生成单元用于根据图像像素在图像颜色取值空间分布情况,计算并输出带透明度的图像调色板;具体步骤如下:
步骤310:遍历图片,根据步骤100得到的信息,提取图像各像素颜色信息,根据每个像素的R、G、B、α值,按照map映射表的规则,映射到4096个子空间中,统计得到每个子空间中像素数目,得到像素的颜色子空间分布直方图;
步骤320:定义指定的调色板长度为K,则将颜色子空间分布直方图按照其像素数目由大到小排列,取排在前面的K个子空间中像素颜色均值为调色板初值;
步骤330:若K≥256,则取步骤2得到的调色板初值为调色板终值;否则,以步骤200中得到的调色板初值为初始质心,以各子空间的像素颜色均值为量化点进行LBG矢量量化[3],得到的最终的调色板值;
步骤400:图像颜色量化单元用于量化图像各像素颜色,输出图像各像素索引值;具体步骤如下:
步骤410:遍历图片,计算像素点颜色与每个调色板颜色的空间距离;
步骤420:若调色板小于256,直接取距离最小的调色板条目序号作为像素索引值,否则,在直接取距离最小的调色板条目作为像素颜色的基础上,使用弗洛伊德-斯坦伯格抖动方法量化图像颜色;
步骤500:图像输出单元用于根据步骤300、步骤400输出的数据,生成并输出带透明度的PNG8索引图,即将调色板的RGB分量写入PNG8图像PLET字段,再将调色板的α分量相对应的写入PNG8图像tRNS字段,将像素索引值写入PNG8图像IDAT字段,再添加PNG8图像文件的文件头、文件尾,保存PNG8真彩色索引图,输出得到的图像。
有益效果:本发明考虑了具有透明度信息的PNG图像中α通道值,即透明度分量,对RGB三基色显示效果的影响,减少了α通道值较小时的量化级数,在主观上更合理的分配了调色板条目;其次,算法过程不需要记录每种颜色,所需内存较中位分割算法要小;另外,当K值较小时,对根据像素频度得到的调色板初值,再进行LBG矢量量化,避免过多颜色由于出现频率小而丢失的现象,有效地减小图像显示失真;最后,在K值较大时,在图像量化过程中使用弗洛伊德抖动方法,有效改善图片的主观质量。
附图说明
图1为具有透明的原始图片和它的两种量化结果。
图2为本发明一种具有透明度信息的图像的调色板生成方法流程图。
图3为本发明一种具有透明度信息的图像的调色板装置的结构图。
具体实施方式
本发明一种具有透明度信息的图像的调色板装置,包括:图像输入单元、图像颜色取值空间分割单元、图像调色板生成单元、图像颜色量化单元、图像输出单元;
所述图像输入单元用于输入一张PNG图片,并判断该图像是否包含透明度信息,只通过含有透明度信息的图像,具体步骤如下:提取PNG图像的IHDR字段信息,包括图片宽、图片高、图片色深、颜色类型,定义颜色类型为ColorType;判断该图像是否包含透明度信息:若ColorType=6,则该图像为带α通道的真彩色图片,满足要求;若ColorType=3,则该图像为真彩色索引图像,再在文件数据中搜索tRNS字段,若文件包含tRNS字段,则该图像包含透明度信息,满足要求;若图像不满足上述两种颜色类型中任何一种情况下,则该图像不包含透明度信息,不满足要求;
所述图像颜色取值空间分割单元用于统计R、G、B、α分量的像素分布直方图,并根据直方图信息分割R、G、B、α颜色取值空间,具体步骤如下:解析输入的PNG图片,得到每个像素点的透明度α和RGB三基色信息,即根据步骤100得到的信息,提取PNG图像IDAT字段信息,即图像颜色信息:若ColorType=6,直接从IDAT中每个像素数据中提取出R、G、B、α分量值;若ColorType=3,则从IDAT中每个像素点数据中提取颜色索引值,再根据颜色索引值到PLET字段中提取该像素的R、G、B分量值,最后在该像素的tRNS字段中提取α分量值;遍历图片,根据步骤210的方法,统计图像中各个颜色分量的像素分布直方图,即R、G、B、α分量不同取值对应的像素数目,分别存储在4×256个计数器中;根据步骤220的统计结果,将各颜色分量分割为8个量化区间,并取区间内所有像素的颜色平均值作为各分量的区间量化值;由于R、G、B、α的取值范围均为[0, 255],以下以指代各颜色分量来表述它们的区间分割及颜色量化方法;定义k∈[0, 7]且k为整数,对于x∈[0, 255],将其量化为8个值,则定义第k个量化区间的量化代价函数为:
本步骤的核心是搜索最佳量化区间,搜索过程如下:设x∊[0, 255]且num(x)≠0时,对应的最小x值为xlow ,最大值为xup ,将区间[xlow ,xup ]等分8份,作为x最佳量化区间的初值,即[xk_down , xk_up ]初值为[xlow +k(xup -
xlow )/8,xlow +(k+1)(xup -
xlow )/8];分别计算几个代价函数:区间[xk_down , xk_up ]代价函数、区间[xk +1_down , xk +1_up ]的代价函数;区间[xk_down , xk_up -1]代价函数、区间[xk +1_down -1, xk +1_up ]的代价函数;区间[xk_down , xk_up +1]代价函数、区间[xk +1_down +1, xk +1_up ]的代价函数;比较步骤232得到的代价函数的几项和值:+、+和+
,将其中和值最小的取值点作新的区间划分; 重复步骤232和步骤233,调整各个区间的划分,直到区间的划分不再改变为止,即+
>=+且+>=+为止;分别取k=0, 1, …, 7,进行步骤步骤232~步骤234,得到分量的8个量化区间;计算区间映射表map[256],即对于x∊[xk_down , xk_up ],map()=k;根据各颜色分量的量化区间分布,将四维的图像颜色取值空间被分割为4096个子空间;
所述图像调色板生成单元用于根据图像像素在图像颜色取值空间分布情况,计算并输出K个带透明度的图像调色板独立条目,具体步骤如下:遍历图片,根据步骤100得到的信息,提取图像各像素颜色信息,根据每个像素的R、G、B、α值,按照map映射表的规则,映射到4096个子空间中,统计得到每个子空间中像素数目,得到像素的颜色子空间分布直方图;定义指定的调色板长度为K,则将颜色子空间分布直方图按照其像素数目由大到小排列,取排在前面的K个子空间中像素颜色均值为调色板初值;若K≥256,则取步骤2得到的调色板初值为调色板终值;否则,以步骤200中得到的调色板初值为初始质心,以各子空间的像素颜色均值为量化点进行LBG矢量量化[3],得到的最终的调色板值;
所述图像颜色量化单元用于量化图像各像素颜色,输出图像各像素索引值,具体步骤如下:遍历图片,计算像素点颜色与每个调色板颜色的空间距离;若调色板小于256,直接取距离最小的调色板条目序号作为像素索引值,否则,在直接取距离最小的调色板条目作为像素颜色的基础上,使用弗洛伊德-斯坦伯格抖动方法量化图像颜色;
所述图像输出单元用于根据图像调色板生成单元、图像颜色量化单元输出的数据,生成并输出带透明度的PNG8索引图,即将调色板的RGB分量写入PNG8图像PLET字段,再将调色板的α分量相对应的写入PNG8图像tRNS字段,将像素索引值写入PNG8图像IDAT字段,再添加PNG8图像文件的文件头、文件尾,保存PNG8真彩色索引图,输出得到的图像。
一种具有透明度信息的图像的调色板生成方法,包括以下步骤:
步骤100:图像输入单元用于输入一张含透明度的PNG图片,具体步骤如下:
步骤110:提取PNG图像的IHDR字段信息,包括图片宽、图片高、图片色深、颜色类型,定义颜色类型为ColorType;
步骤120:判断该图像是否包含透明度信息:
步骤121:若ColorType=6,则该图像为带α通道的真彩色图片,满足要求;
步骤122:若ColorType=3,则该图像为真彩色索引图像,再在文件数据中搜索tRNS字段,若文件包含tRNS字段,则该图像包含透明度信息,满足要求;
步骤123:若图像不满足上述两种颜色类型中任何一种情况下,则该图像不包含透明度信息,不满足要求;
步骤200:图像颜色取值空间分割单元,用于统计R、G、B、α分量的像素分布直方图,并根据直方图信息分割R、G、B、α颜色取值空间,具体步骤如下:
步骤210:解析输入的PNG图片,得到每个像素点的透明度α和RGB三基色信息,即根据步骤100得到的信息,提取PNG图像IDAT字段信息,即图像颜色信息:
步骤211:若ColorType=6,直接从IDAT中每个像素数据中提取出R、G、B、α分量值;
步骤212:若ColorType=3,则从IDAT中每个像素点数据中提取颜色索引值,再根据颜色索引值到PLET字段中提取该像素的R、G、B分量值,最后在该像素的tRNS字段中提取α分量值;
步骤220:遍历图片,根据步骤210的方法,统计图像中各个颜色分量的像素分布直方图,即R、G、B、α分量不同取值对应的像素数目,分别存储在4*
256个计数器中;
步骤230:根据步骤220的统计结果,将各颜色分量分割为8个量化区间,并取区间内所有像素的颜色平均值作为各分量的区间量化值;
本步骤的核心是搜索最佳量化区间,搜索过程如下:
步骤231:设x∊[0, 255]且num(x)≠0时,对应的最小x值为xlow ,最大值为xup ,将区间[xlow ,xup ]等分8份,作为x最佳量化区间的初值,即[xk_down , xk_up ]初值为[xlow +k(xup -
xlow )/8,xlow +(k+1)(xup -
xlow )/8];
步骤232:分别计算几个代价函数:区间[xk_down , xk_up ]代价函数、区间[xk +1_down , xk +1_up ]的代价函数;区间[xk_down , xk_up -1]代价函数、区间[xk +1_down -1, xk +1_up ]的代价函数;区间[xk_down , xk_up +1]代价函数、区间[xk +1_down +1, xk +1_up ]的代价函数;
步骤250:根据各颜色分量的量化区间分布,将四维的图像颜色取值空间被分割为4096个子空间;
步骤300:调色板生成单元用于根据图像像素在图像颜色取值空间分布情况,计算并输出带透明度的图像调色板;具体步骤如下:
步骤310:遍历图片,根据步骤100得到的信息,提取图像各像素颜色信息,根据每个像素的R、G、B、α值,按照map映射表的规则,映射到4096个子空间中,统计得到每个子空间中像素数目,得到像素的颜色子空间分布直方图;
步骤320:定义指定的调色板长度为K,则将颜色子空间分布直方图按照其像素数目由大到小排列,取排在前面的K个子空间中像素颜色均值为调色板初值;
步骤330:若K≥256,则取步骤2得到的调色板初值为调色板终值;否则,以步骤200中得到的调色板初值为初始质心,以各子空间的像素颜色均值为量化点进行LBG矢量量化[3],得到的最终的调色板值;
步骤400:图像颜色量化单元用于量化图像各像素颜色,输出图像各像素索引值;具体步骤如下:
步骤410:遍历图片,计算像素点颜色与每个调色板颜色的空间距离;
步骤420:若调色板小于256,直接取距离最小的调色板条目序号作为像素索引值,否则,在直接取距离最小的调色板条目作为像素颜色的基础上,使用弗洛伊德-斯坦伯格抖动方法量化图像颜色;
步骤500:图像输出单元用于根据步骤300、步骤400输出的数据,生成并输出带透明度的PNG8索引图,即将调色板的RGB分量写入PNG8图像PLET字段,再将调色板的α分量相对应的写入PNG8图像tRNS字段,将像素索引值写入PNG8图像IDAT字段,再添加PNG8图像文件的文件头、文件尾,保存PNG8真彩色索引图,输出得到的图像。
下面结合附图和实施例对本发明进行详细说明。
参照图1,在本实施例中,输入具有透明度信息的PNG图像,从输入图像的数据块字段中提取每个像素的R、G、B、α颜色分量值;遍历图像,得到各颜色分量的像素分布直方图,按照量化代价最小准则,将各颜色分量取值区间分别分割为8个量化区间,量化过程中将α通道值转换为透明度值加权到量化代价计算中,再根据各颜色分量的量化区间,将图像的RGBα颜色取值空间分割为4096个子空间;遍历图像,得到图像RGBα颜色取值空间的像素分布直方图,根据各子空间像素分布情况和K值,取包含像素数目最多的K个颜色子空间颜色均值作为调色板初值,对于K<256的情况,对调色板进行LBG矢量量化,得到的最终的调色板值;量化图像各像素颜色,对每个像素点,取与其距离最小的调色板条目序号作为像素索引值,特别的,当K>16时,在量化过程中使用弗洛伊德-斯坦伯格抖动(Floyd-Steinberg
dithering[4])。将调色板RGB三基色分量和α分量分别写入PNG8图像的PLET字段和tRNS字段,各像素索引值写入PNG8图像的IDAT字段,保存得到PNG8索引图像。
参照图2,展示的是本发明带来的主观性能标准(视觉效果),当调色板长度K=256时,使用弗洛伊德-斯坦伯格抖动(Dithering)和不使用弗洛伊德-斯坦伯格抖动(No Dithering)的量化结果,图2的每一行图像从左至右依次为具有透明的原始图像、由该图像经过不使用弗洛伊德-斯坦伯格抖动量化得到的结果和由该图像经过弗洛伊德抖动量化得到的结果。从以上图片可以看出,不使用弗洛伊德-斯坦伯格抖动时,在图像缓慢变化的平滑区域会出现一些块状颜色、条状颜色等问题,这些问题在量化级数越高时越严重,使用弗洛伊德-斯坦伯格抖动后可以克服了这些问题,使图像显示更平滑,视觉效果更好。
本发明的客观性能标准:因为具有透明度信息的图像的透明显示原理就是原图像的各像素点的颜色和背景图像相应像素点的颜色加权得到显示图像。也就是说,实际上,具有透明度信息图像的显示结果是图像本身与背景图像按一定规则相互叠加的结果。若以A代表要被显示的具有透明度信息的图像,B代表屏幕图像,图像A透明通道值为α且α∊[0,
255]时,令图像的显示结果为C,则α'=α/255,C=α'A+(1-α')B,进一步,若屏幕图像B为黑色背景,即B各颜色分量值为0,则。
为了客观考量本发明颜色和透明度量化的性能,可将原PNG图片和量化后的PNG图片都在黑色背景上的RG B情况下的显示结果来进行比较。具体使用:图像结构相似度(SSIM)和峰值信噪比(PSNR)来反映图像质量的好坏。其中,SSIM为一种衡量两幅图像相似度的新指标,其值越大越好(最大值为1),经常用到图像处理中。
参照表1,为若干张具有透明度图像量化结果各项性能,量化级,即调色板独立条目数K,为256。其中,colors为原图像颜色数(考虑透明度不同的情况);size为图像尺寸;Dithering为弗洛伊德抖动,yes为使用弗洛伊德-斯坦伯格抖动,no为不使用弗洛伊德-斯坦伯格抖动; T为图像处理时间,包含读写文件时间;M为文件大小。
表1-算法性能
从表1可以看出,SSIM指标和PSNR指标都很好。由于使用弗洛伊德抖动后相邻像素索引趋向于交替变化,导致图像数据块数据压缩比下降,所以文件大小比不使用弗洛伊德抖动的结果大;且使用弗洛伊德抖动量化后得到的图像客观性能指标比不使用弗洛伊德抖动量化后得到的图像差。但是,考虑到使用弗洛伊德抖动量化后得到的图像主观视觉更好,所以本发明中在调色板数目较多情况下(K>128),量化时还是使用了弗洛伊德抖动。
以上内容是结合优选技术方案对本发明所做的进一步详细说明,不能认定发明的具体实施仅限于这些说明。对本发明所属技术领域的普通技术人员来说,在不脱离本发明的构思的前提下,还可以做出简单的推演及替换,都应当视为本发明的保护范围。
Claims (2)
1.一种具有透明度信息的图像的调色板装置,其特征在于,所述一种具有透明度信息的图像的调色板装置包括:图像输入单元、图像颜色取值空间分割单元、图像调色板生成单元、图像颜色量化单元、图像输出单元;
所述图像输入单元用于输入一张PNG图片,并判断该图像是否包含透明度信息,只通过含有透明度信息的图像,具体步骤如下:提取PNG图像的IHDR字段信息,包括图片宽、图片高、图片色深、颜色类型,定义颜色类型为ColorType;判断该图像是否包含透明度信息:若ColorType=6,则该图像为带α通道的真彩色图片,满足要求;若ColorType=3,则该图像为真彩色索引图像,再在文件数据中搜索tRNS字段,若文件包含tRNS字段,则该图像包含透明度信息,满足要求;若图像不满足上述两种颜色类型中任何一种情况下,则该图像不包含透明度信息,不满足要求;
所述图像颜色取值空间分割单元用于统计R、G、B、α分量的像素分布直方图,并根据直方图信息分割R、G、B、α颜色取值空间,具体步骤如下:解析输入的PNG图片,得到每个像素点的透明度α和RGB三基色信息,即根据步骤100得到的信息,提取PNG图像IDAT字段信息,即图像颜色信息:若ColorType=6,直接从IDAT中每个像素数据中提取出R、G、B、α分量值;若ColorType=3,则从IDAT中每个像素点数据中提取颜色索引值,再根据颜色索引值到PLET字段中提取该像素的R、G、B分量值,最后在该像素的tRNS字段中提取α分量值;遍历图片,根据步骤210的方法,统计图像中各个颜色分量的像素分布直方图,即R、G、B、α分量不同取值对应的像素数目,分别存储在4×256个计数器中;根据步骤220的统计结果,将各颜色分量分割为8个量化区间,并取区间内所有像素的颜色平均值作为各分量的区间量化值;由于R、G、B、α的取值范围均为[0,
255],以下以
指代各颜色分量来表述它们的区间分割及颜色量化方法;定义k∈[0, 7]且k为整数,对于x∈[0, 255],将其量化为8个值,则定义第k个量化区间的量化代价函数为:
本步骤的核心是搜索最佳量化区间,搜索过程如下:设x∊[0, 255]且num(x)≠0时,对应的最小x值为xlow ,最大值为xup ,将区间[xlow ,xup ]等分8份,作为x最佳量化区间的初值,即[xk_down , xk_up ]初值为[xlow +k(xup -
xlow )/8,xlow +(k+1)(xup -
xlow )/8];分别计算几个代价函数:区间[xk_down ,
xk_up ]代价函数、区间[xk +1_down , xk +1_up ]的代价函数;区间[xk_down , xk_up -1]代价函数、区间[xk +1_down -1, xk +1_up ]的代价函数;区间[xk_down , xk_up +1]代价函数、区间[xk +1_down +1, xk +1_up ]的代价函数;比较步骤232得到的代价函数的几项和值:+、+和+
,将其中和值最小的取值点作新的区间划分; 重复步骤232和步骤233,调整各个区间的划分,直到区间的划分不再改变为止,即+
>=+且+>=+为止;分别取k=0, 1, …, 7,进行步骤步骤232~步骤234,得到分量的8个量化区间;计算区间映射表map[256],即对于x∊[xk_down , xk_up ],map()=k;根据各颜色分量的量化区间分布,将四维的图像颜色取值空间被分割为4096个子空间;
所述图像调色板生成单元用于根据图像像素在图像颜色取值空间分布情况,计算并输出K个带透明度的图像调色板独立条目,具体步骤如下:遍历图片,根据步骤100得到的信息,提取图像各像素颜色信息,根据每个像素的R、G、B、α值,按照map映射表的规则,映射到4096个子空间中,统计得到每个子空间中像素数目,得到像素的颜色子空间分布直方图;定义指定的调色板长度为K,则将颜色子空间分布直方图按照其像素数目由大到小排列,取排在前面的K个子空间中像素颜色均值为调色板初值;若K≥256,则取步骤2得到的调色板初值为调色板终值;否则,以步骤200中得到的调色板初值为初始质心,以各子空间的像素颜色均值为量化点进行LBG矢量量化[3],得到的最终的调色板值;
所述图像颜色量化单元用于量化图像各像素颜色,输出图像各像素索引值,具体步骤如下:遍历图片,计算像素点颜色与每个调色板颜色的空间距离;若调色板小于256,直接取距离最小的调色板条目序号作为像素索引值,否则,在直接取距离最小的调色板条目作为像素颜色的基础上,使用弗洛伊德-斯坦伯格抖动方法量化图像颜色;
所述图像输出单元用于根据图像调色板生成单元、图像颜色量化单元输出的数据,生成并输出带透明度的PNG8索引图,即将调色板的RGB分量写入PNG8图像PLET字段,再将调色板的α分量相对应的写入PNG8图像tRNS字段,将像素索引值写入PNG8图像IDAT字段,再添加PNG8图像文件的文件头、文件尾,保存PNG8真彩色索引图,输出得到的图像。
2.根据权利要求1所述的一种具有透明度信息的图像的调色板生成方法,包括以下步骤:
步骤100:图像输入单元用于输入一张含透明度的PNG图片,具体步骤如下:
步骤110:提取PNG图像的IHDR字段信息,包括图片宽、图片高、图片色深、颜色类型,定义颜色类型为ColorType;
步骤120:判断该图像是否包含透明度信息:
步骤121:若ColorType=6,则该图像为带α通道的真彩色图片,满足要求;
步骤122:若ColorType=3,则该图像为真彩色索引图像,再在文件数据中搜索tRNS字段,若文件包含tRNS字段,则该图像包含透明度信息,满足要求;
步骤123:若图像不满足上述两种颜色类型中任何一种情况下,则该图像不包含透明度信息,不满足要求;
步骤200:图像颜色取值空间分割单元,用于统计R、G、B、α分量的像素分布直方图,并根据直方图信息分割R、G、B、α颜色取值空间,具体步骤如下:
步骤210:解析输入的PNG图片,得到每个像素点的透明度α和RGB三基色信息,即根据步骤100得到的信息,提取PNG图像IDAT字段信息,即图像颜色信息:
步骤211:若ColorType=6,直接从IDAT中每个像素数据中提取出R、G、B、α分量值;
步骤212:若ColorType=3,则从IDAT中每个像素点数据中提取颜色索引值,再根据颜色索引值到PLET字段中提取该像素的R、G、B分量值,最后在该像素的tRNS字段中提取α分量值;
步骤220:遍历图片,根据步骤210的方法,统计图像中各个颜色分量的像素分布直方图,即R、G、B、α分量不同取值对应的像素数目,分别存储在4×256个计数器中;
步骤230:根据步骤220的统计结果,将各颜色分量分割为8个量化区间,并取区间内所有像素的颜色平均值作为各分量的区间量化值;
本步骤的核心是搜索最佳量化区间,搜索过程如下:
步骤231:设x∊[0, 255]且num(x)≠0时,对应的最小x值为xlow ,最大值为xup ,将区间[xlow ,xup ]等分8份,作为x最佳量化区间的初值,即[xk_down , xk_up ]初值为[xlow +k(xup -
xlow )/8,xlow +(k+1)(xup -
xlow )/8];
步骤232:分别计算几个代价函数:区间[xk_down , xk_up ]代价函数、区间[xk +1_down , xk +1_up ]的代价函数;区间[xk_down , xk_up -1]代价函数、区间[xk +1_down -1, xk +1_up ]的代价函数;区间[xk_down , xk_up +1]代价函数、区间[xk +1_down +1, xk +1_up ]的代价函数;
步骤250:根据各颜色分量的量化区间分布,将四维的图像颜色取值空间被分割为4096个子空间;
步骤300:调色板生成单元用于根据图像像素在图像颜色取值空间分布情况,计算并输出带透明度的图像调色板;具体步骤如下:
步骤310:遍历图片,根据步骤100得到的信息,提取图像各像素颜色信息,根据每个像素的R、G、B、α值,按照map映射表的规则,映射到4096个子空间中,统计得到每个子空间中像素数目,得到像素的颜色子空间分布直方图;
步骤320:定义指定的调色板长度为K,则将颜色子空间分布直方图按照其像素数目由大到小排列,取排在前面的K个子空间中像素颜色均值为调色板初值;
步骤330:若K≥256,则取步骤2得到的调色板初值为调色板终值;否则,以步骤200中得到的调色板初值为初始质心,以各子空间的像素颜色均值为量化点进行LBG矢量量化[3],得到的最终的调色板值;
步骤400:图像颜色量化单元用于量化图像各像素颜色,输出图像各像素索引值;具体步骤如下:
步骤410:遍历图片,计算像素点颜色与每个调色板颜色的空间距离;
步骤420:若调色板小于256,直接取距离最小的调色板条目序号作为像素索引值,否则,在直接取距离最小的调色板条目作为像素颜色的基础上,使用弗洛伊德-斯坦伯格抖动方法量化图像颜色;
步骤500:图像输出单元用于根据步骤300、步骤400输出的数据,生成并输出带透明度的PNG8索引图,即将调色板的RGB分量写入PNG8图像PLET字段,再将调色板的α分量相对应的写入PNG8图像tRNS字段,将像素索引值写入PNG8图像IDAT字段,再添加PNG8图像文件的文件头、文件尾,保存PNG8真彩色索引图,输出得到的图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210290041.XA CN102881026B (zh) | 2012-08-15 | 2012-08-15 | 一种具有透明度信息的图像的调色板装置与生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210290041.XA CN102881026B (zh) | 2012-08-15 | 2012-08-15 | 一种具有透明度信息的图像的调色板装置与生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102881026A true CN102881026A (zh) | 2013-01-16 |
CN102881026B CN102881026B (zh) | 2015-01-07 |
Family
ID=47482339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210290041.XA Expired - Fee Related CN102881026B (zh) | 2012-08-15 | 2012-08-15 | 一种具有透明度信息的图像的调色板装置与生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102881026B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104751823A (zh) * | 2015-04-16 | 2015-07-01 | 曲阜师范大学 | 一种适用于移动终端显示屏幕的特征化方法 |
WO2015139176A1 (zh) * | 2014-03-17 | 2015-09-24 | 富士通株式会社 | 基于调色板的编码装置、方法以及图像处理设备 |
CN105551069A (zh) * | 2015-11-30 | 2016-05-04 | 中国农业科学院棉花研究所 | 一种索引图像的实时快速生成方法及系统 |
CN105578191A (zh) * | 2015-12-15 | 2016-05-11 | 辽宁师范大学 | 基于直方图滑动窗口的索引图基色选择方法 |
CN105659577A (zh) * | 2013-08-29 | 2016-06-08 | 快进影像有限公司 | 用于通过照相机获得包括α通道的图像文件的方法和装置 |
CN105992003A (zh) * | 2015-03-01 | 2016-10-05 | 上海天荷电子信息有限公司 | 依据排序或频度对调色板颜色编号的图像压缩方法和装置 |
CN106296757A (zh) * | 2015-06-09 | 2017-01-04 | 中兴通讯股份有限公司 | 一种图像处理方法和装置 |
CN107507125A (zh) * | 2017-08-31 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种WebP图像压缩中Alpha通道调色板生成方法、系统及主机端 |
CN110288670A (zh) * | 2019-06-19 | 2019-09-27 | 杭州绝地科技股份有限公司 | 一种ui描边特效的高性能渲染方法 |
CN111131818A (zh) * | 2014-10-01 | 2020-05-08 | 株式会社Kt | 对视频信号进行解码的方法和对视频信号进行编码的方法 |
CN111131824A (zh) * | 2015-01-15 | 2020-05-08 | 株式会社Kt | 对视频信号进行解码的方法和对视频信号进行编码的方法 |
CN111124404A (zh) * | 2019-11-29 | 2020-05-08 | 武汉虹信技术服务有限责任公司 | 一种自定义颜色的显示方法及系统 |
CN111563517A (zh) * | 2020-04-20 | 2020-08-21 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN112839225A (zh) * | 2015-04-02 | 2021-05-25 | 株式会社Kt | 对视频信号进行编解码的方法 |
CN113473150A (zh) * | 2021-07-08 | 2021-10-01 | 浙江大华技术股份有限公司 | 一种图像处理方法、装置以及计算机可读存储装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1302048A (zh) * | 1999-12-27 | 2001-07-04 | Lg电子株式会社 | 色空间量化描述符结构 |
US20050089222A1 (en) * | 1999-11-19 | 2005-04-28 | Lg Electronics Inc. | Method for quantization of histogram bin value of image |
-
2012
- 2012-08-15 CN CN201210290041.XA patent/CN102881026B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050089222A1 (en) * | 1999-11-19 | 2005-04-28 | Lg Electronics Inc. | Method for quantization of histogram bin value of image |
CN1302048A (zh) * | 1999-12-27 | 2001-07-04 | Lg电子株式会社 | 色空间量化描述符结构 |
Non-Patent Citations (3)
Title |
---|
MICHAEL T. ORCHARD等: "Color Quantization of Images", 《IEEE TRANSACTIONS ON SIGNAL PROCESSING》 * |
袁雪庚等: "自动色彩均衡快速算法", 《计算机辅助设计与图形学学报》 * |
马玉洁: "一种模糊核聚类的彩色图像量化算法", 《河南科技大学学报:自然科学版》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105659577A (zh) * | 2013-08-29 | 2016-06-08 | 快进影像有限公司 | 用于通过照相机获得包括α通道的图像文件的方法和装置 |
WO2015139176A1 (zh) * | 2014-03-17 | 2015-09-24 | 富士通株式会社 | 基于调色板的编码装置、方法以及图像处理设备 |
CN111131818A (zh) * | 2014-10-01 | 2020-05-08 | 株式会社Kt | 对视频信号进行解码的方法和对视频信号进行编码的方法 |
CN111131818B (zh) * | 2014-10-01 | 2023-05-26 | 株式会社Kt | 对视频信号进行解码的方法和对视频信号进行编码的方法 |
CN111131824B (zh) * | 2015-01-15 | 2023-10-03 | 株式会社Kt | 对视频信号进行解码的方法和对视频信号进行编码的方法 |
CN111131824A (zh) * | 2015-01-15 | 2020-05-08 | 株式会社Kt | 对视频信号进行解码的方法和对视频信号进行编码的方法 |
CN105992003A (zh) * | 2015-03-01 | 2016-10-05 | 上海天荷电子信息有限公司 | 依据排序或频度对调色板颜色编号的图像压缩方法和装置 |
CN112839225A (zh) * | 2015-04-02 | 2021-05-25 | 株式会社Kt | 对视频信号进行编解码的方法 |
CN112839225B (zh) * | 2015-04-02 | 2024-03-29 | 株式会社Kt | 对视频信号进行编解码的方法 |
CN104751823A (zh) * | 2015-04-16 | 2015-07-01 | 曲阜师范大学 | 一种适用于移动终端显示屏幕的特征化方法 |
CN106296757A (zh) * | 2015-06-09 | 2017-01-04 | 中兴通讯股份有限公司 | 一种图像处理方法和装置 |
CN105551069B (zh) * | 2015-11-30 | 2018-08-14 | 中国农业科学院棉花研究所 | 一种索引图像的实时快速生成方法及系统 |
CN105551069A (zh) * | 2015-11-30 | 2016-05-04 | 中国农业科学院棉花研究所 | 一种索引图像的实时快速生成方法及系统 |
CN105578191B (zh) * | 2015-12-15 | 2018-12-07 | 辽宁师范大学 | 基于直方图滑动窗口的索引图基色选择方法 |
CN105578191A (zh) * | 2015-12-15 | 2016-05-11 | 辽宁师范大学 | 基于直方图滑动窗口的索引图基色选择方法 |
CN107507125A (zh) * | 2017-08-31 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种WebP图像压缩中Alpha通道调色板生成方法、系统及主机端 |
CN110288670B (zh) * | 2019-06-19 | 2023-06-23 | 杭州绝地科技股份有限公司 | 一种ui描边特效的高性能渲染方法 |
CN110288670A (zh) * | 2019-06-19 | 2019-09-27 | 杭州绝地科技股份有限公司 | 一种ui描边特效的高性能渲染方法 |
CN111124404B (zh) * | 2019-11-29 | 2023-06-20 | 武汉虹信技术服务有限责任公司 | 一种自定义颜色的显示方法及系统 |
CN111124404A (zh) * | 2019-11-29 | 2020-05-08 | 武汉虹信技术服务有限责任公司 | 一种自定义颜色的显示方法及系统 |
CN111563517A (zh) * | 2020-04-20 | 2020-08-21 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN113473150A (zh) * | 2021-07-08 | 2021-10-01 | 浙江大华技术股份有限公司 | 一种图像处理方法、装置以及计算机可读存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102881026B (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102881026B (zh) | 一种具有透明度信息的图像的调色板装置与生成方法 | |
US11010955B2 (en) | Point cloud mapping | |
US20220405533A1 (en) | Trimming Search Space For Nearest Neighbor Determinations in Point Cloud Compression | |
CN1681330B (zh) | 自适应2n叉树生成方法及3D体数据编码和解码方法和设备 | |
US11212539B2 (en) | Efficient lossless compression of captured raw image information systems and methods | |
US11595630B2 (en) | Depth codec for real-time, high-quality light field reconstruction | |
US20060204086A1 (en) | Compression of palettized images | |
CN103209326B (zh) | 一种png图片的压缩方法 | |
US8780996B2 (en) | System and method for encoding and decoding video data | |
CN111260593B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
JP2017520036A (ja) | モザイク画像の生成方法および装置 | |
US9058540B2 (en) | Data clustering method and device, data processing apparatus and image processing apparatus | |
CN105933708B (zh) | 一种数据压缩和解压缩的方法和装置 | |
CN105828081B (zh) | 编码方法及编码装置 | |
CN106097252A (zh) | 基于图Graph模型的高光谱图像超像素分割方法 | |
CN101588509B (zh) | 视频图像编码和解码方法 | |
CN114222129A (zh) | 图像压缩编码方法、装置、计算机设备和存储介质 | |
US10045029B2 (en) | Clustering and encoding for color compression | |
CN116156140A (zh) | 视频显示处理方法、装置、计算机设备和存储介质 | |
CN116630687A (zh) | 级联带状混合的多层感知机模型图像识别方法及相关设备 | |
CN108200433B (zh) | 一种图像压缩和解压缩方法 | |
CN107124613B (zh) | 对多普勒天气雷达第二类产品数据进行重编码处理的方法 | |
US7468733B2 (en) | Method and system for improving color reduction | |
WO2022262546A1 (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN114554175B (zh) | 一种基于分类重排的二维点云距离图像的无损压缩方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150107 Termination date: 20180815 |