本章节涉及 Sensor 部分,请仔细阅读 Sensor 的 Datasheet,或联系Sensor原厂工程师。
结构体说明请参考《AscendCL应用软件开发指南 (C&C++)》及本手册中的ISP接口参考。
驱动一般包括 xxx_cmos.c 文件,xxx_cmos.h、 xxx_sensor_ctl.c文件,分别用于 ISP 功能和初始化序列,xxx_cmos_ex.h 文件用于存放定义的驱动文件中的全局变量,主要为ISP算法默认参数。
驱动文件共有 3个callback 函数,是Sensor驱动向Firmware注册函数的接口。
- hi_mpi_isp_sensor_reg_callback :ISP内置回调算法。
- hi_mpi_ae_sensor_reg_callback:昇腾AE回调算法。
- hi_mpi_awb_sensor_reg_callback :昇腾AWB回调算法。
开发流程
ISP基本功能,请按如下顺序实现:
- cmos_set_image_mode, cmos_set_wdr_mode
- cmos_set_image_mode
- 该函数用于区分不同分辨率,用 hi_isp_sns_state 中的 img_mode 传递分辨率模式。
- 请注意返回值,返回“0”表示重新配置 Sensor,会调用 sensor_init(),返回“-2”表示不用重新配置 Sensor,无动作。
- 请注意 hi_isp_sns_state 中 fl_std 和 fl 的区别。fl_std 是当前分辨率及 WDR 模式下,标准帧率(一般为 30fps)时的总行数。fl 是实际总行数,该参数会在其它函数中,由于降帧的原因,基于标准行数 fl_std 及帧率修改。
- sensor_global_init
- sensor_init, sensor_exit
- cmos_get_isp_default,cmos_get_isp_black_level