|
libcamera v0.7.2+1-aebe4861-nvm
Supporting cameras in Linux since 2019
|
A mean-based auto-exposure algorithm. More...


Public Member Functions | |
| int | init (IPAContext &context, const ValueNode &tuningData) override |
| Initialise the AGC algorithm from tuning files. | |
| int | configure (IPAContext &context, const IPAConfigInfo &configInfo) override |
| Configure the AGC given a configInfo. | |
| void | queueRequest (IPAContext &context, const uint32_t frame, IPAFrameContext &frameContext, const ControlList &controls) override |
| Provide control values to the algorithm. | |
| void | prepare (IPAContext &context, const uint32_t frame, IPAFrameContext &frameContext, ipu3_uapi_params *params) override |
| Fill the params buffer with ISP processing parameters for a frame. | |
| void | process (IPAContext &context, const uint32_t frame, IPAFrameContext &frameContext, const ipu3_uapi_stats_3a *stats, ControlList &metadata) override |
| Process IPU3 statistics, and run AGC operations. | |
Public Member Functions inherited from libcamera::ipa::Algorithm< _Module > | |
| virtual int | init (typename Module::Context &context, const ValueNode &tuningData) |
| Initialize the Algorithm with tuning data. | |
| virtual int | configure (typename Module::Context &context, const typename Module::Config &configInfo) |
| Configure the Algorithm given an IPAConfigInfo. | |
| virtual void | queueRequest (typename Module::Context &context, const uint32_t frame, typename Module::FrameContext &frameContext, const ControlList &controls) |
| Provide control values to the algorithm. | |
| virtual void | prepare (typename Module::Context &context, const uint32_t frame, typename Module::FrameContext &frameContext, typename Module::Params *params) |
| Fill the params buffer with ISP processing parameters for a frame. | |
| virtual void | process (typename Module::Context &context, const uint32_t frame, typename Module::FrameContext &frameContext, const typename Module::Stats *stats, ControlList &metadata) |
| Process ISP statistics, and run algorithm operations. | |
Additional Inherited Members | |
Public Types inherited from libcamera::ipa::Algorithm< _Module > | |
| using | Module = _Module |
| The IPA module type for this class of algorithms. | |
A mean-based auto-exposure algorithm.
This algorithm calculates an exposure time and an analogue gain so that the average value of the green channel of the brightest 2% of pixels approaches 0.5. The AWB gains are not used here, and all cells in the grid have the same weight, like an average-metering case. In this metering mode, the camera uses light information from the entire scene and creates an average for the final exposure setting, giving no weighting to any particular portion of the metered area.
Reference: Battiato, Messina & Castorina. (2008). Exposure Correction for Imaging Devices: An Overview. 10.1201/9781420054538.ch12.
|
override |
Configure the AGC given a configInfo.
| [in] | context | The shared IPA context |
| [in] | configInfo | The IPA configuration data |
|
override |
Initialise the AGC algorithm from tuning files.
This function calls the base class' tuningData parsers to discover which control values are supported.
|
override |
Fill the params buffer with ISP processing parameters for a frame.
| [in] | context | The shared IPA context |
| [in] | frame | The frame context sequence number |
| [in] | frameContext | The FrameContext for this frame |
| [out] | params | The ISP specific parameters |
This function is called for every frame when the camera is running before it is processed by the ISP to prepare the ISP processing parameters for that frame.
Algorithms shall fill in the parameter structure fields appropriately to configure the ISP processing blocks that they are responsible for. This includes setting fields and flags that enable those processing blocks.
|
override |
Process IPU3 statistics, and run AGC operations.
| [in] | context | The shared IPA context |
| [in] | frame | The current frame sequence number |
| [in] | frameContext | The current frame context |
| [in] | stats | The IPU3 statistics and ISP results |
| [out] | metadata | Metadata for the frame, to be filled by the algorithm |
Identify the current image brightness, and use that to estimate the optimal new exposure and gain for the scene.
|
override |
Provide control values to the algorithm.
| [in] | context | The shared IPA context |
| [in] | frame | The frame number to apply the control values |
| [in] | frameContext | The current frame's context |
| [in] | controls | The list of user controls |
This function is called for each request queued to the camera. It provides the controls stored in the request to the algorithm. The frame number is the Request sequence number and identifies the desired corresponding frame to target for the controls to take effect.
Algorithms shall read the applicable controls and store their value for later use during frame processing.