鹰眼视图——《图样,too simple》系列之三

举报
k3soft 发表于 2017/12/05 11:34:07 2017/12/05
【摘要】 引言:最近为FPGA验证做图片生成器,检索了多种图片格式的介绍文档,这里做一个总结,希望对刚接触数字图像处理的新同事有所帮助。本系列分三部分,介绍工作中常见的YUV、RAW等各种图片格式,不求艰深晦涩,但求简洁明了。 本文是第三部分:RAW10? RAW12? RAW14? BGGR? 原来如此原始+土豪! 1 RAW简介 RAW的原意就是“未经加工的、原始的”,可以理

引言:最近为FPGA验证做图片生成器,检索了多种图片格式的介绍文档,这里做一个总结,希望对刚接触数字图像处理的新同事有所帮助。本系列分三部分,介绍工作中常见的YUVRAW等各种图片格式,不求艰深晦涩,但求简洁明了。

本文是第三部分:RAW10? RAW12? RAW14? BGGR? 原来如此原始+土豪!

1      RAW简介

RAW的原意就是“未经加工的、原始的”,可以理解为:RAW图像就是CMOS或者CCD图像感应器将捕捉到的光信号转为电信号,进而转为数字信号的原始数据,换句话说,RAW图就是记录每个像素点的光强(亮度)信息。

以下为从光源(被摄物体)à 镜头 à CCD(光电耦合器件)à ADC(模数转换)à RAW图的大概流程。

http://imgsrc.baidu.com/forum/pic/item/d81a572309f790526b6d320a0ef3d7ca7acbd5d7.jpg

按照每个像素点亮度记录精度(位深)的不同,区分为RAW 10bitsRAW 12bitsRAW 14bits,简称为RAW10RAW12RAW14

2      RAW图的数据存储

不管是RAW10RAW12还是RAW14,都是每两个字节(16bits)存储一个像素的亮度值,有效bit位数分别为101214,无效bit位用0补齐,所以这三种raw图文件的大小都是宽xx2个字节


2.1      RAW10

 

RAW10图文件中,每个像素点的亮度值用10bit位表示,也就是从最暗到最亮分1024个层次精度。每个像素点的亮度值用两个字节表示,其中6个无效的bit位用0表示,以下是用十六进制形式打开的一个RAW10图文件:

5a0afb76e50f2.png

红框中的字节最大值为0x03,前6bit位全是0。文件中无效数据占文件总大小的近40%,可以说相当“土豪”(langfei)。

2.2      RAW12

RAW12图文件中,每个像素点的亮度值用12bit位表示,也就是从最暗到最亮分4096(212次方)个层次精度。每个像素点的亮度值同样用两个字节表示,其中4个无效的bit位用0表示,以下是用十六进制形式打开的一个RAW12图文件:

5a0afb76e5880.png

红框中的字节最大值为0x0F,前4bit位全是0

2.3      RAW14

读者可以根据RAW10RAW12自行扩展,这里不再赘叙。

3      Bayer pattern

大家可能注意到,上面对RAW图的介绍未涉及到色彩,实际上CCD只能根据光强信号转换为对应强度的电信号,而无法分辨色彩(可见光波长),相当于“色盲”。这样一来,我们得到的RAW图也只能是mono图,显然这是不能接受的。

有人自然想到了一个简单粗暴的解决办法:用RGB滤光片将白光分解成三原色,分别用一块CCD来做光电转换,最后合成一张彩*** ,这就是3CCD相机。原理图如下:

http://imgsrc.baidu.com/forum/pic/item/fb854ab5c9ea15ce38fa953db4003af33a87b228.jpg

原理简单,但是元件成本倍增,商业大佬们表示很不满意。于是柯达公司的拜尔发明了一种棋盘状的滤光片,只用一块CCD,就解决了颜色的识别:

http://imgsrc.baidu.com/forum/pic/item/e6a99b82b9014a904c083389ab773912b31bee0b.jpg

上图中的滤光片上布满了一个个排列规则的滤光点,与后面CCD上的像素一一对应,每个滤光点只能通过RGB中的一种颜色,这意味着照射在下层CCD每一个像素上的光只能是固定的某种颜色,从而实现了CCD对色彩的辨别,如下图所示:

preview

仔细看拜尔滤光片上棋盘状的颜色分布,是有规律的,这就是Bayer pattern(拜尔模板),常见的有以下4种:
5a0afb76e7c2c.jpg


上述pattern中,每4个像素记录1R1B2G,之所以绿色得到“倚重”,是因为人眼对绿光最敏感。

 

这样一来,我们得到的RAW图就不再是mono图,而是彩图,效果如下所示:

http://imgsrc.baidu.com/forum/pic/item/be9d18f79052982286414cf7d5ca7bcb0b46d4d7.jpg

最后经过插值算法,根据周边像素点计算出中心像素点上另外两种原色分量,就得到一张看上去比较正常的RAW图:

preview

篇幅所限,RAW格式的科普就到此为止吧,希望对大家有用。

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。