目录
一张照片是如何生成的?
相机的成像原理
相机硬件
颜色四要素
相机硬件三大块
模组结构
镜头
镜头光路
镜头常见参数
镜头-FOV&EFL
镜头-焦距
镜头-光圈
图像传感器
图像传感器-像素-底
RGB排布
图像传感器-Pattern & PDAF
Sensor
CMOS sensor
CMOS内部节点
CMOS sensor Microlens
人眼响应曲线
Color Filter Spectral Response
RGB Response
IR滤光片
Sensor曝光-Global Shutter
Sensor曝光-Rolling Shutter
Flicker&banding
Sensor时序
PDAF
Sensor Remosaic
硬件系统-SoC
软件/算法/tuning系统-总体流程
相机数据流
软件系统-3A算法
ISP算法
ISP算法-DPC(Dead point correction)
ISP算法-BLC(black level correction)
ISP算法-Denoise
ISP算法-LSC(lens shading correction)
ISP算法-Demosaic
3A算法-AF
3A算法-CDAF(contrast detection AF)
3A算法-PDAF(phase detection AF)
3A算法-Laser AF
3A算法-AE
3A算法-AWB
IFE
BPS
IPE
BPC and PDPC
ABF
GTM
LTM
HNR
ANR
Temporal Filter
Color temperature
Color gamut
2D-LUT
ASF
软件系统-图像后处理算法
Android camera系统软件栈
camera软件流程几条主线
整个拍照流程
色彩空间
色彩空间与编码格式
色彩格式与空间-Raw
色彩格式与空间-RGB
色彩格式与空间-YUV
一张照片是如何生成的?
可以思考一下这个问题,平时我们用手机拍摄一张照片,那么这个照片是怎么样生成的呢?
相机的成像原理
相机硬件
颜色四要素
- 光源
- 物体
- 眼睛
- 大脑
颜色是光作用于人眼之后在人脑中形成的一种视觉感觉。
相机硬件三大块
模组结构
镜头
镜头光路
镜头常见参数
FOV:Field of View
EFL:有效焦距,透镜系统中心到焦点之间距离
等效焦距:
等效135相机(36mmx24mm)的焦距。
EFL * 43.2666 / sensor有效区域对角线长度
镜头-FOV&EFL
镜头-焦距
镜头-光圈
图像传感器
图像传感器-像素-底
RGB排布
图像传感器-Pattern & PDAF
Sensor
CMOS sensor
CMOS内部节点
CMOS sensor Microlens
人眼响应曲线
Color Filter Spectral Response
RGB Response
IR滤光片
Sensor曝光-Global Shutter
Sensor曝光-Rolling Shutter
Flicker&banding
Sensor时序
PDAF
相对位置关系如下所示:
Sensor Remosaic
硬件系统-SoC
软件/算法/tuning系统-总体流程
相机数据流
软件系统-3A算法
ISP算法
ISP算法-DPC(Dead point correction)
ISP算法-BLC(black level correction)
ISP算法-Denoise
ISP算法-LSC(lens shading correction)
ISP算法-Demosaic
3A算法-AF
3A算法-CDAF(contrast detection AF)
3A算法-PDAF(phase detection AF)
3A算法-Laser AF
3A算法-AE
3A算法-AWB
IFE
BPS
IPE
BPC and PDPC
ABF
GTM
LTM
HNR
ANR
Temporal Filter
Color temperature
Color gamut
2D-LUT
ASF
软件系统-图像后处理算法
Android camera系统软件栈
- Application层,也就是应用层,不仅包括通话短信联系人这种系统级的应用,还包括用户自己安装的一些第三方应用
- Framework层,这一层大部分用Java写的,包括系统服务和四大组件
- Library层,这一层大部分都是C/C++写的,主要是虚拟机,还有一些三方库比如SQLite, WebKit
- HAL层,硬件抽象层
- Linux内核层,包含Linux内核和一些驱动,比如说蓝牙驱动,Camera驱动等等,这个Binder驱动也是在这一层
官方链接如下所示:
https://developer.android.com/guide/platform
- Camera App进程,应用层处于整个框架的顶端,承担着于用户直接进行交互的责
- Camera Service进程,接收来自App的图像请求,调用HIDL跨进程接口将请求再次下发到Provider中,并且等待结果的回传,进而将结果上传至App中
- Camera Provider进程,接受Camera Service的请求,通过平台通过的HAL代码处理请求,并返回给Camera Service
- CamX-CHI(Camera HAL),该部分是高通对谷歌Camera HAL3接口的实现,以so库的形式被加载至Camera Provider中进行函数调用
- Camera Driver,高通对相机驱动部分进行了实现,利用了V4L2框架的可扩展特性,设计出了一套独特的KMD框架