camera engine 主要实现的是
raw senosr 的 3A 控制,对于
linux 系统来说,还可通过在它基础上实现的 libgstrkisp 插件来实现数据流获取等。除了3A库源码不开放外,其他部分的代码都是开源的。该文档主要描述了camera engine 的
模块组成,简要API说明,编译步骤,及调试方面的注意事项。
1. 文档适用说明
1.1 适用平台及系统
2. Camera engine 基本框架
各模块简要说明如下:
2.1
driver layer
驱动层,具体参考《RKISP_Driver_User_Manual》。
2.2 Engine layer
包括 core engine 库(librkisp.so)及 3A 库。Core engine 主体功能为获取驱动数据流,实现上层帧参数控制,如 3A 模式等,从 ISP 驱动获取 3A统计,调用 3A 库实现 3A 调整。为上层主要提供的类接口为
deviceManager。librkisp_ae.so,librkisp_awb.so 及 librkisp_af.so 为 RK 实现的3A 库,实现为动态加载库,且有标准接口,
用户如有需求,可实现自己的 3A库进行替换。
2.3 Interface layer
在 engine 层基础上为 Android 及 Linux 封装了不同接口。Android 层不需要数据流部分,只需要 3A 控制部分,控制接口及说明请参考头文件rkisp_control_loop.h,该文件中对实现的接口以及基本调用流程都有详细说明及注释。libgstrkisp 是为
Gstreamer 实现的插件,通过该插件,用户可通过 gsreamer 获取数据流以及控制 3A。如用户有其他需求,可封装满足自己需求的接口层。
2.4
APPlication layer
应用层,目前有适配 Android 的 Camera Hal3 及 Linux 平台的gstreamer。
3. 源码目录结构
├── Android.mk* // Android 编译 mk
├── build_system/ //
移植的简易编译系统
├── config.h*
├── ext/ // 引用的外部库,文件等
├── gstreamer/ // 基于 camera engine 实现的 gstreamer 插件 demo
├── install*
├── interface/ // camera engine 提供给外部的接口实现
├── i
QFILes/ // 已调试过的模组 iq 文件
├──
MAKEfile // Linux 编译文件
├──
METAdata/ // 从 Android 移植,控制 3A 参数等
├── modules/ // 适配于 xcore 框架的具体实现
├── plugins/ // 3A 库及头文件
├──
productConfigs.mk // 编译配置文件
├── rkisp/ // 3A 库接口层,连接 xcore 框架及 3A 库
├── tests/ // demo 程序
├── update*
├── update_header* // 更新 Linux 版本 3A 库
├── update_header_android* // 更新 Android 版本 3A 库
└── xcore/ // camera engine 框架,移植自 intel 开源项目
4. API 简要说明
Camera engine 主要提供 3A 功能,3A 功能主要由interace/rkisp_control_loop.h 文件提供,以下主要介绍该文件相关接口。
4.1 Control loop API
接口在 rkisp_control_loop.h 中已有详细说明,此外,在tests/rkisp_demo.cpp 中有 3A 接口的使用示例,这里简要说明如下:
4.1.1 rkisp_cl_init
[描述] 初始化 control loop。
[语法]
int rkisp_cl_init(void** cl_ctx, const char* tuning_file_path,
const cl_result_
callback_ops_t *callback_ops);
[参数]
参数名称 | 描述 | 输入输出 |
cl_ctx
| 成功返回 control loop context | 输出 |
tuning_file_path | RAW sensor 使用的 tunning xml 文件, engine v2.0.0开始已不需要提供该文件, engine中自动选择 | 输入 |
callback_ops | 接收result metadata的回调,提供该回调后, 该回调函数每一帧都会被执行一次,返回帧对 应的统计信息、所应用的参数及3A状态等。 | |
更多详细内容请下载附件查看