The ISP SDK is a high-level API and it encapsulates the functionality for interacting
with the ISP, and provides a convenient method to handle and control ISP and sensor
behaviors, such as:
Video device management.
Buffer allocations.
Image shot management.
Streaming control.
IOCTL command.
Module configuration.
Adaptive control.
Sensor control, etc.
Besides the SDK, StarFive also provides
the application of stf_isp_ctrl, namely the StarFive ISP Control. The application
invokes the ISP SDK API to make the ISP hardware keep processing every stream
automatically. It uses the SDK library to operate the ISP mainly in the following steps:
Fetch the statistical collection data.
Pass the statistics data to registered controls for the adaptive control.
Loop registered modules to convert the high-level parameters to ISP register
values.
Send these register values to kernel driver through the IOCTL command.
Program the ISP.
Return the statistics buffer to video device after completing the registers update.
The following diagram shows the standard StarFive ISP control workflow. Figure 1. StarFive ISP Control
Workflow
The following diagram shows the loop of all registered controls. Figure 2. Loop of All Registered Controls
The following diagram shows the loop of all registered modules. Figure 3. Loop of All Registered Modules