《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于感興趣區(qū)域的可變頻CCD實時處理系統(tǒng)
基于感興趣區(qū)域的可變頻CCD實時處理系統(tǒng)
來源:電子技術(shù)應(yīng)用2012年第1期
陳蘇婷1,楊世洪2
1.南京信息工程大學(xué) 江蘇省氣象探測與信息處理重點實驗室,江蘇 南京210044; 2.中國科學(xué)院光電技術(shù)研究所,四川 成都610209
摘要: 為滿足航空攝影測量需求,設(shè)計了基于感興趣區(qū)域的可變頻CCD實時處理系統(tǒng)。該系統(tǒng)主要由CCD控制模塊、數(shù)據(jù)實時處理模塊和顯示模塊組成。系統(tǒng)充分利用FPGA內(nèi)部資源,改變了傳統(tǒng)FPGA配合微處理器的實現(xiàn)方式,相關(guān)算法和時序邏輯控制均在一片F(xiàn)PGA內(nèi)實現(xiàn)并通過驗證,可廣泛適用于任何分辨率CCD的智能實時處理。
中圖分類號: TP274
文獻標識碼: A
文章編號: 0258-7998(2012)01-0034-04
Intelligent CCD real-time processing system of variable frame rate based on ROI
Chen Suting1,Yang Shihong2
1.Nanjing University of Information Science and Technology, Jiangsu Key Laboratory of Meteorological Observation and Informaiotn Processing,Nanjing 210044,China; 2.The Institute of Optics and Electronics, the Chinese Academy of Sciences, Chengdu 610209,China
Abstract: In order to meet the demand of image shooting in aviation photogrammetry, a real-time high resolution CCD data processing system based on variable frame rate is designed. Through video encoding unit in FPGA, inner register configuration of video encoder is accomplished in the control of FPGA. Thus, high definition video analog signal is implemented. The entire system has been implemented in FPGA and validated. It is suitable for various real-time CCD data processing situations.
Key words : high resolution;variable frame rate;intelligent observing;real-time display;FPGA

    在航空攝影測量領(lǐng)域,常采用高分辨率CCD相機在高空對物體進行拍攝。目前的CCD數(shù)據(jù)處理系統(tǒng)首先在CCD相機的控制下,輸出海量連續(xù)的CCD數(shù)據(jù)流。然后通過構(gòu)造緩存單元結(jié)構(gòu),緩存接收的CCD圖像數(shù)據(jù)。由于圖像信息量太大,無法實時處理,需要在飛行過程中將所有圖像實時記錄在高速硬盤上,最終把緩存的數(shù)據(jù)流輸入至實時記錄系統(tǒng)實現(xiàn)高分辨率CCD數(shù)據(jù)的記錄。

    針對飛行過程中的一些特殊情況,需根據(jù)接收的GPS信息(飛行高度、速度等)實時調(diào)整CCD幀頻[1]。要實現(xiàn)可變幀率的CCD數(shù)據(jù)處理,對整個CCD數(shù)據(jù)實時處理能力提出了更高的要求。同時,隨著CCD像元數(shù)的激增,每幀CCD圖像的像素分辨率超大,如何實現(xiàn)基于高分辨率CCD圖像感興趣區(qū)域的智能實時觀測是目前航測領(lǐng)域的研究重點。針對可變幀率和智能觀測需求,提出了一種基于感興趣區(qū)域的可變頻CCD實時處理系統(tǒng)。
    系統(tǒng)根據(jù)可變頻要求,一方面通過在FPGA內(nèi)部設(shè)計UART控制器,觸發(fā)CCD相機外同步觸發(fā)信號,實時計算出隨GPS信息不斷變化的CCD幀頻信息;另一方面,提出了一種數(shù)據(jù)提取算法,該算法通過對乒乓緩存的CCD圖像數(shù)據(jù)進行可變窗口定位,實現(xiàn)了感興趣區(qū)域的智能觀察和存儲;最后,通過視頻編碼實現(xiàn)感興趣區(qū)域的高清晰視頻實時顯示。整個系統(tǒng)已在FPGA內(nèi)實現(xiàn)并通過驗證,可廣泛適用于任何分辨率大小CCD的智能實時處理。
