Android Camera MIPI接口知识总结

1 CIS
1.1 CIS的结构
Figure 1-1 CMOS Image Sensor

1.2 CIS知识点
bayer格式:柯达公司的Bryce Bayer发明 。RGGB为传统的raw格式;RYYB为现代的raw格式,夜景比较好
Chroma:表示U和V分量
光圈F值 = 镜头的焦距 / 镜头光圈的直径 = f / D

2 MIPI D-PHY
2.1 MIPI PHY前缀字母的意思
C:拉丁数字100。
D:拉丁数字500,表示最初版本的设计目标是500Mbps;数据传输采用DDR方式,即在时钟的上下边沿都有数据传输。
M:拉丁数字1000。

2.2 MIPI通道状态机
Figure 2-1 Lane的各个状态转换关系

2.3 combo PHY
一个CSI2 port口可以包含多套PHY。
Figure 2-2 combo PHY

2.4 虚拟通道设置
CSI-2传输的数据包包头部分的起始1byte为数据标志符(Data Identifier,DI),由VC[7:6](Virtual Channel)和DT[5:0](Data Type)组成。通过不同的VC和DT值来标志不同的数据流,占2个bit位的虚拟通道VC允许最多4个数据流交叉传输,其取值范围为0~3。DT可以表示帧开始FS、帧结束FE(类似于DVP的VSYNC)和数据帧等。

1)光学防抖的数据是sensor模组传过来的。VC=0传RAW10数据到ISP;VC=1传陀螺仪的数据到ISP。VC=1的gyro数据来了,ISP会产生motion的中断,或者DMA的中断(如果配置了DMA),可以读取FIFO或者通过DMA搬运;其它的snapshot和preview,ISP也会产生对应的中断。光学防抖只能处理1到2度的抖动。EIS可以处理4到5度的抖动。
Figure 2-3 Gyro Data Insertion Function

2)Sony HDR,VC=0传长曝光RAW10数据到ISP;VC=1传短曝光RAW10数据到ISP。
带有HDR模式输出的CIS在图像输出时会将长、短曝光的二帧图像按行进行列交替输出(即:长0...短0...长1...短1...这种顺序输出)。
​Figure 2-4 HDR with MIPI Virtual Channel

3)360环视也用到VC。
Figure 2-5 360环视

2.5 如何估算MIPI Sensor需要几个lanes
看一下MIPI的generation X的X是什么值,每代的有具体的per-lane的速度,目前的手机的一般是1Gbps = 128MB(估算可以取这个值),这下就可以算了,13M*30fps = 390M/s = 390M * raw-bytes(假如是1) = 390MB,大概是3点几个lanes,所以4lanes够用了。

3 CSI Controller
3.1 版本历史
目前来说,广泛使用的是其第二个版本CSI-2,最新的版本则是CSI-3。

CSI-2协议既可以使用与DSI一致的D-PHY物理层协议,也可以使用C-PHY作为物理层协议。而CSI-3则只能使用M-PHY作为物理层协议,也就是说CSI-2和CSI-3之间是不兼容的。

3.2 包格式
CSI从MIPI接收数据包,将数据包转换成DVP并行数据,并且把RAW8/10/12bit的数据扩展成16bit,然后送往ISP模块(大致转换过程可以参考EZ-USB CX3的UVC示例)。收到EoT后,MIPI通道会自动回到LP-11停止状态。
Figure 3-1 CSI Packet Structure

3.3 帧图像格式
一帧必须以FS包开始,以FE包结束,中间为帧高度个数的LP(long packet)包,每个LP包包含一行图像数据。如Figure3-2所示。图中底部的VVALID、HVALID和DVALID表明垂直有效和水平有效。
Figure 3-2 帧图像格式

1)传输一开始,首先传输FS类型的SP(short packet)包,表示一帧图像数据开始,进行帧同步。
2)然后传输图像数据,一行数据一个LP包,每个LP包由PH(packet header)、Data和PF(packet footer)组成。
3)在一帧图像的所有数据包传输之后,最后传输一个FE类型的LP包,表示一帧的结束。

4 ISP
4.1 ZSL的实现机制
传统的ISP连接一个sensor后,只能输出一路,要么是预览,要么是拍照,也就是多选一。
现代的ISP连接一个sensor后,可以同时输出几路的数据,譬如preview、snapshot(ZSL)、AI、录像输入到h264编码模块。

Figure 4-1 ZSL的一种实现方法

4.2 3A算法
3A算法包括:自动对焦AF、自动曝光AE和自动白平衡AWB。

3A算法大概原理:
ISP出统计数据,然后后端软件(或者DSP)根据统计数据计算一些参数,计算结果中有的值还需要填到ISP寄存器中,并且控制马达运动和曝光时间,算法软件和ISP组成一个闭环系统,不断迭代,最后得到一帧比较满意的图片。

QCOM ISP相关的软件算法代码位于:vendor/qcom/proprietary/mm-camera/mm-camera2
打开高通平台3A算法的日志:setprop persist.camera.stats.debug.mask 7

4.3 直方图
直方图(也叫bin档)就是用来统计一幅图像各个亮度的像素的个数,并在一个2维图像上显示。横向(x轴方向)是灰度值,最左边像素值为0(黑),最右边像素值为255(白),纵向(y轴方向)是各像素值在图像中出现的个数。
Figure 4-2 直方图

4.4 Color Shading
颜色均匀性。

4.5 颜色空间转换
颜色空间转换,主要分为2种:
1)以line为单位进行转换
2)如果1)不合适,会采用类似于JPEG编码的block处理
例如:
rgb->yuv444->yuv422->yuv420就会需要buffer 一行,会用到1 2 1滤波器,直接采取丢点的方式会导致色彩有锯齿,看起来不smooth。

5 DVP
传统的并行camera sensor接口,全称Digital Video Port。
Figure 5-1 DVP接口

6 Abbreviations
ADAS:Advanced Driver Assistance System,先进驾驶辅助系统,Bosch提供整个方案模块
CSID:QCOM CSI Decoder
DMS:Driver Monitoring System,疲劳驾驶监控,使用GHS INTEGRITY RTOS系统,通过车载以太网通信(PHY工作在Master模式,连接时,会主动和Slave PHY进行链路训练),法国Valeo提供方案
DVP:Digital Video Port
EVS:Exterior View System,Android车载系统Camera架构HAL层(不同于手机Camera架构)
RDI:QCOM Raw Dump Interface
ROI:Region of Interest
VIC:Tegra K1 Video Image Compositor,用到了Falcon MCU
ZSL:Zero Shutter Lag

发布了121 篇原创文章 · 获赞 47 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/zoosenpin/article/details/73558584
今日推荐