[PATCH v8 00/12] AEGC controls
Paul Elder
paul.elder at ideasonboard.com
Mon Jan 13 22:59:34 CET 2025
This patch series introduces a new set of AEGC controls that allow:
- flicker avoidance when switching from auto to manual
- shutter priority / gain priority
To achieve this, we remove the existing AeEnable control and add two
separate controls that control enabling/disabling auto-exposure and
auto-gain. The definition of AeState is also made more concrete. The
first two patches add the new controls, as well as documentation and
design rationale.
The rest of the patches naturally update the existing users of AeEnable,
before finally removing the control altogether.
v4 mainly improves documentation and implements the proper behavior when
transitioning between auto and manual modes for the rkisp1.
v5 is mostly minor wording changes, plus a fix to the rkisp1 aegc
implementation to support mixed manual-auto ae modes (aka "shutter
priority" / "gain priority").
v6 notably re-introduces the AeEnable control, as it was deemed
necessary (see the relevant patches for details). Instead of re-writing
the previous patches, it is tacked on in the last 4 patches of the
series (with a trivial modification to the 8th patch).
v7 is mainly minor wording changes.
v8 adds auto to the default control values, as well as some todos for
Raspberry Pi.
On that note, Naush and David, could you please review (or ack) patches
5 and 12?
Thanks,
Paul
Jacopo Mondi (4):
libcamera: uvcvideo: Register ExposureTimeMode control
test: ipa_data_serialization: Use DebugMetadataEnable
ipa: raspberry: Port to the new AEGC controls
controls: Remove AeLocked
Paul Elder (8):
controls: Introduce AEGC-related controls
Documentation: design: ae: Document the design for AE controls
ipa: rkisp1: Port to the new AEGC controls
gstreamer: Generate the new AEGC controls
controls: Redefine AeEnable
libcamera: camera: Pre-process AeEnable control
ipa: rkisp1: agc: Report new AeEnable control as available
ipa: raspberry: Report new AeEnable control as available
Documentation/design/ae.rst | 331 ++++++++++++++++++
Documentation/index.rst | 4 +-
Documentation/meson.build | 1 +
src/ipa/rkisp1/algorithms/agc.cpp | 133 +++++--
src/ipa/rkisp1/ipa_context.cpp | 24 +-
src/ipa/rkisp1/ipa_context.h | 8 +-
src/ipa/rpi/common/ipa_base.cpp | 86 ++++-
src/ipa/rpi/controller/agc_algorithm.h | 8 +-
src/ipa/rpi/controller/rpi/agc.cpp | 52 ++-
src/ipa/rpi/controller/rpi/agc.h | 8 +-
src/ipa/rpi/controller/rpi/agc_channel.cpp | 24 +-
src/ipa/rpi/controller/rpi/agc_channel.h | 8 +-
src/libcamera/camera.cpp | 20 ++
src/libcamera/control_ids_core.yaml | 279 +++++++++++++--
src/libcamera/control_ids_draft.yaml | 30 --
src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 53 ++-
.../ipa_data_serializer_test.cpp | 2 +-
utils/codegen/gen-gst-controls.py | 5 +-
18 files changed, 953 insertions(+), 123 deletions(-)
create mode 100644 Documentation/design/ae.rst
--
2.39.2
More information about the libcamera-devel
mailing list