圖像自適應(yīng)分段線性拉伸算法的FPGA設(shè)計(jì)
2.2 硬件設(shè)計(jì)
通過以上設(shè)計(jì)思路的分析,設(shè)計(jì)主要包括灰度直方圖統(tǒng)計(jì)、除法和拉伸運(yùn)算3部分。下面進(jìn)行詳細(xì)介紹。
2.2.1 雙端口RAM
XC4VLXl5芯片具有豐富的BlockRAM資源,用它構(gòu)成雙端口RAM,進(jìn)行灰度直方圖統(tǒng)計(jì)。像素的灰度值作為雙端口RAM的地址,對(duì)應(yīng)空間存儲(chǔ)此灰度值在1幀圖像里的頻數(shù)。以320×256幀大小、灰度值為14 b的紅外圖像為例,在每個(gè)像素灰度值都相同的極限情況下,每個(gè)地址空間需要的存儲(chǔ)的值為81 920,轉(zhuǎn)換為二進(jìn)制有17 b,故所需存儲(chǔ)空間大小為17 b×214。對(duì)雙端口RAM的操作分為三個(gè)階段:
(1)在幀正程時(shí),只需對(duì)A端口進(jìn)行讀/寫操作。根據(jù)接收到的像素灰度值,先讀出RAM中對(duì)應(yīng)地址空間的儲(chǔ)值,加“1”后回寫入原來的地址空間,這樣在每幀正程結(jié)束時(shí),就統(tǒng)計(jì)完了每個(gè)灰度值出現(xiàn)的頻數(shù),即完成了灰度直方圖統(tǒng)計(jì)。
(2)幀逆程時(shí),要同時(shí)對(duì)A,B端口進(jìn)行讀操作。對(duì)于A端口,依次從高地址讀取RAM中的數(shù),將讀取的數(shù)進(jìn)行累加,當(dāng)和大于幀像素個(gè)數(shù)的5%時(shí),此時(shí)對(duì)應(yīng)的地址值即為Xmax;類似地對(duì)B端口操作,從0地址開始讀RAM,可找到Xmin。將得到的灰度值Xmin和Xmax存入寄存器,作為除法器和下一幀圖像拉伸運(yùn)算的輸入。
(3)每幀最后將雙端口RAM清零,為下一幀灰度直方圖統(tǒng)計(jì)做準(zhǔn)備。由于雙端口RAM沒有整體清零功能,設(shè)計(jì)中采用從“O”地址開始。依次往高地址寫零的方式清零。
2.2.2 除法器
除法運(yùn)算通過調(diào)用ISE IP Core Generator生成的15位定點(diǎn)除法器來實(shí)現(xiàn),滿足高精度要求,而不采用逼近法。一幀圖像的拉伸只需調(diào)用一次除法器,提高了運(yùn)算的效率。在幀逆程計(jì)算Q:=16 384/(Xmax-Xmin)的值,對(duì)于15位輸入,除法器有18個(gè)時(shí)鐘周期的延時(shí),而這并不會(huì)影響圖像處理的實(shí)時(shí)性。
2.2.3 控制時(shí)鐘
在1個(gè)像素時(shí)鐘周期內(nèi)要完成讀RAM、加法計(jì)算和回寫RAM的操作,RAM的控制時(shí)鐘至少必須是像素時(shí)鐘的4倍。控制時(shí)鐘的選取還要考慮幀逆程的時(shí)間長(zhǎng)度,要在逆程里訪問RAM查找到Xmin和Xmax,還要完成RAM清零操作。FPGA系統(tǒng)時(shí)鐘為96 MHz,分頻后產(chǎn)生48 MHz,為像素時(shí)鐘8倍,用它作為雙端口RAM和除法器的控制時(shí)鐘,可滿足要求。
2.2.4 拉伸運(yùn)算
將式(1)進(jìn)行簡(jiǎn)單變換,可以記為:
Q值在上幀結(jié)束前已經(jīng)得到,根據(jù)式(2)拉伸運(yùn)算得到簡(jiǎn)化,只需1次減法和乘法運(yùn)算,得到積的小數(shù)點(diǎn)左移6位后,截取低8位就得到拉伸后的灰度值。需要注意的是,截取前要判定乘法是否溢出,如果溢出,結(jié)果置為最大灰度值255。
3 系統(tǒng)驗(yàn)證
采用飛機(jī)高空采集的地面紅外圖像作為驗(yàn)證模板,灰度拉伸前的原始圖像如圖2所示,整幅圖像對(duì)比度低,細(xì)節(jié)極不明顯。最大、最小灰度值按5%的比例選取,拉伸后的圖像如圖3所示,拉伸后可明顯看出河流、道路、汽車等地物的輪廓,但圖像中較亮和較暗的部分層次不清晰。若減小灰度值壓縮比例為2%,圖像的主要輪廓變化不明顯,較亮和較暗的部分將會(huì)顯現(xiàn)出一定層次,這表明被壓縮的區(qū)間相對(duì)變小,按比例拉伸的圖像范圍擴(kuò)大。分段線性拉伸的結(jié)果可好可壞,分段區(qū)間的選擇是關(guān)鍵,選取時(shí)要考慮原始圖像的質(zhì)量。噪聲和盲元數(shù)目較少時(shí),被壓縮的區(qū)間可適當(dāng)調(diào)小。
評(píng)論