[libcamera-devel,RFC,v2,0/3] Implement IPA algorithms and demo with IPU3
mbox series

Message ID 20210223164041.49932-1-jeanmichel.hautbois@ideasonboard.com
Headers show
Series
  • Implement IPA algorithms and demo with IPU3
Related show

Message

Jean-Michel Hautbois Feb. 23, 2021, 4:40 p.m. UTC
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 ;-).

In this v2:
- splits AWB and AEC/AGC algorithms.
- remove unused Controller
- remove unused variables/methods
- rename most of the class members

Jean-Michel Hautbois (3):
  WIP: ipa: Add a common interface for algorithm objects
  WIP: ipa: ipu3: Add support for IPU3 AWB algorithm
  WIP: ipa: ipu3: Add support for IPU3 AEC/AGC algorithm

 src/ipa/ipu3/ipu3.cpp        |  34 ++++--
 src/ipa/ipu3/ipu3_agc.cpp    | 171 ++++++++++++++++++++++++++++++
 src/ipa/ipu3/ipu3_agc.h      |  62 +++++++++++
 src/ipa/ipu3/ipu3_awb.cpp    | 199 +++++++++++++++++++++++++++++++++++
 src/ipa/ipu3/ipu3_awb.h      |  47 +++++++++
 src/ipa/ipu3/meson.build     |   8 +-
 src/ipa/libipa/algorithm.cpp |  25 +++++
 src/ipa/libipa/algorithm.h   |  29 +++++
 src/ipa/libipa/meson.build   |   4 +-
 9 files changed, 569 insertions(+), 10 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