libcamera v0.0.0+3240-f2a18172-dirty (2022-05-13T19:42:47+00:00)
Supporting cameras in Linux since 2019
|
The base class for all IPU3 algorithms. More...
Public Member Functions | |
virtual int | configure (IPAContext &context, const IPAConfigInfo &configInfo) |
Configure the Algorithm given an IPAConfigInfo. More... | |
virtual void | prepare (IPAContext &context, ipu3_uapi_params *params) |
Fill the params buffer with ISP processing parameters for a frame. More... | |
virtual void | process (IPAContext &context, const ipu3_uapi_stats_3a *stats) |
Process ISP statistics, and run algorithm operations. More... | |
The base class for all IPU3 algorithms.
The Algorithm class defines a standard interface for IPA algorithms. By abstracting algorithms, it makes possible the implementation of generic code to manage algorithms regardless of their specific type.
|
virtual |
Configure the Algorithm given an IPAConfigInfo.
[in] | context | The shared IPA context |
[in] | configInfo | The IPA configuration data, received from the pipeline handler |
Algorithms may implement a configure operation to pre-calculate parameters prior to commencing streaming.
Configuration state may be stored in the IPASessionConfiguration structure of the IPAContext.
Reimplemented in libcamera::ipa::ipu3::algorithms::Agc, libcamera::ipa::ipu3::algorithms::Awb, and libcamera::ipa::ipu3::algorithms::ToneMapping.
|
virtual |
Fill the params buffer with ISP processing parameters for a frame.
[in] | context | The shared IPA context |
[out] | params | The IPU3 specific parameters. |
This function is called for every frame when the camera is running before it is processed by the ImgU to prepare the ImgU processing parameters for that frame.
Algorithms shall fill in the parameter structure fields appropriately to configure the ImgU processing blocks that they are responsible for. This includes setting fields and flags that enable those processing blocks.
Reimplemented in libcamera::ipa::ipu3::algorithms::Awb, libcamera::ipa::ipu3::algorithms::BlackLevelCorrection, and libcamera::ipa::ipu3::algorithms::ToneMapping.
|
virtual |
Process ISP statistics, and run algorithm operations.
[in] | context | The shared IPA context |
[in] | stats | The IPU3 statistics and ISP results |
This function is called while camera is running for every frame processed by the ImgU, to process statistics generated from that frame by the ImgU. Algorithms shall use this data to run calculations and update their state accordingly.
Processing shall not take an undue amount of time, and any extended or computationally expensive calculations or operations must be handled asynchronously in a separate thread.
Algorithms can store state in their respective IPAFrameContext structures, and reference state from the IPAFrameContext of other algorithms.
Care shall be taken to ensure the ordering of access to the information such that the algorithms use up to date state as required.
Reimplemented in libcamera::ipa::ipu3::algorithms::Agc, libcamera::ipa::ipu3::algorithms::Awb, and libcamera::ipa::ipu3::algorithms::ToneMapping.