Camera摄像头工作原理

回想这工作的这几年,尝尽社会的辛酸艰难,从一开始什么都没有到30万,从30万到200万,从200万到1300万,不是炫耀,我只是想通过我自己的经历告诉我的朋友们「手机像素越高,拍的照片越清晰

摄像头结构

640?wx_fmt=png640?wx_fmt=png

我初中的时候,有一次我考了年级第7名,学校奖励了 200块钱,我当时非常开心,第一时间就想去买一个照相机,我想把自己那时看到的画面都记录下来,可惜的是,我看上那个最便宜的也要两百多,然后我妈跟我说先把钱存她那里,等过阵子有钱了再给我买,然后,你可能想知道然后怎么了,然后就没有然后了,我最开始的照相机就是大学的时候,我哥给我买的那个大块头手机,铃声一响起来,一头熟睡的母猪都能被吵醒。

最开始的照相机是那种手动对焦的,就是转动马达让感光芯片能接收到最好的信号,俗称对焦

640?wx_fmt=png

最原始的Camera成像原理

说起成像原理,我们不得不说小孔成像,就是有了小孔成像,我们才有了相机这么神奇的东西。

小孔成像是是比较古老的方式了,随着现在技术的发展,已经使用了新的方式替代小孔成像,因为小孔成像的很小,也造成了拍摄存在很多局限性。

640?wx_fmt=png

现代Camera 工作原理

camera工作原理是外部光线穿过 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 处理(手机一般在cpu isp端做),后输出 YUV 或者 RGB 格式的数据。最后会由 CPU 送到 framebuffer 中进行显示,这样我们就看到 camera 拍摄到的景象了。

640?wx_fmt=jpeg

我们先用眼睛通过目镜确定当前拍摄的这个人是不是一个靓仔,然后呢,让这个靓仔做一个比较帅点的姿势,然后按下快门就,挡光板抬起,把光线照到感光器上,感光器是一个模拟图片,通过ADC转换数字信号,存储到存储芯片上。

640?wx_fmt=jpeg

Camera硬件原理图

硬件原理图分析

640?wx_fmt=png

POWER:

VDD_CAMA28  ----2.8v   camera的模拟电压

VDD_CAMD28  ----1.5v   camera的工作电压

VDD_CAMIO28  ----2.8v   camera的GPIO口数字电压

OUTPUT:

CAM_DATA: camera的数据管脚。此数据脚可以输出的格式有YUV、RGB、JPEG

CAM_VSYNC: camera的帧同步信号管脚。一个VYSNC信号结束表示一帧(即一个画面)的数据已经输出完毕

CAM_HSYNC: camera行同步信号管脚。一个HSYNC信号结束表示一行的数据已经输出完毕

CAM_PCLK: 像素同步信号管脚。一个PCLK信号结束表示一个数据已经输出完毕

INPUT:

CAM_PWDN:  camera的使能管脚,当camera处于PWDN模式时,一切对camera的操作都是无效的,因此,在RST之前,一定要将PWDN管脚置为normal模式

CAM_RST:  camera的复位管脚。此方式为硬复位模式,一般管脚置为低,camera处于硬复位状态,camera的各个IO口恢复到出厂默认状态。只有在XCLK开启后,将RESET置为低,硬复位才有效,否则复位无效。

CAM_MCLK:  camera工作时钟管脚。此管脚为主控提供camera的工作时钟

CAM_I2C:  camera与主控的通信管脚 Camera主要的通信接口是i2c,数据传输是mipi

我们在软件调试时,camera大致流程:

第一步:给sensor进行上电和输出时钟信号;

第二步:然后通过i2c进行通信,通过发送地址,cpu查找camera;

第三步:在打开camera时,通过i2c下发,对sensor寄存器进行适配和准备工作;

第四步:camera数据输出,通过mipi给到cpu端进行采集;

Sensor类型

4.1、常见的摄像头传感器类型主要有两种

CCD(Chagre Couled Device),即电荷耦合器,目前被广泛应用于大部分数码相机上,这是一种特殊的半导体材料,它由大量独立的光敏元件组成,这些光敏元件通常按矩阵排列。光线透过镜头照射到CCD上,并转换成电荷,每个元件上的电荷量取决于其受到的光照强度。当摄影者按动快门时,CCD可将各个元件的信息传送到模/数转换器上,然后将模拟电信号转变为数字信号,数字信号再以一定的格式压缩后存入缓存内,这样就完成了数码相片的整个拍摄。

