CIF(Camera Interface)

CIF为ISP的接口模块,主要接收MIPI传进来SDI数据并unpack为flyby格式,包括seamless switch/sensor switch控制、async FIFO控制以及data MTX控制等多个子模块。

MIPI简介

MIPI(Mobile Industry Processor Interface,移动工业处理器接口),是由ARM和一系列手机公司成立的联盟,目的是为了将手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性,增加兼容性。

MIPI中,比较成熟的接口有DSI(显示器接口)和CSI(摄像头接口)

        MIPI-CSI2是手机主控和外部摄像机连接的方式

        MIPI-DSI2是手机主控和LCD屏幕连接的方式

SDI简介

SDI(Serial Digital Interface),数据分量串行接口。

CIF arch

CIF(Camera Interface)_第1张图片

 由上图可以看出,CIF有9条sdi输入,最多可支持9路sensor输入(一个sdi channel传输一个sensor数据)

sdi包括四根线,sdi_pkg_start、sdi_byte_en、sdi_pkg_end、sdi_clk,sdi_pkg_dat(128bit)

类似MIPI的数据结构(如下图),sdi会传输短包和长包数据,短包用来同步,长包用来传递信息。

CIF(Camera Interface)_第2张图片

LPS:Low Power State,封包之间的spacing间距

ST:Start of Transmission(SOT),封包的起始信号,一般为低速转换为高速的暂态信号

ET:End of Transmission(EOT),封包的结束信号,一般为高速转换为低速的暂态信号

PH:Packet Header,32bit(可根据用户自定义来扩展数据位宽)表示,封包的标头

        包含DI、WC、ECC/CRC(C-phy是ECC,D-phy是CRC),各组成含义:

        DI(Data Identifier),包括VC(virtual channel)和DT(Data Type)两个标识符。

                VC标识符位于DI的高位,C-phy是4bit(最多16种VC),D-PHY是5bit(最多32种VC),只包含了曝光信息。在CIF里一个sensor数据通路最多支持四种VC,分别为dol0 RGB、dol0 W、dol1 RGB、dol1 W,即双曝的RGBW sensor。其次一个sensor数据通路还可以支持3/2种VC,即三曝sensor或两曝sensor。

                DT标识符位于DI的低6位,总共可以表示64个数据类型(填充数据的类型)。

Data Type

Description

0x00 to 0x07

Synchronization Short Packet Data Types

0x00

Frame Start Code

0x01

Frame End Code

0x02

Line Start Code(Optional)

0x03

Line End Code(Optional)

0x04 to 0x07

Reserved

0x08 to 0x0F 

Generic Short Packet Data Types

0x10 to 0x17

Generic Long Packet Data Types

0x18 to 0x1F

YUV Data

0x20 to 0x27

RGB Data

0x28 to 0x2F

RAW Data

0x2a

8bit数据长包

0x2b

10bit数据长包

0x2c

12bit数据长包

0x30 to 0x37

User Defined Byte-based Data

0x38 to 0x3F

Reserved

        WC(word count,数据计数),16bit。从PH结尾到PF起始位置中间的填充数据的长度,单位为字节。接收端通过WC来判断包的结尾位置。

        ECC(Error Correction Code),8bit。采用Hamming Code的方式,用来纠正PH中一位的错误或者发现两位的错误。

        Data,填充数据,0~65535字节,长度为WC * 8bits。对数据内容没有任何限制。            

PF:Packet Folder,16bit表示,封包的结尾

短包相当于只有长包里的PH,包含DI、WC、ECC三部分,DI中包含VC和DT,只是DT的取值范围与长包的DT不同(参考上表)。

短包的WC表示数据域(Data Filed),具体含义为:如果该短包的Data Type为帧同步(Frame Synchronization),则数据域表示帧数;如果该短包的Data Type为行同步(Line Synchronization),则数据域表示行数。

sdi在没帧的最前面四行还会传输embedline信息,主要包括sensor的配置信息,frame count,timestamp等信息。会通过async fifo后的axi传输到DDR,以供软件处理。

seamless switch是在单曝切双曝、分辨率与帧率切换的时候需做到seamless switch,通过VC和DT来判断当前帧与上一帧相比是否有变化,有变化就输出硬件register updata信号给ISP pipeline,但是具体什么时候更新寄存器需要user自己决定。

sensor switch是在放大或缩小、前后镜头切换的时候,会基于frame count以及v blank期间来选择切到另一个sensor的数据,可选择性丢掉几帧数据,CIF需保证输出无残帧。

CIF支持RAW 6/8/10/14/16/18/20,RGB,YUV420,YUV422。其中YUV信息只会传输给isp-lite用于软件处理。

ISP pipeline上会把数据从RAW格式数据转成RGB,继而转成YUV进行BE处理。

最后output MTX会根据VC将sensor不同曝光信息拆开,再根据DT把不同数据格式的数据传输到不同的输出通道。

你可能感兴趣的:(isp,前端)