https://blog.csdn.net/frakie_kwok/article/details/80609471

Camera 硬件架构

本部分主要介绍平台支持的Image Sensor类型,硬件接口以及常见基本概念

1,Image Sensor类型

a) YUV Sensor YUV
Sensor输出的Data格式为YUV,图像的效果处理使用Sensor内部的ISP,BB端接收YUV格式的data后只进行格式的转换,效果方面不 进行处理,由于Sensor内部的ISP处理能力有限,且YUV Sensor的数据量比较大(YUV422的格式1个pixel2个byte),一般Size都比较小,常见的YUV sensor都是5M以下

b) Raw Sensor Raw Sensor输出的Data格式为Raw,图像的效果处理使用BB端的ISP,BB端接收Raw data后进行一系列的图像处理(OB,Shading,AWB,Gamma,EE,ANR等),效果方面由BB端控制,需要针对不同的模组进行效果调 试,Raw sensor是目前的主流,数据量比YUV Sensor小(RAW10 格式的sensor 1个pixel 10个bit)使用平台ISP处理,能支持较大的size

2,硬件接口

简单说来,Camera的接口分为并行和串行两种方式,而目前主要支持的串行方式为mipi接口,Parallel接口和mipi接口的介绍可以参考下图

3,常见基本概念

a)三路电压
camera包含的三路电压为模拟电压(VCAMA),数字电压(VCAMD),IO口电压(VCAMIO)
b) I2C信号
BB与Sensor端通过I2C来通信(读写寄存器),包括SCL(I2C Clock) SDA(I2C Data)信号
c) mipi几条lane mipi
data是成对的差分信号,MIPI_RDN和MIPI_RDP,有几对这样的pin脚,则说明是几条lane,同一颗sensor由于register
setting不同,输出的信号有可能是2 lane或者4lane等
d) parallel高低八位
Parallel接口一般Data有10根pin,分别叫做Data0~Data9,Parallel
sensor输出的data信号是8根pin时,这八根pin接到的是Data0~Data7还是Data2~Data9,需要配置正确,叫做接到高八位或者低八位,接错了可能产生如下现象

e)Data Format
Sensor输出的数据格式,对于YUV Sensor来说,DataFomat一般有YUYV,YVYU,UYVY等,配置不对可能会导致颜色和亮度错掉,例如下图

对于Raw Sensor来说,Data Format就是First Pixel的颜色,分为R,Gr,Gb,B,配置不对会导致颜色错误

f)MCLK
BB提供给Sensor的外部clock
g)PCLK
h)mipi 信号
mipi信号包括mipi clock和mipi data,该信号是高速信号,用来传输mipi数据包

Camera软件架构

主要包含三个部分的介绍:
1)Android Camera 架构:Android系统原生架构简要介绍.
2)Android Camera架构: 简要介绍Camera 的架构.
3)Camera data path: 介绍在平台端Camera的数据流.

1.下图为Android Camera 架构

Camera根据Android 架构从上至下可分为
1)Applications: 最上层的应用,编译后生成Camera APK;
2)Application Framework: 主要为Applications提供API;
3)JNI: 使Application Framework和Libraries可交互;
4)Libraries: 包括Camera Framework和Camera Service(camera service和camera client);
5)HAL: 硬件抽象层, 用来链接driver和 Camera Service;
6)Kernel: image sensor driver的实作.
其中2)~4)的部分基本为Android原生的架构和code,Camera APK是原生Camera APK应用.

2.下图为Camera从application到kernel层详细的架构.

1)蓝色部分主要由Java实现(偏向应用层)、黄色为JNI实现(C++,衔接Java层和Native层), 绿色由C++实现(通常称为Native层),而枣红色为C实现(Kernel 层).
2) HAL libraries为在HAL层的实现,主要分Camera HAL和Camera Core两大部分.Camera HAL衔接Camera Service并响应它的需求,实现各个feature的scenario; 而Camera Core提供平台一些通用的数据流控制接口.

3.最后这部分为Camera的数据流简要介绍

说明:
1) TG(Timing Generate):从sensor获取数据,并送给ISP处理.
2) Platform Data Processor: 包括平台在后端对图像数据进行resize、rotate、flip、format convert等处理.它可以同时有两个buffer输出.

