Android camera之硬件架构

文章目录

1、preface

1)摄像头在一个嵌入式设备里成本占比比较大,在极致降本的科技时代,摄像头的封装/接口必然呈现多种类型(类似TV中的屏幕),实际产品研发中,在成本与性能之间权衡选用合适的方案;

2)camera与显示类似,是一个复合类模块,包含很多模块组成一个子系统!

3)都是图像输入,与TV/HDMI这些的差异?

1、摄像头需要控制输入端 生成图像 -- 类似GUI构造,先生成图像,再进行图像传输;

2、TV/HDMI这类仅仅是图像数据传输;

4)有时摄像头也叫sensor,准确而言sensor只是个部件单元,注意不要混淆;

2、camera影像原理

相机(Camera) 成像原理详解: https://blog.csdn.net/m0_66890670/article/details/144409018

摄像头原理: https://blog.csdn.net/qq_40732350/article/details/88541417

1)成像原理

1、利用透镜即镜头的光圈(小孔成像原理)收集目标的影像(倒影);

2、谁来记录这些光影数据?使用sensor(CCD/CMOS)来记录并转化为电信号;

3、主流两类方案

1)随着视觉、图像处理的蓬勃发展,可以说一款智能产品上必然配备摄像头(机器人、自动驾驶、手机、平板、电脑),摄像头技术已经是相当成熟,根据产品设计用途不一样,演变出两类技术方案:

1、USB接口 - 一般是模组形式,有标准规范,集成度高(图像处理模块都统一集成在模组中,大大降低开发者开发门槛,即插即用),用户只需要设置常规参数(分辨率、帧率等等);相当于串口命令控制的WIFI/BT模组(无需WIFI/BT驱动);

2、MIPI接口 - 一般只有CMOS传感器,图像处理模块集成在SOC,因此开发难度会更大,但灵活性最好,相当于USB/PCie接口的WIFI/BT芯片(需要WIFI/BT驱动);

2)USB摄像头和MIPI摄像头对比

1、https://ask.csdn.net/questions/9162944

3)总的来说本质上都是采集图像(技术相同,封装不同),USB摄像头方便易用,MIPI摄像头高度定制;

4、USB接口的camera(低复杂度)

USB摄像头优势在于即插即用,但集成度高灵活性低,成本也较高;

1)USB camera规范

硬件规范:USB_Video_Example 1.5.pdf

通用软件规范:UVC 1.5 Class specification.pdf

厂商需要跟进以上规范来设计自己的模组

2)舜鑫, SX-M003M-V1.0(USB)

3)USB camera的逻辑框图

USB摄像头规范里的内部结构

1、一个USB摄像头必定有一个VideoControl接口,用于控制。有0个或多个VideoStreaming接口,用于传输视频。

1)可以看到,USB摄像头内部集成比较完善,实现在不同平台即插即用!

2)这个是USB摄像头协议规定的,厂商设计之初要根据规范要求来,因此才能即插即用!

2、在VideoControl内部,有多个Unit或Terminal,上一个Unit或Terminal的数据,流向下一个Unit或Terminal,多个Unit或Terminal组成一个完整的UVC功能设备。

1)Terminal:位于边界,用于联通外界。有:IT(Input Terminal)、OT(Output Terminal)、CT(Camera Terminal)。

2)Unit:位于VideoControl内部,用来进行各种控制

SU:Selector Unit(选择单元),从多路输入中选择一路,比如设备支持多种输入源,可以通过SU进行选择切换

PU:Processing Unit(处理单元),用于调整亮度、对比度、色度等,有如下控制功能:

  • User Controls

    • Brightness 背光
    • Hue 色度
    • Saturation 饱和度
    • Sharpness 锐度
    • Gamma 伽马
    • Digital Multiplier (Zoom) 数字放大
  • Auto Controls

    • White Balance Temperature 白平衡色温
    • White Balance Component 白平衡组件
    • Backlight Compensation 背光补偿
    • Contrast 对比度
  • Other

    • Gain 增益
    • Power Line Frequency 电源线频率
    • Analog Video Standard 模拟视频标准
    • Analog Video Lock Status 模拟视频锁状态

EU:Encoding Unit(编码单元),对采集所得的数据进行个性化处理的功能。编码单元控制编码器的属性,该编码器对通过它流式传输的视频进行编码。它具有如下功能:

XU:Extension Unit(扩展单元),厂家可以在XU上提供自定义的操作,模型如下:

5、MIPI-CSI-2接口的camera(高复杂度)

1)注意MIPI是协议,不是接口,它规定了一系列占用体积小且拥有传输速度高 的接口;

2)通常介绍摄像头时直接使用MIPI来表示使用MIPI-CSI接口;

1)MIPI协议介绍

1、MIPI指的是一类接口,针对移动设备(手机/平板等,移动设备的特点是传输距离短、集成度和传输速度尽可能高,必然是因为当前没有合适的选择,才去重新设计!)设计的一系列标准接口,比如MIPI协议的各类接口在手机内部的应用如下:

2、MIPI-CSI-2协议是MIPI联盟协议的子协议(常用D-PHY),专门针对高清摄像头芯片的接口而设计,D-PHY如下

3、MIPI-CSI-2插槽

3)D-PHY接口典型图例如下:

对于摄像头,D-PHY接口仅仅是用来传递数据:

  • 摄像头发送数据,它被称为:CSI Transmitter
  • 主控接收数据,它被称为:CSI Receiver
  • 主控通过I2C接口发送控制命令,它被称为:CCI Master(CCI名为Camera Control Interface)
  • 摄像头接收I2C接口控制命令,它被称为:CCI Slave

