[0/5] ipa: rkisp1: Improve AGC (plumbing)
mbox series

Message ID 20240405144729.2992219-1-paul.elder@ideasonboard.com
Headers show
Series
  • ipa: rkisp1: Improve AGC (plumbing)
Related show

Message

Paul Elder April 5, 2024, 2:47 p.m. UTC
This series depends on v1 of "Centralise Agc into libipa", and "ipa:
Move Pwl from Raspberry Pi to libipa".

This series adds support in the rkisp1 IPA for:
- reading histogram weights (metering modes) from tuning file
- setting digital gain
- expands luminance target from a scalar value to piecewise linear
  function, controlled by lux
- plumbs controls for setting metering mode, exposure mode, constraint
  mode, and frame duration

While at it, there is a fixup for Dan's series "Centralise Agc into
libipa". Dan, I suppose you could pick it up and squash it into your
series. I have it here so just so that I don't forget about it.

This series breaks the rkisp1 pipeline since it'll complain about
non-existant tuning files. There's a series coming imminently to address
that (though it'll only add a tuning file for imx335).

Paul Elder (5):
  ipa: rkisp1: agc: Read histogram weights from tuning file
  ipa: rkisp1: agc: Add digital gain
  fixup: ipa: rkisp1: Remove bespoke Agc functions
  ipa: libipa: agc: Change luminance target to piecewise linear function
  ipa: rkisp1: agc: Plumb mode-selection and frame duration controls

 src/ipa/ipu3/algorithms/agc.cpp       |   5 +-
 src/ipa/libipa/agc.cpp                |  22 +++-
 src/ipa/libipa/agc.h                  |   7 +-
 src/ipa/rkisp1/algorithms/agc.cpp     | 179 +++++++++++++++++++++++---
 src/ipa/rkisp1/algorithms/agc.h       |  11 ++
 src/ipa/rkisp1/algorithms/algorithm.h |   2 +
 src/ipa/rkisp1/ipa_context.h          |   7 +
 src/ipa/rkisp1/rkisp1.cpp             |  12 ++
 8 files changed, 213 insertions(+), 32 deletions(-)

Comments

Kieran Bingham April 12, 2024, 8:54 a.m. UTC | #1
Quoting Paul Elder (2024-04-05 15:47:24)
> This series depends on v1 of "Centralise Agc into libipa", and "ipa:
> Move Pwl from Raspberry Pi to libipa".
> 
> This series adds support in the rkisp1 IPA for:
> - reading histogram weights (metering modes) from tuning file
> - setting digital gain
> - expands luminance target from a scalar value to piecewise linear
>   function, controlled by lux
> - plumbs controls for setting metering mode, exposure mode, constraint
>   mode, and frame duration
> 
> While at it, there is a fixup for Dan's series "Centralise Agc into
> libipa". Dan, I suppose you could pick it up and squash it into your
> series. I have it here so just so that I don't forget about it.
> 
> This series breaks the rkisp1 pipeline since it'll complain about
> non-existant tuning files. There's a series coming imminently to address
> that (though it'll only add a tuning file for imx335).

That will then break a fair few existing users who don't yet have tuning
files.

I know RPi prefer to halt rather than continue with an untuned file, but
I think at least temporarily until we get tuning files in for /currently
supported/ cameras we should allow falling back to an uncalibrated
tuning file.

Personally I would still prefer to fall back to an uncalibrated with a
warning in the general case, but I'm fine if we align with the RPi style
to fail the pipeline if we don't have a tuning file /when/ we have
tuning files for currently supported cameras, otherwise I don't think
the breakage is fair

--
Kieran



> 
> Paul Elder (5):
>   ipa: rkisp1: agc: Read histogram weights from tuning file
>   ipa: rkisp1: agc: Add digital gain
>   fixup: ipa: rkisp1: Remove bespoke Agc functions
>   ipa: libipa: agc: Change luminance target to piecewise linear function
>   ipa: rkisp1: agc: Plumb mode-selection and frame duration controls
> 
>  src/ipa/ipu3/algorithms/agc.cpp       |   5 +-
>  src/ipa/libipa/agc.cpp                |  22 +++-
>  src/ipa/libipa/agc.h                  |   7 +-
>  src/ipa/rkisp1/algorithms/agc.cpp     | 179 +++++++++++++++++++++++---
>  src/ipa/rkisp1/algorithms/agc.h       |  11 ++
>  src/ipa/rkisp1/algorithms/algorithm.h |   2 +
>  src/ipa/rkisp1/ipa_context.h          |   7 +
>  src/ipa/rkisp1/rkisp1.cpp             |  12 ++
>  8 files changed, 213 insertions(+), 32 deletions(-)
> 
> -- 
> 2.39.2
>