基于感興趣區(qū)域的可變頻CCD實時處理系統(tǒng)
摘 要: 為滿足航空攝影測量需求,設計了基于感興趣區(qū)域的可變頻CCD實時處理系統(tǒng)。該系統(tǒng)主要由CCD控制模塊、數(shù)據(jù)實時處理模塊和顯示模塊組成。系統(tǒng)充分利用FPGA內(nèi)部資源,改變了傳統(tǒng)FPGA配合微處理器的實現(xiàn)方式,相關算法和時序邏輯控制均在一片F(xiàn)PGA內(nèi)實現(xiàn)并通過驗證,可廣泛適用于任何分辨率CCD的智能實時處理。
關鍵詞: 高分辨率;可變幀頻;智能觀測;實時顯示;FPGA
在航空攝影測量領域,常采用高分辨率CCD相機在高空對物體進行拍攝。目前的CCD數(shù)據(jù)處理系統(tǒng)首先在CCD相機的控制下,輸出海量連續(xù)的CCD數(shù)據(jù)流。然后通過構造緩存單元結構,緩存接收的CCD圖像數(shù)據(jù)。由于圖像信息量太大,無法實時處理,需要在飛行過程中將所有圖像實時記錄在高速硬盤上,最終把緩存的數(shù)據(jù)流輸入至實時記錄系統(tǒng)實現(xiàn)高分辨率CCD數(shù)據(jù)的記錄。
針對飛行過程中的一些特殊情況,需根據(jù)接收的GPS信息(飛行高度、速度等)實時調整CCD幀頻[1]。要實現(xiàn)可變幀率的CCD數(shù)據(jù)處理,對整個CCD數(shù)據(jù)實時處理能力提出了更高的要求。同時,隨著CCD像元數(shù)的激增,每幀CCD圖像的像素分辨率超大,如何實現(xiàn)基于高分辨率CCD圖像感興趣區(qū)域的智能實時觀測是目前航測領域的研究重點。針對可變幀率和智能觀測需求,提出了一種基于感興趣區(qū)域的可變頻CCD實時處理系統(tǒng)。
系統(tǒng)根據(jù)可變頻要求,一方面通過在FPGA內(nèi)部設計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)設計方案
該可變頻CCD智能實時處理系統(tǒng)由CCD控制模塊、數(shù)據(jù)實時處理模塊和實時顯示模塊組成。CCD控制模塊:在相機外同步工作模式下,通過在FPGA內(nèi)設計UART控制器,接收外部發(fā)來的GPS信息,實現(xiàn)CCD相機幀頻的實時調整。針對數(shù)據(jù)實時處理模塊,提出了一種數(shù)據(jù)提取算法:首先提取出原始CCD圖像數(shù)據(jù)的感興趣區(qū)域,該區(qū)域符合SMPTE(1080i)有效的高清晰視頻數(shù)據(jù)分辨率大小,并通過可變窗口定位實現(xiàn)區(qū)域的智能實時調整;然后通過乒乓緩存結構的設計,實現(xiàn)感興趣區(qū)域的實時存儲;最后由實時顯示模塊,將緩存的感興趣區(qū)域數(shù)據(jù)打包為高清晰視頻格式,通過視頻編碼實現(xiàn)感興趣區(qū)域的高清晰視頻實時顯示。圖1給出了整個系統(tǒng)的實現(xiàn)方案。
2 CCD控制模塊的設計
2.1 可變頻幀率的設計與實現(xiàn)
在飛行過程中,首先需接收GPS導航信息[3](主要包括飛行器經(jīng)緯度位置、時間(時/分/秒)以及海拔高度、地速等飛行參數(shù),數(shù)據(jù)刷新率為10 Hz/s),根據(jù)信息計算得到當前相機幀頻。由于數(shù)據(jù)刷新率較高,接收數(shù)據(jù)的準確性是保證后續(xù)工作精度穩(wěn)定的前提條件。
傳統(tǒng)的處理方式是[4]:通過串口配合相關電路,接收GPS信息,并計算得到隨飛行高度和速度實時改變的相機幀頻。UART(Universal Asynchronous Receiver Transmitter)作為計算機或外圍設備的串行通信接口,通常在單片機中使用。本設計中改用FPGA完成所有數(shù)據(jù)處理,并設計了基于PFGA的UART控制器。
UART控制器包含以下組件:時鐘發(fā)生器、輸入和輸出移位寄存器、發(fā)送/接收控制單元和FIFO緩沖存儲器。時鐘發(fā)生器通常是比特率允許在一個位周期中采樣的倍數(shù)。輸入和輸出移位寄存器是串行和并行之間形式轉換的基本方法。發(fā)送或接收控制單元完成數(shù)據(jù)的傳輸和接收器下控制讀或寫控制邏輯。FIFO緩沖存儲器實現(xiàn)對發(fā)送/接收數(shù)據(jù)的高速緩存。圖2給出了基于FPGA的UART控制器設計,可見,整個UART設計充分利用FPGA的內(nèi)部存儲和時序邏輯資源,減小了系統(tǒng)的面積, 改變了傳統(tǒng)通過單片機處理器的控制,大大降低了系統(tǒng)功耗,提高了設計的穩(wěn)定性。
通過基于FPGA的UART控制器設計,GPS信息可從UART正確接收,根據(jù)GPS相應的飛行參數(shù),可計算得到可變幀率,并輸入至FPGA。本系統(tǒng)每幀CCD的拍攝時間間隔表達式如下:
式中,v是飛行速度(km/h),H是飛行高度,a是拍攝視角, qx是相鄰的圖片重疊比例??梢?,通過接收GPS的飛行速度和飛行高度信息和實際拍攝要求,即可計算出拍攝時間間隔。根據(jù)時間和頻率之間的關系,得到CCD當前幀速率。
FPGA在內(nèi)部時鐘的控制下,針對可變幀頻率,通過FPGA的時序邏輯控制,產(chǎn)生外同步控制脈沖信號。這樣,在外同步脈沖的觸發(fā)下,相機開始積分,積分完畢后,在行、場、消隱同步信號的控制下,讀出CCD相機數(shù)據(jù)。
2.2 基于高速Cameralink接口的CCD數(shù)據(jù)傳輸
為提高海量CCD連續(xù)數(shù)據(jù)流的傳輸速率,采用基于Cameralink接口技術實現(xiàn)高速CCD數(shù)據(jù)傳輸。Cameralink接口技術是基于Channel Link技術發(fā)展而來的。Channel Link是基于LVDS技術發(fā)展而來的,它是一種用來傳輸視頻數(shù)據(jù)的新技術。Channel Link使用一個并轉串驅動器和一個串轉并接收器傳輸數(shù)據(jù),其最高速率可達2.38 GHz/s,非常適合高分辨率CCD數(shù)據(jù)實時處理以及其他高速控制信號的傳輸[5]。
高分辨率CCD數(shù)字相機通過Camera Link接口的連接,實現(xiàn)多位高速并行的數(shù)據(jù)線轉換為串行數(shù)據(jù)線輸出。同時,通過接收芯片DS90CR288A實現(xiàn)對CCD相機輸出的串行數(shù)據(jù)還原為原始的并行數(shù)據(jù)輸出,并提供了相應的CCD相機通信信號和有效控制信號。對DS90CR288A解碼輸出的CCD相機數(shù)據(jù)輸入至FPGA,實現(xiàn)實時處理。
3 實時數(shù)據(jù)處理模塊