一種基于fpga的單sram實現乒乓算法的方法及實時紅外圖像處理方法
【技術領域】
[0001]本發(fā)明涉及紅外成像的實時矯正領域,尤其是涉及需要大面積緩存數據的實時圖像處理領域。
【背景技術】
[0002].基于FPGA的實時圖像處理方案,在紅外圖像采集過程中具有重要作用,彌補了紅外探測器性能不佳的現狀,增強了紅外圖像的可視度。
[0003].常用的圖像處理算法一一例如直方圖拉伸、DDE增強等,均是建立在整幅圖像信息的基礎上,在具體實現過程中,通常先將整幅圖像數據緩存到外部存儲空間,再對緩存數據進行處理、輸出。
[0004].為了保持圖像處理過程的連續(xù)性,防止圖像處理任務對數據接收造成阻塞,常采用兩片存儲芯片交替工作的乒乓算法實現對圖像處理過程中的數據流控制。該方案中,兩片存儲芯片不僅增加了生產成本,而且占用了有限的I/O 口,增大了電路設計的難度。
【發(fā)明內容】
[0005]本發(fā)明的目的是克服現有乒乓算法的不足,提出一種更好的適用于實時圖像處理的基于FPGA的單SRAM實現乒乓算法的方法及實時紅外圖像處理方法。
[0006]本發(fā)明為實現上述目的,采用如下技術方案:
一種基于FPGA的單SRAM實現乒乓算法的方法,其特征在于,包括:
步驟A:在FPGA中實例化兩個處理模塊:第一模塊、第二模塊;
步驟B:將SRAM的地址空間等分為兩個連續(xù)的地址塊:第一地址塊、第二地址塊;
步驟C:確定時間片大?。?br> 步驟D:第一模塊、第二模塊在同一個時間片內分別先后完成對SRAM第一地址塊或第二地址塊的讀/寫操作;
步驟E:經過一定數量的時間片后,當前處理狀態(tài)結束,第一模塊、第二模塊交換SRAM地址塊,進入下一處理狀態(tài)。
[0007]其進一步特征在于:所述第一模塊、第二模塊均具有各自的標志位。
[0008]進一步的:所述第一模塊、第二模塊通過FPGA的I/O 口直接和同一 SRAM相連。
[0009]所述第一模塊、第二模塊的標志位標示自身是否正占用SRAM總線,當其中一模塊占用SRAM總線時,另一模塊處于等待狀態(tài)。
[0010]所述時間片大小不小于第一模塊、第二模塊均完成一次數據處理所需的時間。
[0011]進一步的:不同時間片上第一模塊、第二模塊對SRAM的讀/寫操作具有周期對稱關系O
[0012]所述步驟E中一定數量的時間片,指第一模塊、第二模塊均處理完成相應地址塊中的數據所需的時間,最小值由SRAM中待處理數據量的大小除以每個時間片所處理的數據量決定;所述下一處理狀態(tài)和當前處理狀態(tài)具有周期對稱關系。
[0013]一種采用上述方法的實時紅外圖像處理方法,其特征在于,包括下述步驟:
步驟1:一塊紅外陣列,以單個像素點為單位,周期性的輸出采集到的紅外圖像;
步驟2:FPGA中實例化得第一模塊,所述第一模塊在接收步驟I的輸出數據的同時,完成包括圖像的盲元補償、兩點矯正的數據預處理工作,并將處理后的圖像數據緩存到SRAM的第一地址塊或第二地址塊中;在處理數據的同時,所述第一模塊統計圖像的直方圖,并在一幅圖像接收完成后將直方圖數據寫入SRAM的同一地址塊,處理結束,交換第一地址塊和第二地址塊對應關系,轉到下一狀態(tài);
步驟3:FPGA中實例化得第二模塊,所述第二模塊在開始時,從SRAM相應的地址塊中讀取步驟2寫入的圖像直方圖數據,并根據該數據,完成對存儲在相應地址塊中數據的圖像處理工作;
步驟4:將步驟3中處理完成的數據以圖像形式顯示在監(jiān)視器上。
[0014]優(yōu)選的:上述步驟2、3工作時間為步驟I的像素輸出周期。
[0015]本發(fā)明提出了一種基于FPGA的單SRAM實現乒乓算法的方法,以及采用該方法的實時紅外圖像處理方法。該方法僅需一片SRAM芯片即可滿足圖像處理對數據緩存的要求,實現乒乓算法的功能,在降低成本、節(jié)約資源及提高工程效率方面具有明顯效果。
【附圖說明】
[0016]圖1是本發(fā)明的硬件結構圖。
[0017]圖2是本發(fā)明的算法流程圖。
[0018]圖3是本發(fā)明的實時紅外圖像處理方法示意圖。
【具體實施方式】
[0019]下面將參考附圖詳細說明本發(fā)明的實施例。
[0020]圖1是本發(fā)明一種基于FPGA的單SRAM實現乒乓算法的電路圖。如圖1所示,該電路包括:一片FPGA 1、一片SRAM 2,并且FPGA I及SRAM 2通過I/O 口 3相連。
[0021]圖1中FPGAI中實例化的兩個模塊:第一模塊4、第二模塊5,兩模塊的作用是協調模塊間對于I/o 口 3的操作,防止不同模塊同時對I/O 口 3操作時產生冒險,可根據不同的使用情況,填充額外的處理函數。當標志位6置位時,第一模塊4獲得I/O 口 3的使用權,當標志位7置位時,第二模塊5獲得I/O 口 3的使用權,運行開始時標志位6、7均置零,從而保證在兩模塊交替占用I/O 口 3的過程中,不會出現同時訪問I/O 口的危險情況發(fā)生。
[0022]標志位和時間片沒有必然的聯系,但是在一個時間片周期內,兩個標志位至少各置位一次,以保證模塊的并發(fā)運行。標志位由相應模塊控制,因此在模塊不使用SRAM時應主動將標志位置零,讓出SRAM的使用權,此時模塊依然可以繼續(xù)運行,當模塊需要占用SRAM時需先查詢另一模塊標志位是否置位,僅當另一模塊標志位置零時,可以重新獲得SRAM使用權,并且需要立即將自身標志位置位。
[0023]圖1中SRAM中具有兩個連續(xù)的第一地址塊8和第二地址塊9,根據所需空間大小,可適當調整該地址塊的大小,實施例中采用等分SRAM地址空間的方法。將SRAM劃分不同的地址塊主要是模擬兩塊SRAM的功能,在大量數據處理的過程中起到數據緩存的作用,使功能模塊化。
[0024]圖2是本發(fā)明一種基于FPGA的單SRAM實現乒乓算法的電路的工作流程圖。如圖2所示,主要包括:10狀態(tài)1、11標志位1、14狀態(tài)2、