首页 > 其他分享 >Camera | 1.Camera基础知识

Camera | 1.Camera基础知识

时间:2023-02-24 11:59:16浏览次数:44  
标签:接口 像素 摄像机 Camera 图像 基础知识 DVP 摄像头

一口君最近在玩瑞芯微的板子,之前写了几篇基于瑞芯微的文章,大家可以学习一下。

瑞芯微rk356x板子快速上手

《Linux驱动|rtc-hym8563移植笔记》

《Linux驱动 | Linux内核 RTC时间架构》

《瑞芯微 | 摄像头ov13850移植笔记》

《rk3568 | 瑞芯微平台GPIO引脚驱动编写》

《rk3568 | rk平台GPIO冲突检测小技巧》

最近移植了2款ov系列摄像头,顺便把v4l2架构捋了一下,

计划更新几篇基于瑞芯微平台的Camera相关文章,

Camera相关知识点较多,个人精力有限,

有对这块精通,感兴趣的老铁,

可以加我好友:yikoupeng,共同学习讨论。

先开始第一篇。

1. Camera简介

摄像头,大家已经非常熟悉了,遍布在生活的方方面面。

尤其这上段时间炒的非常火的南京医生上门打小孩老人事件,

由于有视频有真相,鲁医生直接被陷入万劫不复的境地。

其中的是非对错本文不讨论了,法律和道德自有评判。

但这说明了,摄像头对我们的日常生活影响实在太大了。

2. 摄像头分类

根据不同参数,摄像头有多种分类方式:

  1. 传输信号
    模拟摄像机和数字摄像机
  2. 画面分辨率
    标清摄像机、高清摄像机
  3. 摄像机外形
    球形摄像机、半球形摄像机、枪式摄像机
  4. 安装环境
    室内摄像机、室外摄像机
  5. 传感器
    CCD摄像机、CMOS摄像机

监控常用的摄像头外观:

3. 摄像头组成

一个常见的监控用的摄像头包括:外壳、感光芯片电路、镜头座、镜头、红外灯板。

而对于手机上的摄像头,很多厂家往往是设计为一个摄像头模组(CameraCompact Module),简称CCM。

CCM 包含四大件: 镜头(lens)、传感器(sensor)、软板(FPC)、图像处理芯片(DSP)。

决定一个摄像头好坏的重要部件是:镜头(lens)、图像处理芯片 (DSP)、传感器(sensor)。

