[libcamera-devel] [RFC PATCH 0/2] Implement IPA algorithms and demo with IPU3

Jean-Michel Hautbois jeanmichel.hautbois at ideasonboard.com
Fri Feb 19 18:22:22 CET 2021


This RFC is really meant to start discussions.
It demonstrates on IPU3 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 ;-).

Jean-Michel Hautbois (2):
  WIP: ipa: Add Controller and Algorithm skeleton
  WIP: ipa: ipu3: Add support for IPU3 AWB algorithm

 include/libcamera/ipa/agc_algorithm.h  |  32 ++++
 include/libcamera/ipa/awb_algorithm.h  |  27 ++++
 include/libcamera/ipa/ipa_algorithm.h  |  46 ++++++
 include/libcamera/ipa/ipa_controller.h |  39 +++++
 include/libcamera/ipa/meson.build      |   4 +
 src/ipa/ipu3/ipu3.cpp                  |  31 +++-
 src/ipa/ipu3/ipu3_agc.cpp              | 195 +++++++++++++++++++++++++
 src/ipa/ipu3/ipu3_agc.h                |  96 ++++++++++++
 src/ipa/ipu3/ipu3_awb.cpp              | 182 +++++++++++++++++++++++
 src/ipa/ipu3/ipu3_awb.h                | 130 +++++++++++++++++
 src/ipa/ipu3/meson.build               |   8 +-
 src/ipa/libipa/ipa_algorithm.cpp       |  20 +++
 src/ipa/libipa/ipa_controller.cpp      |  45 ++++++
 src/ipa/libipa/meson.build             |   2 +
 src/libcamera/pipeline/ipu3/ipu3.cpp   |   1 +
 15 files changed, 853 insertions(+), 5 deletions(-)
 create mode 100644 include/libcamera/ipa/agc_algorithm.h
 create mode 100644 include/libcamera/ipa/awb_algorithm.h
 create mode 100644 include/libcamera/ipa/ipa_algorithm.h
 create mode 100644 include/libcamera/ipa/ipa_controller.h
 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/ipa_algorithm.cpp
 create mode 100644 src/ipa/libipa/ipa_controller.cpp

-- 
2.27.0



More information about the libcamera-devel mailing list