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

瑞芯微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 | 1.Camera基础知识的更多相关文章

  1. Unity3D基础知识梳理

    这段时间在做Unity的项目,这差不多是我的第一次实战啊~然后公司来了实习的童鞋要学Unity,但是我一向不靠谱啊,所以只能帮他们稍微梳理下基础的东西了啊,唉~学长只能帮你们到这里了~顺便就把自己这两 ...

  2. MOGRE学习笔记(2) - MOGRE基础知识总结

    前一篇配置了MOGRE的运行环境,这里记录一些MOGRE基础知识,仅仅是最基础的一些东西.由于本人接触ogre的时间比较短,对于很多知识都是一知半解,所以理解起来不免会有一些错误,本人也希望自己在对o ...

  3. Android 开发者文档 -- 应用基础知识

    https://developer.android.com/guide/components/fundamentals 应用基础知识 Android 应用采用 Java 编程语言编写.Android ...

  4. three.js学习笔记--基础知识

    基础知识 从去年开始就在计划中的three.js终于开始了 历史介绍 (摘自ijunfan1994的转载,感谢作者) OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库. WebGL是基于Op ...

  5. 3D开发基础知识和简单示例

    引言 现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象. 那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当 ...

  6. [转帖]IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)

    IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”) 2016-06-02 14:23:49 Times_poem 阅读数 9734更多 分类专栏: IPC网 ...

  7. C#开发移动应用系列(3.使用照相机扫描二维码+各种基础知识)

    前言 上篇文章地址: C#开发移动应用系列(1.环境搭建) C#开发移动应用系列(2.使用WebView搭建WebApp应用) 今天我们来讲一下如何使用Camera来调用照相机扫描二维码. (Tips ...

  8. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  9. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  10. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

随机推荐

  1. Java开发者的神经网络进阶指南:深入探讨交叉熵损失函数

    前言 今天来讲一下损失函数--交叉熵函数,什么是损失函数呢?大体就是真实与预测之间的差异,这个交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异 ...

  2. 为什么不推荐使用Linq?

    相信很多.NETer看了标题,都会忍不住好奇,点进来看看,并且顺便准备要喷作者! 这里,首先要申明一下,作者本人也非常喜欢Linq,也在各个项目中常用Linq. 我爱Linq,Linq优雅万岁!!!( ...

  3. C#/.NET/.NET Core优秀项目和框架2024年6月简报

    前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍.功能特点.使用方式以及部分功能截图 ...

  4. 3568F-三屏同显、异显方案演示

  5. T3/A40i支持Linux-5.10新内核啦,Docker、Qt、Python统统升级!

    自2021年创龙科技推出全志国产化率100%的T3/A40i工业核心板后,不到两年时间已超过800家工业客户选择创龙科技T3/A40i平台.随着客户产品的不断升级与迭代,部分"能源电力&qu ...

  6. Docker的使用和常用命令

    部署项目前基础服务准备 第一步:安装Docker环境 第二步:开启Docker远程带证书访问(可选) 第三步:拉取mysql,redis,nginx等等所需镜像 第四步:运行(创建)容器 # 本地远程 ...

  7. 谈谈你对 keep-alive 的了解?

    在做电商有关的项目中,当我们第一次进入列表页需要请求一下数据,当我从列表页进入详情页,详情页不缓存也需要请求下数据,然后返回列表页,这时候我们使用keep-alive来缓存组件,防止二次渲染,这样会大 ...

  8. mysql 删除数据表报错 表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理

    mysql 删除数据表报错 表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理 MySQL报错 ...

  9. Java 基于Hutool实现DES加解密

    POM.XML配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  10. Aic 应用开发基础一(概念与场景)

    Agi通用人工智能应用概念与场景 大家看到,自美国OpenAI主导的GPT发布以来,全球科技领域掀起了革命性的浪潮.比如最近看到的aigc 人工绘图,智能机器人等行业,很多新概念掘起, 随着人工智能技 ...