高通相机camx-chi 架构详解

打印 上一主题 下一主题

主题 577|帖子 577|积分 1731


  
和你一起终身学习,这里是程序员Android

  
经典好文推荐,通过阅读本文,您将收获以下知识点:

     一.初步认知
二.CAMX团体架构
三.CAMX CHI-CDK基本组件
四.组件之间的关系
五.基础组件与上层交互
六.日记TAG:
七.其他
    网上关于高通CameraHAL3的先容文档不多,之前做高通CameraHAL3的一些总结、整理,杂乱了一点,将就着看吧。
  一.初步认知

  高通CameraHAL3的架构很巨大,代码量也很巨大。
  先对CAMX、Chi-CDK的关键术语、目录等有个初步认知
  1.1 CAMX CHI-CDK 体系里面几个关键的概念:

  
      
  • (1).Usecase :
    顾名思义“使用案例”,也就是一个功能需求,
    好比说 ZSL 功能是一个 usecase,HDR 是一个 usecase,多摄是一个 usecase,
    一个 usecase 里面会大概包罗多个 pipeline,多个功能 Feature,多个 isp 模块,多个 node。
    整个 chi-cdk 是围绕 usecase 的实现搭建的体系。
      
  • (2).Pipeline:
    数据流管道,好比说创建了一个 preview 流,一个 video 流管道,这些数据流是以 pipeline 管道的形式流畅的
      
  • (3).Node:
    功能节点,我们背面分析到的 camera 算法,是以一个节点嵌套在管道流中,这个节点相称于实现了算法的内容
    好比dummyrtb 节点实现了双摄数据的融合处置惩罚,
    remosaic 节点实现了数据的重分列,
    staticaecalgo 节点实现了第三方 AEC 算法的接入等
      
  • (4).Target:
    目标对象,用来定义一些用到的参数信息
      
  • (5).Topology:
    整个 usecase,pipeline 和 note 出现的是一个拓扑链接的布局形式,这些拓扑布局以一个 xml 的形式来描述,这个 xml 描述了整个工程 camera 功能中usecase、pipeline 流,nete 的拓扑关系及其参数的配置参数等。

  SM7450 工程默认使用的是 chi-cdk/oem/qcom/topology/titan/fillmore/fillmore_usecase.xml
  1.2 术语

  ABF :Auto Bayer Filter,Bayer 域的降噪算法
ACE :Advanced Chroma Enhancement 高级色度加强
ADRC:automatic dynamic range compression 自动动态范围压缩
AFD :Auto Flicker Detection,频闪自动检测
ASD :Auto Scene Detection
ASF :Adaptive Spatial Filter,自适应空间滤波
BDS :Bayer Download Scaler
BPC :Bad Pixel Correction,坏点校准
BPS :Bayer processing segment(for snapshot)
CDS :Chroma DownSampler
CDK :Camera Development Kit 相机开辟包
CHI :Camera Hardware Interface 相机硬件接口
CS :Chroma Suppression,色度克制
CSID:Camera serial interface decoder module
CV :Chroma Enhancement 色度加强
DPU isplay processing unit
GTM :Global Tone Mapping, 全局色调映射
IFE :Image Front End,Sensor 输出的数据首先会到达IFE
IPE :Image processing engine
KMD :Kernal ModeDriver
LPM :low power manager(低功耗下运行)
LTM ocal Tone Mapping,局部色调映射
MCTF:Motion Compensation Temporal Filtering 录像时的多帧降噪
MCE :Memory Color Enhancement
MFNR:Multi Frame Noise Reduction 拍照时的多帧降噪
OPE :Offline Processing Engine
PDAF:phase difference auto focus,相位对焦
QCFAuad (Bayer Coding) Color Filter Arrangement/Array
RDI :Raw Dump Interface
RTB :Real Time Bokeh
SCE :Skin Color Enhancement, 肤色加强
TNR :temporal noise reduction,时域降噪
TFE :Thin Front End
UMD :User Mode Driver
VPU :Video processing unit(codec)
WNR :Wavelet Noise Reduction,小波降噪,Yuv域的降噪算法
  1.3 紧张目录

  1.3.1 CAMX中有如下几个紧张目录:

  
      
  • core/ :
    用于存放camx的核心实现模块,此中还包罗了紧张用于实现hal3接口的hal/目录,以及负责与CHI举行交互的chi/目录
      
  • csl/:
    用于存放紧张负责camx与camera driver的通讯模块,为camx提供了同一的Camera driver控制接口
      
  • hwl/:
    用于存放自身具有独立运算本领的硬件node,该部门node受csl管理
      
  • swl/:
    用于存放自身并不具有独立运算本领,必须依靠CPU才气实现的node

  1.3.2 Chi-Cdk 中有如下几个紧张目录:

  
      
  • chioverride/:
    用于存放CHI实现的核心模块,负责与camx举行交互而且实现了CHI的总体框架以及详细的业务处置惩罚。
      
  • bin/:
    用于存放平台相关的配置项
      
  • topology/:
    用于存放用户自定的Usecase xml配置文件
      
  • node/:
    用于存放用户自定义功能的node
      
  • module/:
    用于存放差别sensor的配置文件,该部门在初始化sensor的时间需要用到
      
  • tuning/:
    用于存放差别场景下的结果参数的配置文件
      
  • sensor/:
    用于存放差别sensor的私有信息以及寄存器配置参数
      
  • actuator/:
    用于存放差别对焦模块的配置信息
      
  • ois/:
    用于存放防抖模块的配置信息
      
  • flash/:
    存放着闪光灯模块的配置信息
      
  • eeprom/:
    存放着eeprom外部存储模块的配置信息
      
  • fd/:
    存放了人脸识别模块的配置信息

  二.CAMX团体架构

  2.1 CAMX团体的架构图:

  

  2.2 CAMX CHI-CDK通讯机制

  CAMX与 CHI-CDK 通过互相dlopen对方的So库,获取了对方的入口方法:
  

  2.3 CameraHAL3数据流向

  CamraHAL3数据流向图:
  

  Camera数据从sensor出来,首先会经过IFE,然后分预览/视频和拍照2种情况。
  假如是预览或者录像,是先经过IPE处置惩罚,末了输出到显示。
  假如是拍照,则是先经过BSP处置惩罚,然后再经过JPEG编码器,末了生存为图片输出。
  IFE、IPE、BPS、JPEGÿ

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

诗林

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表