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

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

2.2 FPGA的硬件實(shí)現原理
由于雙線(xiàn)性插值法需要將圖像數據采集成3x3的圖像矩陣,系統采用一種由FPGA硬件元器件構成的FD-FIFO模型取圖像矩陣。電路如圖2所示。本文引用地址:http://dyxdggzs.com/article/191433.htm
如圖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è)元素后相當于是零元素。
評論