libcamera: libcamera::ipa::ipu3::algorithms::Agc Class Reference

libcamera v0.2.0 Supporting cameras in Linux since 2019

Loading...
Searching...
No Matches
Public Member Functions | List of all members
libcamera::ipa::ipu3::algorithms::Agc Class Reference

A mean-based auto-exposure algorithm. More...

Inheritance diagram for libcamera::ipa::ipu3::algorithms::Agc:
[legend]
Collaboration diagram for libcamera::ipa::ipu3::algorithms::Agc:
[legend]

## Public Member Functions
int | configure (IPAContext &context, const IPAConfigInfo &configInfo) override
| Configure the AGC given a configInfo.
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 YamlObject &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.

## Detailed Description

A mean-based auto-exposure algorithm.

This algorithm calculates a shutter 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.

## Member Function Documentation

## ◆ configure()

int libcamera::ipa::ipu3::algorithms::Agc::configure | ( | IPAContext & | context,
|  | const IPAConfigInfo & | configInfo )
| override

Configure the AGC given a configInfo.

Parameters

  [in] | context | The shared IPA context
  [in] | configInfo | The IPA configuration data

Returns
  0

## ◆ process()

void libcamera::ipa::ipu3::algorithms::Agc::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.

Parameters

  [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.

The documentation for this class was generated from the following files:

- src/ipa/ipu3/algorithms/agc.h
- src/ipa/ipu3/algorithms/agc.cpp