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