<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA+DSP技術(shù)的Bayer格式圖像處理

基于FPGA+DSP技術(shù)的Bayer格式圖像處理

作者: 時(shí)間:2012-02-13 來(lái)源:網(wǎng)絡(luò ) 收藏

高分辨率圖像實(shí)時(shí)處理在通信、醫學(xué)、軍事、航天航空、信息安全等領(lǐng)域有著(zhù)廣泛的應用和發(fā)展。在圖像實(shí)時(shí)處理的過(guò)程中,下層圖像預處理的數據量大,運算簡(jiǎn)單,但是要求運算速率高,可以用硬件來(lái)處理,上層所處理的數據量少,算法結構復雜,適于運算速度快,尋址靈活的數字信號處理器進(jìn)行處理。這里提出了一種+相結合的實(shí)時(shí)圖像處理系統,并應用于傳像光線(xiàn)束傳遞圖像。CMOS實(shí)際采集的是光線(xiàn)束的出端圖像,將CMOS采集的Bayer格式的圖像轉換為RGB格式的亮度信號。由于光纖出、入端結構不同,需要準確每根光纖的中心位置,重新排序才能輸出正確的圖像信息。該系統充分發(fā)揮了FPGA和DSP各自的優(yōu)勢,能更好地提高圖像處理的實(shí)時(shí)性,降低成本。

本文引用地址:http://dyxdggzs.com/article/257716.htm

1Bayer圖像格式

CMOS圖像傳感器作為一種基礎器件可以實(shí)現信息的采集、轉換以及視覺(jué)功能的擴展,并能直觀(guān)真實(shí)地給出可視圖像信息。系統中CMOS圖像傳感器輸出2 592x1 944x12 bit的Bayer格式的圖像(該格式的圖像本身就是數字信號,因此無(wú)需對圖像進(jìn)行模數轉換),Bayer圖像格式如圖1所示。在圖l中,每個(gè)方格代表一個(gè)像素,并且只含有R、G、B中的一種顏色分量,奇數行由G、R像素交替構成,偶數行由B、G像素交替進(jìn)行,其中G像素分量占所有像素的一半,R像素和G像素占另一半。因為G像素分量是R、B像素分量的2倍,所以如果G像素分量采用好的插值方法,不僅可以提高G像素分量的質(zhì)量,也能提高R和B像素分量的質(zhì)量。由于的video port capture接口的數據總線(xiàn)是8位或者16位(該系統采用了更適合DSP處理的8位數據),所以為了后續的DSP能夠更好的處理數據并減少DSP的運算量,需要使用FPGA先將輸出的圖像數據取高8位,然后依據每個(gè)像素點(diǎn)與相鄰8個(gè)像素點(diǎn)之間的關(guān)系,使用雙線(xiàn)性插值法將Bayer圖像格式轉換成24位的RGB圖像格式和亮度信號,然后將處理后的數據發(fā)送給DSP。

2圖像數據處理的工作原理

2.1Bayer圖像的格式轉換

雙線(xiàn)性插值法具有算法計算量少,算法結構簡(jiǎn)單,易于實(shí)現,占硬件資源少等優(yōu)點(diǎn),本系統中更適合FPGA實(shí)現。雙線(xiàn)性插值法的基本原理是將每個(gè)像素位置上缺少的另外兩種色彩分量通過(guò)該像素本身為中心的領(lǐng)域內具有相同分量的像素平均獲得,即將每個(gè)像素的RGB分量都以該點(diǎn)像素為中心的3x3像素矩陣進(jìn)行線(xiàn)性插值而成。按照這種思路可以將圖像中的3x3矩陣分成4類(lèi),如表1所示。


每種圖像矩陣中間的像素點(diǎn)為待插值的數據源,設R(x,y)、G(x,y)、B(x,y)為插值計算后該點(diǎn)紅、綠、藍像素分量。當像素位于奇數行奇數列計算公式為:

由于系統中的視頻端口使用的是8位RAW采集方式從CMOS傳感器中采集圖像,為了減輕DSP的運算負擔,FPGA還需要將圖像數據轉換成Y亮度信號。將得到的RGB圖像信號,通過(guò)浮點(diǎn)算法公式轉換成亮度信號,具體推導公式如下(GB代表取高8位數據):

2.2 FPGA的硬件實(shí)現原理

由于雙線(xiàn)性插值法需要將圖像數據采集成3x3的圖像矩陣,系統采用一種由FPGA硬件元器件構成的FD-FIFO模型取圖像矩陣。電路如圖2所示。

如圖2所示,每個(gè)移位寄存器FD和先入先出寄存器FIFO左側上端信號為時(shí)鐘輸入信號(上升沿有效),左側下端信號為8位的像素信號。圖像矩陣的采集流程為:8位的圖像信號送到第1個(gè)FD,然后經(jīng)過(guò)移位操作從第3個(gè)FD存入左邊第1個(gè)FIFO,存入一行圖像數據后,等第2行圖像數據送達時(shí),第2行的圖像數據經(jīng)過(guò)移位操作從FD存入左邊第1個(gè)FIFO,同時(shí)存儲在第1個(gè)FIFO的數據開(kāi)始讀出到第4個(gè)FD,再經(jīng)過(guò)移位操作存入第2個(gè)FIFO,等待兩行圖像數據都存儲后,當第3行圖像數據送達至第3個(gè)FD,同時(shí)后面2個(gè)FIFO分別讀出前兩行的前3個(gè)圖像數據時(shí),就可以從FD和FIFO的輸出端口讀取到1個(gè)3x3的圖像數據矩陣:3x3矩陣第1行從左到右的數據為ABC,第2行的數據從左到右為DEF,第3行的數據從左到右為GHI。

