《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 基于FPGA的实时MIPI CSI-2图像采集与处理系统
基于FPGA的实时MIPI CSI-2图像采集与处理系统
2019年电子技术应用第1期
李先友1,赵曙光1,段永成1,王建强2
1.东华大学 信息科学与技术学院,上海201620;2.上汽大众汽车有限公司,上海201805
摘要: 针对目前移动嵌入式领域中广泛使用的MIPI CSI-2接口,设计了一种基于Lattice FPGA的实时图像采集与处理系统,实现了高清图像采集、Bayer格式转换、图像缩放、图像倒置和饱和度调整等多种功能。通过对系统进行功能验证与测试,表明系统可以稳定地采集1080p60的图像数据,并完成相关的图像处理功能,具有一定的实用价值。相对于其他平台,采用FPGA具有实时性高,功耗和成本低以及系统升级方便等优势。
中图分类号: TN919.3;TP274
文献标识码: A
DOI:10.16157/j.issn.0258-7998.181937
中文引用格式: 李先友,赵曙光,段永成,等. 基于FPGA的实时MIPI CSI-2图像采集与处理系统[J].电子技术应用,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 引言

    为了满足嵌入式设备中日益增长的实时高清图像传输的带宽要求,ARM和Motorola等公司于2003年提出了移动产业处理器接口(Mobile Industry Processor Interface,MIPI)协议,以替换传统的并行数据接口。MIPI协议提出之初,主要有两个应用,分别是摄像头串行接口[1](Camera Serial Interface,CSI)和显示设备串行接口(Display Serial Interface,DSI)。目前,MIPI协议被广泛地应用于各种嵌入式设备中,如智能手机、VR、智能可穿戴设备和ADAS系统等。

    本文采用Lattice FPGA设计了一种实时MIPI CSI-2图像采集与处理系统,并可以将处理后的图像实时地显示在HDMI接口的显示器上,最高可支持1080p60的分辨率。与其他平台相比,基于FPGA设计的本系统在实时性、功耗和成本以及系统升级等方面具有一定的优势。

1 系统硬件体系结构

    本系统基于Lattice官方的嵌入式视觉开发套件(Embedded Vision Development Kit,EVDK)设计,该套件一共有三层电路板,分别为MIPI CSI-2桥接板、ECP5图像处理开发板和HDMI桥接板。其中,MIPI CSI-2桥接板上集成了索尼的IMX214摄像头和Lattice CrossLink系列FPGA[2];ECP5图像处理开发板上集成了Lattice ECP5系列FPGA和DDR3内存颗粒;HDMI桥接板上采用的是Silicon Image公司的Sil1136专用标准产品(Application Specific Standard Parts,ASSP)[3],用于将并行RGB数据转换成标准的HDMI信号输出至显示器。

    设计中,采用CrossLink对IMX214输出的MIPI CSI-2数据进行采集,并完成协议解析、字节到像素转换等功能。随后将得到的Bayer格式的数据,以及相应的帧有效信号(Frame Valid,FV)与行有效信号(Line Valid,LV)发送至ECP5图像处理开发板。ECP5接收来自CrossLink的Bayer格式数据后,依次进行线性对比度展宽、白平衡、去除坏点、Bayer格式转RGB格式、图像缩放、图像倒置、饱和度调整和Gamma矫正等操作。随后,将处理后的数据以并行RGB的形式发送至Sil1136 HDMI桥接板。CrossLink和ECP5的内部逻辑功能框图分别如图1和图2所示。

qrs3-t1.gif

qrs3-t2.gif

    本系统的硬件体系结构图如图3所示,ECP5除了实现了图像处理功能之外,还分别通过摄像头控制接口(Camera Control Interface,CCI)和I2C接口对索尼IMX214摄像头和Sil1136 ASSP进行配置。

qrs3-t3.gif

2 FPGA模块设计

2.1 CrossLink MIPI CSI-2接收模块设计

    如图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是一种高速串行差分接口,发送端与接收端之间的不同信号线的长度要尽可能地相等。然而,即使PCB严格地按照等长差分线设计,也难以保证不同信号线上的信号在同一时刻到达接收端[5]。因此,接收端需要对接收到的串行数据进行对齐操作。如图5所示,CrossLink对MIPI CSI-2串行输入依次进行了字节对齐操作和通道对齐操作,图中的B8是MIPI CSI-2协议中的同步识别码,表示每次传输的数据包的开头。

qrs3-t5.gif

    如图1所示,MIPI D-PHY CSI-2接收模块将对齐后的数据经过跨时钟域FIFO输出至时序控制模块和字节到像素转换模块。字节到像素转换模块将索尼IMX214摄像头输出的10位Bayer格式(即RAW10)的字节数据转换为10位并行的像素数据后输出。

2.2 ECP5图像处理模块设计

    由于直接接收到的图像数据均值很小(表现为图像很暗),且可能会存在极个别像素为坏点的情况,因此,ECP5对接收自CrossLink的像素数据首先进行了线性对比度展宽(又称分段线性映射)、白平衡调整和坏点去除处理。

    如图6所示,Bayer格式的图像数据中每一个像素仅仅包括了光谱的一部分,因此必须通过插值来得到每个像素的RGB值。本设计中采用了常见的邻域插值算法来实现Bayer格式到RGB格式的转换。

