【高通SDM660平台 Android 10.0】(14) --- Camera ISP

【高通SDM660平台 Android 10.0】--- Camera ISP

  • 一、Camera ISP 与 DSP 区别
    • 1.1 名词解释
    • 1.2 功能解释
    • 1.3 手机摄像头ISP是独立好还是内置好
  • 二、Camera ISP 图像处理流程

网上看到一兄弟写的特别好,在此转载类似备份下:
原文:http://camera.geek-docs.com/camera-isp/camera-isp-flow-intro.html

一、Camera ISP 与 DSP 区别

在介绍Camera ISP和DSP区别前,我们先看看Camera的工作流程
【高通SDM660平台 Android 10.0】(14) --- Camera ISP_第1张图片
拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像。

数字信号处理器DSP(DIGITAL SIGNAL PROCESSING)功能:
主要是通过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理,并把处理后的信号通过USB等接口传到PC等设备。

DSP结构框架:

  • ISP(image signal processor)(图像信号处理器)
  • JPEG encoder(JPEG图像解码器)
  • USB device controller(USB设备控制器)

1.1 名词解释

ISP 是 Image Signal Processor 的简称,也就是图像信号处理器。
DSP 是 Digital Signal Processor 的缩写,也就是数字信号处理器。

1.2 功能解释

ISP一般用来处理Image Sensor(图像传感器)的输出数据,如做AEC(自动曝光控制)、AGC(自动增益控制)、AWB(自动白平衡)、色彩校正、Lens Shading、Gamma 校正、祛除坏点、Auto Black Level、Auto White Level 等等功能的处理。

DSP功能就比较多了,它可以做些拍照以及回显(JPEG的编解码)、录像以及回放(Video 的编解码)、H.264的编解码、还有很多其他方面的处理,总之是处理数字信号了。

个人认为ISP是一类特殊的处理图像信号的DSP。

1.3 手机摄像头ISP是独立好还是内置好

ISP是独立还是内置,对最终拍照效果并没有决定性影响,并不像PC上的独立显卡与集成显卡有那么大差异。从性能上看,这一代高通处理器内置的ISP性能已经可以跟富士通的独立ISP媲美。而各家ISP的主要处理流程都是类似的,差异也只是在于部分模块有优劣之分,比如去噪、色彩增强等。进一步来说,即便用了独立ISP,它毕竟是一个外部组件,也有可能会因为调试过程复杂,开发周期过短,开发人员难以驾驭,使得最终效果并不特别理想。

真正影响整个相机拍照效果的,还是调试,看工程师能否发挥出一块ISP真正实力。例如对ISP里面每个算法模块的优化,相关多个模块的配合等等。我们从产品上来看,有很多即便用了独立ISP,但成像效果也依然不尽人意的,也有很多虽然用了内置ISP,成像效果居然很不错的。所以这个问题,需要辩证的来看,而非依照参数配置论来粗暴的进行理解。


二、Camera ISP 图像处理流程

Camera ISP图像处理流程如下图所示

【高通SDM660平台 Android 10.0】(14) --- Camera ISP_第2张图片

下面大概介绍下某个模块的功能和作用

  1. RAW域
    是指从DPC一直到demosaic阶段(此流程图)

  2. DPC:坏点矫正(bed pixel corr)
    坏点由于芯片制造工艺等问题产生的,
    坏点是指亮度或者色彩与周围其他像素的点有非常大的区别,
    常用检测方法是在全黑环境下看亮点和彩点和在盖白板的情况下看黑点和彩点,ISP端一般通过在亮度域上取其他周围像素点均值来消除坏点

  3. BLC:黑电平矫正(Black level corr)
    黑电平是指图像数据为0时对应的信号电平,进行黑电平矫正的目的;
    一是由于sensor本身会存在暗电流,导致在没有光照进来的条件下pixel也有电压输出,不过这部分一般在sensor端就已经处理掉了,
    还有一个原因是因为sensor进行模数转换时精度不够,
    以8bit为例,每个pixel有效范围是0-255,sensor可能无法将接近于0的信息转化出来,
    由于人眼特性(对暗处细节比较敏感,)所以sensor厂商一般在转换时会加一个固定的偏移量使像素输出在5(非固定值)—255之间,
    然后传输在ISP端再做一个减法,将5(非固定值)变为0

  4. Denosice:降噪
    噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块。
    一般在暗态下噪声表现尤为明显。
    影响人的主观视觉感受及对目标的观测,所以进行降噪,但是降噪一般伴随着细节的损失

  5. LSC:镜头亮度矫正(lens shading corr)
    由于镜头光学系统原因(CRA),sensor中心光轴附件的pixle感光量比四周多,
    所以导致呈现出来的画面会中心亮四周暗(同时由于边缘入射角大,会造成相邻像素间串扰,严重时会导致角落偏色)。
    所以进行lsc的主要目的是为了让画面四周亮度与中心亮度一直,简单理解就是用过增加四周像素的gain值,来达到亮度一致

  6. AWB:自动白平衡(auto white balance)
    白平衡顾名思义就是让白色在任何色温下camera都能把它还原成白,
    由于色温的影响,一张白纸在低色温下会偏黄,高色温下会偏蓝,
    白平衡的目的就是白色物体在任何色问下都是R=G=B呈现出白色,比较常用的AWB算法有灰度世界,完美反射法等

  7. Demosica:颜色插值
    SENSOR每个pixel只感知一种颜色分量(如流程图一开始所示),由于人眼对绿色比较敏感所以G的分量是R与B的两倍,所形成的图像称之为Bayer图,所以要通过颜色插值使每个pixel上同时包含RGB三个分量

  8. CCM :色彩校正(color corr matrix)
    AWB已经将白色校准了,CCM就是用来校准白色除白色以外其他颜色的准确度的,用一个3X3的CCM矩阵来校准, 其中每一列系数r1+g1+b1等于一个恒定值1。
    Ccm矫正最终结果可以通过拍摄24色卡图片然后用imatest分析来做分析参考 Ygamma ;
    由于最早期的显示器端,亮度与电流之间响应不线性的,而是以曲线形式(曲线称之为gamma曲线),
    camera为了配合显示器显示出正确的亮度所以有了摄像头的gamma曲线与显示器gamma曲线成反比(不是绝对的),
    后来随着显示器的工艺发展,显示器亮度与电流之间已经可以做成显性关系了,但是人们发现由于gamma曲线的存在,
    摄像头暗部才能信息更好保留显示,更符合人眼视觉感受,
    我们可以通过调整gamma曲线来调整摄像头的亮度,对比度,动态范围等等的效果

  9. EE:锐化
    当物体锐化值过低时会出现边缘模糊,图像给人感觉不清晰,锐化过高就会导致图像出现锯齿白边等现象

  10. CSM:色彩空间转化(color space matrix)
    RGB图像通过一个转转举止向SRGB等色彩空间转化的过程

你可能感兴趣的:(Qualcomm经验总结,Android,Camera)