梅領(lǐng)亮,陳德勇,郝如茜,羅 穎,劉 霖
(1.廣東正業(yè)科技股份有限公司 廣東 東莞 523000;2.電子科技大學(xué) 光電信息學(xué)院 摩米實(shí)驗(yàn)室,四川 成都 610054)
基于多路FIFO的寬幅CIS掃描儀圖像實(shí)時(shí)重構(gòu)技術(shù)
梅領(lǐng)亮1,陳德勇2,郝如茜2,羅 穎2,劉 霖2
(1.廣東正業(yè)科技股份有限公司 廣東 東莞523000;2.電子科技大學(xué) 光電信息學(xué)院 摩米實(shí)驗(yàn)室,四川 成都610054)
采用FPGA為并行處理核心,設(shè)計(jì)了基于多路FIFO的實(shí)時(shí)重構(gòu)方法,實(shí)現(xiàn)了多通道CIS圖像的實(shí)時(shí)采集、重構(gòu)與傳輸。該方法無(wú)需任何地址操作,在保持高速重構(gòu)效率的同時(shí),減少了FPGA硬件資源消耗,降低了系統(tǒng)成本。現(xiàn)已成功應(yīng)用于各種幅寬的CIS掃描系統(tǒng),其中采用Camera-Link接口的1.6 m寬幅設(shè)備掃描速率高達(dá)120 MB/s,在國(guó)內(nèi)尚屬首例。
FIFO;CIS;FPGA;圖像重構(gòu);寬幅掃描儀
隨著寬幅CIS(contact image sensor,接觸式圖像傳感器)掃描儀在工程建筑、工業(yè)機(jī)械、地理信息、城市規(guī)劃和廣告設(shè)計(jì)等領(lǐng)域的廣泛應(yīng)用[1],幅寬和掃描速度之間的矛盾日漸突出。一方面,由于長(zhǎng)線(xiàn)陣CIS的生產(chǎn)工藝的復(fù)雜性,其技術(shù)一直被少數(shù)國(guó)外廠(chǎng)商壟斷;另一方面,CIS的成本隨長(zhǎng)度呈幾何式增長(zhǎng)。因此,寬幅掃描儀的前端采集模塊通常需要多個(gè)A4寬度的CIS拼接重構(gòu)而成。幅面越寬,需要拼接的通道數(shù)越多,掃描速度就越低。其中,多通道圖像數(shù)據(jù)的重構(gòu)時(shí)間是影響寬幅CIS掃描儀掃描效率的關(guān)鍵問(wèn)題之一。
早期,對(duì)多通道圖像數(shù)據(jù)的重構(gòu)研究主要集中在軟件算法上[2],而對(duì)于圖像數(shù)據(jù)重構(gòu)的硬件實(shí)現(xiàn)方法研究甚少。利用軟件對(duì)多通道寬幅面的圖像數(shù)據(jù)進(jìn)行重構(gòu)需要消耗大量的內(nèi)存資源和計(jì)算時(shí)間,而且會(huì)隨著幅面的增大而急劇增長(zhǎng)。利用硬件進(jìn)行圖像數(shù)據(jù)重構(gòu)的設(shè)計(jì)最早被用于多通道面陣CCD的圖像處理[3],但這些方法不適合用于線(xiàn)陣CIS的圖像重構(gòu)。此前,筆者所在團(tuán)隊(duì)曾采用雙口RAM多路緩存來(lái)實(shí)現(xiàn)CIS的圖像重構(gòu)[4]。但雙口RAM要對(duì)讀寫(xiě)地址線(xiàn)進(jìn)行操作,控制邏輯較為復(fù)雜,資源消耗較大,實(shí)現(xiàn)成本較高。因此,如何在保證高速重構(gòu)性能的同時(shí),為大規(guī)模生產(chǎn)降低系統(tǒng)成本是一個(gè)極具工程價(jià)值的問(wèn)題。
針對(duì)以上問(wèn)題,文中提出了一種基于多路FIFO的圖像實(shí)時(shí)重構(gòu)方法。該方法全部采用無(wú)需地址操作的FIFO數(shù)據(jù)緩存器,在保證高速重構(gòu)性能的同時(shí),使FPGA的邏輯資源消耗相比于雙口RAM的方案節(jié)省了30%。該方法已成功應(yīng)用于各種幅寬的CIS掃描系統(tǒng)。其中,采用USB2.0接口的A0幅面掃描儀掃描速率達(dá)到30 MB/s,采用Camera-Link接口的1.6 m寬幅掃描設(shè)備的掃描速率高達(dá)120 MB/s。據(jù)了解,將此重構(gòu)技術(shù)應(yīng)用于大幅面CIS掃描儀在國(guó)內(nèi)尚屬首例。
1.1寬幅CIS掃描儀系統(tǒng)結(jié)構(gòu)
寬幅CIS掃描儀主要由N個(gè)CIS傳感器、A/D轉(zhuǎn)換模塊、FPGA處理單元和高速數(shù)據(jù)傳輸單元組成,系統(tǒng)框圖如圖1所示,實(shí)現(xiàn)多通道CIS圖像數(shù)據(jù)的并行采集、圖像重構(gòu)和傳輸處理。

