【Camera】Camera理论知识和基本原理

news/2024/12/22 14:10:59/

Camera理论知识和基本原理

  • 1. 前言
  • 2. Basic Concepts
  • 3. 总体流程
  • 4. 摄像头
  • 5. 传感器 Sensor
    • 5.1 CCD(Charge Coupled Device) 电荷耦合器件传感器
    • 5.2 CMOS(Complementary Metal-Oxide Semiconductor)互补性氧化金属半导体
    • 5.3 CCD VS CMOS
        • 5.3.1 CCD特点
        • 5.3.2 CMOS特点
        • 5.3.3 特点分析
    • 5.4 传感器尺寸和画质的关系
  • 6. ISP and DSP
  • 7.图像
    • 7.1 像素
    • 7.2 RGB表示方式
    • 7.3 YUV表示方式
    • 7.4 YUV采样格式
        • 7.4.1 YUV 4:4:4
        • 7.4.2 YUV 4:2:2
        • 7.4.3 YUV 4:2:0
    • 7.5 YUV存储格式
    • 7.5 RGB和YUV的相互转化
  • 8. 3A算法
    • 8.1 AF 自动对焦
    • 8.2 AE 自动曝光
    • 8.3 AWB 自动白平衡
  • 9.个人简介

1. 前言

本篇文章为Camera系列文章的第一篇,主要阐述Camera摄像头的基础理论知识,解决Camera硬件或Camera软件开发的一些困惑。该系列文章主要围绕Android操作系统进行,并涉及Android系统上Camera的协议、实现和应用。

转载请注明出处。可私信、也可邮件、联系方式见文章末尾。

2. Basic Concepts

如下表1

术语解释备注
Cameraan optical instrument that captures a visual image.光学仪器捕获视觉形象显示在感光表面
Image sensordetects and conveys information used to make an image.两种主流传感器为CCDCMOS
CCDcharge-coupled device电荷耦合
CMOSComplementary Metal-Oxide Semiconductor互补性氧化金属半导体
pixel像素相机传感器上的最小感光单位
IR Filter红外滤光片人眼看不到红外光,但sensor可,需将红外光滤掉使图像更接近人眼看到效果。
Lens镜头分为塑胶透镜(plastic)或玻璃透镜(glass)
DSPDigital signal processor,就是把Raw RGB格式转换成RGB格式或者是YUV格式
ISPImage signal processor,把 sensor 采集到的原始数据转换为显示支持 的格式
3A算法AF、AE、AWB自动对焦、自动曝光、自动白平衡
A/D转换analog signals to digital format

3. 总体流程

在这里插入图片描述

涉及如下几个步骤

  1. 光线通过镜头Lens进入摄像头内部。
  2. 图像传感器转换光信息为电信息
  3. 原始的RAW Data经过DSP转换成RGB/YUV数据
  4. RGB/YUV通过应用层展现

4. 摄像头

摄像头结构图
摄像头的通用硬件结构如上图所示。利用透镜折射原理,景物光线透过镜头在聚焦平面上形成清晰的像,然后通过感光材料CMOS或CCD记录影像,并通过电路转换为电信号。2

Lens一般是有几片透镜组成,按材质可分为

  • Plastic :塑胶透镜
  • Glass :玻璃透镜
Glass比Plastic贵。在透光率和感光性等光学指标上也比Plastic要好。手机考虑到成本,一般使用的是Plastic。

 

结合以上2种结构,摄像头采用的镜头结构有:1P、2P、1G1P、1G2P、2G2P、2G3P、4G、5G等。透镜越多,成本越高,相对成像效果会更出色。

在这里插入图片描述

5. 传感器 Sensor

  • 负责将Lens的光信号转换为电信号,再进过内部AD转换为数字信号。
  • 由于 Sensor 的每个 pixel 只能感光 R 光或 B 光或 G 光,因此每个像素此时存贮的是单色的,称之为 RAW DATA 数据。
  • 想将每个像素的 RAW DATA 数据还原成三基色,就需要 ISP 来处理。
  • 目前常用Sensor主要有CCDCMOS

