圖像增強算法之去抖動算法

                               圖像增強算法之去抖動算法

對LCD面板的色彩顯示能力,通常用在每一種色彩通道上,液晶面板能顯示灰度的位數來加以描述。 LCD 的每個點通過R、G、B 三通道進行顯示,首先影響色彩位數的是LCD 所使用的驅動IC 的不同,6bit 驅動IC 能夠顯示64 級灰度,而8bit 驅動IC 則能夠顯示256 級灰度。灰度越多,說明面板能夠顯示的色彩也越多,對細節和層次的表現力越強。如果在每個色彩通道上能顯示256(2^{8}=256)級灰度,可顯示16.7M 的色彩,就稱其爲8bit 面板,這也就是真彩面板;而對於大多數的應用場合,如便攜設備上裝備的中小尺寸LCD 和中低端的桌面LCD 中,則採用的6bit 或更少位數的僞真彩面板。雖然,僞真彩面板可以降低成本,並且可以減少驅動IC 的最大驅動路數,進而降低在可視角度以及對比度等方面的設計難度,但是,由於顯示的色彩數的大幅減少(物理上6bit 面板能顯示的色彩還不到8bit 面板的2%),在表現圖像漸變時常常會伴有明顯的階梯狀條紋,極大的影響了顯示效果。 抖動處理通常被用在圖像輸出設備只能同時顯示有限的灰度級的場合,它可以增加單色面板的灰度級和僞真彩面板的色彩數,被實踐證明對量化了的圖像的色彩增強非常有效。

爲了更直觀的理解爲什麼在很多顯示應用場合只顯示僞彩色圖像,在這裏引入位圖切割的概念來解釋位平面在圖像顯示中的應用。設一般圖像中的每一個像素都由8bit表示,即真彩色圖像,假設圖像是由8個1bit 平面組成,其範圍從最低有效位的位平面0 到最高有效位的位平面7。在8bit字節中,平面0包含圖像中像素的最低位,而平面7 則包含最高位。圖4-1 說明了這些概念,圖4-3顯示了在圖4-2中描述的各種位平面。注意較高階位(特別是前四位)包含了大多數在視覺上很重要的數據。其他位平面對圖像中更多的微小細節有作用。把數字圖像分解成位平面,對於分析每個bit 在圖像中的相對重要性是有用的,這是一個輔助決定量化一個像素的位數是否充足的過程。由此可見,在很多對顯示要求不高的場合,只需要用較高位平面就可以顯示出一幅圖像中的大部分信息,從而丟失一部分圖像細節,因此,纔會出現65536(2^{16})色和262144(2^{20})色等常見的顯示應用場合。 

4.1 半色調處理算法原理

半色調技術應用於印刷工業已有一個多世紀,應用在數字輸出設備上也有40 多年,如今已廣泛應用到打印、印刷、顯示設備,以及數字圖像的壓縮存儲、圖像的傳輸等領域。

半色調處理要實現的基本功能就是要消除由於圖像的非連續調輸出而造成的階梯狀條紋,從而達到圖像色彩增強的效果,並有效地消除圖像固有的塊狀效應缺陷,使圖像更加平滑、柔和,進一步改善圖像的質量。其採用的算法很大程度上決定着輸出圖像的質量、系統結構能否實現以及實現成本的大小。而圖像色彩增強技術的算法比較多,基本上可根據用戶的設計需求來選擇合適的算法。

數字半色調技術是基於人眼的視覺特性和圖像的成色特性,利用數學和計算機等工具,在二值設備或多色二值設備上實現圖像再現的一門技術,是將連續調圖像經過處理後再輸出以實現圖像階調再現的基礎性研究。

縱覽數字半色調技術的研究,總的趨勢是:對灰度圖像而言,都是對已有的方法進行改進和整合;對彩色圖像而言,多數是結合彩色圖像的特點將處理灰度圖像的方法用於彩色圖像的再現。

從規則抖動(ordered dithering)、誤差擴散(error diffusion)、藍噪聲半色調(blue noise halftoning)、點擴散(dot diffusion)、DBS(direct binary search)、LUT(look-up-table)半色調到AM/FM 半色調等方法,可以看出,數字半色調技術的原理並沒有改變,主要是將量化後的誤差儘可能地擴散到與之相鄰的像素上,使得再現圖像與原圖像的誤差儘可能的小,它將隨着計算機技術、數字圖像處理技術以及數學算法的靈活運用而不斷地提高。

目前工業上應用最廣泛和成熟的半色調算法就是抖動算法和誤差擴散法,以下將詳細給出這兩類算法的分析和比較。

4.1.1 規則抖動

規則抖動是指在抖動過程中使用一個週期性的、確定的抖動矩陣,而這裏所指的抖動矩陣也可以稱爲抖動模板。規則抖動中應用較爲廣泛的是Bayer 抖動、Clustered-dot 半色調和Dispersed-dot 半色調。而後兩種主要由於算法的自身特性,主要應用於打印設備,而本文我們主要研究的是可用於LCD 顯示的Bayer 抖動。

Bayer 抖動實質上就是像素值與其抖動矩陣中的相應的閾值比較。具體來說,就是把根據不同抖動位數選定的抖動矩陣置於目標圖像的子區域內,使得該區域內的每一個像素與抖動矩陣中的每一個閾值一一對應起來。

下面以一個簡單的2bit 抖動爲例,對Bayer 抖動算法進行闡述,並最終給出針對不同抖動位數的Bayer 抖動矩陣。

