Design Considerations for Architecture Scalability
The code contains parameters such as hi_vi_pipe, hi_isp_3a_alg_lib, and hi_sensor_id, which are used for architecture scalability.
- hi_vi_pipe is used to support multiple ISP units. Considering time-division multiplexing of multiple ISP hardware units or one ISP hardware unit, scalability is required from the perspective of software.
- hi_isp_3a_alg_lib supports multiple algorithm libraries and dynamically switchover. For example, if you have implemented a set of AE algorithm code but registered two libraries for the normal and snapshot scenarios respectively, you need to use handle in the structure to distinguish the libraries. If you have implemented a set of AWB algorithm code and want to use the AWB algorithm library in some scenarios, you can use lib_name in the structure for distinguishing. When multiple AE or AWB libraries are registered, the ISP firmware initializes all of them. However, only valid libraries are called during running. You can call hi_mpi_isp_set_bind_attr to set valid libraries and quickly switch libraries for operations.
- hi_sensor_id is used only for verification, to ensure that the sensors registered with the ISP firmware library and 3A algorithm library are of the same type.
These considerations are redundancies reserved during design. If you do not need them at all, remove them during development.
Parent topic: Appendixes