扩展性的设计考虑
在代码中有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。
这些概念仅是设计时预留的冗余,如果完全不需要这些概念,可以在开发时去掉这些概念。
父主题: 附录