本文内容参考:
《OmniVision OV5640 datasheet》
《OV5640 Camera Module — Software Application Notes》
OV5640学习_ov5640手册-CSDN博客
OV5640手册解读-CSDN博客
【FPGA】摄像头模块OV5640-CSDN博客
Camera开发-OV5640(MIPI)-CSDN博客
特此致谢!
一、简介
OV5640是OmniVision(OV)公司设计推出的一款CMOS图像传感器(感光芯片,注意并不是摄像头),广泛应用于数字相机、手机和其它嵌入式视觉系统中。OV5640最高输出500万像素的图像(实际感光阵列为2592×1944),最高分辨格式为QSXVGA(2592×1944)。数据接口采用DVP,控制接口为SCCB。可以输出RGB565/RGB555/RGB444、YUV(422/420)、YCbCr422和JPEG格式。
OV5640内部集成了图像出炉的电路,包括自动曝光控制(AEC)、自动白平
衡(AWB) 等。同时该传感器支持LED补光、 MIPI(移动产业处理器接口,多用于手机等)输出接口和DVP(数字视频并行,在设计HDMI显示时,就用的这个)输出接口选择、 ISP(图像信号处理)以及自动聚焦控制(AFC)等功能。可以对图像进行白平衡、饱和度、色度、锐度、Gamma曲线等调节。图像分辨率、帧率可调。
OV5640模块的特点如下:
- 1.4μm×1.4μm像素大小,并且使用OmniBSI技术以达到更高性能(高灵敏度、低串扰和低噪声)
- 光学尺寸为1/4英寸
- 自动图像控制功能:自动曝光(AEC)、自动白平衡(AWB)、自动消除灯光条纹、自动50/60 Hz亮度探测、自动黑电平校准(ABLC)和自动带通滤波器(ABF)等
- 支持图像质量控制:饱和度调节、色调调节、 gamma校准、锐度和镜头校准等
- 标准的SCCB 接口,兼容I2C接口
- 支持 RawRGB、 RGB(RGB565/RGB555/RGB444)、CCIR656、YUV(422/420)、YCbCr(422)和压缩图像(JPEG)输出格式
- 支持QSXGA(500W)图像尺寸输出,以及按比例缩小到其它任何尺寸
- 支持图像缩放、平移和窗口设置
- 支持图像压缩,即可输出JPEG图像数据
- 支持数字视频接口(DVP/MIPI)
- 自带嵌入式微处理器
- 集成LDO, 仅需提供3.3V电源即可正常工作
二、CMOS图像传感器成像原理
图像传感器通过捕获光子并将其转换为电信号来工作。OV5640采用的是互补金属氧化物半导体(CMOS)技术,相比于传统的电荷耦合器件(CCD)传感器,CMOS传感器在功耗和成本上具有优势。
作为一个图像传感器,其主要作用就是将现实中的各种光线转换为数字系统能够识别的数字信号。光线中三元色各个颜色的强度本身是模拟信号,所以图像传感器最基本的原理就是进行模数转换,将光线这个模拟量转换为数字信号。
仅仅有模数转换功能还不够,还得先搞清楚另一个问题——光线是一种怎样的模拟量。
光线是一种怎样的模拟量呢?这个在初中物理中已经有过详细的介绍。我们都知道,自然界中的光,实际上是三种基本单色光的组合,这三种基本单色光为红(RED)、绿(GREEN)、蓝(BLUE),我们称之为三原色。通过将这三种基本颜色按照不同的比例混合,就可以得到其它的任意颜色。例如纯黄色是由红色和绿色按照一比一的比例混合得到的,蓝色量为0。下图为三种颜色混合得到几种常见颜色的示意图。
既然已经知道,每一束光线都可以理解为三原色按照不同比例混合得到的效果,那么我们只要想办法知道该束光线的三原色的比例,然后用颜色加比例的表示方法,就能唯一确定这束光线的最终颜色了。所以图像传感器里面所谓的模数转换,实质就是对一束光线的三原色的强度进行转换,将三原色中每一种颜色的强度转化为数字信号。再用颜色加数字的方式来表示该束光线的真实颜色。
这里,假如对三原色中的每一种基本颜色的强度都分为256级,那么每一种基本颜色的强度就可以用一个8位的数字来表示,0表示该颜色强度最弱,或者说无该颜色分量,255 表示该颜色强度最强。这样一来,就可以用一个24位的数字来唯一表示该光线的颜色了。下表为上图中几种颜色的对应三原色的数值。
红 | 绿 | 蓝 | 黄 | 品红 | 青 | 白 | 黑 | |
红 | 255 | 0 | 0 | 255 | 0 | 255 | 255 | 0 |
绿 | 0 | 255 | 0 | 255 | 255 | 0 | 255 | 0 |
蓝 | 0 | 0 | 255 | 0 | 255 | 255 | 255 | 0 |
这种表示颜色的方法就是最常见的 RGB888 格式。所谓 RGB888 就是使用三个8位的数据表示一种颜色,其中高8位表示红色分量,中8位表示绿色分量,低8位表示蓝色分量。
那么,如何才能对一束自然光中的三原色的强度分别进行模数转换呢?这就涉及到对一束光的三原色分离。所谓对光的三原色分离就是通过某种手段,将该束光线中的三种颜色分别独立提取出来,当三种颜色都独立的提取到之后,就能使用模数转换器对该颜色的强度进行转换了。三原色分离的原理其实非常简单,就是使用单色滤光片,如下所示:
通过加入滤光片,就能让对应颜色的光线通过滤光片到达感光元件,通过这种方式,只需要三个不同颜色的滤光片,就能对一束入射的复合光线进行分离,得到三原色,然后使用模数转换器对感光元件感应到的单色光的光照强度进行转换,就能得到该单色光的强度数字值了。
后续还有更复杂的过程,在此就不赘述了。详情请参见以下博文,讲得很好很清楚:
Camera开发-OV5640(MIPI)-CSDN博客
更多内容请看下回。