Android Camera MIPI接口知识总结

Android Camera MIPI接口知识总结
1 CIS1.1 CIS知识点ADC数量假如一行是720P就需要720个ADC每个像素ADC只采样RGB中的一种颜色然后通过demosaic算法产生其它两种颜色生成新的10bit or 12bit or 14bit数据一行处理完了720个ADC再采样下一行数据逐行扫描直到一帧数据采集完毕通过MIPI传给SoC。bayer格式柯达公司的Bryce Bayer发明 。RG / GB2 x 2为传统的raw格式RY / YB2 x 2为现代的raw格式RYYB的缺陷有偏色红色变成暗黑色夜景比较好Chroma表示U和V分量光圈F值 镜头的焦距 / 镜头光圈的直径 f / DMain Telephoto Ultra Wide1.2 镜头模组对焦原理手机调整物距定焦镜头单反调整焦距变焦镜头现在相机的镜头都有5 ~ 7个凸透镜和凹透镜。当物距在无穷远和两倍焦距之间时像距在焦距和两倍焦距之间成倒立缩小的实像。物距被拍摄物体到凸透镜的距离像距成像平面到凸透镜的距离焦点通过凸透镜的、平行主光轴的光线在主光轴上的会聚点焦距凸透镜中心到焦点的距离一片凸透镜的焦距是固定的如果在它后面再放一片凹透镜并移动就会改变屈光度焦距就随之改变。外变焦镜头在外形体积上会随着焦距的变化而伸长或缩短单反相机。内变焦镜头不论焦距如何变化都不会改变外形的尺寸俗称“潜望镜”式镜头由于光学变焦是在手机内部完成所以可以很容易地安装滤镜无需额外安装镜头筒。Figure 1-1 手机潜望式内变焦镜头1.3 MIPI接口2通道的数据分配Figure 1-2 2通道的数据分配1.4 ON Semi OIS控制器LC898128工作原理是利用手机摄像头模组内的Gyro芯片来侦测手部微小的抖动将抖动信号传给OIS Control微处理器LC898128计算出需要的补偿位移量然后LC898128控制VCM根据计算数据来实时调整lens的移动方向及位移量调整光学透镜的移动来补偿这种“光轴偏移”。OIS是移动光学透镜而AF是移动整个镜头二者不是一回事。2 MIPI D-PHY2.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。2.4 如何估算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 Controller3.1 版本历史目前来说广泛使用的是其第二个版本CSI-2最新的版本则是CSI-3。CSI-2协议既可以使用与DSI一致的D-PHY物理层协议也可以使用C-PHY作为物理层协议。而CSI-3则只能使用M-PHY作为物理层协议也就是说CSI-2和CSI-3之间是不兼容的。3.2 包格式Refer to TI DS90UB960-Q1 datasheet 7.4.13 CSI-2 Protocol Layer for CSI-2 packet format. The DS90UB960-Q1 is a HUB Deserializer.3.3 虚拟通道设置IPUv3 SMFC: iMX6 Sensor Multi FIFO Controller, CSI-SMFC-IDMAC, SMFC has 4 DMA channels for 4 virtual channels, refer to iMX6-IPU.pdf.MIPI D-PHY does not care about virtual channel. Virtual channel is part of MIPI CSI-2 specification.CSI-2传输的数据包包头部分的起始1byte为数据标志符Data IdentifierDI由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模组传过来的。VC0传RAW10数据到ISPVC1传陀螺仪的数据到ISP。VC1的gyro数据来了ISP会产生motion的中断或者DMA的中断如果配置了DMA可以读取FIFO或者通过DMA搬运其它的snapshot和previewISP也会产生对应的中断。光学防抖只能处理1到2度的抖动。EIS可以处理4到5度的抖动。Figure 3-1 Gyro Data Insertion Function2Sony DOL HDRVC0传长曝光RAW10数据到ISPVC1传短曝光RAW10数据到ISP。带有DOL HDR模式输出的CIS在图像输出时会将长、短曝光的二帧图像按行进行列交替输出即长0...短0...长1...短1...这种顺序输出。Huawei IPCamera也是这种配置。​Figure 3-2 DOL HDR with MIPI Virtual Channel4 ISP4.1 ZSL的实现机制拍照理论上取一个buffer就行但实际上还是要等3A收敛不然第一个buffer的图像质量比较差所以一般都是一边预览跑3A然后再拍照。这里要注意拍照需要取3A结果来确定是不是已经收敛。传统的ISP连接一个sensor后只能输出一路要么是预览要么是拍照也就是多选一。现代的ISP连接一个sensor后可以同时输出几路的数据譬如preview、snapshotZSL、AI、录像输入到h264编码模块。单反拍一张曝光一张无反没有反光镜通过感光元件提供的连续视频流取景拍照片约等于视频截图原理就是Android中的ZSL。4.2 3A算法3A算法包括自动对焦AF、自动曝光AE和自动白平衡AWB。3A算法大概原理ISP出统计数据然后后端软件或者DSP根据统计数据计算一些参数计算结果中有的值还需要填到ISP寄存器中并且控制马达运动和曝光时间算法软件和ISP组成一个闭环系统不断迭代最后得到一帧比较满意的图片。AE主要控制CIS曝光ISO并且是线性的出来后图像平均亮度50左右比较暗ISP中的gamma非线性矫正后大概相当于50 x 2.2基本上整张图像亮度在120附近几乎就是人眼适应的亮度了。PDAFISP硬件抽点也就是PD点送给AF算法计算出相位差再去控制对焦马达。低亮下PD点就看不出来了需要用CAFcontrast AF所以手机里的对焦总称为Hybrid AF混合对焦。QCOM ISP相关的软件算法代码位于vendor/qcom/proprietary/mm-camera/mm-camera2打开高通平台3A算法的日志setprop persist.camera.stats.debug.mask 74.3 iMX53 IPUv3 SISG控制闪光灯工作原理为SISG COUNTERStill Image Synchronization Generator对被VSYNC使能的SISG_CLK时钟计数当该计数器值大于SISG_SET寄存器设定值时将sisg_out对应引脚执行SET操作当该计数器继续计数到大于SISG_CLR寄存器值时对sisg_out对应引脚执行CLR操作这样就可以产生与VSYNC相关的触发脉冲了并且脉冲的起始边沿offset与脉宽都可以用户配置。4.4 ISP vendorAMD: silicon image, dream chip. Lattice acquired silicon imageARM: apicalGEO Semi: GW5400 for Automotivehuawei: apical, altekqcom: csr acquired zoran, later qcom acquired csrrockchip: dream chip, ceva4.5 x86 A39X0 IPU41) Automotive A39X0 CSI2 PORT_CONFIG (split mode) is set by ABL Converged Security Engine.2) Automotive A39X0 IPU4 (4th generation Image Processing Unit), part number is CSS2600, contains both 3 scalar (RISC) processors running control firmware and 4 VLIW SIMD vector processors running algorithmic firmware. The DMA is controlled by the scalar processors.3) media-ctl is used to map virtual channel to /dev/videoN.5 Camera SerDes5.1 EqcoLogic CoaXPressAcquired by Microchip. uplink uses 8b/10b encoding at 20.833 Mbps.5.2 TI FPD-LinkHuawei: US10153917Maxim: US8098602TI FPD-Link: US20120002573PCS: 8b/10bback channel: 20MHz Manchester code5.3 SerDes port mirror (CSI-2 Replicate Mode)以DS90UB960-Q1为例它有两个CSI TX Port都支持4 lane输出可以把CSI TX 0的输出复制到CSI TX 1两路输出都可以用4 lane。Port Mirror主要用途双芯片双系统共享一套SerDes输入。The DS90UB960-Q1 is a HUB Deserializer.车载每一对Tx和Rx两颗芯片的价格大概在6-10USD之间DS90UB913A/DS90UB934-Q1的价格约为7.7USD。5.4 ADAS Camera TriggerSerDes摄像头出图分两种一种是给它上电配置好了后按设定的帧率自己出这种称为master模式另一种是给一次触发信号出一帧这个trigger信号来至于激光雷达这种称为slave模式。SerDes摄像头数据和激光雷达要同步时间对时通过Linux ptp4l这时的摄像头出图采用slave模式也就是需要激光雷达trigger。6 其它视频输入接口CVBS中间的一根是信号线外面包着的一层是地线DVP传统的并行camera sensor接口全称Digital Video PortLVDSPIN脚与MIPI兼容7 Program7.1 v4l-utilsmedia-ctlv4l2-ctl7.2 libyuvYUV422水平width方向上的UV分量减半而垂直height方向不变YUV420水平width和垂直height方向上的UV分量都会减半external/libyuvsystem分区的模块LOCAL_C_INCLUDES external/libyuv/files/include/LOCAL_SHARED_LIBRARIES libyuvvendor分区的模块LOCAL_C_INCLUDES external/libyuv/files/include/LOCAL_SHARED_LIBRARIES libyuv.vendor8 Abbreviations光学防抖传感器L2G2ISLinear 2-axis gyroscope for optical image stabilization微型双轴OIS、MEMS陀螺仪ADASAdvanced Driver Assistance System先进驾驶辅助系统Bosch提供整个方案模块ADAS/360 4PIN HSD: one lane LVDS power, HSD means High Speed DataAHDAnalog High Definition使用了分离传输的技术将亮度Y和色差C信号分离处理它将Y和C信号调制到不同频段在同一条同轴电缆中同时传输。AISQCOM Automotive Image Sensor ServiceA-PHYMIPI Automotive PHY技术来源于Valens代替私有的GMSLAR023ZWDRA表示AptinaR表示RGB02表示2M3表示1/3 inchWDR表示Wide Dynamic RangeASA: Automotive SerDes Alliance, by BMW in 2019BG0805brigatesCSIDQCOM CSI Decoder​​​​​​​CVBSComposite Video Baseband Signal表示复合视频基带信号强调复合和基带。DBLCamera SerDes double-input mode大多数摄像头输出的是RawData格式的数据位数比较低。因此可以把两个像素的数据放到一个帧里进行传输。即24位或32位的数据里包含两个像素的数据。这种每帧传输两个像素的方式称为双输入模式demosaic算法“猜色”算法也叫反拜耳算法DINDeutsches Institut für Normung航空插头DMSDriver Monitoring System疲劳驾驶监控使用GHS INTEGRITY RTOS系统通过车载以太网通信PHY工作在Master模式连接时会主动和Slave PHY进行链路训练法国Valeo提供方案DOL HDRDigital OverlapDVPDigital Video PortDVRDigital Video RecorderEVSExterior View SystemAndroid车载系统Camera架构HAL层不同于手机Camera架构FFmpeg: Fast Forward MPEGLeicaLeitz CameraMDPMTK Camera Media Data PathNVRNetwork Video RecorderPVCPixel Visual CoreRDIQCOM Raw Dump InterfaceROIRegion of InterestSLAMSimultaneous Localization and Mapping即时定位与地图构建SLVS-ECScalable Low Voltage Signaling Embedded ClockSony开发一般与MIPI CSI引脚复用Titan MTitan MobileVICTegra K1 Video Image Compositor用到了Falcon MCUZSLZero Shutter Lag