本文承接上一篇《数字成像系统概述》,将继续延伸数字成像系统的相关概念,但在延伸之前需要详细了解作为整个系统输入的Raw图。

作者 | Tony

编辑 | 言有三

本篇文章主要详细阐述Raw图作为整个数字成像系统的输入源到底是怎样产生的,包括一些基本概念和知识,总结了工业界对于Raw的一些检测手段以及检测标准,最后从摄影学角度分析Raw图作为摄影素材的优势。

1 Raw图的诞生及衍生的基本概念

玩过摄影的人对于Raw图这种类型的数据格式应该不陌生。对于资深摄影玩家说,一般会采用Photoshop等软件对Raw图进行调色、降噪、构图等处理,以期获得更好的图像效果质量。但是什么是Raw图呢?

顾名思义,英文单词Raw意思是原始的、未处理的,其表征了纯粹的未处理的一堆数据,为何这里说是一堆数据而不是图像呢?读过上篇《数字成像系统概述》的朋友一定对于CMOS、CCD或者sensor等名词有些印象,实际上Raw图记录的就是CMOS或者CCD图像传感器将捕捉到的光源(光子)信号转化为数字信号的原始数据

一个数字成像系统或者说数码相机采用点阵形式来记录光信号(光子)落到每个阵列“腔体”的大小,这里的腔体即像素,而这个点阵就是sensor,如下所示为一个比较形象的感光阵列(Sensor)接受光子示意图:

其中黄色小圆球代表光子大小,下面为光电转换矩阵。当按下拍照快门的那一刻,摄像头的曝光就被锁定,进入这个sensor的光子量的多少也就被锁定了,通过统计进入sensor矩阵的光子多少就可以确定电信号强度。

此处需要引入一个衡量电信号强度大小的概念——“比特深度(bit depth)”,bit depth描述了传感器硬件能处理数据的精细程度,越深的bit意味着更好的感光效应,即可以获取更多的数据量,而又由于传感器腔体(像素)接受的是电子的数量,意味着bit数据表示灰度值的大小。比如一个16bit的模组意味着65536的灰度范围,8bit模组即表示2的8次幂即256,256这个数字在冈萨雷斯的《数字图像处理》教材经常出现,就是这么得来的。而工业界描述一个模组感光性能的一个专用名词是bits per pixel,也有bits per channel,但有时都混淆叫做bpp。这两个是不同的概念,一个用来描述单像素点感光能力,后面的是表示三原色RGB单一通道的颜色表达能力,这是需要区分清楚的,总结有如下公式:

如下为单通道不同比特深度对应的颜色表征对比:

上图为单通道24比特,下图为单通道8比特。从上述图像可以看出来更深的bit有着更强的颜色表征能力,所以说bit深度对于raw图的大小是一个很重要的衡量指标,其甚至被应用在音频领域表示音阶的广度,我们可以推断出钢琴的bit深度一定大于吉他,因为钢琴所能表达的音域比较广(此处如有不专业欢迎拍砖)。

回到Raw诞生上来,我们知道Raw是光电转换的结果,其无非就是一个灰度信号记录器。我们知道光由RGB三种基色组成,那么问题来了:怎样区分每个像素对于每个颜色通道(R channel, G channel, B channel)获取的量的多少?

为了获取各通道颜色分量,可以考虑给每个像素上面叠放一个颜色过滤器,即每个像素可以让相应的颜色分量通过,而丢弃掉不需要的颜色分量,如下图所示:

但每个像素点需要对于丢弃的颜色分量进行“估计”,以完成单像素点全部颜色分量的构建,构建算法在后面会有介绍。

已有的典型颜色Pattern很多,如:RGBE filter,CYGM filter,Bayer filter等,其中工业界应用比较多的是Bayer滤波器。

典型的Bayer矩阵如下所示:

从上图来看,绿色明显多于红色和蓝色,这是因为BAYER矩阵实际上仿照了人眼对于绿色比较敏感的特点,绿色比红色和蓝色多会进一步降低噪声并可以让图像有更好的细节呈现。与全色Sensor采集相比,BAYER矩阵这种排列模式,可以有效减少到全色Sensor的1/3,这样大大减少了成本和面积。

