[libcamera-devel,v1,0/8] Introduce AGC for RkISP1
mbox series

Message ID 20211119111654.68445-1-jeanmichel.hautbois@ideasonboard.com
Headers show
Series
  • Introduce AGC for RkISP1
Related show

Message

Jean-Michel Hautbois Nov. 19, 2021, 11:16 a.m. UTC
Hello,

Now that AGC is working pretty nicely on IPU3, make it work on RkISP1
too.

For that purpose, patches 1/8 to 5/8 reuse the concepts of Algorithm and
IPAContext and make those part of th rkisp1 IPA. The effective sensor
controls can then be reported.

Patch 6/8 is a small adaptation of the IPU3 AGC: we reuse the relative
luminance estimation, basing it on the Y mean measured by the ISP, and
removes the histogram based calculation for now.

Patch 7/8 introduces a new prepare() call from the Algorithm class in
AGC, and patch 8/8 is making it revision independant.

Jean-Michel Hautbois (8):
  ipa: rkisp1: Pass IPASettings at init call
  ipa: rkisp1: Instantiate CameraSensorHelper
  ipa: rkisp1: Introduce IPAContext
  ipa: ipu3: Introduce the Algorithm class
  ipa: rkisp1: Report and use sensor controls
  ipa: rkisp1: Introduce AGC
  ipa: rkisp1: agc: Introduce prepare call
  ipa: rkisp1: agc: Configure the number of cells used by HW

 include/libcamera/ipa/rkisp1.mojom       |   6 +-
 src/ipa/ipu3/ipa_context.cpp             |   3 +
 src/ipa/rkisp1/algorithms/agc.cpp        | 258 +++++++++++++++++++++++
 src/ipa/rkisp1/algorithms/agc.h          |  58 +++++
 src/ipa/rkisp1/algorithms/algorithm.cpp  | 101 +++++++++
 src/ipa/rkisp1/algorithms/algorithm.h    |  32 +++
 src/ipa/rkisp1/algorithms/meson.build    |   6 +
 src/ipa/rkisp1/ipa_context.cpp           | 102 +++++++++
 src/ipa/rkisp1/ipa_context.h             |  52 +++++
 src/ipa/rkisp1/meson.build               |  10 +-
 src/ipa/rkisp1/rkisp1.cpp                | 120 ++++++-----
 src/libcamera/pipeline/rkisp1/rkisp1.cpp |  12 +-
 12 files changed, 703 insertions(+), 57 deletions(-)
 create mode 100644 src/ipa/rkisp1/algorithms/agc.cpp
 create mode 100644 src/ipa/rkisp1/algorithms/agc.h
 create mode 100644 src/ipa/rkisp1/algorithms/algorithm.cpp
 create mode 100644 src/ipa/rkisp1/algorithms/algorithm.h
 create mode 100644 src/ipa/rkisp1/algorithms/meson.build
 create mode 100644 src/ipa/rkisp1/ipa_context.cpp
 create mode 100644 src/ipa/rkisp1/ipa_context.h


base-commit: ff89aa0185bfd141c72ed44bd2e5224df1465a3a