關(guān) 閉

新聞中心

EEPW首頁(yè) > 安全與國(guó)防 > 設(shè)計(jì)應(yīng)用 > 紅外圖像處理中平臺(tái)實(shí)時(shí)直方圖均衡器的SoC實(shí)現(xiàn)

紅外圖像處理中平臺(tái)實(shí)時(shí)直方圖均衡器的SoC實(shí)現(xiàn)

作者: 時(shí)間:2008-03-12 來(lái)源:網(wǎng)絡(luò) 收藏

 

  O引言

  直方圖均衡是紅外圖像處理中簡(jiǎn)單有效的一種圖像增強(qiáng)方法[1]。直方圖在增強(qiáng)目標(biāo)的同時(shí)也放大了背景和噪聲信號(hào),因此有人提出了直方圖均衡算法,該算法能達(dá)到增強(qiáng)目標(biāo)且較好地抑制背景和噪聲的目的[2,5],具有很大的應(yīng)用價(jià)值。

  傳統(tǒng)直方圖均衡和直方圖均衡算法都具有計(jì)算量和存儲(chǔ)量大的缺點(diǎn),不利于實(shí)時(shí)圖像處理應(yīng)用。結(jié)構(gòu)的處理方式可以大幅度減小存儲(chǔ)量和計(jì)算量,可以實(shí)現(xiàn)實(shí)時(shí)處理。受電子技術(shù)發(fā)展水平的限制,從公開(kāi)發(fā)表的論文看,以往的大都具有硬件結(jié)構(gòu)過(guò)于復(fù)雜、成本高、軟件操作不靈活等缺陷,在應(yīng)用中具有很大的局限性[2,4]。

  某課題中使用了法國(guó)Sofradir公司288 x4的線陣紅外探測(cè)器,該探測(cè)器每列輸出288個(gè),12位的傳輸速率為16 MHz/s,每秒大約輸出5萬(wàn)多列數(shù)據(jù),實(shí)時(shí)進(jìn)行變換是課題的基本要求。經(jīng)過(guò)深入研究,在巧妙地引入Altera公司FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)技術(shù)的最新成果NiosⅡ軟核微處理器后,硬件設(shè)計(jì)被大幅度簡(jiǎn)化,最后,均衡算法能以SOC(片上系統(tǒng))的方式實(shí)現(xiàn)。

  1平臺(tái)直方圖均衡算法的原理

  圖像的直方圖就是圖像中每一個(gè)級(jí)與其出現(xiàn)頻數(shù)間的統(tǒng)計(jì)關(guān)系。它能給出該圖像概貌性的描述,如圖像的灰度范圍、每一級(jí)灰度的頻數(shù)等,是一個(gè)一維的

  式中:L為該幅圖像中的灰度等級(jí)數(shù);p(k)為第k個(gè)灰度級(jí)的;nk為第k個(gè)灰度級(jí)中所包含的像素?cái)?shù);n為該幅圖像中的像素?cái)?shù)。

  平臺(tái)直方圖均衡算法是在直方圖均衡時(shí)對(duì)灰度的權(quán)重設(shè)上限和下限兩個(gè)平臺(tái),當(dāng)某一級(jí)灰度的像素?cái)?shù)大于或小于所設(shè)定的上限或下限平臺(tái)時(shí),權(quán)重被箝在最大值或最小值,這樣可避免變換后諸如大塊云彩等大面積背景占據(jù)過(guò)大的動(dòng)態(tài)范圍,從而為感興趣的細(xì)節(jié)部分留出提升空間。

  課題要求將4 096的像素級(jí)壓縮為256級(jí),而原始不可能占滿O~4 095的每一級(jí),若原始圖像數(shù)據(jù)中像素級(jí)的最大值為Nmax、最小值為Nmin,那么,通過(guò)仿真要將像素級(jí)從Nmin~Nmax映射到O一255。

  設(shè)映射后第i級(jí)灰度的像素個(gè)數(shù)為ni,CDF(i)是累積分布函數(shù),P1和P2分別為設(shè)定的上限和下限平臺(tái)值,其算法如下:

  

  

  2 平臺(tái)直方圖的SOC實(shí)現(xiàn)

  從紅外探測(cè)器前端信號(hào)預(yù)處理電路輸出的信號(hào)有12位數(shù)據(jù)信號(hào)data、像素時(shí)鐘信號(hào)clk_16M、列同步信號(hào)clk_l(低電平有效)、幀同步信號(hào)clk-f(低電平有效)。圖1是其時(shí)序圖,clk一32M和clk一64M是clk一16M經(jīng)鎖相環(huán)2倍頻和4倍頻的輸出時(shí)鐘。

  根據(jù)需要,像素在每個(gè)灰度等級(jí)上的個(gè)數(shù)統(tǒng)計(jì)表只需一個(gè)24 bit×4 k存儲(chǔ)器即可滿足應(yīng)用要求;灰度只需8 bit×4 k存儲(chǔ)器即可滿足應(yīng)用要求。在實(shí)時(shí)應(yīng)用場(chǎng)合,像素灰度等級(jí)個(gè)數(shù)統(tǒng)計(jì)表和灰度工作在乒乓方式,因此系統(tǒng)總存儲(chǔ)量為32 bit×8 k。目前很多價(jià)格較低的FPGA中都集成了滿足應(yīng)用要求的可編程存儲(chǔ)器資源,因此存儲(chǔ)器可集成在.FPGA中。如果能將算法中的邏輯控制和算術(shù)運(yùn)算都集成在FP-GA中,那么算法即可以SOC方式實(shí)現(xiàn)。

  算法中涉及到大量的除法運(yùn)算,除法運(yùn)算器將消耗FPGA大量的邏輯資源和布線資源(以Altera公司的:FPGA為例,一個(gè)16位的并行除法器約消耗l 000個(gè)LE(邏輯單元)和芯片大部分布線資源),為了提高速度性能和電路運(yùn)行的穩(wěn)定性,加上幾級(jí)流水線,邏輯資源和布線資源的消耗量將成倍增加。過(guò)度的邏輯資源尤其是布線資源的消耗會(huì)使電路的速度性能大幅度降低,有時(shí)甚至不能適配器件,使設(shè)計(jì)失敗。顯然,這種設(shè)計(jì)方案是不合理的。Ahera公司最新推出的NiosⅡ軟核微處理器提供了很好的解決方案。該處理器能以極小的硬件代價(jià)換取很高的性能(600~700個(gè)LE的邏輯資源和少量的布線資源消耗),目前,F(xiàn)PGA的容量都比較大,設(shè)計(jì)中根本消耗不了那么多資源,芯片中剩余的硬件資源往往比NiosⅡ軟核微處理器所消耗的硬件資源多,所以設(shè)計(jì)經(jīng)常不會(huì)增加硬件成本。它不同于傳統(tǒng)的微處理器,有如下特點(diǎn):

  a)提供大量免費(fèi)IP核,例如微處理器核NiosⅡ、定時(shí)/計(jì)數(shù)器、串口、DMA、SDRAM,SRAM,SBRAM、.Flash控制器等,用戶可以根據(jù)需要選擇IP核搭建自己的嵌入式系統(tǒng),系統(tǒng)具有很大的靈活性。

  b)提供了界面友好的硬件和軟件設(shè)計(jì)開(kāi)發(fā)環(huán)境,硬件設(shè)計(jì)流程與傳統(tǒng)的FPGA設(shè)計(jì)相同,軟件設(shè)計(jì)支持標(biāo)準(zhǔn)c語(yǔ)言編程,開(kāi)發(fā)環(huán)境提供了大量的庫(kù)函數(shù)供用戶調(diào)用,支持JTAG調(diào)試,軟件調(diào)試方法與現(xiàn)有流行微處理器的調(diào)試方法相同,除此之外,配合硬件環(huán)境,可以完成很多,這項(xiàng)功能是大部分傳統(tǒng)微處理器不具備的。 c)支持嵌入式操作系統(tǒng)的移植。

  d)支持32級(jí)中斷。

  使用NiosⅡ軟核微處理器后,可避開(kāi)外擴(kuò)高性能微處理器的復(fù)雜硬件設(shè)計(jì),平臺(tái)均衡器的實(shí)現(xiàn)方案如圖2所示。

  

  

  圖2中,統(tǒng)計(jì)表1、統(tǒng)計(jì)表2、查找表1和查找表2都是雙口RAM,都工作在乒乓方式。將16 MHz的像素時(shí)鐘經(jīng)FPGA的鎖相環(huán)倍頻到32 MHz和64 MHz,在像素時(shí)鐘的下降沿鎖存列同步、幀同步和數(shù)據(jù)信號(hào),并將鎖存信號(hào)和倍頻時(shí)鐘給時(shí)序控制器,將鎖存的幀同步信號(hào)在其下降沿二分頻產(chǎn)生高低電平信號(hào)用來(lái)區(qū)分奇幀和偶幀。

  圖2的工作過(guò)程如下:當(dāng)工作在奇幀時(shí),統(tǒng)計(jì)表1雙口RAM實(shí)時(shí)完成像素灰度等級(jí)個(gè)數(shù)的統(tǒng)計(jì)工作,統(tǒng)計(jì)表2不工作;查找表l完成實(shí)時(shí)灰度查找工作,查找表2不工作。統(tǒng)計(jì)表的工作過(guò)程如下:當(dāng)鎖存的列同步信號(hào)為低電平時(shí),將鎖存的數(shù)據(jù)信號(hào)作為雙口RAM讀端口和寫(xiě)端口的地址信號(hào),用clk_16M的反相信號(hào)作為雙口RAM的讀使能信號(hào),用clk_64M作為雙口RAM的驅(qū)動(dòng)時(shí)鐘信號(hào);當(dāng)clk_16M為高電平且clk一32M為低電平時(shí),在clk一64M的上升沿將讀出的像素灰度個(gè)數(shù)加1,當(dāng)clk_16M為高電平且clk一32M為高電平時(shí),用clk_32M作為寫(xiě)使能信號(hào),在clk-64M的上升沿將灰度個(gè)數(shù)寫(xiě)入灰度統(tǒng)計(jì)表1的雙口RAM中。經(jīng)過(guò)上面的操作,即可完成一次像素灰度個(gè)數(shù)的統(tǒng)計(jì)工作。此時(shí),將鎖存的數(shù)據(jù)信號(hào)作為查找表l雙口RAM的讀端口地址信號(hào),用elk_16M作為雙口RAM的讀驅(qū)動(dòng)時(shí)鐘,用鎖存的列同步信號(hào)的反相信號(hào)和該反相信號(hào)延時(shí)一個(gè)像素時(shí)鐘周期的信號(hào)相與后的信號(hào)作為雙口RAM的讀使能信號(hào)(因?yàn)殡p口RAM帶一級(jí)流水線,所以不能簡(jiǎn)單地將列同步的反相信號(hào)作為讀使能信號(hào)),實(shí)時(shí)地輸出變換的灰度數(shù)據(jù),列同步和幀同步的輸出同樣要考慮雙口RAM的流水線。當(dāng)幀同步信號(hào)為高電平時(shí),時(shí)序控制器向NiosⅡ發(fā)出中斷信號(hào)1,NiosⅡ接收到中斷信號(hào)1后,讀出統(tǒng)計(jì)表1中的像素灰度個(gè)數(shù)統(tǒng)計(jì)值,完成灰度查找表的解算并將解算的灰度查找表寫(xiě)入查找表1中,同時(shí)將統(tǒng)計(jì)表1中的數(shù)據(jù)清0。當(dāng)工作在偶幀時(shí),各模塊的工作與奇幀相反。NiosⅡ的串口用來(lái)接收設(shè)定的平臺(tái)命令和平臺(tái)值。串口工作在中斷狀態(tài)下,具有最高的中斷優(yōu)先級(jí)。串口以"起始字符+平臺(tái)命令+平臺(tái)值24位數(shù)據(jù)+結(jié)束字符+校驗(yàn)和"的通信協(xié)議進(jìn)行數(shù)據(jù)接收,接收完后,串口發(fā)送口以"起始字符+接收正確與否命令+結(jié)束字符+校驗(yàn)和"的傳輸協(xié)議向上位機(jī)發(fā)回告信號(hào)。

  3設(shè)計(jì)中應(yīng)注意的問(wèn)題和實(shí)驗(yàn)結(jié)果

  設(shè)計(jì)中發(fā)現(xiàn)有兩個(gè)問(wèn)題必須引起高度注意:

  a)統(tǒng)計(jì)表的讀寫(xiě)端口信號(hào)受紅外探測(cè)器前端電路輸出信號(hào)和NiosⅡ信號(hào)的切換控制,如果控制不當(dāng),很容易產(chǎn)生邏輯混亂。建議每次切換時(shí)先將使能控制信號(hào)置為無(wú)效狀態(tài),然后將時(shí)鐘信號(hào)置為一個(gè)固定的高電平,切換使能控制信號(hào),再切換時(shí)鐘驅(qū)動(dòng)信號(hào)和數(shù)據(jù)信號(hào)。而且每次NiosⅡ在讀統(tǒng)計(jì)表中的值之前,最好有一個(gè)小的延時(shí)程序,第1個(gè)數(shù)據(jù)讀2遍。由于系統(tǒng)每次切換的時(shí)間約1 s,NiosⅡ完成一次灰度解算和清0不需要這么長(zhǎng)時(shí)間,每次完成解算和清0后,讀寫(xiě)端口控制信號(hào)由探測(cè)器前端電路輸出信號(hào)控制。經(jīng)過(guò)這種處理,系統(tǒng)能穩(wěn)定地工作,不會(huì)出現(xiàn)邏輯混


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