CamX-CHI框架结构梳理一

CamX-CHI 基本架构与基本组件的概念

CamX-CHI基本架构

CamX-CHI框架结构梳理一_第1张图片

模块间的通讯

Camera Provider

与CamX之间的通讯:通过Camera HAL3接口实现互相沟通。
CamX与CHI之间的通讯:通过互相dlopen so库和获取对方的操作接口并将自身的本地的操作方法中的函数地址赋值给回调函数/结构体中的每一个函数指针。
Camera provider与kenet/Driver之间的通讯:通过Camera Provider的CamX中的csl专门与Camera Driver通讯的模块建立连接。

目录功能的阐述

CamX中的目录
Core分为hal与chi目录:存放CamX的核心实现模块

hal/:实现hal3接口的hal/目录
chi/:负责CHI进行交互的chi/目录

hwl/:存放自身算法具有独立运算能力的硬件node---受到csl管理
swl/:存放并不具有独立运算能力,必须依靠CPU才能实现的node
csl/:负责camx与camera driver的通讯模块,为camx提供了统一的Camera driver控制接口
CHI中的目录
chioverride/:存放CHI实现的核心模块,负责与Camx进行交互并且实现了CHI的总体框架以及业务处理
bin/:存放平台相关的配置信息。
topolog/:存放用户自定义的Usecase xml配置信息
node/:存放用户自定义功能的node
module/:存放不同的sensor的配置文件,在初始化sensor时候需要用到。
tuning/:存放不同场景下的效果参数的配置文件。
sensor/:存放不同sensor的只有信息以及寄存器配置参数
actuator/:存放不同对焦模块的配置信息。
ois/:存放防抖模块的配置信息。
flash/:存放闪光灯模块的配置信息。
eeprom/:存放eeprom外部存储模块的配置信息。
fd/:存放人脸识别模块的配置信息。

基本组件

组件的基本概念

1)Usecase:负责了CHI中的业务处理以及资源管理。
2)Feature:代表一个特定的功能。
3)Session:用于管理pipeline的抽象控制单元,其中至少包含一个pipeline,并控制着所有的硬件资源,管控着每个pipeline内部的request流转以及数据的输入输出。
4)Pipeline:提供单一特定功能的所有资源集合,维护着所有硬件资源以及数据的流转,负责整条pipeline的软硬件资源的维护以及业务逻辑的处理。
5)Node:单个具有独立11处理功能的抽象模块,可以是软件单元也可以是硬件单元。
6)Link:定义不同的Port的连接端口--输入端口:,输出端口:
7)Port:作为Node的输入输出端口--使用OutputPort以及InputPort结构定义XML文件。

组件之间的关系

CamX-CHI框架结构梳理一_第2张图片

你可能感兴趣的:(camera)