qrs3-t6.gif

    为了适配显示器的分辨率,本设计还在ECP5中实现了图像缩放模块,可将1080p(1 920×1 080)转化为任意分辨率(如1 280×720、2 048×1 536等)。图像缩放算法的核心就是插值算法,常见的插值算法有最近邻插值法、9点插值法、双线性插值法和双立方插值法等。其中最近邻插值法和9点插值法相对简单,但是效果也较为一般,如果缩放比例过大会导致严重的马赛克或者失真现象。双立方算法最为复杂,效果也最好,但是会耗费较多的FPGA逻辑资源。综合效果和资源两方面,本设计采用的是双线性插值,该算法的基本原理如下:

    假设某个目标像素地址对应的源像素地址的浮点坐标为P(i+u,j+v),其中i和j为浮点坐标的整数部分,u和v为浮点坐标的小数部分。如图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

    图像倒置和帧率转换需要至少缓存两帧的图像像素值,而ECP5中的嵌入式块RAM(Embedded Block RAM,EBR)资源不足以缓存下这么多的数据,因此需要借助外部的DDR3 SDRAM存储。图像倒置和帧率转换的功能框图如图8所示,数据先通过写入FIFO,完成跨时钟域转换,然后借助Lattice的DDR3 SDRAM控制器IP完成对开发板上的两个Micron DDR3 SDRAM颗粒的读写,最后通过读取FIFO输出数据。此外,还可以通过配置信号使能或者禁止这两个功能,以及修改相关的参数等。帧率转换模块可以将每秒30帧的图像转换为每秒60帧,或者将每秒60帧转换为每秒30帧。

qrs3-t8.gif

    饱和度调整模块可以对像素的RGB值同时进行调整,可以只对其中的一个或者多个进行调整。其基本原理如式(2)所示,对RGB值分别乘以某一个系数,然后再减去某个值,从而到达对特定色彩鲜艳度的调整。

    qrs3-gs2.gif

    由于在某些显示器中,电流与电压并不是一个线性的关系,这会导致暗区的像素要比实际情况更暗,而亮区要比实际情况更亮。为了能够较好地还原实际的图像,设计中还实现了伽马校正(Gamma Correction)的功能。伽马校正的基本原理如式(3)所示,其中Po表示校正之后的值,Pi为输入的像素值,γ为伽马系数值。

    qrs3-gs3.gif

    为了便于在FPGA中实现,可以对式(3)稍作处理。如式(4)所示,其中b表示像素值的位宽。

    qrs3-gs4.gif

3 系统验证与结果分析

    为了验证系统的功能,将索尼IMX214配置为1 920×1 080,60 Hz,RAW10格式输出。通过Lattice Diamond中的Reveal工具采集ECP5中的相关输入输出信号波形图。由于MIPI CSI-2输入信号属于专用IO信号,无法直接使用Reveal采集,因此借助Active HDL软件对CrossLink中的设计进行仿真,以获得相关信号波形。并通过禁止(或者使能)相关模块功能,对比输出图像的效果。

3.1 CrossLink相关信号波形图

    CrossLink的仿真波形图如图9所示,其中csi_clk_p为MIPI CSI-2输入时钟信号,为连续模式(Continuous Mode)。csi_d0_p、csi_d1_p、csi_d2_p和csi_d3_p为MIPI CSI-2的四个数据输入通道(Data Lane)。fv为帧有效信号,lv为行有效信号,pixdata为 RAW10格式的像素数据输出。

qrs3-t9.gif

3.2 ECP5相关信号波形图

    ECP5的Reveal采集波形图如图10所示,其中CSI2_sens_fv为CrossLink输出的帧有效信号,CSI2_sens_lv为行有效信号,CSI2_sens_data为RAW10格式的像素数据。vsync和hsync分别为帧同步信号和行同步信号,data_enable为数据有效信号。pix_red、pix_green和pix_blue分别为输出的像素的RGB值信号。

qrs3-t10.gif

3.3 图像处理效果对比图

    图像处理效果对比图如图11所示,为了保证显示效果,在测试过程中,Bayer转RGB模块和Gamma校正模块一直处于使能的状态。其中图11(a)为原图,即未使用白平衡、线性对比度展宽、图像缩放与倒置、饱和度调整等模块;图11(b)为仅使用白平衡和线性对比度展宽模块所获得的图像;图11(c)为使用了饱和度调整之后的图像;图11(d)为使用了图像缩放与倒置之后的图像。

qrs3-t11.gif

    通过对比,可以发现IMX214直接输出的像素信号值很小,因此显示的画面很暗。经过线性对比度展宽等模块的处理后,图像又显得过亮,且色彩不够鲜艳。再经过饱和度调整模块处理后,图像取得了较好的色彩效果。最后,图像倒置模块也成功地对图像完成了倒置的操作。

4 结论

    本文设计并基于Lattice FPGA实现了一个实时的高清图像采集与处理系统。其最高可采集1080p60的实时图像,并完成一系列的实时图像处理功能。由于采用了模块化的设计思想,使得其具有良好的可扩展性和可裁剪性。基于本设计,稍加改动还可以完成例如边缘检测、图像分割与拼接等常规的图像处理功能。表明本系统具有良好的灵活性与较高的实用价值。

参考文献

[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简介及信号和协议测试方法[J].国外电子测量技术,2012,31(3):11-15.



作者信息:

李先友1,赵曙光1,段永成1,王建强2

(1.东华大学 信息科学与技术学院,上海201620;2.上汽大众汽车有限公司,上海201805)