數字圖像入門 色彩的抖動
夏昆岡 于 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
    027.044.168.***
    027.044.168.***
    發表于2020.04.12 23:52:40
    40
    221.224.221.***
    221.224.221.***
    發表于2014.02.18 14:53:06
    39
    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
    提示
    本貼不可匿名回復,回復等級為:1 ,您現在正處在潛水狀態
    回復
    驗證碼
    9957 為防止廣告機貼垃圾,不得已而為之
    表情
    正文
    京ICP備11010137號 京ICP證110276號 京公網安備110114000469號