對於一個2×2 像素塊的顏色,如果只有兩種選擇,假設要麼所有像素全爲紅色,要麼像素值全爲0,這樣在視覺效果上也就僅有上述的兩種情況。但是如果在這四個像素中有兩個值爲紅色,另兩個值爲0,這樣將會產生一種紅色一半亮度的視覺效果,同理,共可產生5 級灰度,如圖4-5 所示。

這個過程可用圖4-6來說明。假定在2×2 像素塊中每一個像素對應一個8bit 的數據,但輸出設備只能使用高6位,因此如果沒有抖動過程的支持,低兩位將會被丟失。考慮任意的8bit 像素值A8h(1010_1000),其高6 位用16 進制數“2A”表示,如果不用抖動,像素值A9h(1010_1001)、AAh(1010_1010)、ABh(1010_1011)將顯示和A8h 同樣的像素值“2Ah”。而像素值ACh(1010_1100)有不同的高六位,所以ACh 比A8h 有更高的亮度。因此如果不加抖動處理,僅能精確顯示A8h 和ACh。移除低兩位,這些值將分別爲“2Ah”或“2Bh”。

抖動處理爲“丟失”的像素值A9h、AAh、ABh 提供了顯示的方法,通過顯示合併的2×2 的像素塊的值來加以實現,該像素塊內的平均強度就是“丟失”的值,如圖4-6 所示。爲了給最大強度值留有餘地,ABh 不作任何變換,A8h、A9h、AAh 則通過抖動算法進行修改。

低2 位的抖動只有四種矩陣供選擇,如圖4-6 的“情況 1”至“情況4”。抖動矩陣中“0”表示對應位置的輸入值不作任何改變,“1”表示對應位置的輸入值將減弱到下一個可以顯示的值。可將上述四種情況綜合爲圖4-7 中“2bit 抖動矩陣”的抖動矩陣,其中像素位置的數字表示低2 位:00 = blank,01 =“1”,10 =“2”,11 =“3”。

如果輸入像素值低2 位爲“00”,只有與抖動矩陣中空白處對應的像素強度值不變,其餘3 個都減弱到下一個可顯示的像素值;

若輸入像素值低2 位爲“01”,與抖動矩陣中空白及標有“1”的位置的像素點值保持不變,其餘2 個都減弱到下一個可顯示的像素值;

若輸入像素值低2 位爲“11”,四個像素點都保持輸入值不變。以上過程是2bit 抖動的算法,對於1bit,3bit,4bit 抖動的抖動矩陣見圖4,其算法與2bit 抖動算法類似。

4.1.2 誤差擴散

誤差擴散技術主要思想是,一旦一個像素點被量化後,它就存在誤差,這些誤差將影響到它周圍的像素點。這種由誤差而影響其周圍的量化的像素點就被稱作爲擴散,這意味着這個誤差被分成很多組分從而加到了臨近像素的灰度值上。通過誤差的擴散,系統處於自我修正狀態的負反饋系統。

誤差擴散的數字半色調算法,最先由Floyd 等人提出。這種算法是一種鄰域處理過程,它將當前像素的量化誤差按一定比例擴散到相鄰的像素上。因此,局部的量化誤差對相鄰像素點而言是一種補償,使得誤差擴散系統具有自校正的能力。而且,能夠保證在總體上,在處理前後圖像的總灰度或總色彩數相一致。

誤差擴散算法的核心是一個對量化誤差進行頻譜整形的數字濾波器,目前最具代表性的是Floyd 和Steinberg 所設計的濾波器(以下簡稱爲FS 濾波器),該濾波器在量化誤差爲白噪聲時的應用效果最爲理想。由於對彩色圖像進行顏色量化屬於多值量化過程(即所謂的多色調處理),上述FS 濾波器的理想應用條件—量化噪聲爲白噪聲無法滿足,因此,直接使用FS 濾波器進行多色調誤差擴散雖可以在一定程度上提高量化圖像的質量,但處理後的彩色圖像在某種程度上仍然存在圖案化、顆粒噪聲以及僞輪廓等影響圖像質量的問題。

FS 濾波器的結構如圖4-9 所示,n 爲當前處理的像素,0 爲已處理的像素g1,g2,g3,g4 爲未處理像素,濾波器的脈衝響應g1=7/16,g2 =1/16,g3=5/16, g4=3/16,其濾波過程也就是將當前處理像素的量化誤差以上述權重傳遞給未處理的像素。算法首先比較x 像點的灰度值與閾值,該像點記爲1 或0,即白色或黑色,然後計算誤差,分配誤差到周圍的點,修改周圍點的灰度值。該濾波算法中是將誤差的7/16 加到x右邊第一個像點上,誤差的3/16 加到下一行左邊第一個點上,誤差的5/16 加到下一行正對的像點上,誤差的1/16 加到下一行右邊第一個點上,這樣把x 像點的誤差分散到周圍的像點上。反覆進行該過程,對圖像中的每個像點進行如此的半色調化和灰度值的修正,最後得到一幅反映原圖層次關係的半色調圖。

除了Floyd-Steinberg 濾波器外,很多學者還提出了其它形式的濾波器。其濾波器矩陣如圖4-10 所示。從圖4-10 中可以看出,其它濾波器結構形式和FS 濾波器類似,不同的是所涉及的擴散點數量不同。一般情況下進行誤差分散的點越多,顯示圖像的效果會越好,但其計算速度和硬件開銷也越大。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章