当normal preview时,port1输出给display,port2输出给face detection或者app preview callback。
当normal capture时,port1输出大图给jpeg encoder,port2输出小图给回显和thumbnail encode。
当video record时,port1输出给display,port2输出给video encoder.

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Frakie_Kwok/article/details/80609471

Camera架构-软硬相关推荐

  1. Android8.0前后Camera架构对比(二十三)

    Android 的相机硬件抽象层 (HAL) 可将Camera2中较高层级的相机框架 API 连接到底层的相机驱动程序和硬件.相机子系统包括相机管道组件的实现,而相机 HAL 可提供用于实现您的这些组 ...

  2. Android Camera架构浅析

    原址 1.Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转 ...

  3. MSM8940 Camera 架构以及移植手册 ---super Good

    come from : http://blog.chinaunix.net/uid-7213935-id-5753785.html 上篇:camera系统架构 3 一.Camera硬件系统 3 1. ...

  4. android摄像头框架,FS_S5PC100平台上Android Camera架构分析

    1. Android-Camera架构分析 Android的camera系统架构自上而下分别为应用层-框架层-硬件抽象层-linux驱动层.层与层之间通过Binder.回调函数或者系统调用联系. 我们 ...

  5. Android Camera 架构

    和你一起终身学习,这里是程序员 Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一.Android Camera整体架构简述 二. Came ...

  6. QCOM camera架构

    camx/chi架构 深入理解相机八(高通框架) AIS架构 高通AIS suspend/resume流程 调试相关 高通camera调试步骤 介绍数据流这边Camera ISP这块所遇到的问题,主要 ...

  7. 浅析低延迟Camera架构

    本文系微信公众号<大话成像>,知乎专栏<all in camera>原创文章,转载请注明出处. 大话成像读者QQ 交流群 :237427716 大话成像技术论坛:www.dah ...

  8. android camera工程师,浅析Android Camera架构

    本博文是基于Android 4.4讲解 1.application 层: 当我们Android工程师想打开camera时通常直接调用Camera.java中的  Camer.open(cameraId ...

  9. Android Camera架构分析

    源代码版本:allwinner 4.0.4 frameworks代码: frameworks/base/core/java/Android/hardware/Camera.java JNI层代码: f ...

最新文章

  1. 带动画效果的卷积神经网络的讲解.pptx
  2. git pull代码出现refusing to merge unrelated histories错误
  3. Java中哪些操作会使线程释放锁资源
  4. Python中的Pandas(1.pandas概述和Series的概述和相关操作)
  5. es查询index生成时间_Elasticsearch第二谈(ES核心概念、ES简单操作、构建查询、查询结果过滤排序分页、term和match查询区别、自定义查询结果高亮)...
  6. Gartner:2021全球安全和风险支出将超1500亿美元
  7. C++算法四:顺序查找
  8. vb中空操作(等待)的指令、延时方法
  9. java实现deflate算法
  10. MySQL-----pymysql模块
  11. Python基础教程和入门教程
  12. java怎么连不上xml_java mvc web 项目web.xml头改错了,死活加载不上springMvc的jar
  13. python数据存储系列教程——python中mysql数据库操作:连接、增删查改、指令执行
  14. 实现截图页面并导出word
  15. Linux文件夹文件创建、删除
  16. yum install mysql-server 指定版本_mysql 指定版本安装
  17. 工业相机视场和分辨率计算
  18. 外汇风险管理:德鲁克日志之五月十一日
  19. Misc_PNG高宽详解
  20. 计算机更新有什么坏处,电脑上的驱动要不要经常更新,更新的好处和坏处有哪些,驱动和硬件之间的关系...

热门文章

  1. 奋斗的小蜗牛 南阳理工ACM 题目599
  2. RSA密码原理详解及算法实现(六步即可掌握)
  3. 佛教文化的本质:一念放下,万般自由
  4. 2023年网络与信息安全国际会议(NISecurity 2023)
  5. 产品学习:智慧政务和政务大数据平台
  6. IOS 更换闪屏页面出现的问题
  7. ----------------搜狗云输入法使用的一些体会--------------
  8. 计算机硕士论文参考文献,计算机硕士研究生方面论文参考文献 计算机硕士研究生论文参考文献哪里找...
  9. 数据结构和算法概述及算法分析
  10. @RequestBody的使用