A Real-Time Image Capture and Turning System Based on DSP
摘要:在某些特定場合,為滿足特定任務(wù)需求,必須實現(xiàn)對視頻信號的實時采集與旋轉(zhuǎn)處理等任務(wù),本文制訂了基于DSP[1]的實時圖像采集與旋轉(zhuǎn)處理系統(tǒng)硬件設(shè)計方案,對系統(tǒng)軟件流程作了分析,給出了系統(tǒng)實驗結(jié)論。
關(guān)鍵詞:DSP 信息處理 圖像采集 圖像旋轉(zhuǎn)
Abstract: Aim at the special demands,it is necessary for some special occasions to capture and turn video frequency real time. In this paper, it designed the system hardware based on DSP and discussed the workflow of the software. At last, it analyzed the experimental result of the system.
Key words: DSP, Information Processing, Image Capture, Image Turning
1 前言
在軍事和許多精密控制領(lǐng)域,實時視頻信號采集和處理應(yīng)用非常普遍。如果僅僅對標(biāo)準(zhǔn)視頻信號進(jìn)行實時采集,在工程實現(xiàn)上已經(jīng)非常簡單,但是在更多應(yīng)用場合,實時視頻采集只屬于系統(tǒng)任務(wù)的一小部分,更重要的是對采集到的視頻圖像進(jìn)行實時處理和分析,視頻制導(dǎo)武器中的實時視頻圖像采集和消旋、太空探測過程中的圖像實時采集與處理就屬于這種情況。為了滿足對高速視頻圖像的實時采集和處理,在許多場合,由于圖像處理的運算量非常大,僅僅依靠軟件優(yōu)化很難滿足系統(tǒng)實時性要求。近年來,隨著DSP技術(shù)的飛速發(fā)展和廣泛應(yīng)用,許多曾經(jīng)被認(rèn)為難以滿足的任務(wù)需求也變得日益簡單方便。本文以某一實際系統(tǒng)開發(fā)過程中圖像實時采集和消旋需求為對象,對系統(tǒng)開發(fā)從硬件和軟件兩個層面進(jìn)行了詳細(xì)分析,并通過實驗獲取了大量數(shù)據(jù),對不同設(shè)計方案的性能進(jìn)行比較,得出了可靠結(jié)論。
2 需求分析
實時圖像采集和旋轉(zhuǎn)處理在軍事和許多高科技領(lǐng)域有著廣泛應(yīng)用。例如在某種特定的視頻控制系統(tǒng)中,前端CCD在工作過程中一直處于定軸旋轉(zhuǎn)狀態(tài),要實現(xiàn)對圖像的實時監(jiān)視和處理,首先必須對采集到的每幀圖像進(jìn)行實時消旋(從根本上說,消旋就是反向旋轉(zhuǎn)),然后才能進(jìn)行顯示和其它處理工作,按照標(biāo)準(zhǔn)視頻25幀/秒的速度要求,每幀圖像從獲取、采集、處理到存貯和顯示的時間必須限制在40ms之內(nèi)。按照常規(guī)系統(tǒng)設(shè)計要求,系統(tǒng)工作流程為:利用通用圖像采集卡獲取CCD拍攝的圖像,然后通過軟件對每幀圖像進(jìn)行消旋,根據(jù)這一方案,進(jìn)行了大量測試,具體實驗條件、方案和結(jié)論如下:
硬件環(huán)境: P4 2.6G的CPU,1GDDR433內(nèi)存;操作系統(tǒng)為平臺:WindowsXP;
采集卡:大恒CG410通用視頻采集卡(PCI總線時鐘為33MHz);
圖像大。768*576;圖像精度:24bit彩色圖像;
圖像旋轉(zhuǎn)算法:最鄰近差值算法;
算法優(yōu)化:圖像變換過程中對正弦和余弦采用查表方式,在涉及浮點運算的環(huán)節(jié)采用近似移位算法代替;
其它:圖像顯示過程中以768*576的畫板為基礎(chǔ),對于旋轉(zhuǎn)過程中超出該區(qū)域的目標(biāo)點統(tǒng)一在初始化過程中賦值;
結(jié)論:旋轉(zhuǎn)時間約為48ms;采集和旋轉(zhuǎn)時間約為66ms(如果不采用查表和近似移位方法進(jìn)行優(yōu)化,完成每幀圖像采集和旋轉(zhuǎn)時間超過150ms)。
結(jié)果表明:即使采用最鄰近差值算法,對浮點運算采用查表近似處理,在Windows操作系統(tǒng)環(huán)境中,圖像顯示畫板不作任何變換這種最簡單的圖像旋轉(zhuǎn)而言,僅僅依靠軟件不可能滿足系統(tǒng)實時性要求。究其原因,主要有以下幾點:
1)圖像數(shù)據(jù)流經(jīng)PCI總線占用的時間過長
由于常用的圖像采集卡采用的都是33M時鐘PCI總線結(jié)構(gòu)設(shè)計,在32位機(jī)器環(huán)境中,該總線支持的理論最高通訊速率為132Mbytes/s[2];在使用過程,由于橋路設(shè)計及其它PCI設(shè)備占用,實際數(shù)據(jù)通過速率最多只能達(dá)到80 Mbytes/s左右,如果采集768*576的24位彩色圖像,每幀圖像數(shù)據(jù)流經(jīng)總線的時間就高達(dá)15ms。
2)圖像旋轉(zhuǎn)運算量過大,占用時間過長
每幀圖像旋轉(zhuǎn)必須分坐標(biāo)和色彩空間變換兩步完成,數(shù)據(jù)運算量相當(dāng)大,如果色彩空間變換采用較為復(fù)雜的差值或卷積算法,運算量會更大,僅僅依靠軟件優(yōu)化,難以滿足系統(tǒng)實時性要求。
3)操作系統(tǒng)實時性欠佳
對普通用戶而言,Windows系列操作系統(tǒng)的主要優(yōu)勢在于強(qiáng)大視窗功能,從操作系統(tǒng)底層開發(fā)而言,特別在某些對系統(tǒng)實時性要求較高的場合,Windows操作系統(tǒng)的進(jìn)程管理和任務(wù)調(diào)度機(jī)制顯得力不從心。一般來說,Windows操作系統(tǒng)的中斷響應(yīng)和任務(wù)切換時間處于毫秒級水平,在系統(tǒng)繁忙的情況下,往往會達(dá)到幾十甚至上百毫秒,這種響應(yīng)速度對實時圖像采集和旋轉(zhuǎn)處理系統(tǒng)來說遠(yuǎn)遠(yuǎn)不夠。
4)系統(tǒng)設(shè)計不夠緊湊,存在過多中間環(huán)節(jié)
這一方案中,圖像采集與旋轉(zhuǎn)(即消旋)是兩個并行同步執(zhí)行的進(jìn)程,通過回調(diào)函數(shù)機(jī)制實現(xiàn)兩者間同步,圖像數(shù)據(jù)必須先采集經(jīng)PCI總線到系統(tǒng)內(nèi)存,然后再進(jìn)行旋轉(zhuǎn)處理,這種設(shè)計方式增加了圖像數(shù)據(jù)的流通環(huán)節(jié),制約了系統(tǒng)實時性能,同時也不符合設(shè)備模塊化設(shè)計要求,影響系統(tǒng)可擴(kuò)展性。
3 系統(tǒng)設(shè)計
3.1 硬件方案設(shè)計
3.2.1 圖像采集處理板設(shè)計

