高通相机camx-chi 架构详解
https://i-blog.csdnimg.cn/blog_migrate/dfd4b5a92b8204460e21b09453351991.gif和你一起终身学习,这里是程序员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 :Display processing unit
GTM :Global Tone Mapping, 全局色调映射
IFE :Image Front End,Sensor 输出的数据首先会到达IFE
IPE :Image processing engine
KMD :Kernal ModeDriver
LPM :low power manager(低功耗下运行)
LTM :Local 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,相位对焦
QCFA:Quad (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团体的架构图:
https://i-blog.csdnimg.cn/blog_migrate/b347415dc7735cd4fd523bf48c4a7bd9.jpeg
2.2 CAMX CHI-CDK通讯机制
CAMX与 CHI-CDK 通过互相dlopen对方的So库,获取了对方的入口方法:
https://i-blog.csdnimg.cn/blog_migrate/118acd24c129fc5d9acafb08c28909e1.jpeg
2.3 CameraHAL3数据流向
CamraHAL3数据流向图:
https://i-blog.csdnimg.cn/blog_migrate/e9f747b7c51bf10916d73f6ab7928b55.jpeg
Camera数据从sensor出来,首先会经过IFE,然后分预览/视频和拍照2种情况。
假如是预览或者录像,是先经过IPE处置惩罚,末了输出到显示。
假如是拍照,则是先经过BSP处置惩罚,然后再经过JPEG编码器,末了生存为图片输出。
IFE、IPE、BPS、JPEGÿ
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]