圖1 寬幅CIS掃描儀系統(tǒng)結(jié)構(gòu)框圖
CIS傳感器的幅面是A4寬度,每根CIS有3個(gè)通道,一共3*N個(gè)通道。本系統(tǒng)中CIS傳感器的掃描精度高達(dá)600 dpi,1728個(gè)傳感單元被置于每個(gè)通道中。AD轉(zhuǎn)換模塊中每個(gè)AD芯片有3個(gè)輸入通道,將每個(gè)CIS通道輸出的模擬電壓信號(hào)轉(zhuǎn)換為8位的數(shù)字圖像數(shù)據(jù)。FPGA是控制和處理核心,不僅提供CIS工作所需的驅(qū)動(dòng)信號(hào),同時(shí)對(duì)A/D芯片進(jìn)行功能配置和數(shù)據(jù)讀取,而且進(jìn)行數(shù)據(jù)傳輸和圖像重構(gòu)處理。高速數(shù)據(jù)傳輸系統(tǒng)可由各種高速接口組成,如USB、Camera-Link、Ethernet等[5],該系統(tǒng)職能為按照先后順序傳輸給計(jì)算機(jī)重構(gòu)后的數(shù)據(jù)。
1.2基于多路FIFO的圖像實(shí)時(shí)重構(gòu)原理
在多通道CIS圖像采集和傳輸系統(tǒng)中,數(shù)據(jù)處理的首要問(wèn)題分別是數(shù)據(jù)位寬和數(shù)據(jù)順序的調(diào)整[6]。首先,前端N個(gè)AD的轉(zhuǎn)換數(shù)據(jù)位寬為8*3*N bits,而高速數(shù)據(jù)傳輸單元的位寬為8 bits,若不合理解決位寬不匹配的問(wèn)題,將會(huì)面臨數(shù)據(jù)丟失的風(fēng)險(xiǎn)。
其次,多CIS通道的圖像數(shù)據(jù)經(jīng)多個(gè)AD同時(shí)采集轉(zhuǎn)換后,并行的傳送給FPGA數(shù)據(jù)處理單元,若不調(diào)整圖像數(shù)據(jù)的順序,將導(dǎo)致像素空間位置錯(cuò)亂。
因此FPGA必須先對(duì)并行數(shù)據(jù)按照一定順序排列,并進(jìn)行位寬調(diào)整,依次將每行的數(shù)據(jù)傳輸給后端系統(tǒng),才能重構(gòu)出正確的圖像。
為簡(jiǎn)化分析,以1個(gè)三通道的CIS為例。假設(shè)1個(gè)CIS的每個(gè)通道有3個(gè)像素,3個(gè)通道則有9個(gè)像素,采集到的一行圖像數(shù)據(jù)排列如圖2(a)所示。AD同時(shí)采集3個(gè)通道的數(shù)據(jù),若不對(duì)數(shù)據(jù)順序進(jìn)行調(diào)整,根據(jù)AD的輸出特性,第1~3個(gè)時(shí)鐘周期輸出每個(gè)通道的第一個(gè)像素,序號(hào)為1、4、7。以此類(lèi)推,輸出的數(shù)據(jù)排列如圖2(b)所示,無(wú)法得到正確的圖像。
為了解決這一問(wèn)題,本文將3個(gè)通道的數(shù)據(jù)先用3個(gè)緩存分別存儲(chǔ),通過(guò)時(shí)序控制電路和多路選擇器依次輸出每個(gè)緩沖區(qū)的數(shù)據(jù),保證數(shù)據(jù)輸出的時(shí)間順序與像素的空間順序一致。如圖2(c)所示,在t0~t1時(shí)間讀取緩存1的數(shù)據(jù),t1~t2時(shí)間讀取緩存2的數(shù)據(jù),t2以后讀取緩存3的數(shù)據(jù),從而在數(shù)據(jù)傳輸過(guò)程中完成數(shù)據(jù)順序和位寬的調(diào)整,實(shí)現(xiàn)正確圖像的輸出。