关于视觉和颜色的关系读者有兴趣可以进一步Google深入学习[2]。将上述BAYER PATTER叠加到Sensor后的RAW图如下所示:

一般BAYER格式分为GBRG、GRBG、BGGR、RGGB四种模式。如下所示:

上文提到采用Bayer Pattern之后,每个像素点需要对于丢弃的颜色分量进行“估计”,以完成单像素点全部RGB颜色分量的构建,关于构建的算法称为Demosaicing算法。Demosaicing算法很多,但基本都是通过插值算法来实现每个像素点的RGB值计算。

Bayer格式插值有插值红蓝算法和插值绿值两种。可以了解[1]的博客插值算法讲解以及论文[2]的插值算法讲解。需要提及的是,插值算法容易导致图像出现失真,甚至出现摩尔纹。

上面字幕就是由于demosaicing’算法导致的Aliasing(混叠)和artifacts(伪像),这些现象直接在Raw层级就大大降低了图像质量。故好的demosaicing’算法设计的目标是增加解析度、减少噪声、颜色准确度高、并能减少摩尔纹。

2 工业界Raw图检测方式和标准

Raw图的检测实际上是对sensor的检测。从上面分析我们看到RAW图的诞生实际上是CMOS或CCD这些可以记录光线的半导体产生的记录数据。以CMOS为例,其主要是利用硅和锗这两种元素所做成的半导体,使其在CMOS上共存着带N(带–电)和P(带+电)级的半导体,这就是典型的PN节,有兴趣的同学可以去查阅工程光学方面的内容,这两个互补效应所产生的电流即可被处理芯片纪录和解读成影像。如下为一个典型的CMOS物理结构图像:

从物理结构图发现,由于CMOS传感器集成度高,光电传感元件与电路之间距离很近,相互之间的光、电、磁干扰较为严重,导致产生的噪声对图象质量影响很大,同时由于各个模组厂工艺水平不一致,需要对于供应的摄像头的Raw图有一套验收标准。

需要区分的是,Raw图实际上分为两大类即Sensor Raw和手机Raw,如下为两种Raw图的产生路径:

上图对于摄像头单纯的增加驱动点亮形成Sensor Raw,而下图是将模组与手机主板组合在一起并驱动点亮形成手机Raw或者称为整机Raw。两种Raw图实际上从产生机理来说都是一样的,区别就在于影响因素的不同。Sensor Raw是单纯的摄像头形成的Raw图,而从产品完整性角度来说,手机作为最终需要呈现给消费者的产品,需要考虑其他因素对于整体成像的影响,比如LENS、组装方式、电源、射频等对于图像质量的影响,故一般来说都是对整机的Raw图进行相应的测试,整机Raw测试总结如下表:

效果质量评测需要相应的测试设备,包括光源、图卡以及测试软件等装备,同时需要制定各个公司自有的测试标准。光源一般采用爱色丽灯箱,爱色丽标准光源对色灯箱SpectraLight QC包括3种D光、荧光以及A光、H光等多种光源,是一款能在日光和其他照明条件下对大小物品进行精准色彩视觉评估的对色灯箱。除此之外,SpectraLight QC标准光源对色灯箱可帮助色彩作业人员减少因不良品和返工造成的人为错误和浪费,缩短上市时间,在提高整体产品质量等方面发挥重要作用。对于颜色、噪声、亮度等不同的测试项,一般的测试图卡选用爱色丽X-RITE ColorChecker Chart 24色卡等各种测试图卡。

如下为部分需要的测试图卡展示:

当对Raw图进行了相应的测试后还需要对最后的成像JPG进行相应的测试,以便于遵循全流程的质量测试,其中包括:

解析力测试、SFR测试、色彩还原测试、Shading测试、白平衡测试、灰阶测试、畸变测试,缺陷像素测试等等多项测试,最后需要将相应的测试图片送入相应的测试软件如Imatest等进行图像质量分析,以满足相应的交付要求。

所以工业界对于Raw图的测试可以认为是对于整体图像成像各个环节都进行了测试,包括RAW图、JPG图等,其工作量还是比较大的,相应的产生了硬件测试工程师这个岗位。

