[RFC,v1,0/8] ipa: libipa: agc: Take exposure margin into account
mbox series

Message ID 20260827104108.1432632-1-barnabas.pocze@ideasonboard.com
Headers show
Series
  • ipa: libipa: agc: Take exposure margin into account
Related show

Message

Barnabás Pőcze Aug. 27, 2026, 10:41 a.m. UTC
The maximum available exposure depends on the frame duration, but this
is not considered by the current agc implementation, it fixes the maximum
exposure time based on whatever configuration was used to configure the
algorithm. This means that in certain situations the full exposure range
might not be used, even in dark scenes.

This a first attempt at adapting https://patchwork.libcamera.org/project/libcamera/list/?series=5590
on the current master branch. But now that the agc handling is largely unified,
only fewer changes are needed to make this work on every platform.

So effectively only patch 6 is taken directly, but only the exposure margin
introduction part of it.

This was mainly tested on rkisp1+imx219 and softisp+ov2740.

TODO: add the exposure margin to the new camera sensor helpers

Barnabás Pőcze (7):
  ipa: libipa: agc: Keep frame duration limits ordered
  ipa: libipa: agc: Retrieve `FrameDurationLimits` earlier
  ipa: libipa: agc: Calculate vblank and frame duration sooner
  ipa: libipa: agc: Take parameters from active state for calculation
  libcamera: pipeline: Set vblank on more platforms
  ipa: libipa: agc: Rework frame duration limit calculation
  ipa: libipa: agc: Take exposure margin into account

Jacopo Mondi (1):
  ipa: camera_sensor_helper: Introduce exposure margin

 src/ipa/ipu3/algorithms/agc.cpp              |   2 +-
 src/ipa/ipu3/ipu3.cpp                        |   3 +-
 src/ipa/libipa/agc.cpp                       | 219 +++++++++++--------
 src/ipa/libipa/agc.h                         |  18 +-
 src/ipa/libipa/camera_sensor_helper.cpp      |  59 +++++
 src/ipa/libipa/camera_sensor_helper.h        |   2 +
 src/ipa/mali-c55/algorithms/agc.cpp          |   2 +-
 src/ipa/mali-c55/mali-c55.cpp                |   3 +-
 src/ipa/rkisp1/algorithms/agc.cpp            |   2 +-
 src/ipa/rkisp1/rkisp1.cpp                    |   4 +-
 src/ipa/softisp/algorithms/agc.cpp           |   2 +-
 src/ipa/softisp/softisp.cpp                  |   3 +-
 src/libcamera/pipeline/ipu3/ipu3.cpp         |   1 +
 src/libcamera/pipeline/mali-c55/mali-c55.cpp |   1 +
 src/libcamera/pipeline/simple/simple.cpp     |   1 +
 15 files changed, 205 insertions(+), 117 deletions(-)

--
2.55.0