5.1 CCD(Charge Coupled Device) 电荷耦合器件传感器

  • 高感光度半导体材料制成,由许多感光单位组成,通常以百万像素为单位。
  • 当CCD表面受到光线照射时,每个感光单位会将电荷反映在组件上,所有的感光单位所产生的信号加在一起,就构成了一幅完整的画面。

5.2 CMOS(Complementary Metal-Oxide Semiconductor)互补性氧化金属半导体

  • 硅和锗做成的半导体,使其在CMOS上共存着带N(-)和P(+)级的半导体,这两个互补效应所产生的电流可以被处理芯片记录并解读成影像。
  • CMOS传感器主要以美国、韩国和中国台湾为主导,主要生产厂家是美国的OmnVison、Agilent、Micron,中国台湾的锐像、原相、泰视等,韩国的三星、现代。

5.3 CCD VS CMOS

5.3.1 CCD特点

技术成熟、成像质量高、灵敏度高,噪声低,响应速度快,有自扫描功能,图像畸变小,无残像、应用超大规模集成电路工艺技术生产,像素集成度高,尺寸精确

5.3.2 CMOS特点

读取信息的方式简单、输出信息速率快、耗电省(仅为CCD芯片的1/10左右)、体积小、重量轻、集成度高、价格低等特点。

5.3.3 特点分析

在这里插入图片描述

如图-CCD和CMOS的感光二极管排列。

  • CCD阵列,是在仅有一条总线后加A/D转换(紫色箭头,见2. Basic Concept)。在时钟信号同步下,一步步移位读对应二极管的电平值。
  • CMOS阵列,是在每个感光二极管旁都加入了A/D转换。是主动式输出采集的数据信息,而CCD是在同步电路控制下被动式的输出采集的数据。

因此我们详细在性能,耗电,画质等方面做初步比较

性能

  • CCD需在同步时钟控制下以行为单位一位一位输出信息,速度当然慢不适合快速连拍,保存图像速度慢。
  • CMOS阵列有坐标嘛,传感器采集光信号的同时就可以取出电信号,保存图像速度快。

耗电

  • CCD耗电大,在同步信号控制下一位位读取,需要时钟控制电源和三组电源供电。
  • CMOS耗电小。CMOS传感器经光电转换后直接产生电流或电压信号,信号读取十分简单,而且感光二极管所需的电压,直接由晶体放大输出,所以需要施加在源极的电平很小

画质

  • CMOS是主动式输出数据,阵列上每个点都要经过两条传输总线,路程长,传输时的噪声引入多。
  • CMOS阵列的每个二极管旁边都有A/D,光电传感元件与电路之间距离很近,相互之间的光电磁干扰较为严重,放大的同时可能带入的噪声也大。
  • CMOS因为二极管旁带有A/D电路,同样尺寸的sensor,二极管能受光线面积小,一部分光线被浪费了,受光弱于CCD的感光二极管,带入的一点小噪声就会被放大。

发展

CCD传感器制作技术起步较早,技术比较成熟。近年来,CMOS技术发展一日千里,在中小尺寸传感器上,CMOS和CCD的画质区别已经很小。

5.4 传感器尺寸和画质的关系

在这里插入图片描述
传感器尺寸大小对于画质的影响,就是采集光线数据的正确性和完整性的不同。

  1. 传感器面积越大,感光阵列面积就越大,相邻感光电路的距离就越大,加电时产生的电磁干扰就越小。
  2. 传感器面积越大,感光阵列面积就越大,对应单个像素的透镜就能做的越大,聚集到的光线就越多,感光二极管受光后产生的输出电平就越高。带来更高的信噪比,转换后的信息处理正确率就越高。

传感器自己就总结到这里,如果感兴趣可查看注脚或搜集更多资料,深入探究。3 4

6. ISP and DSP

由于本人专业知识有限,不深入进行总结分析,感兴趣可参阅数字信号处理等相关书籍3 5 6

