基于FPGA+DSP技術(shù)的Bayer格式圖像預(yù)處理
由于系統(tǒng)中TMS320DM642的視頻端口使用的是8位RAW采集方式從CMOS傳感器中采集圖像,為了減輕DSP的運算負(fù)擔(dān),FPGA還需要將圖像數(shù)據(jù)轉(zhuǎn)換成Y亮度信號。將得到的RGB圖像信號,通過浮點算法公式轉(zhuǎn)換成亮度信號,具體推導(dǎo)公式如下(GB代表取高8位數(shù)據(jù)):
2.2 FPGA的硬件實現(xiàn)原理
由于雙線性插值法需要將圖像數(shù)據(jù)采集成3x3的圖像矩陣,系統(tǒng)采用一種由FPGA硬件元器件構(gòu)成的FD-FIFO模型取圖像矩陣。電路如圖2所示。本文引用地址:http://www.ex-cimer.com/article/191433.htm
如圖2所示,每個移位寄存器FD和先入先出寄存器FIFO左側(cè)上端信號為時鐘輸入信號(上升沿有效),左側(cè)下端信號為8位的像素信號。圖像矩陣的采集流程為:8位的圖像信號送到第1個FD,然后經(jīng)過移位操作從第3個FD存入左邊第1個FIFO,存入一行圖像數(shù)據(jù)后,等第2行圖像數(shù)據(jù)送達(dá)時,第2行的圖像數(shù)據(jù)經(jīng)過移位操作從FD存入左邊第1個FIFO,同時存儲在第1個FIFO的數(shù)據(jù)開始讀出到第4個FD,再經(jīng)過移位操作存入第2個FIFO,等待兩行圖像數(shù)據(jù)都存儲后,當(dāng)?shù)?行圖像數(shù)據(jù)送達(dá)至第3個FD,同時后面2個FIFO分別讀出前兩行的前3個圖像數(shù)據(jù)時,就可以從FD和FIFO的輸出端口讀取到1個3x3的圖像數(shù)據(jù)矩陣:3x3矩陣第1行從左到右的數(shù)據(jù)為ABC,第2行的數(shù)據(jù)從左到右為DEF,第3行的數(shù)據(jù)從左到右為GHI。
CMOS圖像傳感器采集的圖像大小固定為2 592x1 946x12 bit的Bayer圖像,F(xiàn)PGA先用一個12位輸入8位輸出的移位寄存器取圖像的高8位,再利用FD-FIFO得到3x3的圖像矩陣,然后可以根據(jù)雙線性插值法計算圖像的RGB信號。雙線性插值法雖然算法簡單,且易于實現(xiàn),但是存在邊界效應(yīng)。系統(tǒng)對邊界效應(yīng)做了如下的處理方法:對圖像四周全部補零,即先將圖像擴(kuò)展成2 594x1 946大小,然后計算得到2592x1 944大小的圖像,這樣得到的圖像仍是完整尺寸。只需在運算的時候,針對不同四周特殊的像素采用裁減的公式(系統(tǒng)中不產(chǎn)生零像素,只是對計算公式中相應(yīng)邊界元素補零)。過程如下:
第1行圖像讀入第1個FIF0后,第2行圖像開始讀入左邊第1個FD的時候,開始計算第1行RGB數(shù)據(jù),這時候第2個FIFO沒有數(shù)據(jù),相當(dāng)于在第1行的數(shù)據(jù)前面補零。第1 944行圖像讀入第1個FIFO后,第1 943行圖像讀入第2個FIFO的時候,開始計算最后1行(第1 944行),這時候第1個FD已經(jīng)沒有數(shù)據(jù)讀入,相當(dāng)于在第1 944行的數(shù)據(jù)后面補零。由于FD具有延時效應(yīng),所以在讀寫時,前1個FIFO開始讀寫時,再經(jīng)過延時2個時鐘周期,才到達(dá)后1個FIFO,所以相鄰的FIFO讀寫使能信號要間隔2個時鐘周期。
對列的操作也是如此,每一行的第1個元素讀出到B、E、H位置時開始計算,這樣每一列的第1個元素前相當(dāng)于是零元素。每一行的最后一個元素讀出到B,E,H位置時開始計算,這樣每一列的最后一個元素后相當(dāng)于是零元素。
評論