3 Raw在摄影中的优势

现在手机摄像头拍照不需要了解太多颜色知识、构图理论、光圈知识等就可以拍出一副还不错照片,但是如果说要随手一拍就是大片则有点言过其实。毕竟传统手机ISP PIPELINE有其固有的一些缺陷,这在下一篇文章会有分析与介绍。如果说一个人有处女座这种追求完美的情节,对于摄影领域无法回避的素材便是RAW图。

前面已经说到Raw实际就是一个数据包,数据包本身不包含色彩、噪声等信息,而唯一影响这堆数据的就是前期设置的感光度、光圈、曝光时间。换句话说,除曝光之外,一切都可以后期修饰。总结下来Raw格式有以下优势:

1.没有白平衡的前期干扰,对于色调和色温等都是后期可以调的;

2.无损画质,用尽了所有的数据空间。从前面的分析可见,RAW数据量非常大,其可以表示的色域也非常丰富,那么图像就比较高清,层次是非常细腻;

3. 可轻微纠正曝光量。后期调整宽度比较大,可以做正负4倍的调整;

4.扩展最大色彩空间。Raw格式有目前最大的Photoshop 的RGB色彩空间,可以物尽其用;

5.可以解决照片色彩、构图、紫边、影调等常见问题且非常方便;

当然Raw图由于数据量大,其存储也不方便,且由于Raw只是一种数据记录,不同相机产生的Raw文件是不同的,导致没有一个通用软件可以打开Raw文件,如果说要通过Raw图生成具有艺术气息的照片,则需要一定的技术和艺术功底,这也需要一定的磨练和浸泡才能成为真正的摄影大师。

4 小结

Raw图是一种最原始的数据记录格式。本文从Raw的生成、工业界Raw图的检测方式及标准,Raw图在摄影学的优势进行了比较详细的介绍。值得一提的是目前业界以深度学习为代表的视觉研究甚至直接以Raw图作为原始素材进行基于神经网络的计算成像和计算摄影,故了解Raw图是后续各种交叉性研究的基石。

[1]  https://www.cnblogs.com/qiqibaby/p/5267566.html

[2] Sony Corporation. Realization of natural color reproduction in Digital Still Cameras, closer to the

[3] Adaptive Homogeneity-Directed Demosaicing Algorithm - Hauptseminar im Sommersemester 2007 Medizinische Bildverarbeitung

[4]   https://www.xrite.cn/categories/light-booths/

总结

这篇文章对于Raw图生成进行了详细介绍,包括工业界目前比较成熟的Raw图检测方式和标准,并最后对Raw图在摄影学上的优势大致进行了介绍。希望对于读者深入研究数字成像领域有所借鉴,下一期的任务将继续延此路线进一步展开。

下期预告:raw图到最后成像的前世今生

有三AI夏季划

有三AI夏季划进行中,欢迎了解并加入,系统性成长为中级CV算法工程师。

转载文章请后台联系

侵权必究

往期精选

