CN102881026B - 一种具有透明度信息的图像的调色板装置与生成方法 - Google Patents

一种具有透明度信息的图像的调色板装置与生成方法 Download PDF

Info

Publication number
CN102881026B
CN102881026B CN201210290041.XA CN201210290041A CN102881026B CN 102881026 B CN102881026 B CN 102881026B CN 201210290041 A CN201210290041 A CN 201210290041A CN 102881026 B CN102881026 B CN 102881026B
Authority
CN
China
Prior art keywords
color
picture
image
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.)
Expired - Fee Related
Application number
CN201210290041.XA
Other languages
English (en)
Other versions
CN102881026A (zh
Inventor
陈喆
殷福亮
李丹丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dalian University of Technology
Original Assignee
Dalian University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dalian University of Technology filed Critical Dalian University of Technology
Priority to CN201210290041.XA priority Critical patent/CN102881026B/zh
Publication of CN102881026A publication Critical patent/CN102881026A/zh
Application granted granted Critical
Publication of CN102881026B publication Critical patent/CN102881026B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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个量化区间的量化代价函数为:
其中,num(x)为像素取值为x的像素数目,在取值区间[]内的x量化为为像素取值为x的像素透明度:;为求解使代价函数取到最小值的值,可另0,即时,得:
此时,取最小值为:
本步骤的核心是搜索最佳量化区间,搜索过程如下:设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个量化区间,并取区间内所有像素的颜色平均值作为各分量的区间量化值;
由于R、G、B、α的取值范围均为[0,255],以下以指代各颜色分量来表述它们的区间分割及颜色量化方法;
定义,对于,将其量化为8个值,则定义第个量化区间的量化代价函数为:
其中,num(x)为像素取值为x的像素数目,在取值区间[]内的x量化为为像素取值为x的像素透明度:;为求解使代价函数取到最小值的值,可另0,即时,得:
此时,取最小值为:
本步骤的核心是搜索最佳量化区间,搜索过程如下:
步骤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 ]的代价函数
步骤233:比较步骤232得到的代价函数的几项和值:+++ ,将其中和值最小的取值点作新的区间划分;
步骤234:重复步骤232和步骤233,调整各个区间的划分,直到区间的划分不再改变为止,即+ >=++>=+为止;
步骤235:分别取k=0, 1, …, 7,进行步骤232~步骤234,得到分量的8个量化区间;
步骤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个量化区间的量化代价函数为:
其中,num(x)为像素取值为x的像素数目,在取值区间[]内的x量化为为像素取值为x的像素透明度:;为求解使代价函数取到最小值的值,可另0,即时,得:
此时,取最小值为:
本步骤的核心是搜索最佳量化区间,搜索过程如下:设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个量化区间,并取区间内所有像素的颜色平均值作为各分量的区间量化值;
由于R、G、B、α的取值范围均为[0,255],以下以指代各颜色分量来表述它们的区间分割及颜色量化方法;
定义,对于,将其量化为8个值,则定义第个量化区间的量化代价函数为:
其中,num(x)为像素取值为x的像素数目,在取值区间[]内的x量化为为像素取值为x的像素透明度:;为求解使代价函数取到最小值的值,可另0,即
时,得:
此时,取最小值为:
本步骤的核心是搜索最佳量化区间,搜索过程如下:
步骤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 ]的代价函数
步骤233:比较步骤232得到的代价函数的几项和值:+++ ,将其中和值最小的取值点作新的区间划分;
步骤234:重复步骤232和步骤233,调整各个区间的划分,直到区间的划分不再改变为止,即+ >=++>=+为止;
步骤235:分别取k=0, 1, …, 7,进行步骤232~步骤234,得到分量的8个量化区间;
步骤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真彩色索引图,输出得到的图像。
下面结合附图和实施例对本发明进行详细说明。
参照图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 (1)

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个量化区间,并取区间内所有像素的颜色平均值作为各分量的区间量化值;
由于R、G、B、α的取值范围均为[0,255],以下以x指代各颜色分量来表述它们的区间分割及颜色量化方法;
定义k∈[0,7]且k为整数,对于x∈[0,255],将其量化为8个值则定义第k个量化区间的量化代价函数为:
其中,num(x)为像素取值为x的像素数目,在取值区间[xk_down,xk_up]内的x量化为α′(x)为像素取值为x的像素透明度:为求解使代价函数取到最小值的值,可令时,得:
此时,取最小值为:
步骤230的核心是搜索最佳量化区间,搜索过程如下:
步骤231:设x∈[0,255]且num(x)≠0时,对应的最小x值为xlow,最大x值为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]的代价函数
步骤233:比较步骤232得到的代价函数的几项和值: 将其中和值最小的取值点作新的区间划分;
步骤234:重复步骤232和步骤233,调整各个区间的划分,直到区间的划分不再改变为止,即为止;
步骤235:分别取k=0,1,…,7,进行步骤232~步骤234,得到x分量的8个量化区间;
步骤240:计算区间映射表map[256],即对于x∈[xk_down,xk_up],map(x)=k;
步骤250:根据各颜色分量的量化区间分布,将四维的图片颜色取值空间被分割为4096个子空间;
步骤300:根据图片像素在图片颜色取值空间分布情况,计算并输出带透明度的图片 调色板,具体步骤如下:
步骤310:遍历图片,根据步骤100得到的信息,提取图片各像素颜色信息,根据每个像素的R、G、B、α值,按照map映射表的规则,映射到4096个子空间中,统计得到每个子空间中像素数目,得到像素的颜色子空间分布直方图;
步骤320:定义指定的调色板长度为K,则将颜色子空间分布直方图按照其像素数目由大到小排列,取排在前面的K个子空间中像素颜色均值为调色板初值;
步骤330:若K≥256,则取步骤320得到的调色板初值为调色板终值;否则,以步骤200中得到的调色板初值为初始质心,以各子空间的像素颜色均值为量化点进行LBG矢量量化,得到调色板终值;
步骤400:量化图片各像素颜色,输出图片各像素索引值,具体步骤如下:
步骤410:遍历图片,计算像素点颜色与每个调色板颜色的空间距离;
步骤420:若调色板小于256,直接取距离最小的调色板条目序号作为像素索引值,否则,在直接取距离最小的调色板条目序号作为像素索引值的基础上,使用弗洛伊德-斯坦伯格抖动方法量化图片颜色;
步骤500:根据步骤300、步骤400输出的数据,生成并输出带透明度的PNG8索引图,即将调色板的RGB分量写入PNG8图片PLET字段,再将调色板的α分量相对应的写入PNG8图片tRNS字段,将像素索引值写入PNG8图片IDAT字段,再添加PNG8图片文件的文件头、文件尾,保存PNG8真彩色索引图,输出得到的图片。
CN201210290041.XA 2012-08-15 2012-08-15 一种具有透明度信息的图像的调色板装置与生成方法 Expired - Fee Related CN102881026B (zh)

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 CN102881026A (zh) 2013-01-16
CN102881026B true 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)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016536896A (ja) * 2013-08-29 2016-11-24 ファースト・フォワード・イメージング・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツングFast Forward Imaging Gmbh 写真用カメラを用いてアルファチャンネルを含む画像ファイルを取得するための方法及び装置
CN105637861B (zh) * 2014-03-17 2018-11-20 富士通株式会社 基于调色板的编码装置、方法以及图像处理设备
US10257521B2 (en) * 2014-10-01 2019-04-09 Kt Corporation Method and apparatus for processing video signal
CN107211143B (zh) * 2015-01-15 2020-08-18 株式会社Kt 用于处理视频信号的方法和设备
CN105992003B (zh) * 2015-03-01 2021-04-27 上海天荷电子信息有限公司 依据排序或频度对调色板颜色编号的图像压缩方法和装置
WO2016159610A1 (ko) * 2015-04-02 2016-10-06 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN104751823B (zh) * 2015-04-16 2017-04-19 曲阜师范大学 一种适用于移动终端显示屏幕的特征化方法
CN106296757A (zh) * 2015-06-09 2017-01-04 中兴通讯股份有限公司 一种图像处理方法和装置
CN105551069B (zh) * 2015-11-30 2018-08-14 中国农业科学院棉花研究所 一种索引图像的实时快速生成方法及系统
CN105578191B (zh) * 2015-12-15 2018-12-07 辽宁师范大学 基于直方图滑动窗口的索引图基色选择方法
CN107507125B (zh) * 2017-08-31 2021-06-29 郑州云海信息技术有限公司 一种WebP图像压缩中Alpha通道调色板生成方法、系统及主机端
CN110288670B (zh) * 2019-06-19 2023-06-23 杭州绝地科技股份有限公司 一种ui描边特效的高性能渲染方法
CN111124404B (zh) * 2019-11-29 2023-06-20 武汉虹信技术服务有限责任公司 一种自定义颜色的显示方法及系统
CN111563517B (zh) * 2020-04-20 2023-07-04 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备及存储介质
CN113473150B (zh) * 2021-07-08 2022-11-22 浙江大华技术股份有限公司 一种图像处理方法、装置以及计算机可读存储装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1302048A (zh) * 1999-12-27 2001-07-04 Lg电子株式会社 色空间量化描述符结构

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100364753B1 (ko) * 1999-11-19 2002-12-16 엘지전자 주식회사 칼라 히스토그램의 빈값 양자화 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1302048A (zh) * 1999-12-27 2001-07-04 Lg电子株式会社 色空间量化描述符结构

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Color Quantization of Images;Michael T. Orchard等;《IEEE TRANSACTIONS ON SIGNAL PROCESSING》;19911231;第39卷(第12期);第2677-2690页 *
自动色彩均衡快速算法;袁雪庚等;《计算机辅助设计与图形学学报》;20051031;第17卷(第10期);第2269-2274页 *
马玉洁.一种模糊核聚类的彩色图像量化算法.《河南科技大学学报:自然科学版》.2011,第32卷(第1期),第45-48页. *

