[libcamera-devel,0/2] IPA initial values for Raspberry Pi
mbox series

Message ID 20231206103839.16607-1-david.plowman@raspberrypi.com
Headers show
Series
  • IPA initial values for Raspberry Pi
Related show

Message

David Plowman Dec. 6, 2023, 10:38 a.m. UTC
Hi

Just a quick word to explain these patches seeing as no one is using
them (yet).

They're going to be used on the PiSP (Pi 5) platform where we have a
particular problem in needing to program up the statistics blocks
which are part of the Camera Front End. We have to do this before we
start the camera, so there has been no chance to process any frames
and discover suitable colour gains and black levels.

Therefore these methods provide a way for the Pi 5 pipeline handler to
apply sensible default values, so that the statistics for the first
few frames (before those algorithms have actually run) are usable. The
only values that we really need are black levels and plausible colour
gains for this sensor.

Thanks!
David

David Plowman (2):
  ipa: rpi: black_level: Add an initialValues method
  ipa: rpi: awb: Add an initialValues method

 src/ipa/rpi/controller/awb_algorithm.h        |  1 +
 .../rpi/controller/black_level_algorithm.h    | 23 +++++++++++++++++++
 src/ipa/rpi/controller/rpi/awb.cpp            |  6 +++++
 src/ipa/rpi/controller/rpi/awb.h              |  1 +
 src/ipa/rpi/controller/rpi/black_level.cpp    | 10 +++++++-
 src/ipa/rpi/controller/rpi/black_level.h      |  6 +++--
 6 files changed, 44 insertions(+), 3 deletions(-)
 create mode 100644 src/ipa/rpi/controller/black_level_algorithm.h

Comments

Naushir Patuck Dec. 6, 2023, 12:43 p.m. UTC | #1
Hi David,

On Wed, 6 Dec 2023 at 10:38, David Plowman via libcamera-devel
<libcamera-devel@lists.libcamera.org> wrote:
>
> Hi
>
> Just a quick word to explain these patches seeing as no one is using
> them (yet).
>
> They're going to be used on the PiSP (Pi 5) platform where we have a
> particular problem in needing to program up the statistics blocks
> which are part of the Camera Front End. We have to do this before we
> start the camera, so there has been no chance to process any frames
> and discover suitable colour gains and black levels.
>
> Therefore these methods provide a way for the Pi 5 pipeline handler to
> apply sensible default values, so that the statistics for the first
> few frames (before those algorithms have actually run) are usable. The
> only values that we really need are black levels and plausible colour
> gains for this sensor.

I was just talking with Nick about this yesterday!

With this change, I wonder if we should remove the use of
"black_level.status" that gets added to the metadata per-frame?  Or do
we want to keep the possibility of adapting black-level in the future?

Naush

>
> Thanks!
> David
>
> David Plowman (2):
>   ipa: rpi: black_level: Add an initialValues method
>   ipa: rpi: awb: Add an initialValues method
>
>  src/ipa/rpi/controller/awb_algorithm.h        |  1 +
>  .../rpi/controller/black_level_algorithm.h    | 23 +++++++++++++++++++
>  src/ipa/rpi/controller/rpi/awb.cpp            |  6 +++++
>  src/ipa/rpi/controller/rpi/awb.h              |  1 +
>  src/ipa/rpi/controller/rpi/black_level.cpp    | 10 +++++++-
>  src/ipa/rpi/controller/rpi/black_level.h      |  6 +++--
>  6 files changed, 44 insertions(+), 3 deletions(-)
>  create mode 100644 src/ipa/rpi/controller/black_level_algorithm.h
>
> --
> 2.39.2
>
David Plowman Dec. 6, 2023, 1:58 p.m. UTC | #2
Hi Naush

I think I'd like to keep it - it's not unknown for it to get tweaked
slightly with analogue gain or exposure values (though I know we
mostly try to avoid micro-managing stuff like that).

The biggest change I will be adding to the PiSP PH is to program up
the FE black levels correctly in the default config. Currently this is
completely uninitialised, so the first couple of frames come out with
completely garbage AGC statistics!

David

On Wed, 6 Dec 2023 at 12:43, Naushir Patuck <naush@raspberrypi.com> wrote:
>
> Hi David,
>
> On Wed, 6 Dec 2023 at 10:38, David Plowman via libcamera-devel
> <libcamera-devel@lists.libcamera.org> wrote:
> >
> > Hi
> >
> > Just a quick word to explain these patches seeing as no one is using
> > them (yet).
> >
> > They're going to be used on the PiSP (Pi 5) platform where we have a
> > particular problem in needing to program up the statistics blocks
> > which are part of the Camera Front End. We have to do this before we
> > start the camera, so there has been no chance to process any frames
> > and discover suitable colour gains and black levels.
> >
> > Therefore these methods provide a way for the Pi 5 pipeline handler to
> > apply sensible default values, so that the statistics for the first
> > few frames (before those algorithms have actually run) are usable. The
> > only values that we really need are black levels and plausible colour
> > gains for this sensor.
>
> I was just talking with Nick about this yesterday!
>
> With this change, I wonder if we should remove the use of
> "black_level.status" that gets added to the metadata per-frame?  Or do
> we want to keep the possibility of adapting black-level in the future?
>
> Naush
>
> >
> > Thanks!
> > David
> >
> > David Plowman (2):
> >   ipa: rpi: black_level: Add an initialValues method
> >   ipa: rpi: awb: Add an initialValues method
> >
> >  src/ipa/rpi/controller/awb_algorithm.h        |  1 +
> >  .../rpi/controller/black_level_algorithm.h    | 23 +++++++++++++++++++
> >  src/ipa/rpi/controller/rpi/awb.cpp            |  6 +++++
> >  src/ipa/rpi/controller/rpi/awb.h              |  1 +
> >  src/ipa/rpi/controller/rpi/black_level.cpp    | 10 +++++++-
> >  src/ipa/rpi/controller/rpi/black_level.h      |  6 +++--
> >  6 files changed, 44 insertions(+), 3 deletions(-)
> >  create mode 100644 src/ipa/rpi/controller/black_level_algorithm.h
> >
> > --
> > 2.39.2
> >