【摄像头与成像】长文详解RAW图的来龙去脉相关推荐

  1. 【技术综述】万字长文详解Faster RCNN源代码

    文章首发于微信公众号<有三AI> [技术综述]万字长文详解Faster RCNN源代码 作为深度学习算法工程师,如果你想提升C++水平,就去研究caffe源代码,如果你想提升python水 ...

  2. 64位 int 占几个字节_面试常考,项目易错,长文详解C/C++中的字节对齐

    面试常考,项目易错,长文详解C/C++中的字节对齐​mp.weixin.qq.com 引入主题,看代码 我们先来看看以下程序 //编译器:https://tool.lu/coderunner/ //来 ...

  3. @entity 不限字节长度的类型_面试常考,项目易错,长文详解C/C++中的字节对齐...

    面试常考,项目易错,长文详解C/C++中的字节对齐​mp.weixin.qq.com 引入主题,看代码 我们先来看看以下程序 //编译器:https://tool.lu/coderunner/ //来 ...

  4. 边缘计算:万字长文详解高通SNPE inception_v3安卓端DSP推理加速实战

    本文是在以下文章的基础上编写,关于SNPE环境部署和服务器端推理可以参考上一篇文章: 边缘计算:万字长文详解高通SNPE inception_v3推理实战_seaside2003的博客-CSDN博客 ...

  5. Quartus II 8.1 详解--有图---图片详解 【1讲】

    Quartus II 8.1  详解--有图---图片详解    看图片比较清楚,比文章清楚的多 本文转自 zhangguangyi 51CTO博客,原文链接http://blog.51cto.com ...

  6. 长文详解材料阻燃性能试验方法

    长文详解材料阻燃性能试验方法 材料阻燃性能试验方法 阻燃材料燃烧试验的目的在于评定它的燃烧特性,即是否容易着火.着火后是否延燃,以及是否冒烟和释放毒气等.本文主要介绍了材料阻燃性能的测试方法. 1.火 ...

  7. 海康摄像头二次开发详解,包含海康摄像头登录、海康云台控制、视频下载等功能

    海康摄像头二次开发详解 准备 海康摄像头SDK开发下载路径: 开发过程中遇到的问题记录: 添加maven依赖 下面代码中会出现的实体类 CameraManage实体类: ControlDto实体类: ...

  8. 机箱主板跳线接法详解(图) (机箱面板的POWER LED线,POWER SW线,HD线,RESET线,usb线)

    机箱主板跳线接法详解(图) 作为一名新手,要真正从头组装好自己的电脑并不容易,也许你知道CPU应该插哪儿,内存应该插哪儿,但遇到一排排复杂跳线的时候,很多新手都不知道如何下手. 钥匙开机其实并不神秘 ...

  9. 机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、PAC框架、VC-维(持续更新))

    机器学习,深度学习基础算法原理详解(图的搜索.交叉验证.PAC框架.VC-维.支持向量机.核方法(持续更新)) 机器学习,深度学习基础算法原理详解(数据结构部分(持续更新)) 文章目录 1. 图的搜索 ...

最新文章

  1. 一个AI产品经理怎么看AI的发展
  2. (三)硕博生常用的英文文献下载的网站
  3. 小米6发布,雷军亲手终结小米低价时代,低价竞争还能走多远?
  4. 为什么要引入模式概念来设计软件
  5. 【GAN优化】解决模式崩溃的两条思路:改进优化和网络架构
  6. java native堆_Java Native Memory比堆更快吗?
  7. iOS微博项目(一)
  8. Java命令行界面(第4部分):命令行
  9. finalshell连接失败解决方法_iPhone热点连不上?教你网络连接失败或断线的解决办法...
  10. 判断点是否在多边形内部
  11. ajax中加html,向DIV中写入HTML(AJAX高手赐教)
  12. MySQL/InnoDB的并发插入Concurrent Insert
  13. pitch yaw roll 角度分别是什么
  14. 不可错过的效能利器「GitHub 热点速览 v.22.39」
  15. 给移动硬盘装上LINUX全攻略
  16. 扁平卡通风毕业论文答辩PPT模板
  17. 完美解决c# 连接oracle US7ASCII字符中文乱码 亲测
  18. 英语中学生测试软件,中考英语口语测试软件.doc
  19. 【计算机网络】——习题解析:UDP 用户数据报的首部十六进制表示是:06 32 00 45 00 1C E2 17,试求源端口、目的端口、 用户数据报的总长度、数据部分长度等
  20. JAVA向client打印一行_java8 httpclient NameValuePair转换14行代码一行搞定!

热门文章

  1. 11 张流程图帮你搞定 Spring Bean 生命周期 (核心)
  2. 信息系统项目管理知识--项目质量管理
  3. 2021-10-09 求二叉树的高度(递归和迭代版本)
  4. jdbc连接数据库失败,com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。
  5. 算法--腾讯面试:单词游戏,谁会赢?
  6. 2019北邮计算机考研大纲,2019年北京邮电大学802电子电路考研大纲
  7. Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟
  8. 高性能的索引实现——《深究MySQL》
  9. Servlet3.0新特性全解
  10. 边缘计算用java_物联网技术和边缘计算