1 系統(tǒng)設(shè)計方案
    該可變頻CCD智能實時處理系統(tǒng)由CCD控制模塊、數(shù)據(jù)實時處理模塊和實時顯示模塊組成。CCD控制模塊:在相機外同步工作模式下,通過在FPGA內(nèi)設(shè)計UART控制器,接收外部發(fā)來的GPS信息,實現(xiàn)CCD相機幀頻的實時調(diào)整。針對數(shù)據(jù)實時處理模塊,提出了一種數(shù)據(jù)提取算法:首先提取出原始CCD圖像數(shù)據(jù)的感興趣區(qū)域,該區(qū)域符合SMPTE(1080i)有效的高清晰視頻數(shù)據(jù)分辨率大小,并通過可變窗口定位實現(xiàn)區(qū)域的智能實時調(diào)整;然后通過乒乓緩存結(jié)構(gòu)的設(shè)計,實現(xiàn)感興趣區(qū)域的實時存儲;最后由實時顯示模塊,將緩存的感興趣區(qū)域數(shù)據(jù)打包為高清晰視頻格式,通過視頻編碼實現(xiàn)感興趣區(qū)域的高清晰視頻實時顯示。圖1給出了整個系統(tǒng)的實現(xiàn)方案。

2 CCD控制模塊的設(shè)計
2.1 可變頻幀率的設(shè)計與實現(xiàn)

    在飛行過程中,首先需接收GPS導(dǎo)航信息[3](主要包括飛行器經(jīng)緯度位置、時間(時/分/秒)以及海拔高度、地速等飛行參數(shù),數(shù)據(jù)刷新率為10 Hz/s),根據(jù)信息計算得到當前相機幀頻。由于數(shù)據(jù)刷新率較高,接收數(shù)據(jù)的準確性是保證后續(xù)工作精度穩(wěn)定的前提條件。
    傳統(tǒng)的處理方式是[4]:通過串口配合相關(guān)電路,接收GPS信息,并計算得到隨飛行高度和速度實時改變的相機幀頻。UART(Universal Asynchronous Receiver Transmitter)作為計算機或外圍設(shè)備的串行通信接口,通常在單片機中使用。本設(shè)計中改用FPGA完成所有數(shù)據(jù)處理,并設(shè)計了基于PFGA的UART控制器。
    UART控制器包含以下組件:時鐘發(fā)生器、輸入和輸出移位寄存器、發(fā)送/接收控制單元和FIFO緩沖存儲器。時鐘發(fā)生器通常是比特率允許在一個位周期中采樣的倍數(shù)。輸入和輸出移位寄存器是串行和并行之間形式轉(zhuǎn)換的基本方法。發(fā)送或接收控制單元完成數(shù)據(jù)的傳輸和接收器下控制讀或?qū)懣刂七壿?。FIFO緩沖存儲器實現(xiàn)對發(fā)送/接收數(shù)據(jù)的高速緩存。圖2給出了基于FPGA的UART控制器設(shè)計,可見,整個UART設(shè)計充分利用FPGA的內(nèi)部存儲和時序邏輯資源,減小了系統(tǒng)的面積, 改變了傳統(tǒng)通過單片機處理器的控制,大大降低了系統(tǒng)功耗,提高了設(shè)計的穩(wěn)定性。

    通過基于FPGA的UART控制器設(shè)計,GPS信息可從UART正確接收,根據(jù)GPS相應(yīng)的飛行參數(shù),可計算得到可變幀率,并輸入至FPGA。本系統(tǒng)每幀CCD的拍攝時間間隔表達式如下:
  
    式中,v是飛行速度(km/h),H是飛行高度,a是拍攝視角, qx是相鄰的圖片重疊比例??梢?,通過接收GPS的飛行速度和飛行高度信息和實際拍攝要求,即可計算出拍攝時間間隔。根據(jù)時間和頻率之間的關(guān)系,得到CCD當前幀速率。
    FPGA在內(nèi)部時鐘的控制下,針對可變幀頻率,通過FPGA的時序邏輯控制,產(chǎn)生外同步控制脈沖信號。這樣,在外同步脈沖的觸發(fā)下,相機開始積分,積分完畢后,在行、場、消隱同步信號的控制下,讀出CCD相機數(shù)據(jù)。
