《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的實時MIPI CSI-2圖像采集與處理系統(tǒng)
基于FPGA的實時MIPI CSI-2圖像采集與處理系統(tǒng)
2019年電子技術(shù)應(yīng)用第1期
李先友1,趙曙光1,段永成1,王建強2
1.東華大學 信息科學與技術(shù)學院,上海201620;2.上汽大眾汽車有限公司,上海201805
摘要: 針對目前移動嵌入式領(lǐng)域中廣泛使用的MIPI CSI-2接口,設(shè)計了一種基于Lattice FPGA的實時圖像采集與處理系統(tǒng),實現(xiàn)了高清圖像采集、Bayer格式轉(zhuǎn)換、圖像縮放、圖像倒置和飽和度調(diào)整等多種功能。通過對系統(tǒng)進行功能驗證與測試,表明系統(tǒng)可以穩(wěn)定地采集1080p60的圖像數(shù)據(jù),并完成相關(guān)的圖像處理功能,具有一定的實用價值。相對于其他平臺,采用FPGA具有實時性高,功耗和成本低以及系統(tǒng)升級方便等優(yōu)勢。
中圖分類號: TN919.3;TP274
文獻標識碼: 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.
MIPI CSI-2 image acquisition and processing system design based on FPGA
Li Xianyou1,Zhao Shuguang1,Duan Yongcheng1,Wang Jianqiang2
1.School of Information Science and Technology,Donghua University,Shanghai 201620,China; 2.SAIC Volkswagen Automotive Co.,Ltd.,Shanghai 201805,China
Abstract: A real-time image acquisition and processing system based on Lattice FPGA is designed for MIPI CSI-2 interface which is widely used in mobile embedded field. This system implements high-definition image acquisition, Bayer format conversion, image scaling, image inversion and saturation adjustment and other functions. It is shown that the system can stably capture 1080p60 image data and complete related image processing functions, through functional verification and testing of the system. It proves that this system has a certain practical value. Compared with other platforms, FPGA-based system has the advantages of high real-time performance, low power consumption, low cost, and easy system upgrade.
Key words : MIPI;CrossLink;FPGA;image acquisition and processing

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所示。

qrs3-t1.gif

qrs3-t2.gif

    本系統(tǒng)的硬件體系結(jié)構(gòu)圖如圖3所示,ECP5除了實現(xiàn)了圖像處理功能之外,還分別通過攝像頭控制接口(Camera Control Interface,CCI)和I2C接口對索尼IMX214攝像頭和Sil1136 ASSP進行配置。

qrs3-t3.gif

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直接相連接。

qrs3-t4.gif

    由于MIPI CSI-2是一種高速串行差分接口,發(fā)送端與接收端之間的不同信號線的長度要盡可能地相等。然而,即使PCB嚴格地按照等長差分線設(shè)計,也難以保證不同信號線上的信號在同一時刻到達接收端[5]。因此,接收端需要對接收到的串行數(shù)據(jù)進行對齊操作。如圖5所示,CrossLink對MIPI CSI-2串行輸入依次進行了字節(jié)對齊操作和通道對齊操作,圖中的B8是MIPI CSI-2協(xié)議中的同步識別碼,表示每次傳輸?shù)臄?shù)據(jù)包的開頭。

qrs3-t5.gif

    如圖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)換。

qrs3-t6.gif

    為了適配顯示器的分辨率,本設(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)的四個像素值確定:

     qrs3-gs1.gif

qrs3-t7.gif

    圖像倒置和幀率轉(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幀。

qrs3-t8.gif

    飽和度調(diào)整模塊可以對像素的RGB值同時進行調(diào)整,可以只對其中的一個或者多個進行調(diào)整。其基本原理如式(2)所示,對RGB值分別乘以某一個系數(shù),然后再減去某個值,從而到達對特定色彩鮮艷度的調(diào)整。

    qrs3-gs2.gif

    由于在某些顯示器中,電流與電壓并不是一個線性的關(guān)系,這會導致暗區(qū)的像素要比實際情況更暗,而亮區(qū)要比實際情況更亮。為了能夠較好地還原實際的圖像,設(shè)計中還實現(xiàn)了伽馬校正(Gamma Correction)的功能。伽馬校正的基本原理如式(3)所示,其中Po表示校正之后的值,Pi為輸入的像素值,γ為伽馬系數(shù)值。

    qrs3-gs3.gif

    為了便于在FPGA中實現(xiàn),可以對式(3)稍作處理。如式(4)所示,其中b表示像素值的位寬。

    qrs3-gs4.gif

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ù)輸出。

qrs3-t9.gif

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值信號。

qrs3-t10.gif

3.3 圖像處理效果對比圖

    圖像處理效果對比圖如圖11所示,為了保證顯示效果,在測試過程中,Bayer轉(zhuǎn)RGB模塊和Gamma校正模塊一直處于使能的狀態(tài)。其中圖11(a)為原圖,即未使用白平衡、線性對比度展寬、圖像縮放與倒置、飽和度調(diào)整等模塊;圖11(b)為僅使用白平衡和線性對比度展寬模塊所獲得的圖像;圖11(c)為使用了飽和度調(diào)整之后的圖像;圖11(d)為使用了圖像縮放與倒置之后的圖像。

qrs3-t11.gif

    通過對比,可以發(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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。