文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.181937
中文引用格式: 李先友,趙曙光,段永成,等. 基于FPGA的實時MIPI CSI-2圖像采集與處理系統(tǒng)[J].電子技術(shù)應(yīng)用,2019,45(1):97-100.
英文引用格式: Li Xianyou,Zhao Shuguang,Duan Yongcheng,et al. MIPI CSI-2 image acquisition and processing system design based on FPGA[J]. Application of Electronic Technique,2019,45(1):97-100.
0 引言
為了滿足嵌入式設(shè)備中日益增長的實時高清圖像傳輸?shù)膸捯?,ARM和Motorola等公司于2003年提出了移動產(chǎn)業(yè)處理器接口(Mobile Industry Processor Interface,MIPI)協(xié)議,以替換傳統(tǒng)的并行數(shù)據(jù)接口。MIPI協(xié)議提出之初,主要有兩個應(yīng)用,分別是攝像頭串行接口[1](Camera Serial Interface,CSI)和顯示設(shè)備串行接口(Display Serial Interface,DSI)。目前,MIPI協(xié)議被廣泛地應(yīng)用于各種嵌入式設(shè)備中,如智能手機、VR、智能可穿戴設(shè)備和ADAS系統(tǒng)等。
本文采用Lattice FPGA設(shè)計了一種實時MIPI CSI-2圖像采集與處理系統(tǒng),并可以將處理后的圖像實時地顯示在HDMI接口的顯示器上,最高可支持1080p60的分辨率。與其他平臺相比,基于FPGA設(shè)計的本系統(tǒng)在實時性、功耗和成本以及系統(tǒng)升級等方面具有一定的優(yōu)勢。
1 系統(tǒng)硬件體系結(jié)構(gòu)
本系統(tǒng)基于Lattice官方的嵌入式視覺開發(fā)套件(Embedded Vision Development Kit,EVDK)設(shè)計,該套件一共有三層電路板,分別為MIPI CSI-2橋接板、ECP5圖像處理開發(fā)板和HDMI橋接板。其中,MIPI CSI-2橋接板上集成了索尼的IMX214攝像頭和Lattice CrossLink系列FPGA[2];ECP5圖像處理開發(fā)板上集成了Lattice ECP5系列FPGA和DDR3內(nèi)存顆粒;HDMI橋接板上采用的是Silicon Image公司的Sil1136專用標準產(chǎn)品(Application Specific Standard Parts,ASSP)[3],用于將并行RGB數(shù)據(jù)轉(zhuǎn)換成標準的HDMI信號輸出至顯示器。
設(shè)計中,采用CrossLink對IMX214輸出的MIPI CSI-2數(shù)據(jù)進行采集,并完成協(xié)議解析、字節(jié)到像素轉(zhuǎn)換等功能。隨后將得到的Bayer格式的數(shù)據(jù),以及相應(yīng)的幀有效信號(Frame Valid,F(xiàn)V)與行有效信號(Line Valid,LV)發(fā)送至ECP5圖像處理開發(fā)板。ECP5接收來自CrossLink的Bayer格式數(shù)據(jù)后,依次進行線性對比度展寬、白平衡、去除壞點、Bayer格式轉(zhuǎn)RGB格式、圖像縮放、圖像倒置、飽和度調(diào)整和Gamma矯正等操作。隨后,將處理后的數(shù)據(jù)以并行RGB的形式發(fā)送至Sil1136 HDMI橋接板。CrossLink和ECP5的內(nèi)部邏輯功能框圖分別如圖1和圖2所示。
本系統(tǒng)的硬件體系結(jié)構(gòu)圖如圖3所示,ECP5除了實現(xiàn)了圖像處理功能之外,還分別通過攝像頭控制接口(Camera Control Interface,CCI)和I2C接口對索尼IMX214攝像頭和Sil1136 ASSP進行配置。
2 FPGA模塊設(shè)計
2.1 CrossLink MIPI CSI-2接收模塊設(shè)計
如圖4所示,MIPI CSI-2接口有高速和低功耗兩種模式,高速模式下的電平標準為可配置低壓信號[4](Scalable Low Voltage Signaling,SLVS),其共模電壓為200 mV,擺幅也是200 mV;而低功耗模式的電平標準為LVCMOS 1.2 V。如果采用普通FPGA來連接MIPI CSI-2接口,一般需要兩對IO來分別處理高速模式和低功耗模式,而采用Lattice最新推出的CrossLink器件,則可以將其與CrossLink的MIPI專用IO直接相連接。
由于MIPI CSI-2是一種高速串行差分接口,發(fā)送端與接收端之間的不同信號線的長度要盡可能地相等。然而,即使PCB嚴格地按照等長差分線設(shè)計,也難以保證不同信號線上的信號在同一時刻到達接收端[5]。因此,接收端需要對接收到的串行數(shù)據(jù)進行對齊操作。如圖5所示,CrossLink對MIPI CSI-2串行輸入依次進行了字節(jié)對齊操作和通道對齊操作,圖中的B8是MIPI CSI-2協(xié)議中的同步識別碼,表示每次傳輸?shù)臄?shù)據(jù)包的開頭。
如圖1所示,MIPI D-PHY CSI-2接收模塊將對齊后的數(shù)據(jù)經(jīng)過跨時鐘域FIFO輸出至時序控制模塊和字節(jié)到像素轉(zhuǎn)換模塊。字節(jié)到像素轉(zhuǎn)換模塊將索尼IMX214攝像頭輸出的10位Bayer格式(即RAW10)的字節(jié)數(shù)據(jù)轉(zhuǎn)換為10位并行的像素數(shù)據(jù)后輸出。
2.2 ECP5圖像處理模塊設(shè)計
由于直接接收到的圖像數(shù)據(jù)均值很?。ū憩F(xiàn)為圖像很暗),且可能會存在極個別像素為壞點的情況,因此,ECP5對接收自CrossLink的像素數(shù)據(jù)首先進行了線性對比度展寬(又稱分段線性映射)、白平衡調(diào)整和壞點去除處理。
如圖6所示,Bayer格式的圖像數(shù)據(jù)中每一個像素僅僅包括了光譜的一部分,因此必須通過插值來得到每個像素的RGB值。本設(shè)計中采用了常見的鄰域插值算法來實現(xiàn)Bayer格式到RGB格式的轉(zhuǎn)換。
為了適配顯示器的分辨率,本設(shè)計還在ECP5中實現(xiàn)了圖像縮放模塊,可將1080p(1 920×1 080)轉(zhuǎn)化為任意分辨率(如1 280×720、2 048×1 536等)。圖像縮放算法的核心就是插值算法,常見的插值算法有最近鄰插值法、9點插值法、雙線性插值法和雙立方插值法等。其中最近鄰插值法和9點插值法相對簡單,但是效果也較為一般,如果縮放比例過大會導致嚴重的馬賽克或者失真現(xiàn)象。雙立方算法最為復雜,效果也最好,但是會耗費較多的FPGA邏輯資源。綜合效果和資源兩方面,本設(shè)計采用的是雙線性插值,該算法的基本原理如下:
假設(shè)某個目標像素地址對應(yīng)的源像素地址的浮點坐標為P(i+u,j+v),其中i和j為浮點坐標的整數(shù)部分,u和v為浮點坐標的小數(shù)部分。如圖7所示,則該像素的值F(i+u,j+v)可由原圖像中坐標為Q11(i,j)、Q21(i+1,j)、Q12(i,j+1)和Q22(i+1,j+1)的四個像素值確定:
圖像倒置和幀率轉(zhuǎn)換需要至少緩存兩幀的圖像像素值,而ECP5中的嵌入式塊RAM(Embedded Block RAM,EBR)資源不足以緩存下這么多的數(shù)據(jù),因此需要借助外部的DDR3 SDRAM存儲。圖像倒置和幀率轉(zhuǎn)換的功能框圖如圖8所示,數(shù)據(jù)先通過寫入FIFO,完成跨時鐘域轉(zhuǎn)換,然后借助Lattice的DDR3 SDRAM控制器IP完成對開發(fā)板上的兩個Micron DDR3 SDRAM顆粒的讀寫,最后通過讀取FIFO輸出數(shù)據(jù)。此外,還可以通過配置信號使能或者禁止這兩個功能,以及修改相關(guān)的參數(shù)等。幀率轉(zhuǎn)換模塊可以將每秒30幀的圖像轉(zhuǎn)換為每秒60幀,或者將每秒60幀轉(zhuǎn)換為每秒30幀。
飽和度調(diào)整模塊可以對像素的RGB值同時進行調(diào)整,可以只對其中的一個或者多個進行調(diào)整。其基本原理如式(2)所示,對RGB值分別乘以某一個系數(shù),然后再減去某個值,從而到達對特定色彩鮮艷度的調(diào)整。
由于在某些顯示器中,電流與電壓并不是一個線性的關(guān)系,這會導致暗區(qū)的像素要比實際情況更暗,而亮區(qū)要比實際情況更亮。為了能夠較好地還原實際的圖像,設(shè)計中還實現(xiàn)了伽馬校正(Gamma Correction)的功能。伽馬校正的基本原理如式(3)所示,其中Po表示校正之后的值,Pi為輸入的像素值,γ為伽馬系數(shù)值。
為了便于在FPGA中實現(xiàn),可以對式(3)稍作處理。如式(4)所示,其中b表示像素值的位寬。
3 系統(tǒng)驗證與結(jié)果分析
為了驗證系統(tǒng)的功能,將索尼IMX214配置為1 920×1 080,60 Hz,RAW10格式輸出。通過Lattice Diamond中的Reveal工具采集ECP5中的相關(guān)輸入輸出信號波形圖。由于MIPI CSI-2輸入信號屬于專用IO信號,無法直接使用Reveal采集,因此借助Active HDL軟件對CrossLink中的設(shè)計進行仿真,以獲得相關(guān)信號波形。并通過禁止(或者使能)相關(guān)模塊功能,對比輸出圖像的效果。
3.1 CrossLink相關(guān)信號波形圖
CrossLink的仿真波形圖如圖9所示,其中csi_clk_p為MIPI CSI-2輸入時鐘信號,為連續(xù)模式(Continuous Mode)。csi_d0_p、csi_d1_p、csi_d2_p和csi_d3_p為MIPI CSI-2的四個數(shù)據(jù)輸入通道(Data Lane)。fv為幀有效信號,lv為行有效信號,pixdata為 RAW10格式的像素數(shù)據(jù)輸出。
3.2 ECP5相關(guān)信號波形圖
ECP5的Reveal采集波形圖如圖10所示,其中CSI2_sens_fv為CrossLink輸出的幀有效信號,CSI2_sens_lv為行有效信號,CSI2_sens_data為RAW10格式的像素數(shù)據(jù)。vsync和hsync分別為幀同步信號和行同步信號,data_enable為數(shù)據(jù)有效信號。pix_red、pix_green和pix_blue分別為輸出的像素的RGB值信號。
3.3 圖像處理效果對比圖
圖像處理效果對比圖如圖11所示,為了保證顯示效果,在測試過程中,Bayer轉(zhuǎn)RGB模塊和Gamma校正模塊一直處于使能的狀態(tài)。其中圖11(a)為原圖,即未使用白平衡、線性對比度展寬、圖像縮放與倒置、飽和度調(diào)整等模塊;圖11(b)為僅使用白平衡和線性對比度展寬模塊所獲得的圖像;圖11(c)為使用了飽和度調(diào)整之后的圖像;圖11(d)為使用了圖像縮放與倒置之后的圖像。
通過對比,可以發(fā)現(xiàn)IMX214直接輸出的像素信號值很小,因此顯示的畫面很暗。經(jīng)過線性對比度展寬等模塊的處理后,圖像又顯得過亮,且色彩不夠鮮艷。再經(jīng)過飽和度調(diào)整模塊處理后,圖像取得了較好的色彩效果。最后,圖像倒置模塊也成功地對圖像完成了倒置的操作。
4 結(jié)論
本文設(shè)計并基于Lattice FPGA實現(xiàn)了一個實時的高清圖像采集與處理系統(tǒng)。其最高可采集1080p60的實時圖像,并完成一系列的實時圖像處理功能。由于采用了模塊化的設(shè)計思想,使得其具有良好的可擴展性和可裁剪性?;诒驹O(shè)計,稍加改動還可以完成例如邊緣檢測、圖像分割與拼接等常規(guī)的圖像處理功能。表明本系統(tǒng)具有良好的靈活性與較高的實用價值。
參考文獻
[1] MIPI Alliance,Inc.MIPI alliance specification for camera serial interface 2(CSI-2)[Z].2009.
[2] Lattice Semiconductor.CrossLink family data sheet[Z].2018.
[3] Lattice Semiconductor. Sil9136-3/Sil1136 HDMI deep color transmitter data sheet[Z].2018.
[4] MIPI Alliance,Inc.MIPI alliance specification for D-PHY[Z].2009.
[5] 李凱.MIPI CSI/DSI簡介及信號和協(xié)議測試方法[J].國外電子測量技術(shù),2012,31(3):11-15.
作者信息:
李先友1,趙曙光1,段永成1,王建強2
(1.東華大學 信息科學與技術(shù)學院,上海201620;2.上汽大眾汽車有限公司,上海201805)