4. 摄像头原理

  1. 景物(SCE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上
  2. 然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号
  3. 再送到数字信号处理芯片(DSP)中加工处理,转换成标准的RGB、YUV等格式图像信号
  4. 再通过I/O接口传输到CPU中处理,通过display就可以看到图像了

5. 摄像头相关技术指标

5.0 常见缩略语

名称含义
3A算法 AEC, AWB, AF算法
AEC Auto Exposure Control, 自动曝光控制
AWB Auto White Balance, 自动白平衡
AF Auto Focus, 自动对焦
TE Time Exposure, 曝光时间
FBC Frame Buffer Compressed, 帧缓冲压缩
IQ Image Quality, 图像质量

5.1. 图像压缩方式JPEG

(joint photographic expert group)静态图像压缩方式。一种有损图像的压缩方式。压缩比越大,图像质量也就越差。
当图像精度要求不高存储空间有限时,可以选择这种格式。目前大部分数码相机都使用JPEG格式。

5.2. 图像噪音

指的是图像中的杂点干扰,表现为图像中有固定的彩色杂点。

5.3. 白平衡处理技术(AWB)

白平衡指不管在任何光源下,都能将白色物体还原为白色。

白平衡是描述显示器或相机中红、绿、蓝三基色混合生成后白色精确度的一项指标。

色温表示光谱成份,光的颜色。色温低表示长波光成分多。当色温改变时,光源中三基色(红、绿、蓝)的比例会发生变化,需要调节三基色的比例来达到彩色的平衡,这就是白平衡调节的实际。

图象传感器的图象数据被读取后,系统将对其进行针对镜头的边缘畸变的运算修正,然后经过坏像处理后被系统送进去进行白平衡处理(在不同的环境光照下,人类的眼睛可以把一些“白”色的物体都看成白色,是因为人眼进行了修正。但是SENSOR没有这种功能,因此需要对SENSOR输出的信号进行一定的修正,这就是白平衡处理技术)。

5.4. 彩色深度(色彩位数)

反映对色彩的识别能力和成像的色彩表现能力,就是用多少位的二进制数字来记录三种原色。实际就是A/D转换器的量化精度,是指将信号分成多少个等级,常用色彩位数(bit)表示。彩色深度越高,获得的影像色彩就越艳丽动人。

非专业的SENSOR一般是24位;专业型SENSOR至少是36位。24位的SENSOR,感光单元能记录的光亮度值最多有2^8=256级,每一种原色用一个8位的二进制数字来记录,最多记录的色彩是256×256×256约16,77万种。

36位的SENSOR,感光单元能记录的光亮度值最多有2^12=4096级,每一种原色用一个12位的二进制数字来记录,最多记录的色彩是4096×4096×4096约68.7亿种。

5.5. 图像格式(image Format/ Color space)

像素格式,比如: RGB24,RGB565,RGB444,YUV4:2:2等。
RGB24,I420是目前最常用的两种图像格式。

  1. RGB24
    表示R、G、B ,3种基色都用8个二进制位表示,那么红色、绿色、蓝色各有256种,那么由这三种基色构成的颜色就是256X256X256=16,777,216种,约等于1677万。

这就是计算机表示颜色的原理,同样也是手机屏幕和显示器屏幕等显示颜色的原理。

  • 颜色对应RGB值
  1. YUV
    YUV 和我们熟知的 RGB 类似,是一种颜色编码格式。
    YUV 包含三个分量,其中 Y 表示明亮度(Luminance 或 Luma),也就是灰度值。
    而 U 和 V 则表示色度(Chrominance 或 Chroma),作用是描述图像色彩及饱和度,用于指定像素的颜色。
    没有 UV 分量信息,一样可以显示完整的图像,只不过是黑白的灰度图像。
    YUV的采样方式
  • 4:4:4表示完全取样(每一个Y对应一组UV分量)
  • 4:2:2表示2:1的水平取样,垂直完全采样(每两个Y共用一组UV分量)
  • 4:2:0表示2:1的水平取样,垂直2:1采样(每四个Y共用一组UV分量)
  • 4:1:1表示4:1的水平取样,垂直完全采样(每四个Y共用一组UV分量)

存储方式举例:

YUV 4:2:0其颜色的一种存放格式如图所示:

5.6. 分辨率(Resolution)

所谓分辨率就是指画面的解析度,由多少象素构成的数值越大,图像也就越清晰。

分辨率不仅与显示尺寸有关,还会受到显像管点距、视频带宽等因素的影响。

我们通常所看到的分辨率都以乘法形式表现的,比如1024*768,其中的1024表示屏幕上水平方向显示的点数,768表示垂直方向的点数。

解析度分辨率 乘法像素值像素值简称
QSIF/QQVGA 160 x 120 19200  
QCIF 176 x 144 25344  
SIF/QVGA 320 x 240 76800  
CIF 352 x 288 101376 10万像素
VGA 640 x 480 307200 30万像素(35万是指648X488)
SVGA 800 x 600   480000
XGA 1024 x 768 786438 80万像素
SXGA 1280 x 1024 1310720 130万像素
UXGA 1600 x 1200 1920000 200万像素
QXGA 2048 x 1536 3145728 300万像素(320W)
QSXGA 2592 x 1944 5038848 500万像素
  2816 x 2112 2947392 600万像素
  3072 x 2304 7077888 700万像素
  3200 x 2400 7680000 770万像素
  3264 x 2448 7990272 800万像素
  3876 x 2584 10015584 1000万像素

5.7. 帧率

帧率指的就是1秒钟时间里传输、显示图片的帧数,每一帧就是一个画面,快速连续的多帧就形成了运动的动态效果。

高的帧率可以得到更加流畅,更加逼真的画面。

5.8. 码流

码流就是指视频数据在单位时间内的数量大小,也叫码率,是视频编码画面质量控制中最重要的部分,同样的分辨率和帧率下,视频码流越大,画面质量越高,对应的存储容量也就越大。

5.9. 曝光

曝光就是图像的明暗程度 ,照片太暗称为曝光不足 ,照片太亮称为曝光过度。曝光由光圈、曝光时间、ISO三者共同决定。

  • 光圈:
    控制进光量。
  • 曝光时间:
    光到达的时间长度。
  • ISO:
    增益,或称为感光度。

6. 摄像头接口

摄像头常用接口包括:USB、DVP、MIPI

USB

我们常用的电脑摄像头接口是USB接口,这种摄像头比较常见,需要支持UVC(USB Video Class)协议。

DVP

还有一部分的摄像头(比如说某些支持DVP接口的硬件)是DVP(Digital Video Port)摄像头数据并口传输协议,

DVP是并口,提供8-bit或10-bit并行传输数据线、HSYNC(Horizontal sync)行同步线、VSYNC(Vertical sync)帧同步线和PCLK(Pixel Clock)时钟同步线。

DVP总线PCLK极限约在96M左右,而且走线长度不能过长,所有DVP最大速率最好控制在72M以下,PCB layout较容易画

以OV3640摄像头为例:
DVP分为三个部分:

  • 输出总线
  • 输入总线
  • 电源总线

mipi(CSI)

移动产业处理器接口(Mobile Industry Processorinterface,MIPI)

常见的智能手机上的摄像头是MIPI接口,

CSI是相机串行接口(CMOS Sensor Interface)的简称。

MIPI总线速率lvds接口耦合,走线必须差分等长,并且需要保护,故对PCB走线以及阻抗控制要求高一点(一般来讲差分阻抗要求在85欧姆~125欧姆之间)

MIPI是LVDS低压差分串口,只需要要CLKP/N、DATAP/N——最大支持4-lane,一般2-lane即可。

MIPI接口比DVP的接口信号线少,由于是低压差分信号,产生的干扰小,抗干扰能力也强。

DVP接口在信号完整性方面受限制,速率也受限制。

500W还可以勉强用DVP,800W及以上都采用MIPI接口。

所以高清摄像头我们都选用MIPI接口 。

7. 手机摄像头模组出货量排行榜

最后看一下摄像头模组今年7月出货量排行榜:

8. 监控公司

摄像头最主要的应用市场就是安防监控,

目前国内监控市场前10的公司如下:

随着美丽国的制裁,像海康这样大厂市场营收几乎腰斩。

衷心祝愿咱们的高端芯片产业链早日完善,成熟,

百花发时我不发,我若发时都吓杀!

誓与老美战一场,芯片倾销美欧亚。

标签:接口,像素,摄像机,Camera,图像,基础知识,DVP,摄像头
From: https://www.cnblogs.com/kn-zheng/p/17150769.html

相关文章

  • 代码随想录算法Day09 | kmp算法理论基础知识,28. 实现 strStr() ,459.重复的子字符串
    kmp算法理论基础知识核心思想利用已经部分匹配的结果而加快模式串的滑动速度!且主串S的指针i不必回溯!相较于BF算法的O(N*M),KMP算法时间复杂度可提速到O(N+M)!用处K......
  • python基础知识100题-面试
    1、一行代码实现1--100之和#利用sum()函数求和#res=sum(range(1,101))#print(res)#50502、如何在一个函数内部修改全局变量#利用global修改全局变量'''a=......
  • Java基础知识点(类的几个补充注意事项和private关键字)
    一:类的几个补充注意事项1.用来描述一类事物的类,专业叫做javaBean类2.在以前,编写main方法的类叫做测试类,我们可以在测试类中创建javabean类的对象并进行赋值调用。3.类名首字......
  • C++ 基础知识-- 1
                 ......
  • Camera2 TextureView
    MSCameraTextureViewManager.javaimportandroid.Manifest;importandroid.app.Activity;importandroid.content.Context;importandroid.content.pm.PackageManager;impor......
  • 矩阵基础知识
    这边不去理解或推导为什么要这么算,没啥实际意义,都是直接按矩阵规定好的公式套用 加减法C=A+BC=A-Ba) A和B的行和列必须相同   乘法,没有除法C=A*Ba) A的......
  • Java基础知识(23)- Java虚拟机(JVM)- (2) | 常用的 JVM 性能调优监控工具
    在企业级Java应用开发中,Java程序运行过程中会经常遇到内存不足、内存泄露、线程死锁、CPU高占用等问题。部分问题在日常开发中可能会被忽视或被别变通的方法绕开(比如重......
  • 基础知识-数据包和帧
    什么是数据包和帧数据包和帧是小块数据,当它们组合在一起时,会形成更大的信息或消息。但是,它们在OSI模型中是两个不同的东西。帧位于第2层-数据链路层,这意味着没有IP......
  • 指针和字符串基础知识
    #include"stdafx.h"intmain(intargc,char*argv[]){//定义字符串的第一种方式,此种定义的字符可修改chara[]="it";a[0]='T';printf("%s\n",a);//定义字......
  • 指针和数组基础知识
    /*数组元素的访问方式1、数组名[下标]2、指针量名[下标]3、*(p+i)p+1,指针+1,则指针指向的地址加4*/#include"stdafx.h"voidchangeNum(int*array);intmain(intargc,char......