黃德天,劉雪超,吳志勇,梁敏華
(1.中國科學(xué)院長春光學(xué)精密機(jī)械與物理研究所,長春130033;2.中國科學(xué)院研究生院,北京100039)
隨著數(shù)字圖像處理理論的不斷成熟,各種圖像處理系統(tǒng)已廣泛應(yīng)用于太空探索、遙感成像、工業(yè)過程控制、醫(yī)學(xué)研究等軍事和民用領(lǐng)域。然而,大部分的圖像處理系統(tǒng)都是采用基于PCI或USB的采集卡,再經(jīng)由計(jì)算機(jī)實(shí)現(xiàn)圖像處理和動(dòng)態(tài)顯示。這樣造成系統(tǒng)的成本較高,體積較大,不便于攜帶。此外,當(dāng)相機(jī)幀頻較高,數(shù)據(jù)量較大時(shí),圖像的顯示將耗用計(jì)算機(jī)過多的資源,且算法的實(shí)時(shí)性受到計(jì)算機(jī)自身處理能力的限制[1]。這對(duì)于實(shí)時(shí)性能要求較高的系統(tǒng),通常很難滿足要求。隨著FPGA和DSP的處理能力越來越強(qiáng)大,以及基于FPGA或DSP開發(fā)的系統(tǒng)具有模塊化設(shè)計(jì)、編程靈活、算法實(shí)現(xiàn)簡單、實(shí)時(shí)性好、成本低、功耗小和體積小等優(yōu)點(diǎn),基于FPGA、或DSP、或FPGA +DSP的圖像處理系統(tǒng)具有廣泛的應(yīng)用前景[2-3]。
CameraLink解決了圖像數(shù)據(jù)輸出和采集之間的速度匹配問題,可方便地為高速數(shù)字相機(jī)和圖像采集卡提供簡單、靈活的傳輸[4]。目前,大部分CCD/CMOS高速數(shù)字相機(jī)都采用CameraLink接口,能夠提供高分辨率、高幀頻、高靈敏度、高對(duì)比度的圖像信號(hào)源,有著非常廣闊的應(yīng)用前景。隨著基于CameraLink協(xié)議接口在數(shù)字相機(jī)的廣泛使用,圖像數(shù)據(jù)高速穩(wěn)定的采集和圖像的實(shí)時(shí)處理成為當(dāng)前研究的兩個(gè)熱點(diǎn)[5]。
筆者提出了一種基于CameraLink接口的高速實(shí)時(shí)數(shù)字圖像采集處理系統(tǒng),通過充分利用FPGA與DSP的內(nèi)部資源,使算法高效執(zhí)行,系統(tǒng)不但完成了對(duì)幀頻為500幀/s、分辨率為160×128×8 bits的圖像進(jìn)行實(shí)時(shí)采集和處理,同時(shí)還實(shí)現(xiàn)了從CameraLink信號(hào)到SDI信號(hào)的視頻轉(zhuǎn)換。
CameraLink是由NI(National Instruments)、攝像頭供應(yīng)商和其他圖像采集公司于2000年10月聯(lián)合推出的一種基于視頻應(yīng)用的通信接口,是在Channel Link技術(shù)基礎(chǔ)上發(fā)展而來的。Channel Link使用一個(gè)并轉(zhuǎn)串驅(qū)動(dòng)器(Driver)和一個(gè)串轉(zhuǎn)并接收器(Receiver)傳輸數(shù)據(jù),其數(shù)據(jù)傳輸速率可達(dá)2.38 Gbit/ s。驅(qū)動(dòng)器將28位CMOS/TTL信號(hào)以7:1方式串行化為4組LVDS數(shù)據(jù)流,一個(gè)鎖相環(huán)傳輸時(shí)鐘通過第5組LVDS鏈路與其他LVDS數(shù)據(jù)流并行傳輸。接收器接收4組LVDS數(shù)據(jù)信號(hào)和1組LVDS時(shí)鐘信號(hào),將數(shù)據(jù)流轉(zhuǎn)換回28位的CMOS/TTL并行數(shù)據(jù)信號(hào)和1路時(shí)鐘信號(hào)。由此可見,Channel Link使用5對(duì)線纜完成了28位數(shù)據(jù)信號(hào)和1路時(shí)鐘信號(hào)的傳輸,減少了線纜的使用數(shù)量。圖1是Channel Link原理圖。
CameraLink信號(hào)主要包括視頻數(shù)據(jù)信號(hào)、相機(jī)控制信號(hào)和串行通信信號(hào)3個(gè)部分。其中視頻數(shù)據(jù)信號(hào)是Camera Link的核心,主要包括4對(duì)差分?jǐn)?shù)據(jù)信號(hào)(X0-~X0+、X1-~X1+、X2-~X2+、X3-~X3+)和1對(duì)差分時(shí)鐘信號(hào)(X clk-~X clk+)。另外,CameraLink具有3種不同的結(jié)構(gòu):Base型結(jié)構(gòu)、Medium型結(jié)構(gòu)和Full型結(jié)構(gòu)。筆者研究的是基于 Base型結(jié)構(gòu)的CameraLink傳輸。
圖1 Channel Link原理圖Fig.1 Chart of Channel Link
圖2為設(shè)計(jì)的高速實(shí)時(shí)圖像采集處理系統(tǒng)的硬件結(jié)構(gòu)框圖,整個(gè)系統(tǒng)的工作流程首先由CameraLink接收器DS90CR288A將相機(jī)輸出的LVDS信號(hào)轉(zhuǎn)換成LVTTL信號(hào)并直接送入FPGA,在相機(jī)同步信號(hào)的控制下,由FPGA完成對(duì)圖像數(shù)據(jù)的采集,并由FPGA進(jìn)一步完成圖像的預(yù)處理;然后,通過啟動(dòng)DSP的EDMA操作將圖像數(shù)據(jù)從FPGA經(jīng)DSP的VP1口搬移到SDRAM緩存,為提高DSP的運(yùn)算效率,先將數(shù)據(jù)從SDRAM搬運(yùn)到DSP的二級(jí)緩存,再對(duì)這些數(shù)據(jù)進(jìn)行一系列復(fù)雜的圖像處理運(yùn)算,當(dāng)完成1幀處理時(shí),DSP產(chǎn)生內(nèi)部中斷,觸發(fā)EDMA操作將處理完的圖像數(shù)據(jù)從DSP的VP2口送至CLC021;最后,通過CLC021完成編碼,生成SDI視頻在監(jiān)視器上實(shí)時(shí)顯示。整個(gè)高速實(shí)時(shí)圖像采集處理系統(tǒng)主要包括以下個(gè)單元模塊:CameraLink接口模塊、FPGA圖像采集和預(yù)處理模塊、DSP圖像處理模塊、SDI圖像顯示模塊。
圖2 系統(tǒng)硬件結(jié)構(gòu)框圖Fig.2 Hardware structure of the system
考慮到選用的FPGA不支持LVDS信號(hào)模式,而CameraLink相機(jī)是使用LVDS信號(hào)模式進(jìn)行數(shù)據(jù)傳輸?shù)?,因此,在相機(jī)和FPGA之間必須加有CameraLink接口模塊,用于將相機(jī)輸出的LVDS信號(hào)轉(zhuǎn)換為FPGA支持的LVTTL信號(hào)。根據(jù)CameraLink協(xié)議的要求,使用MDR26接頭作為相機(jī)數(shù)據(jù)的輸出接口,DS90CR288A接收基于LVDS的4對(duì)差分?jǐn)?shù)據(jù)信號(hào)和1對(duì)差分時(shí)鐘信號(hào),輸出28位圖像信號(hào)(RxOUT0-RxOUT27)和1位像素時(shí)鐘信號(hào)(RxCLK OUT)。其中28位圖像信號(hào)包括24位圖像數(shù)據(jù)信號(hào)和4位圖像數(shù)據(jù)同步信號(hào)分別對(duì)應(yīng)Spare、LVAL(行同步信號(hào))、FVAL (幀同步信號(hào))和DVAL(數(shù)據(jù)同步信號(hào))。最后,將DS90CR288A轉(zhuǎn)換得到的 LVTTL信號(hào)送入FPGA模塊。
針對(duì)圖像預(yù)處理算法簡單、運(yùn)算量大的特點(diǎn),使用FPGA硬件實(shí)現(xiàn)可減輕DSP的運(yùn)算負(fù)擔(dān),因此系統(tǒng)的圖像采集和預(yù)處理工作由FPGA完成。綜合占用面積、考慮成本以及后續(xù)的軟件升級(jí),F(xiàn)PGA的邏輯資源要盡量豐富,系統(tǒng)選用ALTERA公司 Cyclone III系列低成本高性能芯片EP3C55F484。其主要特點(diǎn)有:55 856個(gè)邏輯單元,260個(gè)M9K存儲(chǔ)模塊,存儲(chǔ)器容量為2.285 Mbyts,156個(gè)18×18的乘法器,4個(gè)PLL,20個(gè)全局時(shí)鐘,最多377個(gè)可用的I/O引腳。
系統(tǒng)采用雙口RAM和FPGA結(jié)合的方式對(duì)圖像進(jìn)行采集和預(yù)處理。這是由于雙口RAM具有兩套獨(dú)立的地址、數(shù)據(jù)和控制總線,可從兩個(gè)端口同時(shí)讀寫而互不干擾,具有隨機(jī)讀取的優(yōu)點(diǎn),可達(dá)到很高的傳輸速度。FPGA的工作流程如圖3所示,在相機(jī)同步信號(hào)的控制下,經(jīng)過信號(hào)轉(zhuǎn)換的圖像數(shù)據(jù)被FPGA所采集。
圖3 FPGA工作流程框圖Fig.3 W orking flow chart of FPGA
在FVAL的控制下,圖像數(shù)據(jù)經(jīng)過中值濾波、直方圖統(tǒng)計(jì)、簡單的閾值分割等預(yù)處理;處理后的圖像數(shù)據(jù)依次存入到雙口RAM中,同時(shí)對(duì)有效的相機(jī)像素時(shí)鐘(RxCLK OUT)進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)值接近于一幅圖像大小時(shí),給DSP發(fā)送一個(gè)中斷信號(hào),DSP收到這個(gè)中斷信號(hào)后對(duì)雙口RAM進(jìn)行讀操作,讀取整幅圖像。
筆者設(shè)計(jì)的系統(tǒng)硬件平臺(tái)選用TI公司的高性能DSP芯片TMS320DM642(簡稱:DM642)為核心器件。DM642采用兩級(jí)Cache存儲(chǔ)器體系結(jié)構(gòu),包括一個(gè)16 KByte一級(jí)程序緩存(L1P)和一個(gè)16 KByte一級(jí)數(shù)據(jù)緩存(L1D),以及一個(gè)256 KByte可配置的二級(jí)存儲(chǔ)器/緩存(L2);片內(nèi)含有64個(gè)通用寄存器和8個(gè)相互獨(dú)立且可并行工作的功能單元,通過高效的流水線操作,一個(gè)指令周期最多可并行執(zhí)行8條指令;此外,DM642還帶有3個(gè)視頻口等。
首先對(duì)DM642芯片進(jìn)行初始化,同時(shí)將VP1口配置為單通道的8位原始數(shù)據(jù)視頻捕獲端口、VP2口為單通道的8位BT.656視頻顯示端口。預(yù)處理后的圖像數(shù)據(jù)由FPGA先通過VP1口的FIFO緩沖器,當(dāng)圖像數(shù)據(jù)達(dá)到一幀時(shí),觸發(fā)一次EDMA中斷,DM642根據(jù)EDMA事件將數(shù)據(jù)搬運(yùn)到SDRAM中;在DM642進(jìn)行處理時(shí),先通過EDMA將緩存到SDRAM的圖像數(shù)據(jù)通過EMIF接口傳輸至2級(jí)緩存,然后對(duì)圖像數(shù)據(jù)經(jīng)過相應(yīng)的處理,如目標(biāo)的識(shí)別與提取、邊緣細(xì)節(jié)的增強(qiáng)和插值放大等處理;等DM642完成一幀圖像數(shù)據(jù)的處理時(shí),產(chǎn)生內(nèi)部中斷觸發(fā) EDMA控制器將DM642處理完的圖像數(shù)據(jù)從VP2口送出。
該系統(tǒng)DM642的軟件框架是基于DSP/BIOS實(shí)時(shí)操作系統(tǒng)設(shè)計(jì)的。DSP/BIOS提供4種類型的線程:硬件中斷(HWI)、軟件中斷(SWI)、任務(wù)(TSK)和后臺(tái)線程(IDL),對(duì)應(yīng)的優(yōu)先級(jí)依次下降。在系統(tǒng)的設(shè)計(jì)中使用了3個(gè)TSK,分別為: TskCap任務(wù),對(duì)應(yīng)的任務(wù)函數(shù)是Tsk ImageCap(),主要完成圖像采集工作;TskPro任務(wù),對(duì)應(yīng)的任務(wù)函數(shù)是TskImagePro(),主要完成圖像數(shù)據(jù)處理工作;TskDis任務(wù),對(duì)應(yīng)的任務(wù)函數(shù)是TskImageDis (),主要完成圖像顯示工作。3個(gè)任務(wù)設(shè)置為相同的優(yōu)先級(jí),由同步通信模塊(SCOM)來完成3個(gè)任務(wù)之間的切換,如圖4所示。
圖4 任務(wù)間切換的流程圖Fig.4 Chart of tasks exchange
SDI(Serial Digital Interface)是數(shù)字分量串行接口,已被世界上眾多數(shù)字視頻設(shè)備生產(chǎn)廠家普遍采納并作為標(biāo)準(zhǔn)視頻接口。將DM642處理后的BT.656數(shù)據(jù)轉(zhuǎn)換為SDI數(shù)據(jù)是利用美國半導(dǎo)體公司的CLC021芯片實(shí)現(xiàn)。CLC021是一款功能強(qiáng)大的并串轉(zhuǎn)換芯片,10位BT.656數(shù)據(jù)在27MHz時(shí)鐘控制下并行寫入CLC021的內(nèi)部移位寄存器中,然后在10倍頻時(shí)鐘控制下串行輸出,完成數(shù)據(jù)的并串轉(zhuǎn)換,生成符合SDI格式的信號(hào)。傳輸時(shí),從數(shù)據(jù)的最低位到數(shù)據(jù)的最高位依次先后向外輸出。該系統(tǒng)中DM642送入的是8位視頻數(shù)據(jù),CLC021將其默認(rèn)放在數(shù)據(jù)的高8位,而將低2位數(shù)據(jù)置低。
為驗(yàn)證該圖像采集處理系統(tǒng)的功能進(jìn)行了實(shí)驗(yàn),圖像源來自Mikrotron系列的MC1302相機(jī)。MC1302是基于CameraLink接口的CMOS相機(jī),將其幀頻設(shè)置為500fps,圖像的分辨率設(shè)置為160 ×128像素,像素深度為8位。通過該系統(tǒng)先對(duì)圖像進(jìn)行采集,再對(duì)圖像進(jìn)行中值濾波、直方圖統(tǒng)計(jì)、邊緣細(xì)節(jié)增強(qiáng)和插值放大等處理后,得到了如圖5所示效果,圖5(a)為處理前的圖像,圖5(b)為經(jīng)過該系統(tǒng)處理后的圖像。同時(shí),該系統(tǒng)實(shí)現(xiàn)了將相機(jī)輸出的CameraLink視頻信號(hào)轉(zhuǎn)換為顯示的SDI視頻信號(hào),并取得了很好的效果。
圖5 實(shí)驗(yàn)圖像效果比較Fig.5 Com parison of experimental im ages
筆者設(shè)計(jì)并實(shí)現(xiàn)了一種基于CameraLink接口標(biāo)準(zhǔn)的高速實(shí)時(shí)圖像采集處理系統(tǒng),系統(tǒng)的設(shè)計(jì)基于模塊化思想,采用FPGA完成圖像的采集和預(yù)處理,采用DSP完成復(fù)雜的圖像處理運(yùn)算。通過實(shí)驗(yàn)驗(yàn)證,系統(tǒng)可以實(shí)時(shí)完成500幀/s的圖像采集和運(yùn)算處理工作,同時(shí),系統(tǒng)可實(shí)現(xiàn)將CameraLink視頻信號(hào)轉(zhuǎn)換為SDI視頻信號(hào)的功能。此外,該系統(tǒng)已經(jīng)成功應(yīng)用到實(shí)際工程項(xiàng)目中,可替代基于計(jì)算機(jī)的高速實(shí)時(shí)圖像采集處理系統(tǒng),實(shí)現(xiàn)了實(shí)時(shí)性高、處理數(shù)據(jù)量大、體積小、成本低的目的。
[1]馮偉昌,林玉池,何冬,等.基于FPGA的雙通道實(shí)時(shí)圖像處理系統(tǒng)[J].傳感技術(shù)學(xué)報(bào),2010,23(8): 1118-1122.
Feng Wei-chang,Lin Yu-chi,He Dong,et al.Dualchannel image real-time processing system based on FPGA[J].Chinese Journal of Sensors and Actuators,2010,23(8):1118-1122.
[2]李冬梅,王延杰,王長宇,等.基于FPGA的高速實(shí)時(shí)圖像采集和自適應(yīng)閾值算法[J].吉林大學(xué)學(xué)報(bào):工學(xué)版,2010,40(2):534-538.
Li Dong-mei,Wang Yan-jie,Wang Chang-yu,et al. High-speed real-time image acquisition and auto-adapted threshold processing based on FPGA[J].Journal of Jilin University(Engineering and Technology Edition),2010,40(2):534-538.
[3]陳炎斌,金鋼.基于Camera Link標(biāo)準(zhǔn)的DSP+FPGA高速實(shí)時(shí)數(shù)字圖像處理系統(tǒng)設(shè)計(jì)[J].現(xiàn)代科學(xué)儀器,2010(6):61-63.
Chen Yan-bin,Jin Gang.A DSP+FPGA high-speed real-time digital image processing system based on the standard of camera link[J].Modern Scientific Instruments,2010(6):61-63.
[4]徐志躍,張?zhí)锾?基于CameraLink的串行圖像采集系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2010,30(6):1701-1707.
Xu Zhi-yue,Zhang Tian-tian.Design of serial image acquisition system based on Camera Link[J].Journal of Computer Applications,2010,30(6):1701-1707.
[5]王鳴浩,陳濤,吳小霞.基于Camera Link接口的高幀頻數(shù)字圖像采集顯示系統(tǒng)[J].微電子學(xué)與計(jì)算機(jī),2011,28(3):149-152.
Wang Ming-h(huán)ao,Chen Tao,Wu Xiao-xia.High frame rate digital image acquisition and display system based on camera link interface[J].MicroElectronics and Computer,2011,28(3):49-52.