摄像头-Camerasensor基本知识
⼀、Camera ⼯作原理介绍
1. 结构 .
⼀般来说,camera 主要是由 lens 和 sensor IC 两部分组成,其中有的 sensor IC 集成 了 DSP,有的没有集成,但也需要外部 DSP 处理。细分的来讲,camera 设备由下边⼏部 分构成: b$ w6 [# i& q% p* E
1) lens(镜头) ⼀般 camera 的镜头结构是有⼏⽚透镜组成,分有塑胶透镜(Plastic)和玻璃透 镜(Glass) ,通常镜头结构有:
1P,2P,1G1P,1G3P,2G2P,4G 等。
2) sensor(图像传感器) Senor 是⼀种半导体芯⽚,有两种类型:CCD 和 CMOS。Sensor 将从 lens 上传导过来的光线转换为电信号, 再通过内部的 AD 转换为数字信号。 由于 Sensor 的每个 pixel 只能感光 R 光或者 B 光或者 G 光, 因此每个像素此时存贮的是单⾊的, 我们称之为 RAW DATA 数据。 要想将每个像素的 RAW DATA 数据还原成三基⾊,就需要 ISP 来处理。
3)ISP(图像信号处理) 主要完成数字图像的处理⼯作,把 sensor 采集到的原始数据转换为显⽰⽀持 的格式。 2 {4 w# {. R- z% Y
4)CAMIF(camera 控制器) 芯⽚上的 camera 接⼝电路,对设备进⾏控制,接收 sensor 采集的数据交给 CPU,并送⼊ LCD 进⾏显⽰。
2. ⼯作原理 . & W* e" B3 D6 O) |4 k
外部光线穿过 lens 后, 经过 color filter 滤波后照射到 Sensor ⾯上, Sensor 将从 lens 上传导过来的光线转换为电信号,再通过内部的 AD 转换为数字信号。如果 Sensor 没有集 成 DSP,则通过 DVP 的⽅式传输到 baseband,此时的数据格式是 RAW DATA。如果集成 了 DSP, RAW DATA 数据经过 AWB、 则 color matrix、 lens shading、 gamma、 sharpness、 AE 和 de-noise 处理,后输出YUV 或者 RGB 格式的数据。 ; D$ o% H5 z1 f* T% Q1 Y2 O
最后会由 CPU 送到 framebuffer 中进⾏显⽰,这样我们就看到 camera 拍摄到的景象 了。
3. YUV 与 YCbCr .
YUV 和 RGB ⼀样,是⾊彩空间中常⽤的⾊彩模型之⼀,两者可以相互转换。YUV 中 得 Y 表⽰亮度,U 和 V 表⽰⾊度。与 RGB 相⽐,它的优点在于占⽤更少的空间。 YCbCr 则是在世界数字组织视
频标准研制过程中作为 ITU - R BT601 建议的⼀部分, 其实是 YUV 经过缩放和偏移的翻版。 其中 Y 与 YUV 中的 Y 含义⼀致, Cb , Cr 同样都指⾊ 彩, 只是在表⽰⽅法上不同⽽已。在 YUV 家族中, YCbCr 是在计算机系统中应⽤最多的成 员, 其应⽤领域很⼴泛,JPEG、 MPEG 均采⽤此格式。 ⼀般⼈们所讲的 YUV ⼤多是指 YCbCr。 YCbCr 有许多取样格式, 如 4∶4∶4 , 4∶2∶2 , 4∶1∶1 和 4∶2∶0。
⼆、Camera 硬件
1. CAMIF .
如下是 S5PV210 的 camera 系统的结构图:
S5PV210 的 camera 接⼝控制器叫 FIMC4.3,它⽀持 ITU R BT-601/656、AXI 和 MIPI(CSI)三种接⼝⽅式,最⼤输⼊像素是
8192*8192。S5PV210 有三组 camera 接⼝。
主要特性: ⽀持多种输⼊接⼝类型:
ITU-R BT 601/656 模式 DMA(AXI 64 位)模式 MIPI(CSI)模式 Direct FIFO 模式 ⽀持多种输出接⼝:D
MA 模式/Direct FIFO 模式 ⽀持数码调焦(DZI) 最⼤输⼊像素 8192*8192 ⽀持图像翻转、旋转等处理效果 ⽣成多种图⽚格式 ⽀持采集帧控制
2. 接⼝信号 . 7 ^ ?5 u2 s) y1 e! F; d; |
FIMC 信号定义如下所⽰(YCbCr 模式)
Signal
VSYNC HREF PCLK DATA[7:0] FIELD CAM_MCLK I I I I
I/O
帧同步信号 ⾏同步信号 像素时钟 像素数据 FIELD 信号
陆毅女儿贝儿Description
Type
Muxed
O O
系统时钟信号
通过 CAM_MCLK 给摄像头提供时钟,RST 是复位线,PWDN 在摄像头⼯作时应该始终 为低。HREF 是⾏参考信号,PCLK 是像素时钟,VSYNC 是场同步信号。⼀旦给摄像头提供了 时钟,并且复位摄像头,摄像头就开始⼯作了,通过 HREF,PCLK 和 VSYNC 同步传输数字图 像信号。数据是通过 DATA0~DATA7 这⼋根数据线并⾏送出的。
3. ⼯作时序 .杜德伟
FIMC43 ⽀持如下两种视频数据:
ITU-R BT 601 输⼊时序图 这种⽅式下⾏和帧同步信号独⽴于视频数据,因此需要同步信号。
ITU-R BT 656 输⼊时序图
这种⽅式下同步信号已经内嵌到视频数据中了,因此不需要额外的⾏和帧同步信号。
(ITU-R BT 601: 16 位数据传输;21 芯;Y、U、V 信号同时传输。 ITU-R BT 656: 9 芯,不需要同步信号;8 位数据传输;串⾏视频传输;传输速率是 601 的 2 倍;先传 Y, 后传 UV。 )
同步信号的时延参数 t1:表⽰ VSYNC 前、后插⼊周期 t2:表⽰ HREF 前插⼊周期 t3:表⽰ HREF 宽度 t4:表⽰ HREF 后插⼊周期
4. 外部接⼝ . 外部接⼝ 8 `- }$ I8 `/ _* K
硬件原理图的 CAM A 部分:
CAM B 部分
5. Camera 内部结构图 . 9 k) c; ?& t, h* b! f9 M' o9 E
下图是 camera 内部结构框图,以 OV sensor 为例:
⼀、摄像头模组(CCM)介绍:1、camera特写
摄像头模组,全称Camera Compact Module,以下简写为CCM,是影像捕捉⾄关重要的电⼦器件。先来张特写,各种样⼦的都有。
2、摄像头⼯作原理、camera的组成各组件的作⽤想完全的去理解,还得去深⼊,如果是代码我们就逐步分析,模组的话我们就把它分解开来,看他到底是怎么⼯作的。看下它是有那些部分构成的,如下图所⽰:( s9 Y1 U W2 V5 F
(1)、⼯作原理:光通过镜头(lens)聚集的光,通过CMOS或CCD集成电路,把光信号转换成电信号,再经过内部图像处理器(ISP)转换成数字图像信号输出到数字信号处理器(DSP)加⼯处理,转换成标准的RGB、YUV等格式图像信号。
(2)、CCM 包含四⼤件: 镜头(lens)、传感器(sensor)、软板(FPC)、图像处理芯⽚(DSP)。决定⼀个摄像头好坏的重要部件是:镜头(lens)、图像处理芯⽚ (DSP)、传感器(sensor)。CCM的关键技术为:光学设计技术、⾮球⾯镜制作技术、光学镀膜技术。
镜头(lens)是相机的灵魂,镜头(lens)对成像的效果有很重要的作⽤,是利⽤透镜的折射原理,景物光线通过镜头,在聚焦平⾯上形成清晰的影像,通过感光材料CMOS或CCD感光器记录景物的影像。
镜头⼚家主要集中在台湾、⽇本和韩国,镜头这种光学技术含量⾼的产业有⽐较⾼的门槛,业内⽐较知名的企业如富⼠精机、柯尼卡美能达、⼤⽴光、Enplas等
传感器(sensor)是CCM的核⼼模块,⽬前⼴泛使⽤的有两种:⼀种是⼴泛使⽤的CCD(电荷藕合)元件;另⼀种是CMOS(互补⾦属氧化物导体)器件。
电荷藕合器件图像传感器CCD(Charge Coupled Device),它使⽤⼀种⾼感光度的半导体材料制成,能把光线转变成电荷,通过模数转换器芯⽚转换成数字信号。CCD由许多感光单位组成,通常以百万像 素为单位。当CCD表⾯受到光线照射时,每个感光单位会将电荷反映在组件上,所有的感光单位所产⽣的信号加在⼀起,就构成了⼀幅完整的画⾯。CCD传感器模块以⽇本⼚商为主导,全球规模市场有90%以上被⽇本⼚商垄断,以索尼、松下、夏普为龙头。
互补性氧化⾦属半导体CMOS(Complementary Metal-Oxide Semiconductor)主要是利⽤硅和锗这两种元素所做成的半导体,使其在CMOS上共存着带N(带–电)和 P(带+电)级的半导体,这两个互补效应所产⽣的电流即可被处理芯⽚纪录和解读成影像。CMOS 传感器主要美国、台湾和韩国为主导,主要⽣产⼚家有美国 OmniVision、Agilent、Micron,台湾的锐像、原相、泰视等,韩国的三星、现代。
图像处理芯⽚(DSP)是CCM的重要组成部分,它的作⽤是将感光芯⽚获得的数据及时快速地传递中
央处理器并刷新感光芯⽚,因此DSP 芯⽚的好坏,直接影响画⾯品质(⽐如⾊彩饱和度,清晰度等)。
图像处理(isp)——(Image Signal Processor)——影视处理 ⽆论数码相机、摄像机或者摄像⼿机,其影像数据从前端感应后,皆须经过ASP(Analog Signal Processing)、ADC(Analog-Digital Converter)、前期影像处理(Pre-ISP)与后端影像处理(Post-ISP)四个阶段后,影像数据才能最终呈现于终端设备上
/ ^9 ~( K P& _( U3 A0 x2 }
FPC柔性电路板(柔性PCB): 简称"软板", ⼜称"柔性线路板",连接芯⽚和⼿机。起到电信号传输作⽤。
3、camera模组的装配⽅式
(1)、定焦模组装配图
CCM分为定焦模组和⾃动变焦模组,其中定焦模组主要由镜头、镜座、感光集成电路、软性线路板、补强和钢⽚装配⽽成,其装配图如下:
% R2 j# |# \# h9 |
(2)、⾃动变焦模组装配图$ O5 u1 s U. w, o
以前我不知道⼿机上的光学变焦是怎么会事,以为那些都是忽悠⼈的,看这个图这下明⽩了,如果你也不知道,看下这个图,原来⾥⾯有个⾳圈马达,这个只有⾼像素的模组才有,这个我们不⽤管,知道怎么光学变焦就可以了。
⾃动变焦模组由镜头、⾳圈马达、底座⽀架、感光集成电路、驱动集成电路和连接器组成,其装配图如下:
' | c. b* L* d2 ~
3、摄像头的⼀些技术指标
1)、图像格式(imageFormat/Colorspace)" B( a6 E u6 p" V' v
RGB24,420是⽬前最常⽤的两种图像格式。
说道RGB24,不得不提⼀下RGB。
RGB⾊彩模式是⼯业界的⼀种颜⾊标准,是通过对红(R)、绿(G)、蓝(B)三个颜⾊通道的变化以及它们相互之间的叠加来得到各式各样的颜⾊的,
RGB即是代表红、绿、蓝三个通道的颜⾊,这个标准⼏乎包括了⼈类视⼒所能感知的所有颜⾊,是⽬前运⽤最⼴的颜⾊系统之⼀。3 W1
u+ M1 Q9 q% S; d
RGB⾊彩模式使⽤RGB模型为图像中每⼀个像素的RGB分量分配⼀个0~255范围内的强度值。RGB图像只使⽤三种颜⾊,就可以使它们按照不同的⽐例混合,在屏幕上重现16777216(256 * 256 * 256)种颜⾊。/ s7 a& a4 T: J6 I
RGB555RGB555是另⼀种16位的RGB格式,RGB分量都⽤5位表⽰(剩下的1位不⽤)。使⽤⼀个字读出⼀个像素后,这个字的各个位意义如下:7 h# Z8 D" k$ q7 ?' J邱泽喜欢唐嫣吗
⾼字节 低字节
X R R R R R G G G G G B B B B B (X表⽰不⽤,可以忽略)
可以组合使⽤屏蔽字和移位操作来得到RGB各分量的值:
#define RGB555_MASK_RED 0x7C00
#define RGB555_MASK_GREEN 0x03E0张靓颖 海豚音
#define RGB555_MASK_BLUE 0x001F
R = (wPixel & RGB555_MASK_RED) >> 10; // 取值范围0-31
G = (wPixel & RGB555_MASK_GREEN) >> 5; // 取值范围0-31
B = wPixel & RGB555_MASK_BLUE; // 取值范围0-31# j& p, K. G6 H6 Z4 v
RGB565RGB565使⽤16位表⽰⼀个,这16位中的5位⽤于R,6位⽤于G,5位⽤于B。程序中通常使⽤⼀个字(WORD,⼀个字等于两个字节)来操作⼀个。当读出⼀个后,这个字的各个位意义如下:' j1 E0 g0 j8 \ h& R# R1 {) Z
⾼字节 低字节
R R R R R G G G G G G B B B B B) {( e a1 G! S4 `
可以组合使⽤屏蔽字和移位操作来得到RGB各分量的值:
#define RGB565_MASK_RED 0xF8005 _( t0 s7 {- @ f" }; l. W
#define RGB565_MASK_GREEN 0x07E0
#define RGB565_MASK_BLUE 0x001F2 u$ q- p- W. N* D' g, y3 y# Z0 {
R = (wPixel & RGB565_MASK_RED) >> 11; // 取值范围0-31# z5 h. H2 r$ [* i# e8 A
G = (wPixel & RGB565_MASK_GREEN) >> 5; // 取值范围0-63
B = wPixel & RGB565_MASK_BLUE; // 取值范围0-31
#define RGB(r,g,b) (unsigned int)( (r|0x08 << 11) | (g|0x08 << 6) | b|0x08 )1 D# C7 b" Z1 \( R7 \) w$ |+ k
#define RGB(r,g,b) (unsigned int)( (r|0x08 << 10) | (g|0x08 << 5) | b|0x08 )
该代码可以解决24位与16位相互转换的问题虞兮叹
RGB24(RGB888)RGB24使⽤24位来表⽰⼀个,RGB分量都⽤8位表⽰,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。通常可以使⽤RGBTRIPLE来操作⼀个,它的定义为:0 J, H3 M% c- ~
typedef struct tagRGBTRIPLE {
BYTE rgbtBlue; // 蓝⾊分量
BYTE rgbtGreen; // 绿⾊分量2 v6 X1 X' E: q- i
BYTE rgbtRed; // 红⾊分量: \& Q) w* d y0 a7 z
} RGBTRIPLE;$ q* M1 ]0 u7 [# ~! Y
RGB32(RGB8888)RGB32使⽤32位来表⽰⼀个像素,RGB分量各⽤去8位,剩下的8位⽤作Alpha或者不⽤。(ARGB32就是带Alpha 的RGB24。)注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…。通常可以使⽤RGBQUAD来操作⼀个像素,它的定义为:
typedef struct tagRGBQUAD {
BYTE rgbBlue; // 蓝⾊分量0 i( {) g; _9 R3 m4 d
BYTE rgbGreen; // 绿⾊分量 ~5 {. K- \" _) |* a
BYTE rgbRed; // 红⾊分量; A' E. K) ]3 Q4 n5 \/ j
BYTE rgbReserved; // 保留字节(⽤作Alpha或忽略)+ M! m5 a, C& M
} RGBQUAD。1 ^- P+ J# i6 @ {( f% r
. _1 l! c- G0 m G: p
(2)、⾃动⽩平衡调整(AWB)
高铁座位定义:要求在不同⾊温环境下,照⽩⾊的物体,屏幕中的图像应也是⽩⾊的。⾊温表⽰光谱成份,光的颜⾊。⾊温低表⽰长波光成分多。当⾊温改变时,光源中三基⾊(红、绿、蓝)的⽐例会发⽣变化,需要调节三基⾊的⽐例来达到彩⾊的平衡,这就是⽩平衡调节的实际。: P2 d. t! D' {# M6 P5 P6 W/ W
(3)、图像压缩⽅式
发布评论