Camera KMD ISP学习笔记(1)-ISP框架
仅用于个人学习,侵联删
高通camera常用缩略词:
- CPAS(Camera Peripherals and Support) // 存放硬件版本,总线接口,包括AXI/APB总线等
- CDM(Camera Data Mover) // 数据搬运
- TFE(Thin Front End) // 低配ife
- IFE(Image Front End) // 图像前端,csid后面的第一个模块就是ife,出来是raw图
- OPE(Offline Processing Engine) // 离线处理引擎,进去是raw,出来时yuv
- BPS(Bayer Processing Segment) // 离线模块,处理bayer数据
- SFE(Sensor Front End) // 四合一sensor的处理,高端平台才有,csid前面
- LRME(Low Resolution Motion Estimation) // 也是单独的一个硬件
- CSID(Camera Serial Interface Decoder) // 解码器,也就是RX
- UMD(User Mode Driver) // 应用层驱动
- KMD(Kernel Mode Driver) // kernel驱动
- AB(Arbitrated Bandwidth) // 仲裁带宽
- IB(Instantaneous Bandwidth) // 顺时带宽,cpas决定
- CHI(Camera Hardware Interface) // camera硬件接口,高通专用词汇,算法集成在这里
- RDI(Raw Dump Interface) // raw图dump接口
- CRM(Camera Request Manager) // camera请求管理器
目录结构:
cam_cdm/ ---cam_cdm_core_common.c // 核心文件 ---cam_cdm_hw_core.c // 硬件核心 ---cam_cdm_intf.c // cdm暴露给外接的接口,比如tfe/ope ---cam_cdm_soc.c // soc一些调用,比如解析dts ---cam_cdm_util.c // 统一接口 ---cam_cdm_virtual_core.c // 与virtual core对应 cam_core/ ---cam_context.c // 上下文 ---cam_context_utils.c // 暴露接口 ---cam_node.c ---cam_subdev.c // 子设备,主设备和子设备的关系,主设备如何控制子设备 cam_cpas/ cam_cre/ cam_cust/ cam_fd/ cam_icp/ cam_isp/ ├── cam_isp_context.c // context模型 ├── cam_isp_context.h ├── cam_isp_dev.c // isp dev注册一个设备,虚拟设备 ├── cam_isp_dev.h └── isp_hw_mgr // 真实的设备管理在此处 ├── cam_ife_hw_mgr.c // ife ├── cam_isp_hw_mgr.c ├── cam_tfe_hw_mgr.c // tfe ├── hw_utils // isp相关的utils │ ├── cam_isp_packet_parser.c │ ├── cam_tasklet_util.c // 中断下半部tasklet,统一处理 │ └── irq_controller └── isp_hw ├── /ife_csid_hw ├── /ppi_hw ├── /sfe_hw ├── /tfe_csid_hw ├── /tfe_hw └── /vfe_hw cam_jpeg/ cam_lrme/ cam_ope/ cam_presil/ cam_req_mgr/ ---cam_mem_mgr.c // 内存相关的分配管理 ---cam_req_mgr_core.c // 核心逻辑 ---cam_req_mgr_debug.c // debug相关 ---cam_req_mgr_dev.c // 设备相关,只不过是virtual 设备 ---cam_req_mgr_timer.c // 定时器相关,比如出帧相关 ---cam_req_mgr_util.c // 通用接口 ---cam_req_mgr_workq.c // 异步处理 ---Makefile cam_sensor_module/ cam_smmu/ ---cam_smmu_api.c // 暴露给其他硬件模块的接口 cam_sync/ ---cam_sync.c // probe相关 ---cam_sync_dma_fence.c // dma fence相关 ---cam_sync_util.c // 暴露接口调用 cam_utils/ // 给camera子系统使用,比如Log ---cam_common_util.c ---cam_compat.c ---cam_cx_ipeak.c ---cam_debug_util.c ---cam_io_util.c ---cam_packet_util.c ---cam_soc_bus.c ---cam_soc_icc.c ---cam_soc_util.c ---cam_trace.c