2.2 基于高速Cameralink接口的CCD數(shù)據(jù)傳輸
    為提高海量CCD連續(xù)數(shù)據(jù)流的傳輸速率,采用基于Cameralink接口技術(shù)實現(xiàn)高速CCD數(shù)據(jù)傳輸。Cameralink接口技術(shù)是基于Channel Link技術(shù)發(fā)展而來的。Channel Link是基于LVDS技術(shù)發(fā)展而來的,它是一種用來傳輸視頻數(shù)據(jù)的新技術(shù)。Channel Link使用一個并轉(zhuǎn)串驅(qū)動器和一個串轉(zhuǎn)并接收器傳輸數(shù)據(jù),其最高速率可達2.38 GHz/s,非常適合高分辨率CCD數(shù)據(jù)實時處理以及其他高速控制信號的傳輸[5]。
    高分辨率CCD數(shù)字相機通過Camera Link接口的連接,實現(xiàn)多位高速并行的數(shù)據(jù)線轉(zhuǎn)換為串行數(shù)據(jù)線輸出。同時,通過接收芯片DS90CR288A實現(xiàn)對CCD相機輸出的串行數(shù)據(jù)還原為原始的并行數(shù)據(jù)輸出,并提供了相應(yīng)的CCD相機通信信號和有效控制信號。對DS90CR288A解碼輸出的CCD相機數(shù)據(jù)輸入至FPGA,實現(xiàn)實時處理。
3 實時數(shù)據(jù)處理模塊

 


3.1 感興趣區(qū)域提取算法

    實時處理模塊主要對輸入至FPGA的CCD圖像數(shù)據(jù)進行處理。CCD相機數(shù)據(jù)的時鐘輸出速率為2 MHz×40 MHz,以兩路并行格式輸出,兩路數(shù)據(jù)像元分辨率大小為2 048×1 024,數(shù)據(jù)分辨率為10 bit。為有利于數(shù)據(jù)進一步處理,在FPGA內(nèi)構(gòu)造FIFO實現(xiàn)對兩路并行數(shù)據(jù)的實時合成。合成后的數(shù)據(jù)分辨率為10 bit,頻率為80 MHz,像元分辨率大小為2 048×2 048。
    在實際觀測中,需要實時提取感興趣區(qū)域。設(shè)原始圖像分辨率大小為M×N,感興趣區(qū)域分辨率大小為m×n。由于CCD原始數(shù)據(jù)分辨率遠大于感興趣區(qū)域數(shù)據(jù)分辨率,提出了一種感興趣區(qū)域提取算法。算法設(shè)計思路如下:
    (1)通過UART接收當前波門位置信息(Rstart,Rwidth,Cstart,Cwidth),同時波門位置信息實時寫入FPGA。其中,Rstart、Rwidth分別表示在像素時鐘的作用下,原始圖像對應(yīng)的行起始地址和行寬;Cstart、Cwidth分別表示在像素時鐘的作用下,列起始地址和列寬。
    (2)在FPGA中構(gòu)造4個專用寄存器分別用來動態(tài)存儲上述波門位置信息(Rstart,Rwidth,Cstart,Cwidth)。
    (3)在像素時鐘的控制下,在FPGA內(nèi)構(gòu)造兩個計數(shù)器分別對每行、每列像素個數(shù)進行計數(shù)。Pi、Qj分別表示當前行、列計數(shù)值。
    (4)構(gòu)造波門判別函數(shù)模型,如判別函數(shù)為真,即當前計數(shù)值在波門信息范圍內(nèi)時,對于圖像數(shù)據(jù)予以保留,否則予以舍棄。判別函數(shù)如式(2)所示。
    
    當一幀圖像數(shù)據(jù)接收完畢時,即完成了對當前幀圖像的感興趣區(qū)域數(shù)據(jù)提取。當下一幀數(shù)據(jù)輸入且波門位置改變時,則返回(1),重復(fù)上述過程即可。
