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
浙公网安备 33010602011771号