[PATCH v6 0/5] Software ISP levels cleanup

Milan Zamazal mzamazal at redhat.com
Fri May 31 14:38:35 CEST 2024


This is a cleanup of black level and color gain handling in software
ISP.  It fixes omission of black level subtraction in white balance
computation and moves color lookup tables computations out of
debayering.  The latter also serves as a preparation for bringing
software ISP algorithms closer to common libcamera algorithm handling,
in future patches.

Changes in v6:
- Added a comment + todo to SoftwareIsp::debayerParams_ initialization.

Changes in v5:
- Improvements to comments in IPASoftSimple::processStats.
- Avoiding the use of a lambda function there (code simplification).
- Dropped DebayerParams::kGamma.
- Including cmath rather than math.h.
- Dropped the conversion of color lookup tables in favor of only
  dropping TODO #4.
- Fixed type of the array in SoftwareIsp::debayerParams_ initialization (it
  mistakenly corresponded to the type changed in the dropped patch).

Changes in v4:
- Removed no longer used private members of DebayerCpu.
- Added initialization of SoftwareIsp::debayerParams_ (should fix the
  initial color artifacts observed by Kieran).

Changes in v3:
- Casting an uint8_t value to unsigned int when logging it. 

Changes in v2:
- stdint.h include moved from black_level.cpp to black_level.h.
- Removed meaningless multiplication in black level subtraction.
- Removed local variable scoping block.
- Added a comment about subtracting black level for auto white balance.
- A code snippet related to black level subtraction moved to the right
  patch.
- Dropped the patch moving TODO #13 to a source code comment.
- Added a patch to use float rather than uint8_t gains in color lookup
  tables passed to debayering.

Milan Zamazal (5):
  libcamera: software_isp: Use a specific integer type for black level
  libcamera: software_isp: Honor black level in AWB
  libcamera: software_isp: Move color mappings out of debayering
  libcamera: software_isp: Remove DebayerParams::kGain10
  libcamera: software_isp: Remove TODO about internal representation

 .../internal/software_isp/debayer_params.h    | 19 +++--
 src/ipa/simple/black_level.cpp                |  2 +-
 src/ipa/simple/black_level.h                  |  5 +-
 src/ipa/simple/soft_simple.cpp                | 75 ++++++++++++++-----
 src/libcamera/software_isp/TODO               | 13 ----
 src/libcamera/software_isp/debayer.cpp        | 28 +++----
 src/libcamera/software_isp/debayer_cpu.cpp    | 43 ++---------
 src/libcamera/software_isp/debayer_cpu.h      | 11 +--
 src/libcamera/software_isp/software_isp.cpp   | 23 +++++-
 9 files changed, 112 insertions(+), 107 deletions(-)

-- 
2.42.2



More information about the libcamera-devel mailing list