3.2 高速緩存的設(shè)計
    在實時抽取后,保留下的數(shù)據(jù)分辨率大小與高清晰模擬視頻有效數(shù)據(jù)分辨率相同。但兩者在速率和幀頻上都不相等(相機數(shù)據(jù)速率為80 MHz,幀頻為變量,高清晰視頻數(shù)據(jù)格式選擇速率為74.25 MHz,幀頻為30幀/s,每幀分為奇場和偶場的格式),因此需要為變頻的CCD圖像感興趣區(qū)域和恒速的視頻編碼之間構(gòu)造一個適應(yīng)通道——高速緩存結(jié)構(gòu)。常用的緩存結(jié)構(gòu)主要有以下三種形式[6]:
    (1)FIFO結(jié)構(gòu):能夠達到很高的傳輸速度和效率,且由于省去了地址線而有利于PCB 板布線。缺點是只能順序讀寫數(shù)據(jù),因而顯得比較呆板。
    (2)雙口RAM結(jié)構(gòu): 具有兩套獨立的數(shù)據(jù)、地址和控制總線,能達到很高的傳輸速度,并且具有隨機存取的優(yōu)點。缺點是大容量的高速雙口RAM 硬件復(fù)雜度高,價格昂貴。
    (3)SRAM乒乓緩存結(jié)構(gòu):可隨機存取,同時較大容量的高速SRAM容易得到且價格適中。缺點是切換控制電路比較復(fù)雜。
    綜合考慮以上三種高速緩存方案,在本設(shè)計單元中,選用SRAM乒乓緩存方案。具體設(shè)計流程如下:在第一個緩沖周期,將輸入數(shù)據(jù)流緩存到第一片SRAM中;在第二個緩沖周期,通過控制信號的切換,將輸入的數(shù)據(jù)流緩存到第二片SRAM中,并將第一片SRAM緩存的第一個周期的數(shù)據(jù)通過控制送入下一處理單元(視頻編碼單元);在第三個緩沖周期,通過控制權(quán)的再次切換,將輸入的數(shù)據(jù)流緩存到第一片SRAM,并將第二片SRAM緩存的第二個周期的數(shù)據(jù)通過控制權(quán)的切換,送到下一處理單元。如此循環(huán),周而復(fù)始,很好地完成對數(shù)據(jù)流的無縫緩沖和處理。
4 實時顯示模塊
4.1 基于FPGA的高清晰視頻數(shù)據(jù)打包

    由于從數(shù)據(jù)實時處理單元SRAM 讀出的是純粹圖像數(shù)據(jù), 因此首先要將讀出數(shù)據(jù)打包為符合SMPTE274 標準的1080i 高清晰視頻格式,最終實現(xiàn)高清晰的模擬視頻顯示。
    首先簡單介紹符合SMPTE274標準的1080i高清晰模擬視頻格式[7]。圖3給出了高清晰視頻數(shù)據(jù)包格式。其中,每個EAV 和SAV 定時基準信號由4 個字的序列組成,格式如下:FF、00、FF、XY(數(shù)值以16進制表示,F(xiàn)F、00留供定時基準信號用) 。頭三個是固定前綴,第四個字包含定義第二場標識、場消隱狀態(tài)和行消隱狀態(tài)的信息。每行有效數(shù)據(jù)像素為1 920個像素,行消隱期為272個像素。
    對數(shù)據(jù)進行打包實際就是用FPGA產(chǎn)生包頭信息、消隱期的填充數(shù)據(jù)以及Y分量的數(shù)據(jù)和Cb、Cr分量的數(shù)據(jù)復(fù)合,再進一步將視頻數(shù)據(jù)和包頭信息、填充數(shù)據(jù)合并,最終產(chǎn)生符合上述定義格式標準的數(shù)據(jù)包。在具體實現(xiàn)過程中,F(xiàn)PGA要設(shè)計兩個計數(shù)器,一個用來進行行計數(shù),另一個用來對每行的像素進行計數(shù)。根據(jù)兩個計數(shù)器的值,在相應(yīng)的地方寫上包頭信息,在消隱期填上填充數(shù)據(jù),而在有效行的有效像素期,F(xiàn)PGA 的輸出來自SRAM 輸出的原始相機數(shù)據(jù)。這樣,在FPGA 里的視頻數(shù)據(jù)復(fù)合成模塊,用74.25 MHz 的時鐘將Y分量和Cb、Cr分量按格式要求的4:2:2格式復(fù)合成高清晰視頻數(shù)據(jù)流,如圖3所示。