与图像传输接口 HDMI/VBI类似,都是复合类传输接口,包含两类接口(数据传输接口、控制接口)

4)MIPI CSI-2使用案例

2)MIPI-CSI-2 camera硬件结构

1、逻辑框图(D-PHY)

MIPI摄像头

2、OV5640(MIPI+内置ISP)

OV5640是OmniVision推出的一款高性能CMOS图像传感器,具备高分辨率、低功耗和优异成像质量,广泛应用于智能手机、安防监控、医疗成像等领域。

1、camera的三大模块:

1)image sensor core (摄像头的基本传感器)

1、摄像头部分通常包含一个图像传感器,如CMOS(互补金属氧化物半导体)或CCD(电荷耦合器件),它们负责将光线转换为电信号。在选择摄像头模块时,要考虑其分辨率、帧率、感光度以及色彩深度等参数,以满足应用需求。

2、sensor可以调什么参数?ISO、光圈值、白平衡等

2)image sensor process (图像处理模块,可以集成在模组,也可以集成在SOC,也可以同时集成,功能互补)

1、摄像头可能还包括ISP(图像信号处理器)来预处理图像数据,如白平衡、曝光控制和噪声消除等,OV5640有内置ISP。

2、模组端的ISP可以调什么参数?图像白平衡、去马赛克、去噪、颜色空间转换、色调重建等

3)image output interface(图像输出模块 - DVP/MIPI接口)

1、摄像头接口DVP/MIPI对比 - 相当于PCI/PCIe的关系

https://blog.csdn.net/qq_40732350/article/details/88554497

2、DVP并口一般用于低速传输,一些没有MIPI接口的MCU可以使用GPIO根据DVP协议造出波形;

3、MIPI接口用于高速传输,需要CPU带有MIPI控制器;

2、VCM (Voice Coil Motor)

https://zhuanlan.zhihu.com/p/37332613

4、OV5640是一款经典摄像头模组,相关资料也比较多

1)手册解读:https://blog.csdn.net/weixin_42502089/article/details/151262462

2)驱动设计:https://blog.csdn.net/weixin_42502089/article/details/151262462

3)OV5640摄像头显示设计(DVP): https://zhuanlan.zhihu.com/p/1981320237094827549

3、GC2063(MIPI+内置ISP)

1)基本介绍:https://blog.csdn.net/gitblog_06681/article/details/143339597

2)GC2063 是一款高质量的 1080P CMOS 图像传感器,适用于安防摄像头产品、数码相机产品以及手机摄像头应用。

3)逻辑框图(与OV5640是类似的),GC2063也内置ISP模块;

3)RK3568 camera方案

1)整体框架

抓图顺序:

1)摄像头的初始化(通过CCI配置Sensor的寄存器,设置输出格式、分辨率、输出速率),使能MIPI-CSI-2/D-PHY;

2)配置主控板的ISP模块(颜色空间转换、缩放、裁剪、旋转等),指定输出到内存/显存的通路(MP主通道、SP自身通道);

3)输出到内存供显示模块使用;

2)主控端ISP2.1

1、主控端ISP2.1处理流程 - 流程非常长,功能强大,涉及多个IP硬件模块处理 - 这也是为什么要用到subdev和media子系统管理

2、ISP在相机系统中占有核心主导的地位,是构成相机的重要设备。ISP 通过一系列数字图像处理算法完成对数字图像的效果处理。换言之涉及算法的厂商一般会闭源,只提供接口供开发者使用;

3)MI(Memory Interface)

1)MI模块提供多种途径将摄像头获取的图像存放到内存DDR,提供给显示模块读取使用;

4)全志V853 camera方案

https://docs.aw-ol.com/v853/soft/soft_camera/

1)Camera通路框架(使用VIN camera驱动框架)

2)Camera架构-芯片手册

它的处理过程分为:

  • 输入Parser:格式解析
  • 主控端ISP:Image Signal Processor,即图像信号处理器,用于处理图像信号传感器输出的图像信号
  • VIPP: Video Input Post Processor(视频输入后处理器),能对图片进行缩小和打水印处理。VIPP支持bayer raw data经过ISP处理后再缩小,也支持对一般的YUV格式的sensor图像直接缩小。

6、多camera方案

【嵌入式视觉处理】基于RK3588的多摄像头输入系统设计:硬件架构、驱动开发与智能场景应用

https://download.csdn.net/download/fq1986614/92072848

相关推荐
andr_gale27 分钟前
04_rc文件语法规则
android·framework·aosp
祖国的好青年1 小时前
VS Code 搭建 React Native 开发环境(Windows 实战指南)
android·windows·react native·react.js
黄林晴2 小时前
警惕!AGP 9.2 别只改版本号,R8 规则与构建链路全线收紧
android·gradle
小米渣的逆袭2 小时前
Android ADB 完全使用指南
android·adb
儿歌八万首2 小时前
Jetpack Compose Canvas 进阶:结合 animateFloatAsState 让自定义图形动起来
android·动画·compose
zhangphil3 小时前
Android Page 3 Flow读sql数据库媒体文件,Kotlin
android·kotlin
神探小白牙3 小时前
echarts,3d堆叠图
android·3d·echarts
李白的天不白4 小时前
如何项目发布到github上
android·vue.js
summerkissyou19874 小时前
Android-RTC、NTP 和 System Time(系统时间)
android