基于FPGA的彩色圖像增強(qiáng)系統(tǒng)
在從圖像源到終端顯示的過(guò)程中,電路噪聲、傳輸損耗等會(huì)造成圖像質(zhì)量下降,為了改善顯示器的視覺(jué)效果,常常需要進(jìn)行圖像增強(qiáng)處理。圖像增強(qiáng)處理有很強(qiáng)的針對(duì)性,沒(méi)有統(tǒng)一的評(píng)價(jià)標(biāo)準(zhǔn),從一般的圖片、視頻欣賞角度來(lái)說(shuō),濾除噪聲、擴(kuò)展對(duì)比度、銳化以及色彩增強(qiáng)等處理能顯著提升視覺(jué)效果。
這里設(shè)計(jì)一個(gè)基于FPGA的實(shí)時(shí)視頻圖像處理系統(tǒng),包含增強(qiáng)對(duì)比度擴(kuò)展和色飽和度兩種處理方法,相比于DSP和ASIC方案來(lái)說(shuō),F(xiàn)PGA在性能和靈活性方面具有絕對(duì)優(yōu)勢(shì),應(yīng)用FPGA設(shè)計(jì)視頻通信系統(tǒng)更普遍。
1 原理和算法
圖像增強(qiáng)處理可以在頻域和空間域進(jìn)行,典型的頻域方法如直方圖增強(qiáng)處理,適合于軟件系統(tǒng)實(shí)現(xiàn);而硬件系統(tǒng)更適合于空間域處理,因此本文所述的處理方法都將在空間域進(jìn)行。
1. 1 對(duì)比度擴(kuò)展
對(duì)比度擴(kuò)展又稱灰度變換,其目的是在拓展感興趣的灰度區(qū)間的同時(shí),壓縮不感興趣的灰度區(qū)間。最簡(jiǎn)單有效的方法是線性變換,滿足以下關(guān)系:
f(x,y)和g(x,y)分別表示輸入圖像和輸出圖像的灰度值。經(jīng)過(guò)變換,線性拉伸了在a~b內(nèi)的灰度值,同時(shí)對(duì)[0,a]和[b,255]灰度區(qū)間進(jìn)行抑制。從顯示設(shè)備的角度來(lái)說(shuō),一般民用級(jí)別的顯示器都不具備完美表現(xiàn)256灰階的能力,因此抑制過(guò)暗[0,a]和過(guò)亮[b,255]的灰度區(qū)間而增強(qiáng)中間區(qū)域的動(dòng)態(tài)范圍,可以避免灰階的浪費(fèi)。從另一個(gè)角度來(lái)講,通常一幅圖像所包含的過(guò)暗和過(guò)亮的像素點(diǎn)本來(lái)就是少數(shù),有目的有針對(duì)性地?cái)U(kuò)展中間范圍灰度而壓縮兩頭的灰度,可增強(qiáng)圖像質(zhì)量,得到更好視覺(jué)效果,而圖像信息的損失卻很小。
1.2 色彩增強(qiáng)
色彩增強(qiáng)的目的是在保證顏色不失真的前提下,有針對(duì)性地增加圖像的色彩飽和程度,使其看起來(lái)更鮮艷生動(dòng),層次感更強(qiáng)。
1.2.1 HSI模型簡(jiǎn)介
在彩色圖像處理中,RGB、YCbCr、CMYK等是常用的色彩模型,其算法和相互間的轉(zhuǎn)換很易用硬件實(shí)現(xiàn),但是它們都不能很好適應(yīng)實(shí)際上從人的角度來(lái)解釋的顏色。
研究表明,從人的角度來(lái)觀察一個(gè)彩色物體時(shí),一般用色調(diào)、色飽和度和亮度這3個(gè)參量來(lái)描述該物體。色調(diào)描述純色的屬性,而飽和度給出一種純色被白光稀釋的程度的度量。亮度即圖像的明暗程度,是一個(gè)主觀的描述量。基于這3個(gè)參量建立的HSI彩色模型是開(kāi)發(fā)基于彩色描述的圖像處理方法的理想工具。下面簡(jiǎn)單闡述HSI模型的原理。
圖1所示是一個(gè)RGB彩色空間的立方體模型,邊長(zhǎng)歸一化為1,原點(diǎn)處為黑色,相對(duì)的頂點(diǎn)處為白色。連接黑白兩點(diǎn)得到灰度軸,這根軸上的飽和度為0,即沒(méi)有彩色分量。在灰度軸上有相同投影點(diǎn)的點(diǎn)具有相同的亮度,即垂直于灰度軸的平面內(nèi)的點(diǎn)具有相同的亮度值。
在立方體內(nèi)任取一點(diǎn)P,它與灰度軸確定一個(gè)平面。根據(jù)顏色學(xué)的理論,所有顏色都是由位于那些顏色定義的三角形內(nèi)的3種顏色產(chǎn)生的,在這個(gè)平面內(nèi),三角形的3個(gè)頂點(diǎn)分別是黑色、白色和P的顏色,而黑色和白色是不能改變色調(diào)的,所以這個(gè)平面內(nèi)的點(diǎn)具有與P點(diǎn)相同的色調(diào),即等色調(diào)面。直觀地說(shuō),越靠近灰度軸的點(diǎn),顏色越淡,所以色飽和度的定義就是該點(diǎn)與灰度軸的距離:距離越遠(yuǎn),飽和度越強(qiáng);距離越近,飽和度越弱;距離為0則飽和度也為0,這時(shí)就完全沒(méi)有彩色。
實(shí)際上,用垂直于灰度軸的平面內(nèi)的彩色點(diǎn)軌跡來(lái)表示HSI空間(等亮度面)。當(dāng)平面沿灰度軸上下移動(dòng)時(shí),由于立方體邊界的切割而構(gòu)成的橫截面所決定的邊界呈三角形或呈六邊形。這里以六邊形為例,如圖2所示。
由圖2看出,三原色是按120°分割的,青、品紅和黃被稱為二次色,也是按120°分割,一次色與二次色之間相隔60°。圖中任給出一點(diǎn)Q,若以紅軸作參考,則Q向量與紅軸的夾角H決定其色調(diào),而向量長(zhǎng)度S決定其飽和度,整個(gè)平面在灰度軸上的位置決定了平面內(nèi)所有點(diǎn)的亮度I。于是得到由RGB到HSI的轉(zhuǎn)換關(guān)系:[!--empirenews.page--]
1.2.2 色飽和度增強(qiáng)算法
HSI模型可以方便地對(duì)色調(diào)和飽和度進(jìn)行調(diào)整,但是其運(yùn)算比較復(fù)雜,很難用硬件來(lái)實(shí)現(xiàn)。不過(guò)根據(jù)其原理,可以直接在RGB空間進(jìn)行色飽和度的調(diào)整。這里假設(shè)RGB立方體內(nèi)任一點(diǎn)P(r,g,b),容易求出其在灰度軸上的投影點(diǎn)P*,連接P和P*,這是一條等色調(diào)線,如圖3所示。
只要在P*P的延長(zhǎng)線上找到合適的點(diǎn)(如P1或P2),就可以對(duì)P點(diǎn)的飽和度進(jìn)行增強(qiáng)。由于已知P和P*的坐標(biāo),可以求得直線P*P方程:
令式(6)的值為t,可求得直線P*P的參數(shù)方程:
則色飽和度的調(diào)整就可通過(guò)調(diào)整t的取值來(lái)實(shí)現(xiàn)。當(dāng)t∈(-1,0)時(shí),得到的點(diǎn)在P*和P之間,飽和度減弱;當(dāng)t>O時(shí),得到的點(diǎn)在P*P之外,飽和度增強(qiáng)。
2 設(shè)計(jì)思路
2.1 對(duì)比度擴(kuò)展
用硬件實(shí)現(xiàn)浮點(diǎn)運(yùn)算效率較低,這里采用查表的方法,在YCbCr空間進(jìn)行灰度變換,如圖4所示。
2.2 色飽和度增強(qiáng)
色飽和度調(diào)整在RGB空間進(jìn)行,設(shè)計(jì)為流水線操作,如圖5所示。
[!--empirenews.page--]
色飽和度增強(qiáng)是有針對(duì)性的,對(duì)于不同色飽和度的像素要作不同的處理。可以把一幅圖像的色飽和度分為4個(gè)等級(jí),對(duì)于色飽和度低的像素進(jìn)行增強(qiáng)處理,而對(duì)于飽和度很高的像素則不進(jìn)行處理甚至是抑制處理。圖5所示是進(jìn)行2級(jí)的色飽和度調(diào)整的流水線操作:第1級(jí)令t=1,運(yùn)算結(jié)果若溢出則轉(zhuǎn)入第2級(jí)調(diào)整(t=0.5)。若運(yùn)算結(jié)果還是溢出,則輸出保持原輸入值(iR,iC,iB)。流水線操作使得平均每個(gè)像素的飽和度調(diào)整只需1個(gè)時(shí)鐘周期就能完成,只是輸入相對(duì)輸出有6個(gè)時(shí)鐘周期的延時(shí)。為了達(dá)到更好的效果,可以增加飽和度調(diào)整運(yùn)算的級(jí)數(shù),后果是需要占用更多的硬件資源以及帶來(lái)更長(zhǎng)的延時(shí)。
3 系統(tǒng)結(jié)構(gòu)
該實(shí)驗(yàn)平臺(tái)為Ahera公司的DE2開(kāi)發(fā)板。系統(tǒng)結(jié)構(gòu)如圖6所示。
4 測(cè)試結(jié)果
用ModelSim對(duì)灰度變換模塊進(jìn)行仿真的結(jié)果,如圖7所示。對(duì)色飽和度增強(qiáng)模塊進(jìn)行仿真的結(jié)果,如圖8所示。
視頻圖像測(cè)試對(duì)比效果如圖9和圖10所示。
5 結(jié)論
由實(shí)驗(yàn)結(jié)果可知,該方法能有效改善圖像畫(huà)質(zhì),提升視覺(jué)效果。色飽和度增強(qiáng)處理由于其算法的特點(diǎn),用硬件系統(tǒng)很難做到實(shí)時(shí)處理。從基本原理出發(fā),找到一種比較簡(jiǎn)便的,在RGB空間就能進(jìn)行的色飽和度增強(qiáng)處理方法,在滿足實(shí)時(shí)性要求的同時(shí),能有效達(dá)到色彩增強(qiáng)的目的。但也是由于視頻圖像處理的實(shí)時(shí)性要求以及硬件系統(tǒng)實(shí)現(xiàn)的特點(diǎn),該方法更多地講究效率,某些細(xì)節(jié)部分還不夠完善,比如色彩失真等問(wèn)題。進(jìn)一步研究重點(diǎn)可能就在于如何優(yōu)化硬件配置以及解決算法中浮點(diǎn)運(yùn)算的問(wèn)題。