做网站 然后百度推广,毕节网站建设与对策分析,微信传输助手网页版,设计素材下载网站目录 一、概述
二、目录
三、CamX组件之前的关系 一、概述
高通CamX架构是高通实现的相机HAL3架构#xff0c;被各OEM厂商广泛采用。
二、目录 代码位于vendor/qcom/proprietary下#xff1a;
camx#xff1a;通用功能性接口的代码实现集合chi-cdk#xff1a;可定制化…目录 一、概述
二、目录
三、CamX组件之前的关系 一、概述
高通CamX架构是高通实现的相机HAL3架构被各OEM厂商广泛采用。
二、目录 代码位于vendor/qcom/proprietary下
camx通用功能性接口的代码实现集合chi-cdk可定制化的代码实现集合 CamX子目录
core/ 用于存放camx的核心实现模块其中还包含了主要用于实现hal3接口的hal/目录以及负责与CHI进行交互的chi/目录hwl/: 用于存放自身具有独立运算能力的硬件node该部分node受csl管理swl/: 用于存放自身并不具有独立运算能力必须依靠CPU才能实现的软件nodecsl/用于存放主要负责camx与camera driver的通讯模块为camx提供了统一的Camera driver控制接口
Chi-Cdk子目录
chioverride/: 用于存放CHI实现的核心模块负责与camx进行交互并且实现了CHI的总体框架以及具体的业务处理。bin/: 用于存放平台相关的配置项topology/: 用于存放用户自定的Usecase xml配置文件node/: 用于存放用户自定义功能的nodemodule/: 用于存放不同sensor的配置文件该部分在初始化sensor的时候需要用到tuning/: 用于存放不同场景下的效果参数的配置文件sensor/: 用于存放不同sensor的私有信息以及寄存器配置参数actuator/: 用于存放不同对焦模块的配置信息ois/ 用于存放防抖模块的配置信息flash/ 存放着闪光灯模块的配置信息eeprom/: 存放着eeprom外部存储模块的配置信息fd/: 存放了人脸识别模块的配置信息
三、CamX组件之前的关系 Usecase一个Usecase代表了某个特定的图像采集场景比如人像场景后置拍照场景等等在初始化的时候通过根据上层传入的一些具体信息来进行创建这个过程中一方面实例化了特定的Usecase这个实例是用来管理整个场景的所有资源同时也负责了其中的业务处理逻辑另一方面获取了定义在XML中的特定Usecase获取了用于实现某些特定功能的pipeline。
Feature在Usecase中Feature是一个可选项如果当前用户选择了HDR模式或者需要在Zoom下进行拍照等特殊功能的话在Usecase创建过程中便会根据需要创建一个或者多个Feature一般一个Feature对应着一个特定的功能如果场景中并不需要任何特定的功能则也完全可以不使用也不创建任何Feature。
Session每一个Usecase或者Feature都可以包含一个或者多个Session每一个Session都是直接管理并负责了内部的Pipeline的数据流转其中每一次的Request都是Usecase或者Featuret通过Session下发到内部的Pipeline进行处理数据处理完成之后也是通过Session的方法将结果给到CHI中之后是直接给到上层还是将数据封装下再次下发到另一个Session中进行后处理这都交由CHI来决定。
PipelineSession和Pipeline是一对多的关系通常一个Session只包含了一条Pipeline用于某个特定图像处理功能的实现但是也不绝对比如FeatureMFNR中包含的Session就包括了三条pipeline又比如后置人像预览也是用一个Session包含了两条分别用于主副双摄预览的Pipeline主要是要看当前功能需要的pipeline数量以及它们之间是否存在一定关联。
Node根据上面关于Pipeline的定义它内部包含了一定数量的Node并且实现的功能越复杂所包含的Node也就越多同时Node之间的连接也就越错综复杂比如后置人像预览虚化效果的实现就是将拿到的主副双摄的图像通过RTBOfflinePreview这一条Pipeline将两帧图像合成一帧具有虚化效果的图像从而完成了虚化功能。
最后Pipeline中的Node的连接方式是通过XML文件中的Link来进行描述的每一个Link定义了一个输入端和输出端分别对应着不同Node上面的输入输出端口通过这种方式就将其中的一个Node的输出端与另外一个Node的输入端一个一个串联起来等到图像数据从Pipeline的起始端开始输入的时候便可以按照这种定义好的轨迹在一个一个Node之间进行流转而在流转的过程中每经过一个Node都会在内部对数据进行处理这样等到数据从起始端一直流转到最后一个Node的输出端的时候数据就经过了很多次处理这些处理效果最后叠加在一起便是该Pipeline所要实现的功能比如降噪、虚化等等。 参考优秀博客
深入理解Android相机体系结构_深入理解android 相机-CSDN博客