CMOS圖像傳感器采集的圖像大小固定為2 592x1 946x12 bit的Bayer圖像,FPGA先用一個(gè)12位輸入8位輸出的移位寄存器取圖像的高8位,再利用FD-FIFO得到3x3的圖像矩陣,然后可以根據雙線(xiàn)性插值法計算圖像的RGB信號。雙線(xiàn)性插值法雖然算法簡(jiǎn)單,且易于實(shí)現,但是存在邊界效應。系統對邊界效應做了如下的處理方法:對圖像四周全部補零,即先將圖像擴展成2 594x1 946大小,然后計算得到2592x1 944大小的圖像,這樣得到的圖像仍是完整尺寸。只需在運算的時(shí)候,針對不同四周特殊的像素采用裁減的公式(系統中不產(chǎn)生零像素,只是對計算公式中相應邊界元素補零)。過(guò)程如下:第1行圖像讀入第1個(gè)FIF0后,第2行圖像開(kāi)始讀入左邊第1個(gè)FD的時(shí)候,開(kāi)始計算第1行RGB數據,這時(shí)候第2個(gè)FIFO沒(méi)有數據,相當于在第1行的數據前面補零。第1 944行圖像讀入第1個(gè)FIFO后,第1 943行圖像讀入第2個(gè)FIFO的時(shí)候,開(kāi)始計算最后1行(第1 944行),這時(shí)候第1個(gè)FD已經(jīng)沒(méi)有數據讀入,相當于在第1 944行的數據后面補零。由于FD具有延時(shí)效應,所以在讀寫(xiě)時(shí),前1個(gè)FIFO開(kāi)始讀寫(xiě)時(shí),再經(jīng)過(guò)延時(shí)2個(gè)時(shí)鐘周期,才到達后1個(gè)FIFO,所以相鄰的FIFO讀寫(xiě)使能信號要間隔2個(gè)時(shí)鐘周期。

對列的操作也是如此,每一行的第1個(gè)元素讀出到B、E、H位置時(shí)開(kāi)始計算,這樣每一列的第1個(gè)元素前相當于是零元素。每一行的最后一個(gè)元素讀出到B,E,H位置時(shí)開(kāi)始計算,這樣每一列的最后一個(gè)元素后相當于是零元素。

3圖像預處理系統的硬件工作過(guò)程

圖像預處理系統硬件框圖如圖3所示,整個(gè)系統在通電后,先由通過(guò)I2C向500萬(wàn)像素的CMOS攝像頭發(fā)出控制命令,調整攝像頭輸出的圖像分辨率、焦距等,之后由攝像頭將采集到的圖像數據發(fā)送至FPGA。由于攝像頭輸出的圖像格式為12位的Bayer圖像,而DSP的vp-ort口支持為8位或者16位的RAW采集方式,本項目中采用了更適合于DSP處理的8位數據,所以需要FPGA對采集的圖像數據取高8位以方便DSP獲取圖像數據。FPGA在Frame_Valid和Line_Valid同時(shí)為高電平的時(shí),在Pixclk的上升沿采樣圖像數據,并將原來(lái)的12位圖像數據取其高8位轉換成8位Bayer圖像數據,然后利用FPGA內部的FD-FIFO模型結構取圖像的3x3矩陣并利用雙線(xiàn)性插值算法將Bayer圖像轉換成24位的RGB圖像格式。除此之外,FPGA還將Bayer圖像數據轉換成了Y亮度信號以達到DSP對運算數據的要求,使得DSP只工作在核心算法上。


轉換好的亮度圖像數據由FPGA通過(guò)TMS320DM642的VPort1口發(fā)送至DSP進(jìn)行核心算法處理。為了更好地達到整個(gè)DSP算法處理的實(shí)時(shí)性,DSP采用了BIOS實(shí)時(shí)操作系統。經(jīng)算法處理好的圖像數據由TMS320DM642通過(guò)其VPortO口發(fā)送至FPGA。圖像預處理過(guò)程是在Spartan-3系列的XC3S1500x中進(jìn)行的。FPGA使用的設計方法是HDL設計輸入法,常用的HDL語(yǔ)言有VHDL和VerilogDHL語(yǔ)言,在本系統中使用VHDL語(yǔ)言進(jìn)行硬件設計。

系統采用的是通過(guò)FPGA固件支持高傳輸率USB2.0的CY7C68013芯片,采用Slave_FIFO模式接收FPGA輸出的圖像數據,再通過(guò)USB口輸送給上位機。如圖4所示,圖4(a)為RAW圖像,即每個(gè)像素點(diǎn)只含有單一顏色分量的Bayer格式圖像,圖4(b)為系統處理后的RGB格式的亮度信號圖像。

4 結論

可見(jiàn),本文所提出的基于FPGA+DSP的圖像處理系統,能在FPGA硬件設備中高速、高質(zhì)量地對CMOS傳感器采集的Bayer圖像進(jìn)行預處理,為DSP數字信號處理器進(jìn)行核心算法減少運算量,提高整個(gè)圖像處理的實(shí)時(shí)性,縮短了開(kāi)發(fā)周期,并且這種FPGA+DSP的組合模式也可以推廣到處理各種數字視頻信號。




關(guān)鍵詞: DSP FPGA TMS320DM642

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>