CMOS(Complementary Metal-Oxide-Semiconductor),即互补金属氧化物半导体,它在微处理器和闪存等半导体技术上占有重要的地位,也是一种可用来感受光线变化的半导体,其组成元素主要是硅和锗,通过CMOS上带负电和带正电的晶体管来实现基本功能。这两个互补效应所产生的电流即可被处理芯片记录和解读成影像。由于CMOS结构相对简单,与现有的大规模集成电路生产工艺相同,从而生产成本可以降低,理论上讲,CMOS的信号是以点为单位的电荷信号,CCD是以行为单位的电流信号,相比较而言,前者更为敏感、速度更快、更为省电。目前CMOS技术发展还不成熟,这种高质量的CMOS还只应用于一些专业的数码相机上,而在一些低档数码相机上常使用廉价低档的CMOS,成像质量一般比较差。所以目前要购买消费级数码相机的话,建议用户最好选择以CCD为影像传感器的产品

4.2、图像采集数据的模式有两种

Color Filter Array---CFA 图像传感器都采用一定的模式来采集图像数据,常用的有 BGR 模式和 CFA 模式。

BGR 模式:BGR 模式是一种可直接进行显示和压缩等处理的图像数据模式,它由 R( 红)、G( 绿) 、B( 蓝) 三原色值来共同确定 1 个像素点,例如富士数码相机采用的 SUPER CCD 图像传感器就采用这种模式,其优点是图像传感器产生的图像数据无需插值就可直接进行显示等后续处理,图像效果最好,但是成本高,常用于专业相机中。

CFA 模式:为了减少成本,缩小体积,市场上的数码相机大多采用 CFA 模式,即在像素阵列的表面覆盖一层彩色滤波阵列(Color Filter Array,CFA),彩色滤波阵列有多种,现在应用最广泛的是 Bayer 格式滤波阵列,满足 GRBG 规律,绿色像素数是红色或蓝色像素数的两倍,这是因为人眼对可见光光谱敏感度的峰值位于中波段,这正好对应着绿色光谱成分。在该模式下图像数据只用R, G, B三个值中的一个值来表示一个像素点,而缺失另外两个颜色值,这时得到的是一副马赛克图片,为了得到全彩色的图像,需要使用其周围像素点的色彩信息来估计缺失的另外两种颜色,这种处理叫做色彩插值。

小结

这是camera硬件工作原理的介绍,那么在后面的文章中,我们将会逐步结合代码去分析,怎样驱动camera工作起来。

640?wx_fmt=png

640?wx_fmt=jpeg

扫码或长按关注

回复「 加群 」进入技术群聊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

es6一维数组转二维数组_技术图文:Numpy 一维数组 VS. Pandas Series

背景Numpy 提供的最重要的数据结构是 ndarray,它是 Python 中 list 的扩展。Pandas 提供了两种非常重要的数据结构 Series和DataFrame。Numpy 中的一维数组与 Series 相似,一维数组只是提供了从0开始与位置有关的索引,而Series除了位置索引之…

unity UI事件

由于工作需要到持续按键,所以了解了一下unity UI事件,本文主要转载于http://www.cnblogs.com/zou90512/p/3995932.html?utm_sourcetuicool&utm_mediumreferral,并对相关问题进行解释。 我们最常用到的就是unity的button组件,…

电子工程学院的师兄弟姐们们,老师叫你们回家

昨天写了很长的文章,接收到推送的同学们应该也会很开心,但是由于我的原因,需要把文章删除「你们能想到的原因肯定不是我删文的原因」,但是呢,也因为这样,又可以重写一篇,刚好可以多加点内容。后…

auto.js停止所有线程_Java多线程编程基础知识 概念介绍,以及线程状态

一、进程进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中,几乎所有运行中的任务对应一条进程(Process)。一个程序进入内存运行,即变成一个进程。进程是处于运行过程中…

Linux 进程管理数据结构

文末集赞留言抽奖,我会选出留言点赞数前 3 名送出小米耳机。别刷赞啊,刷赞被举报无效,相信真的是公众号粉丝的读者,不会做这样的行为,刷赞指的是购买外挂刷,如果是转发到朋友圈和微信群的,不算刷…

如何安装python3.8_python3.8下载及安装步骤详解

1.操作系统:Windows7 64bit executable installer 2.安装步骤: 双击安装文件python-3.8.0-amd64.exe 勾选下方“Add Python 3.8 to PATH”,并选择“Customize installation”3.把Optional Features全部勾选上,点击“Next"4.A…

队列,C语言实现

什么是队列?上一篇文章写了什么是栈,用C语言实现了栈,既然说了栈,不说队列,感觉总是少了点什么,所以就顺手写一个队列,而且最近做项目也用到这个队列的代码。栈的特点是先进后出,队列…

华为hr,我尽力了

最近,一则新闻很火但是突然,又不火了,火于不火之间,时间有点短,其中猜测很大部分是gongguan原因以下为正文截图~以上为事件原文,这个是一个热点新闻,之前发了一个热点新闻,瞬间就火爆…

idea,eclipse创建多模块项目

新建一个maven项目 iead,新建是不选择archetype,新建好之后,pom中的 <packaging>pom</packaging>节点是默认的,如果不是要改成这这样子 然后选中这个项目,新建一个module,之后就和建立普通项目一样了. eclipse 是这样的 建一个普通的maven项目就可以了 这个是建好之…