在这里插入图片描述

  • ISP 处理Image Sensor(图像传感器)的输出数据,如AEC(自动曝光控制)、AGC(自动增益控制)、AWB(自动白平衡)、色彩校正、Gamma校正、祛除坏点、Auto Black Level、Auto White Level 等等。
  • DSP功能较多,它可以做些拍照以及回显(JPEG的编解码)、录像以及回放(Video 的编解码)、H.264的编解码、还有很多其他方面的处理,总之是处理数字信号了。
  • 可以认为ISP是一类特殊的处理图像信号的DSP。
  • 数字信号处理芯片,感兴趣的可参阅5

7.图像

7.1 像素

一部手机屏幕的分辨率是1280×720,说明水平方向有720个像素点,垂直方向有1280个像素点,有1280×720个像素点(分辨率)。每个像素点都由三个子像素点。当要显示某篇文字或者某幅图像时,就会把这幅图像的每一个像素点的RGB通道分别对应的屏幕位置上的子像素点绘制到屏幕上,从而显示整个图像7

7.2 RGB表示方式

通用图像数据格式,理论上任何颜色都可以用红绿蓝三种基本颜色混合而成。有RGB888、ARGB8888、RGB565等格式(Android)

  • RGB565:共16比特,占2个字节。G站6位是因为人的眼睛对绿光最为敏感,可表示颜色数为2^16 = 65536色。
  • RGB888:共24比特,占3个字节,可表示颜色数为2^24 = 1677W。
  • ARGB8888:共32比特,占4个字节,可表示颜色数为2^32。

7.3 YUV表示方式

对于视频帧的裸数据表示,更多的是YUV数据格式,主要应用于优化彩色视频信号的传输,使其向后兼容老式黑白电视。相比RGB它最大的优点在于只需要占用极少的频宽(RGB要求三个独立的视频信号同时传输)。8

  • Y:Luma 明亮度,也称灰阶值,以前的黑白电视,是只有Y信号而没有UV信号。
  • UV:Chroma 色度,色彩及饱和度,用于指定像素的颜色。 “色度”定义了颜色的两个方面——色调(Cr)与饱和度(Cb)
  • Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异
  • Cb反映的则是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。

7.4 YUV采样格式

主流有如下三种

  • YUV 4:4:4 采样
  • YUV 4:2:2 采样
  • YUV 4:2:0 采样

7.4.1 YUV 4:4:4

YUV 4:4:4 表示 Y、U、V 三分量采样率相同,即每个像素的三分量信息完整,都是 8bit,每个像素占用 3 个字节。

在这里插入图片描述

四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
采样的码流为: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
映射出的像素点为:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

7.4.2 YUV 4:2:2

YUV 4:2:2 表示 UV 分量的采样率是 Y 分量的一半。
在这里插入图片描述

四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
采样的码流为: Y0 U0 Y1 V1 Y2 U2 Y3 U3
映射出的像素点为:[Y0 U0 V1]、[Y1 U0 V1]、[Y2 U2 V3]、[Y3 U2 V3]

其中,每采样一个像素点,都会采样其 Y 分量,而 U、V 分量都会间隔采集一个,映射为像素点时,第一个像素点和第二个像素点共用了 U0、V1 分量,以此类推。从而节省了图像空间。

比如一张 1920 * 1280 大小的图片,采用 YUV 4:2:2 采样时的大小为:

(1920 * 1280 * 8 + 1920 * 1280 * 0.5 * 8 * 2 ) / 8 / 1024 / 1024 = 4.68M

7.4.3 YUV 4:2:0

YUV 4:2:0 并不意味着不采样 V 分量。它指的是对每条扫描线来说,只有一种色度分量以 2:1 的采样率存储,相邻的扫描行存储不同的色度分量。也就是说,如果第一行是 4:2:0,下一行就是 4:0:2,在下一行就是 4:2:0,以此类推。
在这里插入图片描述

图像像素为:
[Y0 U0 V0]、[Y1 U1 V1]、 [Y2 U2 V2]、 [Y3 U3 V3]
[Y5 U5 V5]、[Y6 U6 V6]、 [Y7 U7 V7] 、[Y8 U8 V8]

采样的码流为:
Y0 U0 Y1 Y2 U2 Y3
Y5 V5 Y6 Y7 V7 Y8

映射出的像素点为:
[Y0 U0 V5]、[Y1 U0 V5]、[Y2 U2 V7]、[Y3 U2 V7]
[Y5 U0 V5]、[Y6 U0 V5]、[Y7 U2 V7]、[Y8 U2 V7]