圖2 基于多路FIFO的圖像實(shí)時(shí)重構(gòu)原理
2.1基于FPGA的多路FIFO設(shè)計(jì)
基于FPGA的多路FIFO隊(duì)列傳輸與控制框圖如圖3所示,主要包括通過(guò)直接調(diào)用IP核生成的FIFO隊(duì)列以及用硬件描述語(yǔ)言設(shè)計(jì)完成的控制模塊兩部分。以A0幅面的寬幅掃描儀為例,需要5個(gè)三通道的CIS拼接而成。因?yàn)镃IS像素單元由一個(gè)8 bits的灰度數(shù)據(jù)表示,所以每個(gè)CIS通道至少需要1728字節(jié)緩存空間,考慮到流水操作則需要2倍的緩存空間即3456字節(jié)。FPGA中FIFO空間的大小一般是2N(N為正整數(shù))個(gè)字節(jié),因此需要為每個(gè)通道設(shè)計(jì)4 KB緩存空間,15個(gè)通道則共需要60 KB。此外還需要FIFO和多路選擇器的控制模塊,用以控制FIFO的讀寫(xiě)使能和多路選擇器的輸出。因?yàn)檎麄€(gè)模塊的寫(xiě)入位寬是讀出位寬的5倍,所以為防止數(shù)據(jù)丟失,讀取時(shí)鐘頻率應(yīng)該是寫(xiě)入時(shí)鐘頻率的5倍。
FPGA作為并行數(shù)據(jù)處理核心,可以非常方便地例化出所需規(guī)模與數(shù)目的FIFO。而FIFO作為一種數(shù)據(jù)緩存器,有著先入先出的性能,并且加上沒(méi)有外部讀寫(xiě)地址線(xiàn)的特點(diǎn),較其他種類(lèi)的緩存器而言,有著操作便利的優(yōu)勢(shì)。因此,當(dāng)通道數(shù)目增加時(shí),只需簡(jiǎn)單地增加FIFO數(shù)目,以及簡(jiǎn)單地重復(fù)控制時(shí)序和邏輯,就能夠快速實(shí)現(xiàn)不同幅寬的圖像掃描。
2.2讀寫(xiě)FIFO控制時(shí)序的設(shè)計(jì)
寫(xiě)FIFO時(shí),將15個(gè)FIFO分成5組,每組與1個(gè)AD的輸出端相連。控制時(shí)序如圖4所示。當(dāng)檢測(cè)到掃描的行觸發(fā)信號(hào)(Write_Trig)后,AD1采集CIS輸出電壓信號(hào),并依次輸出3個(gè)通道的數(shù)據(jù),在第1、2、3個(gè)輸出時(shí)鐘周期內(nèi),先后產(chǎn)生 FIFO的 寫(xiě) 使能 信 號(hào) WFIFO_EN1、WFIFO_EN2和WFIFO_EN3,分別將通道1、2、3的數(shù)據(jù)寫(xiě)入FIFO1、FIFO2、FIFO3中。如此反復(fù)循環(huán),直到完成1728*3個(gè)周期后,則停止向FIFO中寫(xiě)入數(shù)據(jù),等待下一行掃描的觸發(fā)信號(hào)。其他各組FIFO的寫(xiě)入時(shí)序與第一組的完全一樣,且5組的寫(xiě)入操作是同時(shí)進(jìn)行的。
讀FIFO的控制相比寫(xiě)FIFO更簡(jiǎn)單,只需要從FIFO1到FIFO15依次讀取即可,如圖5所示。注意每個(gè)FIFO中只能讀取1728個(gè)數(shù)據(jù),讀完后立即切換到下一個(gè)FIFO,同一時(shí)刻只能有其中一個(gè)FIFO的讀操作使能,否則會(huì)造成輸出總線(xiàn)沖突。
用FIFO的讀使能信號(hào)同步控制后續(xù)的多路選擇器,使之從對(duì)應(yīng)的FIFO中依次讀取數(shù)據(jù),就能在傳輸數(shù)據(jù)的同時(shí)完成一行數(shù)據(jù)的自動(dòng)排序。如此逐行排序和傳輸,就能自動(dòng)重構(gòu)出實(shí)際掃描的圖像。

圖3 多路FIFO隊(duì)列傳輸與控制框圖

圖4 讀FIFO控制時(shí)序設(shè)計(jì)

