周 陽 楊宏海 劉 勇 傅 強
(北京航天計量測試技術研究所,北京 100076)
高光譜紅外成像系統的乒乓緩存設計
周 陽 楊宏海 劉 勇 傅 強
(北京航天計量測試技術研究所,北京 100076)
通過比較三種常用緩存方式的異同,介紹了高光譜成像系統中一種協調數據傳輸與處理速度的乒乓緩存結構,討論了乒乓緩沖結構的運行和控制原理。以高速大容量的SRAM以及高性能FPGA器件為平臺,設計了一種適應于高光譜成像數據處理系統的乒乓緩存結構,并進行RTL仿真和板級驗證。實驗表明,該方案可以高效完成大量實時視頻數據的緩沖和處理,有效提高了系統工作效率,且穩定可靠。
高光譜成像 乒乓 緩沖存儲器 FPGA
在高光譜成像系統中,需要實時處理和傳輸龐大的高光譜數據立方體,通過算法對圖像實現增強的同時保留其光譜信息的真實性,因此對探測系統的視頻處理部分提出了很高的要求,需要采用高速處理器,并建立快速有序的視頻輸入輸出機制。本系統采用凝視型中波紅外高光譜成像方式,在前端光學系統中利用可調諧聲光濾光器(AOTF)進行分光,根據驅動頻率的調諧對入射光進行波長選擇性透過,實現高光譜分辨率的成像探測[1]。
高光譜紅外成像系統的三維立體數據算法復雜,數據量大,需要高速的處理能力。本系統采用基于單FPGA的高光譜視頻處理硬件平臺,采用一塊高性能FPGA來完成實時數據處理和控制任務。在高光譜視頻處理系統中,主處理器的視頻算法實現時間往往不是固定不變的,而后端的圖像輸出接口卻是使用均勻速度對外傳輸視頻數據,因此在FPGA和視頻輸出端口之間,會存在時間上的不同步,這樣就會導致視頻數據的丟失,影響數據的完整性,因此需要在二者之間增加緩存結構[2]。本文主要對乒乓緩存結構原理進行分析,在此基礎上結合高光譜紅外視頻處理系統,設計適用于FPGA系統的乒乓緩存輸入輸出結構,給出了具體設計方法。
高光譜紅外探測組件為數據處理系統提供原始三維紅外光譜數據。一定時序下紅外焦平面完成紅外視頻信號的積分輸出,同步A/D 轉換,將處理完的數據輸出到下一級FPGA圖象處理電路單元。信號處理電路根據外部指令將上級的數字視頻信號進行一系列的視頻處理(主要包括:非均勻性校正,盲元替代,視頻增強,亮度調節等),處理后的數字視頻信號將通過數字視頻接口(Cameralink)輸出,同時也可經過視頻轉換電路轉換成標準PAL制模擬視頻。
系統以FPGA為視頻處理核心,輔以外圍信號調理、AD轉換、控制接口、視頻傳輸接口以及電源變換等電路完成高光譜紅外探測的驅動、信號采集、功能控制、視頻處理、視頻輸出等功能。原理框圖如圖1所示。
乒乓緩存是一種用于數據流控制的處理技巧,在FPGA時序設計中使用非常廣泛,是一種典型的以面積換速度的設計思想。乒乓緩存主要通過輸入輸出數據選擇單元,控制兩個數據緩沖區中輸入輸出數據的走向,基本原理如圖2所示。其基本處理流程為:在第一個緩存周期,將輸入的數據流緩存至數據緩存區1中;在第二個緩存周期,通過輸入數據選擇單元的切換,將輸入的數據流緩存至數據緩存區2中,同時將先前存入數據緩存區1的數據通過輸出數據選擇單元送至后續模塊進行處理;在第三個緩存周期,重新切換數據輸入輸出數據選擇單元,將輸入數據流緩存值數據緩存區1的同時對數據緩存區2中的數據進行讀取;之后按照前面的流程反復進行操作[3,4]。乒乓緩存的最大特點是,通過輸入輸出數據選擇單元按照節拍相互配合切換,將經過緩存的數據流不停的發送到后續處理模塊,將加入了乒乓緩存的兩個數據緩存模塊當作一個整體,對這個整體的輸入輸出端進行觀察可以發現輸入輸出數據都是連續不斷的,實現了數據流無縫緩沖和實時存取的流水線式處理,非常適合于對實時性要求較高的應用場合[4]。
乒乓緩存結構與雙口RAM較為相似,但它與普通雙口RAM又有著本質區別,主要表現在以下幾個方面:1)普通雙口RAM是單個存儲體構成的芯片,具有兩套完全獨立的數據線、地址線、讀寫控制線,乒乓緩存則由包含兩個相互獨立存儲體的多片IC構成,從而使其在結構、速度、容量等方面具有更大的靈活性;2)雙口RAM允許兩個獨立的系統同時對該存儲器進行隨機訪問,而從兩個端口訪問同一地址時,指向的必定是存儲體內的同一存儲單元,而乒乓緩存結構則分別指向屬于SRAM1和SRAM2的兩個不同的存儲單元;3)乒乓緩存結構雙口指向的存儲區(SRAM1還是SRAM2)可以由外部信號來控制,而普通雙口RAM則必須由地址線來控制[5]。
FIFO可以進行雙端操作,但是數據必須先進先出,不能進行隨機性的訪問,從容量大小來看,雙口RAM比FIFO要大一些,但總的來說,這兩種緩沖結構的存儲容量還是相對較小,并不適合于高速視頻處理系統[6]。乒乓緩存結構的上述特點決定了可以用相對便宜的高速大容量SRAM、外圍邏輯器件構成比雙口RAM以及高速FIFO更適合高光譜視頻處理系統所需要的緩沖存儲器。
實現乒乓緩存結構的關鍵是SRAM的選擇以及控制器的設計。通常兩片SRAM都選用兩個速度、容量以及其它特性完全相同的靜態存儲器,這是由乒乓緩存結構實際工作時電路狀態轉換的對稱性決定的。SRAM器件的速度應高于外部電路所要求的數據輸入、輸出速度,其容量應不小于需要緩存的數據量[7]。
在高光譜紅外視頻處理系統設計中,經過視頻處理操作之后的光譜圖像數據需按照特定時序,利用Cameralink接口傳輸至后續處理單元。由于紅外光譜圖像像素處理時鐘與Cameralink工作時鐘是不相同的,而乒乓緩存結構是兩個異步時鐘域間的數據傳輸的一種有效解決方案。
FPGA把經過視頻處理操作之后的數據緩存于外接的SRAM,使用兩片SRAM對數據實現乒乓,利用控制邏輯按照一定的節拍對兩片SRAM進行反復切換操作,使輸入輸出兩端的數據連續不斷。
乒乓緩存控制原理如圖3所示。經過處理后的光譜圖像數據端總是寫入SRAM進行緩存,因此該端口只控制寫使能而禁止讀使能;同理,要生成Cameralink時序的數據總是從SRAM進行讀取,該端口只需控制讀使能而禁止寫使能。
本系統中的乒乓緩存周期設定為一幀光譜圖像時間。乒乓結構初始設置SRAM1可寫,在第一個緩存周期,圖像處理后數據將寫入SRAM1。在寫入的同時,對寫入像素數進行計數,本系統的紅外光譜圖像分辨率為320×256,當計數器等于320×256,即一幀圖像數據完成寫入時,對數據選擇單元進行切換,將SRAM1置于可讀,將SRAM2置于可寫。此時啟動Cameralink時序生成模塊,將SRAM1中的緩存數據讀出并按照標準Cameralink時序發送出去;同時,可以啟動第二幀光譜圖像數據寫入,將之緩存入SRAM2中。此后重復上述過程,即可實現數據的格式轉換和連續傳輸。
如前所述,圖像像素處理時鐘與Cameralink工作時鐘是不同的,因此乒乓緩存結構的輸入和輸出端分屬兩個異步時鐘域。而數據選擇單元的切換信號是在圖像像素處理時鐘域中生成,因此在Cameralink時鐘域中使用該切換信號之前需要先進行同步化處理。
本系統中,乒乓緩存控制器與SRAM驅動器采用Verilog HDL編寫,并編寫相應Testbench,利用Modelsim軟件進行RTL仿真,仿真波形如圖4所示。當控制信號wr_switch信號為0時,FPGA向SRAM1中寫入經過處理后的光譜圖像數據,Cameralink模塊從SRAM2中讀取上一幀光譜圖像數據(第一幀除外);當wr_switch為1時,FPGA改向SRAM2中寫入處理后的光譜圖像數據,Cameralink從SRAM1中讀取上一幀光譜圖像數據,此后反復循環此過程。
將該程序模塊加入高光譜紅外圖像處理系統程序中進行聯調,通過JTAG端口下載入FPGA,實驗表明,乒乓緩存結構工作穩定可靠,系統運行正常。
本文重點分析了乒乓緩存結構的工作原理和實現方法,并結合高光譜紅外視頻處理系統的高實時性、大數據量等特點,討論了基于乒乓緩存結構的高光譜紅外圖像Cameralink輸出的實現方法。經過仿真和實驗說明,該乒乓結構非常適合對視頻數據流進行流水線式處理,可以高效完成大量實時視頻數據的無縫緩沖和處理,對提升高光譜視頻處理系統的工作效率具有重要作用。
[1] 趙慧潔,周鵬威,張穎等.聲光可調諧濾波器的成像光譜技術[J].紅外與激光工程,2009,38(2):189~193.
[2] 李武森,遲澤英,陳文建.高速DSP圖像處理系統中的乒乓緩存結構研究[J].光電子技術與信息,2005(3):76~79.
[3] 王智,羅新民.基于乒乓操作的異步FIFO設計及VHDL實現[J].電子工程師,2005,31(6):13~16.
[4] 周如輝.實時視頻處理系統中乒乓緩存控制器的設計[J].電子元器件應用,2006(4):66~68.
[5] 劉書明,羅軍輝.雙口RAM在DSP系統中的應用[J].國外電子元器件, 2002(11):64~66.
[6] 唐躍平,韓存兵,李詠強.雙口RAM與FIFO芯片在數據處理系統中應用的比較[J].微機與應用,2000(9):27~28.
[7] 楊朋林,張曉飛.FPGA控制實現圖像系統視頻圖像采集[J].計算機測量與控制,2003,11(6):451~454.
Design of Ping-pong Buffer Structure for HyperspectralInfrared Imaging System
ZHOU Yang YANG Hong-hai LIU Yong FU Qiang
(Beijing Aerospace Institute for Metrology and Measurement Technology, Beijing 100076,China)
A ping-pong buffer structure belonging to the hyperspectral imaging system is introduced which can effectively coordinate data transmission and processing speed by comparing with two other common ways of caching. The operation and control principle of ping-pong buffer structure is discussed. Based on the platform which consists of high-speed large-capacity SRAM and high-performance FPGA device,a ping-pong buffer structure to adapt to the hyperspectral imaging data transmission system is designed. Also the RTL simulation and the board-level verification are completed. Experiments show that this structure is efficient at seamless buffering and processing the real-time video data, and effectively improves the efficiency of the system,and proved to be stable and reliable.
Hyperspectral imaging Ping-pong Buffer structure FPGA
周陽( 1991-) ,男,主要研究方向: 光譜成像系統設計及圖像處理系統設計。
2017-02-26,
2017-03-02
1000-7202(2017) 02-0001-04
10.12060/j.issn.1000-7202.2017.02.01
TN219
A