一张 1920 * 1280 大小的图片,采用 YUV 4:2:2 采样时的大小为:

(1920 * 1280 * 8 + 1920 * 1280 * 0.25 * 8 * 2 ) / 8 / 1024 / 1024 = 3.51M

相比较RGB节省了一半的空间。

7.5 YUV存储格式

YUV 数据有两种存储格式:平面格式(planar format)和打包格式(packed format)

  • planar format:先连续存储所有像素点的 Y,紧接着存储所有像素点的 U,随后是所有像素点的 V。
  • packed format:每个像素点的 Y、U、V 是连续交错存储的。

不同的采样方式和存储格式,就会产生多种 YUV 存储方式,这里介绍基于YUV420 的存储方式。

YUV420P 和 YUV420SP
在这里插入图片描述
YUV420P 是基于 planar 平面模式进行存储,先存储所有的 Y 分量,然后存储所有的 U 分量或者 V 分量。

同样,YUV420SP 也是基于 planar 平面模式存储,与 YUV420P 的区别在于它的 U、V 分量是按照 UV 或者 VU 交替顺序进行存储。

YU12 和 YU21

YU12 和 YV12 格式都属于 YUV 420P 类型,即先存储 Y 分量,再存储 U、V 分量,区别在于:YU12 是先 Y 再 U 后 V,而 YV12 是先 Y 再 V 后 U 。

NV21 和 NV21
NV12 和 NV21 格式都属于 YUV420SP 类型。它也是先存储了 Y 分量,但接下来并不是再存储所有的 U 或者 V 分量,而是把 UV 分量交替连续存储。

  • NV12 是 IOS 中有的模式,它的存储顺序是先存 Y 分量,再 UV 进行交替存储。

  • NV21 是 安卓 中有的模式,它的存储顺序是先存 Y 分量,在 VU 交替存储。

7.5 RGB和YUV的相互转化

在这里插入图片描述

8. 3A算法

8.1 AF 自动对焦

目的是获得清晰度更高得图像。方法分两类,一类是传统的聚焦方法,一种是基于数字图像处理方式的图像聚焦方法。传统的方式中,自动聚焦通过红外线或者超生波测距的方式来实现。这种方式需要安装发射机和接收机,增加了摄像机的成本,而且超声波对于玻璃后面的被摄物体不能很好的自动聚焦。这一类聚焦方式在某些场合受到了限制。因此在日趋集成化、微型化、低成本的应用中,基于数字图像处理的自动聚焦方法更具有优势。

根据镜头成像分析,镜头的光学传递函数可以近似为高斯函数,它的作用等效为一个低通滤波器。离焦量越大,光学传递函数的截止频率越低。从频域上看,离焦量增大,对图像高频能量造成损失,使得图像的细节逐渐模糊。从空域上看,离焦量增大,点光源成像的光强分布函数越分散,可分辨的成像间距越大,图像相邻像素互相重叠,图像细节损失严重。因此图像清晰度评价函数时建立在图像边缘高频能量上的。

数字处理方法中,自动聚焦的关键在于构造图像的清晰度评价函数。己经提出的图像清晰度评价函数苞括灰度方差、梯度能量、嫡函数和一些频域函数法。图像清晰度评价函数必须具有良好的单峰性和尖锐性,而且要计算量适度,从而可以快速的实现精准对焦。

8.2 AE 自动曝光

曝光是用来计算从景物到达相机的光通量大小的物理量。图像传感器只有获得正确的曝光,才能得到高质量的照片。曝光过度,图像看起来太亮曝光不足,则图像看起来太暗。到达传感器的光通量的大小主要由两方面因素决定:曝光时间的长短以及光圈的大小。

利用光圈进行自动曝光,主要根据所拍摄的场景来控制光圈大小,使得进光量维持在一定范围内。通过光圈进行曝光控制的成本比较高。现在市场所见的中低端摄像头采用的主流技术通过调整曝光时间来实现自动曝光。

