[libcamera-devel] [PATCH v3 0/5] Implement IPA algorithms and demo with IPU3
Jean-Michel Hautbois
jeanmichel.hautbois at ideasonboard.com
Mon Mar 29 21:18:21 CEST 2021
Here is v3 of the IPA demonstration on IPU3.
It demonstrates a conjunction of automatic exposure (AGC)
and automatic white balance (AWB).
The skeleton are extracted from RPi controller and probably subject to
modifications and discussions :
- are the mandatory methods really those ?
- how to exchange data between algorithms ?
- metadata like RPi?
- IPC ?
- public methods?
- controller API ?
- is the controller needed at all ?
The implementation in IPU3 is tested on SGo2.
It is not perfect but shows a really better behaviour than default.
Right now, the AGC algorithm is part of the RPi one, adapted to the
stats and parameters we have in IPU3.
Changes in v3:
- introduce histogram class (for AGC)
- add a patch to introduce parameter context saving
- changes in AGC to simplify it using part of RPi work
- changes in the AWB loop
- calculate the grid for the parameters using the BDS size from pipeline
handler
In v2:
- splits AWB and AEC/AGC algorithms.
- remove unused Controller
- remove unused variables/methods
- rename most of the class members
Jean-Michel Hautbois (5):
ipa: Add a common interface for algorithm objects
ipa: ipu3: Add an histogram class
ipa: ipu3: Use a local parameter object and prepare for 3A algorithms
ipa: ipu3: Add support for IPU3 AWB algorithm
ipa: ipu3: Add support for IPU3 AEC/AGC algorithm
src/ipa/ipu3/ipu3.cpp | 91 ++++++++++++--
src/ipa/ipu3/ipu3_agc.cpp | 229 ++++++++++++++++++++++++++++++++++
src/ipa/ipu3/ipu3_agc.h | 67 ++++++++++
src/ipa/ipu3/ipu3_awb.cpp | 233 +++++++++++++++++++++++++++++++++++
src/ipa/ipu3/ipu3_awb.h | 44 +++++++
src/ipa/ipu3/meson.build | 8 +-
src/ipa/libipa/algorithm.cpp | 39 ++++++
src/ipa/libipa/algorithm.h | 24 ++++
src/ipa/libipa/histogram.cpp | 102 +++++++++++++++
src/ipa/libipa/histogram.h | 62 ++++++++++
src/ipa/libipa/meson.build | 6 +-
11 files changed, 896 insertions(+), 9 deletions(-)
create mode 100644 src/ipa/ipu3/ipu3_agc.cpp
create mode 100644 src/ipa/ipu3/ipu3_agc.h
create mode 100644 src/ipa/ipu3/ipu3_awb.cpp
create mode 100644 src/ipa/ipu3/ipu3_awb.h
create mode 100644 src/ipa/libipa/algorithm.cpp
create mode 100644 src/ipa/libipa/algorithm.h
create mode 100644 src/ipa/libipa/histogram.cpp
create mode 100644 src/ipa/libipa/histogram.h
--
2.27.0
More information about the libcamera-devel
mailing list