数字图像入门 色彩的抖动
夏昆冈 于 2011.06.28 09:12:54 | 源自:www.soomal.com | 版权:原创 | 平均/总评分:10.00/80

这篇的开始,我们得重温一下数字图像的记录方式。将光从最暗到最亮进行量化,然后用正整数来记录,是数字图像的最核心的记录原理。但其中会引发一个思考,自然光的明暗渐变是无限光滑的,而24位图像的红绿蓝三色光,每种的渐变层数最多256级,那么会不会丢失细节?答案是明确的,细节一定会丢失。未来如果能普及48位图像,那么每一种原色光的记录级数可以达到65536级,将有巨大的进步,但它依然无法实现自然光无限光滑的效果。未来科技进一步发达,如果出现192位的图像,它能够做到的是将记录层次记录得更细密,更加接近无限光滑,但始终难以实现真正意义上的无限光滑。

问题出现,如果记录一个介于整数A和B之间的颜色时,该怎么办?假设A是255,B是254,它们之间不可能再出现一个整数,这个记录将无法进行。此时,我们需要开始了解“色彩的抖动”了。

  • 我们可以通过一个实例来了解一下什么是色彩的抖动。我们先生成一张24位的原图,为了让抖动的效果更加明显,我们使用了渐变色来填充字样和Logo。

  • 然后我们将色彩数量限制到32色[不是32位色,是32色,整个图像只允许有32种颜色存在],结果出现了明显的条纹,区域化特点突出。

    当色彩被删减时,图片像素的颜色将被重新量化,某数值区间的色彩都将被重新量化成一个新的颜色数值,因此会出色明显的色斑。

  • 仍旧将色彩限制在32色,但允许开启色彩抖动,得到上图这个结果。色斑将不会那么明显,渐变明显要更加细腻一些。为什么同样是32色的图像,这张要好很多呢?

  • 再看看局部,对比结果将更加清晰。

  • 将色彩抖动处理后的结果局部放大。会看到一些抖动与不抖动的差异。抖动的结果是,像素排列产生了变化,一些明显成块状的区域中混入了其他颜色的像素。本例子中,色彩渐变是自上而下由暗到亮,而这些抖动产生新排列的像素密度也是自上而下由密到疏,亮度相对较暗。

  • 为什么这样排列会产生更好的视觉效果呢?再来看一个例子。使用黑白交错相间的方式来排列像素,实际肉眼看到的不是黑白格子,而是灰色的效果,放大观察,黑白格子又会出现。因为人眼的分辨率是有限的,当人眼无法区分出每个像素时,就会产生一种“对一个区域取混合色”模糊的视觉效果。也正因为如此,改变像素排列,就会产生“新的色彩”,虽然物理上并没有真正增加颜色,但视觉上会觉得更加平滑细腻。色彩抖动这是一种基于此现象的一种色彩优化技术。在回到文章前面的那个问题,如果记录一个介于整数A和B之间的颜色时,该怎么办?假设A是255,B是254,记录的方式就是AB均匀混合,达到中间色的视觉效果。

  • 色彩抖动多用于256色图像、视频当中,广泛的用于GIF、FLC[早期的一种动画格式]等格式以及游戏当中,主要用于对真彩色也就是24位色的模拟,Starcraft 星际争霸就是一个比较著名的例子。色彩抖动还用于其它领域,早年某些非真彩色液晶屏,也运用了色彩抖动技术,用于模拟真彩色液晶屏的显示效果。

    你或许认为对于24位图像而言,色彩抖动优化是没必要的,因为24最多支持16777216种颜色,层次已经足够丰富,无需抖动。但实际情况却不是如此。如果拍摄色彩较为单一的场景,例如蓝天、雪景等,就会发现色彩抖动依然有用,照片分辨率越高,抖动的作用就愈加明显。现在单反相机采用的感光器大部分都为10位、12位、14位感光,这X位,指的是单色,即感光器最大输出色彩为30位、36、42位,而存储则多采用24位图像,这也就意味着存储后将丢失大量的色彩,层次也将变差,如果要获得接近原始图像的效果,色彩抖动处理依然是必不可少的。

    请评分
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    221.008.***.***
    221.008.***.***
    38
    221.008.***.***
    221.008.***.***
    37
    221.008.***.***
    221.008.***.***
    36
    221.008.***.***
    221.008.***.***
    35
    112.065.223.***
    112.065.223.***
    发表于2013.06.03 17:51:14
    34
    115.064.136.***
    115.064.136.***
    发表于2013.05.26 16:31:55
    33
    03
    到嘴的肥肉要吐出去。
    发表于2012.02.16 17:02:53
    32
    其实人眼能分辨的颜色种类有限,24位真彩色已经足以表达人眼可分辨的所有颜色了,48位或更高的对于人眼来说已经没有意义,只不过是为了在处理上有更高的精度。这就好比数字音频最多24bit采样位数已经够了,再高的位数对人耳也没有意义了。
    发表于2011.07.01 10:18:43
    31
    03
    发表于2011.06.30 21:33:38
    30
    03
    发表于2011.06.30 13:40:02
    28
    03
    发表于2011.06.29 20:18:53
    27
    03
    色彩的“抖动”一词中文应该是英文直译过来的,感觉不是很确切。
    发表于2011.06.29 13:08:05
    26
    061.183.***.***
    061.183.***.***
    非常明了地解释了这个问题!
    发表于2011.06.29 12:56:58
    25
    125.039.***.***
    125.039.***.***
    抖动的一种计算方法是利用插值法
    发表于2011.06.29 11:35:02
    24
    168.160.***.***
    168.160.***.***
    那么除了现有的kill explorer的方法外,有没有更好的方法来解决星际在win7下花屏的问题……
    发表于2011.06.29 09:43:39
    23
    03
    当单位面积内像素越多分辨率越高,利用视觉模糊的静态抖动越有效;
    刷新率越高,采用视觉残留的动态抖动越舒服(不闪烁)。
    发表于2011.06.29 09:09:27
    22
    03
    这篇的抖动是多个像素显示不同灰利用视觉模糊得到的中间值,抖动行为是静态的,怎么会闪啊闪的呢?
    发表于2011.06.29 08:56:00
    21
    03
    发表于2011.06.29 00:05:55
    20
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    7707 为防止广告机贴垃圾,不得已而为之
    表情
    正文
    京ICP备11010137号 京ICP证110276号 京公网安备110114000469号