圖5 讀FIFO控制時(shí)序設(shè)計(jì)
2.3采集與傳輸(重構(gòu))的流水操作
用控制FIFO的讀取順序的方式,能較為簡(jiǎn)單便捷地實(shí)現(xiàn)掃描圖像的重構(gòu)。由于FIFO讀寫(xiě)端口的獨(dú)立性,沒(méi)有必要等到將FIFO中一行的數(shù)據(jù)全部讀取完畢,再進(jìn)行下一行數(shù)據(jù)的寫(xiě)入。如圖6的流水操作示意圖所示,在FIFO結(jié)構(gòu)設(shè)計(jì)時(shí),已經(jīng)為每個(gè)FIFO配置了2倍的緩存空間,因此可將其分為A和B兩個(gè)部分。將第一行數(shù)據(jù)寫(xiě)入FIFO中后,數(shù)據(jù)移位到B部分,然后依次從每個(gè)FIFO中讀出一行的數(shù)量。在讀取B部分的同時(shí),向FIFO中寫(xiě)入第二行的數(shù)據(jù),寫(xiě)入的數(shù)據(jù)自動(dòng)從A部分移動(dòng)到B部分。如此進(jìn)行流水操作[7],采集和傳輸就可以同時(shí)進(jìn)行,再加上重構(gòu)過(guò)程完全融入于傳輸過(guò)程,因此,整體掃描速度不再受重構(gòu)時(shí)間的影響,而僅僅取決于傳輸接口的傳輸速度。

圖6 流水操作示意圖
3.1不同幅面掃描儀的邏輯資源消耗對(duì)比
不同幅面的掃描儀,需要不同數(shù)量的CIS拼接而成,因此所對(duì)應(yīng)消耗的緩存單元(FIFO或者雙口RAM)的數(shù)目也有所不同,控制邏輯資源的消耗也略有差異。圖7列出了從A4幅面到A0幅面的掃描儀所需FIFO緩存和雙口RAM緩存與相應(yīng)控制邏輯單元的消耗情況。其中A4幅面需要1根三通道CIS拼接而成,則對(duì)應(yīng)3個(gè)FIFO/雙口RAM;A3/A2幅面需要2根CIS拼接而成,則對(duì)應(yīng)6個(gè)FIFO/雙口RAM;A1和A0幅面則分別需要9個(gè)和15個(gè)FIFO/雙口RAM。由圖7可知,各種幅面中FIFO讀寫(xiě)控制資源的消耗都低于雙口RAM,平均計(jì)算約為30%。隨著控制邏輯資源的降低,硬件芯片的成本也隨之降低。因此,在保證高速重構(gòu)效率的同時(shí),使用多路FIFO緩存是更優(yōu)的解決方案。
3.2多路FIFO圖像實(shí)時(shí)重構(gòu)的性能優(yōu)勢(shì)與應(yīng)用
為了驗(yàn)證基于多路FIFO的圖像自動(dòng)重構(gòu)方法的處理能力和傳輸性能,運(yùn)用此方法在A2/A1/A0幅面的掃描系統(tǒng)中進(jìn)行測(cè)試,并與多個(gè)A4幅面的掃描系統(tǒng)進(jìn)行對(duì)比。根據(jù)測(cè)試結(jié)果得出,用5根CIS同時(shí)掃描并重構(gòu)可得到A0寬度的圖像,用3根CIS同時(shí)掃描并重構(gòu)可得到A1寬度的圖像,用2 根CIS同時(shí)掃描并重構(gòu)可得到A2寬度的圖像,該過(guò)程直接通過(guò)傳輸即可得到真實(shí)圖像,無(wú)需占用計(jì)算機(jī)平臺(tái)的額外資源,并且其重構(gòu)圖像能夠真實(shí)地反映原始圖像的信息。然而,當(dāng)同時(shí)用5個(gè)A4幅面的CIS掃描儀對(duì)一幅地圖進(jìn)行掃描時(shí),雖然5個(gè)A4掃描儀同時(shí)進(jìn)行掃描,但是無(wú)法同時(shí)將數(shù)據(jù)傳輸給計(jì)算機(jī),需等掃描動(dòng)作完成后,才能依次將5個(gè)掃描儀的數(shù)據(jù)發(fā)送給計(jì)算機(jī),最后還需要利用軟件進(jìn)行圖像重構(gòu)。因此,基于多路FIFO的圖像重構(gòu)方法的性能優(yōu)勢(shì)在于,既能在多通道掃描時(shí)進(jìn)行數(shù)據(jù)傳輸,又能同時(shí)進(jìn)行圖像重構(gòu),極大地提高了系統(tǒng)的效率。
由于多路FIFO圖像實(shí)時(shí)重構(gòu)方法的通用性和可擴(kuò)展性,目前已經(jīng)成功應(yīng)用于各種幅面的CIS掃描系統(tǒng)中。圖8 為A0幅面的寬幅精密掃描儀,其光學(xué)分辨率高達(dá)600 dpi,它配備的USB2.0接口的傳輸速率最快能達(dá)30 MB/s。圖9是1.0 m和 1.6 m幅面的寬幅外觸發(fā) CIS掃描設(shè)備,采用Camera-Link接口,傳輸速率高達(dá)120 MB/s。

