高通 ISP pipeline
IPS是图像信号处理,是对CMOS图像传感器输出的信号做后期处理的芯片。主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等。
ISP处理主要有三个流preview、snapshot、video:分别对应IFE、BPS、IPE。
高通ISP大致流程图 :
名词解释:
- CSID: Camera Serial Interface Decoder Module,摄像机串行接口解码器模块
- IFE(x 2):Image Front End,图像前端
- IFE_Lite(x 5): Image Front End Lite,图像前端Lite(轻量级?)
- BPS: Bayer Processing Segment (for snapshot),拜耳处理器(用于快照)
- IPE: Image Processing Engine,图像处理引擎
- VPU: Video Processing Unit (CODEC),视频处理单元(编解码器)
- DPU: Display Processing Unit,显示处理单元
1. IFE : Image front-end engine(图像前端引擎)
1.1 相关特点
- 只对preview、vedio做bayer域的处理
- 3A的处理
- IEF模块提供多级pass的输出(1:1,1:4,1:16)供给IPE
- 与以前的相比,主要是把luma和color(CAC,LTM,CV,SCE,CS)移到了IPE
- IEF为ideal raw dump 提供3条路径
- 来自CAMIF(Bayer 格式),CAMIF(Camera Interface Hardware,照相机接口上的硬件)
- 来自Lens shading correction(LSC)的输出(Bayer 格式)
- 来自Global tone mapping(GTM)的输出(RGB 14-bit格式)
名词解释:
CSID:
- CSI Decoder:CSI解码器
- IFE_lite 与 IFE 分开(有 4 个 RDI)
- 3/4 RDI (Raw Data Interface) output to DDR:3/4 RDI(原始数据接口)输出到 DDR
- 12MP@120 each:12MP代表的是1200w像素摄像头,后面“@120”是什么意思不是很明白。
- Bayer processing for video/preview:视频/预览的拜耳处理
- 3A 的统计数据(拜耳网格/直方图、拜耳焦点等)
- HVX 流媒体的 4 个分接点
- PD 校正(包括 2x1/2x2 OCL)、zzHDR、QCFA binning
- 3A 的统计数据(拜耳网格/直方图、拜耳焦点等)
- 用于 2PD 和稀疏 PD(AF 改进)的 PDLib
- 单独的预览和视频输出
2.IFE(Image Front End) x 2
1.2 IFE作用
数据分流和格式转换。
2.BPS : Bayer processing segment(拜耳加工段)
2.1 相关特点
- IFE的CSID可以直接输出“补偿过pd像素点的raw Bayer”,作为Snapshot数据供后续BSP操作。
- IFE的CAMIF可以直接输出PD像素点的raw Bayer,以供PDAF算法使用;
- IFE经过一些处理产生的拜尔图像可以供IFE内部的3A 使用但不是输出
- IFE经过进一步处理,可以产生自动逸尺寸的YUV数据,作为preview和video的数据供给IPE使用
- BPS,在Bayer处理阶段用于快照(snapshot)的拜尔阵列处理单元(例如,去马赛克、zzHDR、PDAF 像素校正(包括 2x1/2x2 OCL)、镜头阴影校正等)
- 用于特殊离线处理简单的数据(BG 和 HDR列表)统计
- BPS模块提供多级pass的输出(1:1,1:4,1:16,1:64)供给IPE
- BPS 中没有 HNR
2.2 BPS基本概念
一个Feature通常会使用一个usecase来定义
一个usecase通常会包含几个pipeline来描述一个流程
一个pipeline通常是几个nodelist以及portlink组成的一个串联结构
而Node通常分为ChiNode(也就是用户Node,例如hdr的com.arcsoft.node.hdr.so这个Node),或者IFE/BPS/IPE/AWB这样的系统Node
在Node中,一般都直接链接了处理算法和逻辑,其中BPS Node也是一些算法的组成以及一个算法处理的逻辑
一个usecase中,通常会包含一个BPS和一个IPE的部分或者所有算法处理
对相机算法的tuning,其实就是对BPS/IFE/IPE这些节点中含有的算法的参数进行调整,以使整个Feature达到比较好的效果
2.3 BPS与IFE区别:
- BPS与IFE主要区别就是BPS多了Green Imbalance Correction 和Hybrid Noise Reduction两个模块。
- GIC:Green Imbalance Correction,主要是由于sensor中多是GR和GB两个G的值不一样,因此需要做一个绿平衡使结果更平滑。
- HNR:主要是做的高频降噪,其图像利用DCT转化到频域,HNR主要去除的是luma信道的高频噪声,不能去除Cr和Cb的噪声。
3. IPE : Image processing engine(图像处理引擎)
3.1 相关特点
IPE由两个部分组成,分别是NPS(Noise processing segment,噪声处理段)和 PPS(Post processing segment,后处理段)
NPS(Noise processing segment,噪声处理段):
- ICA1用于内联EIS和图像畸变
- ICA2和时间滤波器(TF)用于运动补偿时间滤波器(MCTF)
- 用于空间降噪的先进降噪技术(Advance noise reduction(ANR)for Spatial noise reduction(SNR))
PPS(Post processing segment,后处理段)
- 主要用于luma和color(CAC,LTM,2DLU,CV,SCE,CS)
- Qualcomm Spectra 2xx主要的变化之一就是将以上模块移动到降噪后处理
- 由于细节增强的ASF(Adaptive Spatial Filter,自适应空间滤波器)
- Scaler(No rotator)
- 单输入多输出(SIMO,Single input multiple outputs)
3.2 IPE基本概念
IFE和BPS的处理更倾向于前端,一般指刚拿到图像,需要最根本的校准补偿等。
IPE处理包括Noise processing segment(NPS,噪声处理)和Post processing segment(PPS),主要包括去噪、滤波等对于图片的初步加工
IPE可以输出YUV图像到preview和video,以及输出JEPG到snapshot,所以无论是那种输出都要经过IPE。
- Preview/video的数据处理流程为:Sensor Raw Bayer ——> IFE——> IPE ——> YUV
- SnapShot的数据处理流程为:Sensor Raw Bayer ——> IFE ——> BPS ——> IPE ——> JPEG
