S5PV210有三个CAMIF单元,分别为CAMIF0 CAMIF1和CAMIF2。对应着驱动中的fimc0, fimc1, fimc2。在三星datasheet和驱动代码中CAMIF和FIMC(Fully Interactive Mobile Camera)这两个术语基本上可以互换的,后面我们都用FIMC代替CAMIF。这两个术语的称呼有很强的模糊性,尤其刚刚接触三星平台,会觉得这三个接口设备都是用来控制camera,实际上三个接口并不局限于只控制camera。

我们先看下datasheet中定义的CAMIF feature - 输入支持

1. ITU-R BT601/656/709 mode

2. DMA模式

3. MIPI(CSI)模式

4. Direct FIFO 模式

1 和3是典型的camera输入接口,用来处理输入的camere sensor的信号

而2则是DMA内存输入模式,FIMC的输入是DMA内存中的图像数据,FIMC负责进行图像color space 的转换,图像的scaler处理。

因此,每个FIMC既可以做为camera 输入ITU或MIPI的处理单元,此时就为capture设备,也可以作为内存图像的处理单元,此时做为output 设备或者overlay设备。

Camera A, Camera B,Camera C这三个物理接口和FIMC们也不是一回事,下图说明了前者和后者的关系,当FIMC工作在1,3模式(做为capture设备)时,Camera A/B/C是FIMC的输入。

Camera A/B是ITU类型;Camera C是MIPI类型的接口,配置FIMC寄存器决定FIMC从Camera A/B/C中的哪一个获取camera数据。

注意一个物理接口可以同时作为多个FIMC的输入源。

在android平台上:

FIMC0 用于拍照 以及preview时,从camera sensor获取数据

FIMC1 用于camera 的preview环节或者视频播放器的视频输出,S5PV210 overlay功能的驱动部分就是通过FIMC1来实现的

FIMC2 用于录像时,从camera sensor获取数据,提供给上层应用使用。

注意,在驱动层并没有对这三个控制器进行上述功能的划分,三个控制器是通用的。上诉功能的划分完全是CameraHAL和OverlayHAL实现的。

S5PV210 三个Camera Interface/CAMIF/FIMC的区别的更多相关文章

  1. (转)S5PV210 三个Camera Interface/CAMIF/FIMC的区别

    原文出处:http://blog.csdn.net/kickxxx/article/details/7728947 S5PV210有三个CAMIF单元,分别为CAMIF0 CAMIF1和CAMIF2. ...

  2. 【转】android camera(三):camera V4L2 FIMC

    关键词:android  camera CMM 模组 camera参数  CAMIF   V4L2  平台信息:内核:linux系统:android 平台:S5PV310(samsung exynos ...

  3. LPC43xx SGPIO Camera interface design

    AN11196: Camera interface design using SGPIO

  4. c#中抽象类(abstract)和接口(interface)的相同点与区别

    相同点: 1.都可以被继承 2.都不能被实例化 3.都可以包含方法声明 4.派生类必须实现未实现的方法 区别: 1.抽象基类可以定义字段.属性.方法实现.接口只能定义属性.索引器.事件.和方法声明,不 ...

  5. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  6. C++的三种继承方式详解以及区别

    目录 目录 C++的三种继承方式详解以及区别 前言 一.public继承 二.protected继承 三.private继承 四.三者区别 五.总结 后话 C++的三种继承方式详解以及区别 前言 我发 ...

  7. android camera(三):camera V4L2 FIMC

    1. V4L2 1)简介 在Linux中,摄像头方面的标准化程度比较高,这个标准就是V4L2驱动程序,这也是业界比较公认的方式. V4L全称是Video for Linux,是Linux内核中标准的关 ...

  8. SPI、I2C、UART三种串行总线协议的区别

    第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous R ...

  9. spring cloud学习笔记三 Feign与Ribbon负载均衡的区别

    一.Feign的介绍 Feign一般比较书面的解释是:Feign是一个声明式的WebService客户端,使用Feign编写的WebService客户端更加简单,他的使用方法是定义一个接口,然后在上线 ...

随机推荐

  1. [POJ2104] K – th Number (可持久化线段树 主席树)

    题目背景 这是个非常经典的主席树入门题--静态区间第K小 数据已经过加强,请使用主席树.同时请注意常数优化 题目描述 如题,给定N个正整数构成的序列,将对于指定的闭区间查询其区间内的第K小值. 输入输 ...

  2. Unknown tag (s:property).

    Unknown tag (s:property). 在jsp文件中加入此句话:<%@ taglib uri="/struts-tags" prefix="s&quo ...

  3. css 超出宽度出现省略号

    display: block; overflow: hidden; width: 260px; white-space: nowrap; text-overflow: ellipsis;

  4. Linux中/etc/init.d

    原文链接:http://blog.163.com/laorenyuhai126@126/blog/static/193507792010525110516/   在这个目录下的档案都是连结档,均指向到 ...

  5. Ubuntu16.04编译cmake源码

    编译版本:cmake-3.8.0-rc2 为了能够编译出ccmake和cmake-gui,首先需要安装libncurses5-dev sudo apt install libncurses5-dev ...

  6. centos7.0 安装日志--图文具体解释-python开发环境配置

    centos7.0公布之后,就下载了everthing的DVD镜像.今天有时间,所以决定在vbox底下体验一番--- 上图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...

  7. hdu 3697 Selecting courses (暴力+贪心)

    Selecting courses Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 62768/32768 K (Java/Others ...

  8. JavaSE 最easy出错的几个简单的问题

    案例1. package cn.itcast.oop; public class ThisDemo { public static void main(String[] args) { Student ...

  9. 【1】按照Django官网,编写一个web app 创建project/配置数据库

    1. Creating a project From the command line, cd into a directory where you'd like to store your code ...

  10. sdwebimage缓存图片

    当使用SDWebImage时,如果用相同图片名的图片替换掉了原始缓存的图片,当再次请求的时候,还是使用的缓存图片,图片不会发生改变 原因:图片在NSCache中是以absolute url作为key存 ...