圖7 不同幅面的FIFO與雙口RAM的控制資源消耗

圖8 A0幅面精密掃描儀

圖9 寬幅外觸發(fā)CIS線(xiàn)陣相機(jī)
文中針對(duì)多通道寬幅CIS掃描儀面臨的圖像重構(gòu)和高速傳輸問(wèn)題,深入分析了多通道CIS的傳輸特點(diǎn),提出了基于多路FIFO的圖像重構(gòu)方法,具有很強(qiáng)的靈活性和擴(kuò)展性,解決了不同幅面掃描系統(tǒng)的傳輸效率問(wèn)題,并成功應(yīng)用于A0幅面精密掃描儀和寬幅外觸發(fā)CIS線(xiàn)陣相機(jī)。在A0幅面的精密掃描儀中,將5根CIS圖像實(shí)時(shí)采集和重構(gòu),可以達(dá)到30 MB/s的傳輸速率。寬幅外觸發(fā)CIS掃描設(shè)備中,可達(dá)到120 MB/s的傳輸速率,據(jù)我們所知,達(dá)到如此幅面和掃描速度的CIS掃描設(shè)備在國(guó)內(nèi)尚屬首例。
[1]薛筱凡.掃描儀市場(chǎng)新趨勢(shì)[J]辦公自動(dòng)化,2008(9):9.
[2]Kuglin C D,Hines D C.The phase correlation image alignment method[J].Proc.Int.Conf.on Cybernetics and Society,1975:163-165.
[3]Akin A,Erdede E,Afshari H.,et al.Enhanced omnidirectional image reconstruction algorithm and its real-time hardware [J].Proc.IEEE 15th Euromicro Conf.Digital Syst.Design,2012:907-914.
[4]魏建英,葉玉堂,吳云峰,等.基于FPGA的超長(zhǎng)CIS圖像采集系統(tǒng)[J].通信技術(shù),2009(2)298-300.
[5]Nikolaos Alachiotis,Simon A.Berger,Alexsandros Stamatakis.Efficient pc-fpga communication over gigabit Ethernet[C]// 2010 10th IEEE International Conference on Computer and InformationTechnology(CIT2010).BradfordEngland,America:IEEE Computer Society,2010:1727-1734.
[6]Chen Liang,Long Teng.The design of image real-time record and quick-look system for asynchronous multi-channel CCD camera[C]//2008 9th International Conference on Signal Processing(ICSP 2008).Beijing China,IEEE,2008:2930-2933.
[7]JoséMartínez,LeopoldoAltamirano.FPGA-basedpipeline architecture to transform Cartesian images into foveal images by using a new foveation approach[C]//2006 IEEE International Conference on Reconfigurable Computing and FPGA’s.San Luis Potosi Mexico,IEEE,2006:1-10.
The real-time reconstruction technique of wide format CIS scanner based on multichannel FIFO
MEI Ling-liang1,CHEN De-yong2,HAO Ru-qian2,LUO Ying2,LIU Lin2
(1.Guangdong Zhengye Technology Co.,Ltd.,Dongguan 523000,China;2.Lab of MOEMIL,School of Opto-Electronic Information,University of Electronic Science and Technology of China,Chengdu 610054,China)
This paper proposes and demonstrates one novel multi-channel FIFO method which can effectively realize real-time multi-channel CIS image acquisition,reconstruction and transmission.Multi-channel image data can be cached and reconstructed without any address operations.Moreover,the logic resource of FPGA and the cost of hardware system can be greatly reduced,while maintaining high efficiency of reconstruction.The method has been successfully utilized in the CIS scanning systems with various widths.Significantly,a 120 MB/s scan-rate can be obtained in a 1.6 m wide device with Camera-Link interface.To our best knowledge,it's the first reported that the real-time reconstruction technique based on multi-channel FIFOs without address operation is used in wide format CIS scanner.
FIFO;CIS;FPGA;image reconstruction;wide format scanner
TN29
A
1674-6236(2016)14-0168-04
2015-05-25稿件編號(hào):201505218
梅領(lǐng)亮(1973—),男,江西臨川人,碩士,高級(jí)工程師。研究方向:光機(jī)電儀器設(shè)備、組件和材料。