目前自动曝光控制算法方法有两种,一种是使用参照亮度值,将图像均匀分成许多的子图像,每一块子图像的亮度被用来设置参照亮度值,这个亮度值可以通过设置快门的速度来获得。另外一种方法是,通过研究不同光照条件下的亮度与曝光值之间的关系来进行曝光控制。这两种方法都是研究了大量的图像例子和许多不同的光照条件。而且均需要在不同的光照条件下所采集的图像数据库。实际中自动曝光研究需要解决好以下几个问题,首先是判定图像是否需要自动曝光,其次是自动曝光时,如何调整光电转换后数字信号来找出自动曝光能力补偿函数,最后就是调整到什么程度最为合适。

8.3 AWB 自动白平衡

白平衡的基本原理是在任意环境下, 把白色物体还原成白色物体, 也就是通过找到图像中的白块, 然后调整R/G/B 的比例, 如下关系:
R’= R * R_Gain
G’ = G * G_Gain
B’ = B * B_Gain
R’ = G’= B’
AWB 算法通常包括的步骤如下:
(1)色温统计: 根据图像统计出色温;
(2)计算通道增益: 计算出R 和B 通道的增益;
(3)进行偏色的矫正: 根据给出的增益, 算出偏色图像的矫正。

9.个人简介

职业:阿里巴巴 - 无线开发专家,可内推
邮件:sunquan9301@163.com
WX:sunquan97
添加请注明CSDN + 原因,


  1. Wikipedia ↩︎

  2. 摄像头工作原理 ↩︎

  3. camera基本知识 ↩︎ ↩︎

  4. 详解CCD和CMOS的区别及主要硬件技术指标 ↩︎

  5. ISP流程概述 ↩︎ ↩︎

  6. ISPfuncs ↩︎

  7. 音视频开发进阶指南 ↩︎

  8. 一文理解 YUV ↩︎


http://www.ppmy.cn/news/918475.html

相关文章

69、简述Redis事务实现

Redis事务实现 一、事务开始二、命令入队三、事务执行 一、事务开始 MULTI命令的执行,标识着一个事务的开始。MULTI命令会将客户端状态的flags 属性中打开REDIS_MULTI标识来完成的。 二、命令入队 当一个客户端切换到事务状态之后,服务器会根据这个客…

【1】Vite+Vue3 登录功能

一、介绍 在当今前端开发的领域里,快速、高效的项目构建工具以及使用最新技术栈是非常关键的。ViteVue3 组合为一体的项目实战示例专栏将带领你深入了解和掌握这一最新的前端开发工具和框架。 作为下一代前端构建工具,Vite 在开发中的启动速度和热重载…

12306爬虫抢票软件代码

1、需要登录页面,手动输入账号密码! 2、地查询车次,输入 起点、目的、出发时间,找到车次,就进行选择 3、选择完成后,就查询该车次是否有余票(进行显示)如果有就进行购买&#xff0c…

【火车票】心蓝抢票软件

实时监控抢票,需要 交钱购买注册。。升学 向海春 有买,哈哈 转载于:https://www.cnblogs.com/smilexumu/p/7489850.html

程序员放假抢票软件

分流抢票:https://www.bypass.cn/ 抢火车票神器

火车票软件哪个好用_抢火车票软件哪个好用?

展开全部 360抢票软件好用。 360今年除对抢票王产品进行技术升级之外,还加大了对手机端e68a8462616964757a686964616f31333431366432抢票软件的技术研发,并增加数百台服务器支持,使手机购票成功率显著提升。用户除了通过PC端抢票王刷票之外&a…

火车票网上抢票软件推荐(亲测)

2019抢票软件哪个好?面对众多的抢票软件,很多小伙伴们都不知道哪个成功率高,今天小编为大家整理了2019抢票成功率高软件推荐,一起来get下吧。 2019年哪款软件抢票成功率高?2019抢票软件哪个好? 1、 去哪儿旅…

微言软件出品——微言火车票抢票大师

微言软件出品——微言火车票抢票大师 2012/1/1 19:26:30 微言软件 微言抢票大师,是全网首个具备抢票功能的软件, 依托研发团队强大的浏览器技术能力,使用嵌入式IE进入中铁官网购票系统自动托管式,全程可视化抢票,让你体验软件…