基于FPGA的電子穩(wěn)像平臺的研究
通過上述方案的對比及系統(tǒng)的具體要求,設(shè)計中采用了場合并的辦法,具體實現(xiàn)由幀存控制器完成。
1.3幀存控制器
幀存儲器是圖像處理器與顯示設(shè)備之間的通道,所有要顯示的圖形數(shù)據(jù)先存放到幀存儲器中,然后再送到顯示設(shè)備進行顯示,因此幀存儲器的設(shè)計是圖形顯示系統(tǒng)設(shè)計的一個關(guān)鍵。傳統(tǒng)上,可以實現(xiàn)幀存儲器的存儲器件有多種,如DRAM、SDRAM及SRAM等。DRAM、SDRAM屬于動態(tài)存儲器,容量大、價格全家但速度較慢,且在使用中需要定時刷新。對于基于FPGA的視頻處理器,需要設(shè)計專用的刷新電路,增加了系統(tǒng)設(shè)計的復(fù)雜程度。SRAM速度高、接口簡單、容量較小。隨著集成電路技術(shù)的不斷發(fā)展,容量不斷增大,價格也不斷下降。在需要高速實時顯示的視頻處理系統(tǒng)中的使用越來越普遍。
幀存控制器的設(shè)計對于實現(xiàn)兩種不同視頻系統(tǒng)之間的圖像信號的存儲、采集和顯示顯得非常重要。為了保證數(shù)據(jù)處理與采集的連續(xù),設(shè)計中使用了兩組幀存儲器(FRAM1、FRAM2),由于數(shù)字化的圖像每幀大小為640×480=307200(16bit)共300K×16bit的數(shù)據(jù)量,筆者使用每組512K×16bit的靜態(tài)存儲器,存儲時間為12ns,可以保證快速地讀出和寫入圖像數(shù)據(jù)。圖3為幀存控制器的邏輯框圖。由于輸入信號為隔行掃描的圖像數(shù)據(jù),顯示輸出需要逐行掃描數(shù)據(jù),因此數(shù)據(jù)存入幀存儲器時需要進行處理。設(shè)計中采用場合并行法,將兩場的數(shù)據(jù)寫入一個幀存中,構(gòu)成一幅完整的逐行掃描圖像,系統(tǒng)利用VREF信號對此進行控制,產(chǎn)生的幀切換控制信號控制數(shù)據(jù)在兩個幀存中的切換。當VREF信號有效時,表明新的一場開始了,此時無效行計數(shù)器開始工作,控制不需要采集的圖像行,計數(shù)到閾值后,有效行計數(shù)器開始工作,控制所要采集的圖像行,并發(fā)出高位地十信號A[18..11];同樣,當HREF有效后,無效像素計數(shù)器開始計數(shù)每行中的無效像素,然后有效像素計數(shù)器開始計數(shù)需要采集的行聽有效像素;每次計滿640個像素后,等待下一次有效行信號的到來,同時將有效行計數(shù)器加1。由于系統(tǒng)選用的幀存容量較大,因此利用ODD的反相信號作為幀存地址的A10,為每行圖像提供了1024個存儲空間(實際使用640個),可以簡化數(shù)據(jù)寫入與讀出的控制電路。隔行的視頻信號就會被逐行地存儲到幀存體中??偩€隔離與控制電路用來完成數(shù)據(jù)在幀存中的寫入與讀出的同步。由于采用SRAM作為幀存體,有效像素的寫入與后續(xù)視頻接口的讀出不能在一個幀存體中同時進行,系統(tǒng)采用雙幀存輪流操作的方法,系統(tǒng)采用雙幀存輪流操作的方法:當數(shù)字化后的圖像信息寫入其中的一個幀存時,幀存控制器將另一個幀存中的像素順序讀出,送到顯示設(shè)備,反之亦然。
1.4視頻圖像的放大變換
應(yīng)用柵格理論幾何變換處理過程可以按下面方式進行描述:給定一個定義于點陣Λ1上已采樣信號,需要產(chǎn)生一個定義于另一個點陣Λ2上的信號。如果,Λ1中的每一個點也在Λ2中,那么此問題是上轉(zhuǎn)換(或內(nèi)插)問題,可以先將那些在Λ2中而不在Λ1中的點添零(即零填充),然后用一個作用于Λ2上的內(nèi)插濾波器估計這些點的值;若Λ1)Λ2,即為下轉(zhuǎn)換(或抽?。﹩栴},可以簡單地從Λ1中取出那么也在Λ2中的點。然而,為避免下采樣信號中出現(xiàn)混疊,需要對信號進行預(yù)濾波,以將其帶寬限制到Λ2*的沃格納晶體。上轉(zhuǎn)換和下轉(zhuǎn)換的過程示于圖4(a)、(b)中。更一般的情況,如果Λ1和Λ2互相不包含,就需要找到另一個即包括Λ1又包括Λ2的點陣Λ3,可以先將Λ1上采樣到Λ3,然后再下采樣到Λ2。此過程示于圖4(c)。圖4(c)中Λ3中的中間濾波器完成兩個任務(wù):首先,內(nèi)插出Λ1中漏下的采樣點;其次把Λ3中的信號頻譜限制于Λ2*的沃格納晶格。
由于系統(tǒng)中進行放大變換采用FPGA實現(xiàn),因此本文討論的重點在于如何簡化實現(xiàn)并提高轉(zhuǎn)換速度,上轉(zhuǎn)換中的上采樣過程為:
(1)式中Ψs,1和Ψs,3分別為原理圖像和上采樣信號;U(.)為上采樣運算;Λ2\Λ1表示在Λ2而不在Λ1內(nèi)的點的集合。插值濾波器的定義如下:
(2)式中,d(Λ)為柵格Λ的采樣密度;v*表示柵格Λ的轉(zhuǎn)逆柵格的Voronoi單元,即柵格Λ原點的單位元,它向所有柵格點平移將會無重疊地覆蓋整個連續(xù)空間。最簡單的插值濾波為線性插值,也可以采用二加權(quán)濾波的方法。圖像的縮放還可以采用3次樣條插值和小波分解的方法,雖然這些方法在理論上可以取得很好的圖像縮放效果,但計算復(fù)雜,即使采用快速算法,也難以實現(xiàn)視頻圖像的實時顯示。
針對視頻信號數(shù)據(jù)量大、數(shù)據(jù)流速度的特點,采用FPGA設(shè)計,可以完成幀存控制、視頻信號的實時放大與疊加功能。基于運算速度與算法實現(xiàn)的難易程度分析,對視頻信號的放大采用了簡單的線性插值的辦法,原理如圖5所示。視頻信號是以場或幀進行存儲的,由于數(shù)據(jù)寫入時存儲地址與圖像顯示的空間位置有確定的對應(yīng)關(guān)系,因此系統(tǒng)需要的放大處理就變?yōu)閷鎯w的地址線的控制問題。
對于本系統(tǒng)具體的4倍放大要求,將行同步信號先進行二倍行使能運算,并利用場同步信號對該寄存器進行復(fù)位,將生成后的二分頻行同步信號控制行地址發(fā)生器,也就是產(chǎn)生幀存儲器所需的高位地址;類似地利用像素時鐘、行同步信號和場同步信號就可以得到所需的低位地址。由于在幀存控制器向幀存儲器寫入數(shù)據(jù)時采用了一行點1024個位置的辦法,所以在低位地址后連接了一個比較器,當產(chǎn)生的低位地址小于640時,幀存儲器的讀信號有效,否則無效,以保證不會混疊入無效的數(shù)據(jù)。
1.5VGA接口控制器
標準的VGA(640×480,60Hz)接口需要提供以下幾組信號:3個RGB模擬信號、行同步信號HS和場同步信號VS。它的信號時序如圖6所示。
評論