python画图程序代码_少儿python编程(7)海龟画图(拓展1)

我们继续用Python的海龟库来画图吧&#xff01;上图是画一朵花的程序&#xff0c;重点是6-12行&#xff0c;使用了函数来定义drawleaf:每一掰叶子由两条弧线组成&#xff0c;每一条弧线重复画15次&#xff0c;每次前进5步&#xff0c;右转6度。看图形化代码就很清楚了&#xff…

opencv matlab三维点云,点云采样的三种方法 - 小白学视觉的个人空间 - OSCHINA - 中文开源技术交流社区...

点击上方“小白学视觉”&#xff0c;选择“星标”公众号重磅干货&#xff0c;第一时间送达编辑&#xff1a;3D视觉工坊本文由知乎作者GeometryHub授权转载&#xff0c;不得擅自二次转载。原文链接&#xff1a;https://zhuanlan.zhihu.com/p/86044055点云采样分类点云采样的方法…

C语言数组越界导致无限循环

大奖也是你们的&#xff0c;感谢支持&#xff0c;不喜欢的请轻拍。过年抽奖我还是很期待的&#xff0c;每年公司的年会抽奖的时候&#xff0c;我总是能小中一把&#xff0c;有一年我还中了个一等奖&#xff0c;不知道大家对一等奖什么概念&#xff0c;中一等奖的概率非常低&…

七月流水账

7.1-7.3 >< 7.4 看了一会儿李老大给的Caffe的教程 重配python qt vtk&#xff0c;大概是原来装了一个xxx&#xff08;忘记名字&#xff09;&#xff0c;然后位数有些不对&#xff0c;搞了好一阵 果然还是卸载重装好>< 然后又看了会儿Matlab神经网络工具箱怎么用 …

python绘制拟合回归散点图_机器学习之利用Python进行简单线性回归分析

前言&#xff1a;在利用机器学习方法进行数据分析时经常要了解变量的相关性&#xff0c;有时还需要对变量进行回归分析。本文首先对人工智能/机器学习/深度学习、相关分析/因果分析/回归分析等易混淆的概念进行区分&#xff0c;最后结合案例介绍如何利用Python进行简单线性回归…

十年经验教你如何学习嵌入式系统

一、如何学习嵌入式系统- - 嵌入式系统的概念着重理解“嵌入”的概念 &#xff0c;主要从三个方面上来理解。1、从硬件上&#xff0c;“嵌入”将基于CPU的处围器件&#xff0c;整合到CPU芯片内部&#xff0c;比如早期基于X86体系结构下的计算机&#xff0c;CPU只是有运算器和累…

php博客文章修改,wordpress博客如何快速修改文章阅读数

WordPress修改文章阅读次数可以通过插件来完成&#xff0c;下面我们以WP-PostViews插件演示如何修改文章阅读次数。WP-PostViews是一个非常常用的wordpress插件&#xff0c;主要用于文章阅读数访问量的统计&#xff0c;插件使用简单&#xff0c;直接安装启用即可&#xff0c;并…

ionic拍照,从相册选择功能

在介绍插件的使用之前&#xff0c;我们有必要先大致了解下插件的原理 一、插件工作原理分析 一个插件是如何正确地在IONIC框架下运行的呢? 前台的HTML/js代码又是如何与后面具体平台做数据交互的呢? 这个就需要对插件的工作原理及各个模块之间的流程关系有一个基本的了解。 为…

python爬虫爬图片教程_python爬虫实战之爬取京东商城实例教程

前言 本文主要介绍的是利用python爬取京东商城的方法&#xff0c;文中介绍的非常详细&#xff0c;下面话不多说了&#xff0c;来看看详细的介绍吧。 主要工具 scrapy BeautifulSoup requests 分析步骤 1、打开京东首页&#xff0c;输入裤子将会看到页面跳转到了这里&#xff0c…

安卓camera总体框架

今天是周五了&#xff0c;时间过得真快&#xff0c;通常这个时候&#xff0c;我都还沉醉了上班的状态中&#xff0c;说到上班&#xff0c;我是认真的&#xff0c;我非常喜欢上班&#xff0c;特别是今天&#xff0c;我会听到一声优美的声音&#xff0c;我的银行卡会多出一些钱&a…

matlab可以连接阻抗分析仪么,阻抗分析仪的工作原理与测试方法

阻抗分析仪和LCR表是非常通用的测量器件的电子仪器。根据阻抗范围和频率范围的不同&#xff0c;有一系列不同原理的仪器来满足测试要求&#xff0c;图1是不同阻抗范围和不同频率范围的阻抗测量方法。图1 阻抗测量方法图2是自动平衡电桥法的原理框图。通过精确测量加载到被测件D…