圖2 地面信息處理硬件模塊原理框圖
為實現(xiàn)系統(tǒng)設(shè)計模塊化,將圖像采集和消旋處理綜合在一塊硬件板卡上實現(xiàn),兩者間通過兩個靜態(tài)存貯器SRAM1和SRAM2并輔以相應(yīng)控制邏輯實現(xiàn)接口,具體工作流程為:圖像信號經(jīng)采集直接通過卡內(nèi)總線交替存貯到SRAM1和SRAM2中,當(dāng)某一幀圖像采集完成,通過控制邏輯一方面通知DSP從相應(yīng)存貯器中讀取數(shù)據(jù)并進(jìn)行處理,同時控制將下一幀圖像采集保存到另一塊靜態(tài)存貯中,從而實現(xiàn)交替存貯;DSP對采集的圖像信號進(jìn)行實時消旋,處理后的數(shù)據(jù)直接存放到靜態(tài)存貯器SRAM3中,當(dāng)某一幀圖像處理結(jié)束,DSP通過PCI總線向CPU發(fā)送一個中斷請求,接收到中斷請求,CPU立即將存貯器中的圖像數(shù)據(jù)取出保存并顯示。
這一方案解決了原有系統(tǒng)存在的兩個問題:首先,通過采用DSP處理技術(shù),將系統(tǒng)工作中最復(fù)雜、最耗時的圖像消旋進(jìn)行最優(yōu)化,提高了系統(tǒng)處理速度,大大縮短了每幀圖像處理時間;其次,將圖像采集和消旋處理集中在同一塊硬件上,這種方式增加了系統(tǒng)集成度,減少了數(shù)據(jù)在系統(tǒng)總線上的流通環(huán)節(jié),節(jié)省了操作系統(tǒng)和內(nèi)存開銷,增強(qiáng)了系統(tǒng)可擴(kuò)展性。