4.2 基于FPGA的視頻編碼芯片控制和實現(xiàn)
    在完成對數(shù)據(jù)的打包后,需要對視頻芯片內(nèi)部寄存器進行配置并最終轉(zhuǎn)換為模擬視頻顯示。ADV7300A支持I2C總線通信協(xié)議。傳統(tǒng)的工作方式通常使用單片機實現(xiàn)對I2C總線接口的控制。然而,為減少設(shè)計資源并提高FPGA的使用效率,設(shè)計了基于FPGA的I2C總線控制器。
    I2C總線控制器主要包括以下幾個單元:數(shù)據(jù)緩存單元、移位寄存器單元、I2C總線傳輸控制單元和分頻單元。其中,數(shù)據(jù)緩存單元實現(xiàn)對如初始化ADV7300的數(shù)據(jù)進行緩存,這里緩存單元即通過FPGA內(nèi)部的RAM存儲即可。
    移位寄存器單元實現(xiàn)數(shù)據(jù)的并-串轉(zhuǎn)換。由于FPGA內(nèi)部的緩存單元的數(shù)據(jù)位寬為8 bit,而I2C總線上傳輸?shù)奈粚挒? bit,所以要進行并串轉(zhuǎn)換,且需滿足數(shù)據(jù)高位在前,低位在后。通過構(gòu)造移位寄存器,可在時序控制邏輯模塊的控制下根據(jù)讀寫使能信號對數(shù)據(jù)進行正確處理。
    I2C總線傳輸控制單元是設(shè)計的核心,根據(jù)I2C總線傳輸協(xié)議,整個傳輸過程可以分為空閑、開始、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、停止5個狀態(tài)。當I2C總線處于空閑狀態(tài)且驅(qū)動信號為高電平時開始運作I2C模塊, 并根據(jù)讀/寫判斷進入下一狀態(tài),即進行傳輸數(shù)據(jù)或接收數(shù)據(jù)。當數(shù)據(jù)傳輸完畢, 跳入停止狀態(tài)。因此,在FPGA內(nèi)設(shè)計有限狀態(tài)機的結(jié)構(gòu)實現(xiàn)對I2C總線的傳輸時序控制,其狀態(tài)轉(zhuǎn)移如圖4所示。

    分頻單元則根據(jù)I2C總線傳輸速率,通過對FPGA的全局時鐘進行分頻,以滿足I2C總線的傳輸速率要求。
    通過在FPGA內(nèi)實現(xiàn)基于I2C總線控制器的設(shè)計,很好地完成了FPGA對視頻編碼芯片ADV7300內(nèi)部寄存器的配置和讀寫,最終實現(xiàn)高清晰模擬視頻顯示。目前,該設(shè)計已通過驗證,并成功應(yīng)用于某航空攝影測量工程,具有很高的工程應(yīng)用價值。
參考文獻
[1] 陳蘇婷,吳欽章,楊世洪.航空攝影測量用高清晰視頻編碼顯示系統(tǒng)設(shè)計[J].半導(dǎo)體光電,2007,28(4):596-600.
[2] 陳蘇婷,楊世洪.基于IB-IWT實時圖像壓縮的FPGA設(shè)計與實現(xiàn)[J].信息與控制,2009,38(1):145-149.
[3] 高文武,賀賽先.基于GPS的CCD相機同步控制器[J]. 武漢大學(xué)學(xué)報,2004,29(8):744-746.
[4] 宋杰,何友,唐小明.雷達視頻回波信號的實時采集、顯示與存儲系統(tǒng)[J].數(shù)據(jù)采集與處理,2006,21(1):90294.
[5] 王明富,楊世洪,吳欽章.大面陣CCD圖像實時顯示系統(tǒng)的設(shè)計[J].光學(xué)精密工程,2010,18(9):2053-2059.
[6] 李武森,遲澤英,陳文建.高速DSP圖像處理系統(tǒng)中的乒乓緩存結(jié)構(gòu)研究[J].光電子技術(shù)與信息,2005,18(3):76279.
[7] Analog Devices,Inc.ADV7300A datasheet[EB/OL].http//www.analog.com.2005.
[8] 何立民.I2C總線應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1995.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。