下载
中文
注册

扩展性的设计考虑

在代码中有 hi_vi_pipe、hi_isp_3a_alg_lib、hi_sensor_id 这样一些概念,这些概念是出于架构扩展性的考虑。

  • hi_vi_pipe 主要考虑的是支持多个 ISP 单元的情形。无论是多个 ISP 硬件单元,或是一个 ISP 硬件单元分时复用,从软件意义上讲,需要预留出扩展性。
  • hi_isp_3a_alg_lib 主要考虑的是支持多个算法库,并动态切换的情形。例如用户实现了一套 AE 算法代码,但注册两个库,分别用于正常场景和抓拍场景,那么这时候需要用结构体中的 handle 来进行区分。例如用户实现了一套 AWB 算法代码,同时又想在某些场景下使用昇腾 AWB 算法库,那么这时候可以用结构体中的 lib_name 进行区分。当用户注册多个 AE 库,或 AWB 库时,ISP firmware 将会全部对它们进行初始化,但是在运行时,仅会调用有效的库,设置有效库的接口是 hi_mpi_isp_set_bind_attr,通过此接口可以快速切换运算的库。
  • hi_sensor_id 仅起一个校验作用,确认注册给 ISP firmware 库和 3A 算法库的是同一款 sensor。

这些概念仅是设计时预留的冗余,如果完全不需要这些概念,可以在开发时去掉这些概念。