Android Tegra平台back camera 驱动实现三 Android中的camera架构及工作原理
来源:互联网 发布:ubuntu ssh 编辑:程序博客网 时间:2024/06/05 03:11
本篇文章主要介绍Android中的camera架构及其工作原理。
Android的camera系统架构自上而下分别为应用层、框架层、硬件抽象层及linux驱动层。下面将通过对其框架层、硬件抽象层即Linux驱动层做简单的介绍。
APP - Framework
应用层与java框架层的间主要由Binder机制进行通信。
系统初始化时会开启一个CameraService的守护进程,为上层应用提供camera对的功能接口。
Framework - HAL
框架层与硬件抽象层间通过回调函数传递数据。
Overlay
Overlay层由ServiceFlinger和OverlayHal组成,实现视频输出功能,只有camera框架层或者视频框架层能调用它,上层无法直接调用。
HAL - driver
抽象层位于用户空间,通过系统调用如open(),read(),ioctl()等与内核空间进行数据传递。
原理简介
外部光线穿过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处理后输出YUV或者RGB格式的数据。最后会由CPU送到framebuffer中进行显示,这样我们就看到camera拍摄到的景象了。
camera chip 电路图:
5M back camera chip mt9d111的硬件电路图如下:
拿到原理图,我们需要关注的是19、21两个管脚分别连接到CAM_I2C_SDA和CAM_I2C_SCL,可以通过I2C来配置摄像头。另外调试摄像头的时候,可以根据这个原理图使用示波器来测量波形以验证代码是否正确。
这里还需要注意的是开发驱动之前最好用万用表测量摄像头的各个管脚是否和芯片连接正确,否则即使代码没有问题也看不到图像。
mt9d111是CMOS接口的图像传感器芯片,可以感知外部的视觉信号并将其转换为数字信号并输出。
我们需要通过XVCLK1给摄像头提供时钟,RESET是复位线,PWDN在摄像头工作时应该始终为低。HREF是行参考信号,PCLK是像素时钟,VSYNC是场同步信号。一旦给摄像头提供了时钟,并且复位摄像头,摄像头就开始工作了,通过HREF,PCLK和VSYNC同步传输数字图像信号。mt9d111向外传输的图像格式是YUV的格式,YUV是一种压缩后的图像数据格式,它里面还包含很多具体的格式类型,我们的摄像头对应的是YCbCr(8 bits, 4:2:2, Interpolated color)。后面的驱动里面设置的格式一定要和这个格式一致。
- Android Tegra平台back camera 驱动实现三 Android中的camera架构及工作原理
- Tegra平台back camera 驱动实现三
- Android Tegra 平台 Back Camera 驱动实现
- Tegra平台back camera 驱动实现一
- Tegra平台back camera 驱动实现二
- Tegra平台back camera 驱动实现四
- Tegra平台back camera 驱动实现五
- Tegra平台back camera 驱动实现六
- Tegra平台back camera 驱动实现七
- tegra平台的camera驱动应用
- MTK 平台Camera 驱动架构
- 高通android平台camera驱动
- Android NVidia Tegra2平台Camera架构浅析
- Android NVidia Tegra2平台Camera架构浅析
- FS_S5PC100平台上Android Camera架构分析
- FS_S5PC100平台上Android Camera架构分析
- FS_S5PC100平台上Android Camera架构分析
- FS_S5PC100平台上Android Camera架构分析
- 嵌套模型(DAG上的动态规划)—动态规划入门(算法经典入门)
- ADS错误the session file 'C:\user\username\default-1-2-0-0.ses' could not be loaded解决办法
- 软件设计师教程(第三版)(修订版)五章笔记
- Android之MediaPlayer详解
- Java设计模式 - 原型模式 prototype
- Android Tegra平台back camera 驱动实现三 Android中的camera架构及工作原理
- Commonly Used Elements of the DATE Format Mask
- 递归实现排列组合
- uboot中timer定时器的设置
- hdu 4278
- Ubuntu设置su进入root
- shell脚本基础(备忘)
- struts2下载乱码解决方案
- 需求分析要点