Also Published As

Publication number Publication date
CN102881026A (zh) 2013-01-16

Similar Documents

Publication Publication Date Title
CN102881026B (zh) 一种具有透明度信息的图像的调色板装置与生成方法
US11871011B2 (en) Efficient lossless compression of captured raw image information systems and methods
CN1681330B (zh) 自适应2n叉树生成方法及3D体数据编码和解码方法和设备
CN103209326B (zh) 一种png图片的压缩方法
US20220138920A1 (en) Image processing method and apparatus, electronic device, and storage medium
CN105933708B (zh) 一种数据压缩和解压缩的方法和装置
CN102103463B (zh) 一种带透明度用户界面信息的处理方法和设备
CN104012097A (zh) 用于压缩和解压缩数据的方法与装置
CN107852501A (zh) 用于对hdr图像和使用色彩映射函数从所述hdr图像获得的sdr图像两者进行编码的方法和设备
WO2016172994A1 (zh) 图像编码、解码方法及装置
CN104780379A (zh) 一种屏幕图像集合的压缩方法
CN101588509B (zh) 视频图像编码和解码方法
CN107148648A (zh) 估计图像序列的两个不同颜色分级版本之间的颜色映射的方法和设备
CN106133791A (zh) 用于颜色压缩的群聚和编码
CN116156140A (zh) 视频显示处理方法、装置、计算机设备和存储介质
CN114898718B (zh) 一种彩色电润湿电子纸实时色彩转换方法
CN108200433B (zh) 一种图像压缩和解压缩方法
CN113591878A (zh) 动态hdr图像特征提取方法
CN107392967A (zh) 一种基于多峰高斯分布函数的彩色图像灰度化方法
CN105578191B (zh) 基于直方图滑动窗口的索引图基色选择方法
CN114554175B (zh) 一种基于分类重排的二维点云距离图像的无损压缩方法
US7468733B2 (en) Method and system for improving color reduction
WO2023087598A1 (zh) 增强图片的生成方法、装置、存储介质及电子装置
JPH0496575A (ja) 画像符号化方法
CN105205839B (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