[0/3] ipa: simple: Add sensor-specific image and exposure tuning
mbox series

Message ID 20260816204259.2845517-1-opensource@inspiredexperts.com
Headers show
Series
  • ipa: simple: Add sensor-specific image and exposure tuning
Related show

Message

James Alexander Aug. 16, 2026, 8:42 p.m. UTC
This series lets a simple IPA tuning file set its starting image controls and
practical AGC limits, then uses those settings for the OV08X40.

The new tuning keys are optional. Existing tuning files keep their current
defaults, and configured values are clamped to the existing control ranges or
the limits reported by the sensor.

The series was built against libcamera b8910c9a4961 with the simple pipeline
and simple IPA enabled. On an HP Spectre x360 14-eu0xxx, the full camera patch
set captured 60 consecutive 3848x2416 frames at 30 fps and produced a stable
preview through PipeWire and GNOME Snapshot.

The OV08X40 matrix and defaults were adjusted under 2700 K LED lighting. They
are a useful starting point for this camera, but they are not lab calibrated.

James Alexander

---
James Alexander (3):
  ipa: simple: adjust: Read defaults from tuning
  ipa: simple: agc: Read limits from tuning
  ipa: simple: Add OV08X40 tuning

 src/ipa/simple/algorithms/adjust.cpp | 26 ++++++++++++++++++++------
 src/ipa/simple/algorithms/adjust.h   |  6 ++++++
 src/ipa/simple/algorithms/agc.cpp    | 44 ++++++++++++++++++++++++++++++++++++-
 src/ipa/simple/algorithms/agc.h      |  9 ++++++++
 src/ipa/simple/data/meson.build      |  1 +
 src/ipa/simple/data/ov08x40.yaml     | 22 +++++++++++++++++++
 6 files changed, 101 insertions(+), 7 deletions(-)

Comments

Jacopo Mondi Aug. 18, 2026, 10:21 a.m. UTC | #1
Hi James,

On Sun, Aug 16, 2026 at 02:42:56PM -0600, James Alexander wrote:
> This series lets a simple IPA tuning file set its starting image controls and
> practical AGC limits, then uses those settings for the OV08X40.

As a note: big rework are on-going on the IPA side, and we aim to
transition simple to use the libipa AGC algorithm
https://patchwork.libcamera.org/project/libcamera/list/?series=6125

we should hopefully land that work soonish, and this changes will be
rebased.

I'll comment on the single patches


>
> The new tuning keys are optional. Existing tuning files keep their current
> defaults, and configured values are clamped to the existing control ranges or
> the limits reported by the sensor.
>
> The series was built against libcamera b8910c9a4961 with the simple pipeline
> and simple IPA enabled. On an HP Spectre x360 14-eu0xxx, the full camera patch
> set captured 60 consecutive 3848x2416 frames at 30 fps and produced a stable
> preview through PipeWire and GNOME Snapshot.
>
> The OV08X40 matrix and defaults were adjusted under 2700 K LED lighting. They
> are a useful starting point for this camera, but they are not lab calibrated.
>
> James Alexander
>
> ---
> James Alexander (3):
>   ipa: simple: adjust: Read defaults from tuning
>   ipa: simple: agc: Read limits from tuning
>   ipa: simple: Add OV08X40 tuning
>
>  src/ipa/simple/algorithms/adjust.cpp | 26 ++++++++++++++++++++------
>  src/ipa/simple/algorithms/adjust.h   |  6 ++++++
>  src/ipa/simple/algorithms/agc.cpp    | 44 ++++++++++++++++++++++++++++++++++++-
>  src/ipa/simple/algorithms/agc.h      |  9 ++++++++
>  src/ipa/simple/data/meson.build      |  1 +
>  src/ipa/simple/data/ov08x40.yaml     | 22 +++++++++++++++++++
>  6 files changed, 101 insertions(+), 7 deletions(-)
>
> --
> 2.53.0
Jacopo Mondi Aug. 20, 2026, 7:55 a.m. UTC | #2
Hello again,

  for cross-reference, adding limits to algorithms in tuning files
has already been proposed, I didn't notice, sorry about that.
https://patchwork.libcamera.org/project/libcamera/list/?series=5915
(cc-ed the author as well)

This means it is probably a required feature and we need to decice
what to standardize on, even more so that Simple has been ported
to use the libipa common algorithms

On Sun, Aug 16, 2026 at 02:42:56PM -0600, James Alexander wrote:
> This series lets a simple IPA tuning file set its starting image controls and
> practical AGC limits, then uses those settings for the OV08X40.
>
> The new tuning keys are optional. Existing tuning files keep their current
> defaults, and configured values are clamped to the existing control ranges or
> the limits reported by the sensor.
>
> The series was built against libcamera b8910c9a4961 with the simple pipeline
> and simple IPA enabled. On an HP Spectre x360 14-eu0xxx, the full camera patch
> set captured 60 consecutive 3848x2416 frames at 30 fps and produced a stable
> preview through PipeWire and GNOME Snapshot.
>
> The OV08X40 matrix and defaults were adjusted under 2700 K LED lighting. They
> are a useful starting point for this camera, but they are not lab calibrated.
>
> James Alexander
>
> ---
> James Alexander (3):
>   ipa: simple: adjust: Read defaults from tuning
>   ipa: simple: agc: Read limits from tuning
>   ipa: simple: Add OV08X40 tuning
>
>  src/ipa/simple/algorithms/adjust.cpp | 26 ++++++++++++++++++++------
>  src/ipa/simple/algorithms/adjust.h   |  6 ++++++
>  src/ipa/simple/algorithms/agc.cpp    | 44 ++++++++++++++++++++++++++++++++++++-
>  src/ipa/simple/algorithms/agc.h      |  9 ++++++++
>  src/ipa/simple/data/meson.build      |  1 +
>  src/ipa/simple/data/ov08x40.yaml     | 22 +++++++++++++++++++
>  6 files changed, 101 insertions(+), 7 deletions(-)
>
> --
> 2.53.0